@1money/component-ui 0.0.90 → 0.0.91
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.
- package/es/business/Dialog/BaseDialog/BaseDialog.d.ts +3 -0
- package/es/business/Dialog/BaseDialog/BaseDialog.js +131 -0
- package/es/business/Dialog/BaseDialog/constants.d.ts +12 -0
- package/es/business/Dialog/BaseDialog/constants.js +13 -0
- package/es/business/Dialog/BaseDialog/index.d.ts +4 -0
- package/es/business/Dialog/BaseDialog/index.js +5 -0
- package/es/business/Dialog/BaseDialog/interface.d.ts +69 -0
- package/es/business/Dialog/BaseDialog/interface.js +2 -0
- package/es/business/Dialog/BaseDialog/style/BaseDialog.css +72 -0
- package/es/business/Dialog/BaseDialog/style/css.js +2 -0
- package/es/business/Dialog/BaseDialog/style/index.d.ts +1 -0
- package/es/business/Dialog/BaseDialog/style/index.js +2 -0
- package/es/business/Dialog/Descriptions/Descriptions.d.ts +3 -0
- package/es/business/Dialog/Descriptions/Descriptions.js +102 -0
- package/es/business/Dialog/Descriptions/constants.d.ts +16 -0
- package/es/business/Dialog/Descriptions/constants.js +24 -0
- package/es/business/Dialog/Descriptions/index.d.ts +4 -0
- package/es/business/Dialog/Descriptions/index.js +5 -0
- package/es/business/Dialog/Descriptions/interface.d.ts +58 -0
- package/es/business/Dialog/{ResultDialog → Descriptions}/interface.js +1 -1
- package/es/business/Dialog/Descriptions/style/Descriptions.css +60 -0
- package/es/business/Dialog/{ResultDialog → Descriptions}/style/css.js +2 -2
- package/es/business/Dialog/Descriptions/style/index.d.ts +1 -0
- package/es/business/Dialog/{ResultDialog → Descriptions}/style/index.js +2 -2
- package/es/business/Dialog/DetailsDialog/DetailsDialog.d.ts +3 -0
- package/es/business/Dialog/DetailsDialog/DetailsDialog.js +101 -0
- package/es/business/Dialog/DetailsDialog/index.d.ts +4 -0
- package/es/business/Dialog/DetailsDialog/index.js +5 -0
- package/es/business/Dialog/DetailsDialog/interface.d.ts +31 -0
- package/es/business/Dialog/DetailsDialog/interface.js +2 -0
- package/es/business/Dialog/DetailsDialog/style/DetailsDialog.css +43 -0
- package/es/business/Dialog/DetailsDialog/style/css.js +2 -0
- package/es/business/Dialog/DetailsDialog/style/index.d.ts +1 -0
- package/es/business/Dialog/DetailsDialog/style/index.js +2 -0
- package/es/business/Dialog/FormDialog/FormDialog.d.ts +5 -0
- package/es/business/Dialog/FormDialog/FormDialog.js +121 -0
- package/es/business/Dialog/FormDialog/index.d.ts +6 -0
- package/es/business/Dialog/FormDialog/index.js +6 -0
- package/es/business/Dialog/FormDialog/interface.d.ts +53 -0
- package/es/business/Dialog/FormDialog/interface.js +2 -0
- package/{lib/business/Dialog/TransactionDialog/style/TransactionDialog.css → es/business/Dialog/FormDialog/style/FormDialog.css} +11 -11
- package/es/business/Dialog/FormDialog/style/css.js +2 -0
- package/es/business/Dialog/FormDialog/style/index.d.ts +1 -0
- package/es/business/Dialog/FormDialog/style/index.js +2 -0
- package/es/business/Dialog/VerificationDialog/VerificationDialog.js +249 -95
- package/es/business/Dialog/VerificationDialog/constants.d.ts +8 -35
- package/es/business/Dialog/VerificationDialog/constants.js +8 -30
- package/es/business/Dialog/VerificationDialog/index.d.ts +2 -1
- package/es/business/Dialog/VerificationDialog/index.js +3 -2
- package/es/business/Dialog/VerificationDialog/interface.d.ts +42 -106
- package/es/business/Dialog/VerificationDialog/style/VerificationDialog.css +17 -6
- package/es/business/Dialog/index.d.ts +5 -2
- package/es/business/Dialog/index.js +8 -3
- package/es/business/Dialog/variants/DeleteDialog.d.ts +3 -0
- package/es/business/Dialog/variants/DeleteDialog.js +20 -0
- package/es/business/Dialog/variants/FailureDialog.d.ts +3 -0
- package/es/business/Dialog/variants/FailureDialog.js +20 -0
- package/es/business/Dialog/variants/LoadingDialog.d.ts +33 -0
- package/es/business/Dialog/variants/LoadingDialog.js +189 -0
- package/es/business/Dialog/variants/PendingDialog.d.ts +3 -0
- package/es/business/Dialog/variants/PendingDialog.js +19 -0
- package/es/business/Dialog/variants/SuccessDialog.d.ts +3 -0
- package/es/business/Dialog/variants/SuccessDialog.js +19 -0
- package/es/business/Dialog/variants/index.d.ts +10 -0
- package/es/business/Dialog/variants/index.js +9 -0
- package/es/business/Dialog/variants/style/LoadingDialog.css +62 -0
- package/es/business/Dialog/variants/style/css.js +2 -0
- package/es/business/Dialog/variants/style/index.d.ts +1 -0
- package/es/business/Dialog/variants/style/index.js +2 -0
- package/es/business/FieldList/index.d.ts +30 -0
- package/es/business/FieldList/index.js +59 -0
- package/es/business/FieldList/style/FieldList.css +89 -0
- package/es/business/FieldList/style/css.js +2 -0
- package/es/business/FieldList/style/index.d.ts +1 -0
- package/es/business/FieldList/style/index.js +2 -0
- package/es/business/FormPage/FormPage.d.ts +4 -0
- package/es/business/FormPage/FormPage.js +92 -0
- package/es/business/FormPage/index.d.ts +4 -0
- package/es/business/FormPage/index.js +5 -0
- package/es/business/FormPage/interface.d.ts +53 -0
- package/es/business/FormPage/interface.js +2 -0
- package/es/business/Select/Asset/AssetSelect.js +5 -1
- package/es/business/Select/Country/CountrySelect.js +5 -1
- package/es/business/Select/Currency/CurrencySelect.js +5 -1
- package/es/business/Select/Network/NetworkSelect.js +5 -1
- package/es/business/Select/PaymentMethod/PaymentMethodSelect.js +5 -1
- package/es/business/index.d.ts +3 -0
- package/es/business/index.js +3 -1
- package/es/business/shared/formCore/BaseProForm.d.ts +40 -0
- package/es/business/shared/formCore/BaseProForm.js +87 -0
- package/es/business/shared/formCore/useRelayedFormRef.d.ts +16 -0
- package/es/business/shared/formCore/useRelayedFormRef.js +43 -0
- package/es/business/shared/formCore/useSubmitAction.d.ts +11 -0
- package/es/business/shared/formCore/useSubmitAction.js +92 -0
- package/es/components/ActionBar/ActionBar.d.ts +3 -0
- package/es/components/ActionBar/ActionBar.js +115 -0
- package/es/components/ActionBar/constants.d.ts +29 -0
- package/es/components/ActionBar/constants.js +30 -0
- package/es/components/ActionBar/index.d.ts +4 -0
- package/es/components/ActionBar/index.js +5 -0
- package/es/components/ActionBar/interface.d.ts +82 -0
- package/es/components/ActionBar/interface.js +2 -0
- package/es/components/ActionBar/style/ActionBar.css +44 -0
- package/es/components/ActionBar/style/css.js +2 -0
- package/es/components/ActionBar/style/index.d.ts +1 -0
- package/es/components/ActionBar/style/index.js +2 -0
- package/es/components/Dialog/Dialog.js +13 -8
- package/es/components/Dialog/interface.d.ts +11 -0
- package/es/components/Dialog/style/Dialog.css +7 -4
- package/es/{business/Dialog/ResultDialog/style/ResultDialog.css → components/Dialog/style/DialogBare.css} +10 -5
- package/es/components/Dialog/style/css.js +2 -1
- package/es/components/Dialog/style/index.d.ts +1 -0
- package/es/components/Dialog/style/index.js +2 -1
- package/es/components/FormLayout/FormLayout.d.ts +25 -0
- package/es/components/FormLayout/FormLayout.js +128 -0
- package/es/components/FormLayout/config.d.ts +96 -0
- package/es/components/FormLayout/config.js +93 -0
- package/es/components/FormLayout/context.d.ts +9 -0
- package/es/components/FormLayout/context.js +13 -0
- package/es/components/FormLayout/index.d.ts +7 -0
- package/es/components/FormLayout/index.js +7 -0
- package/es/components/FormLayout/interface.d.ts +51 -0
- package/es/components/FormLayout/interface.js +2 -0
- package/es/components/FormLayout/style/FormLayout.css +110 -0
- package/es/components/FormLayout/style/css.js +2 -0
- package/es/components/FormLayout/style/index.d.ts +1 -0
- package/es/components/FormLayout/style/index.js +2 -0
- package/es/components/Grid/Col.d.ts +1 -0
- package/es/components/Grid/Col.js +2 -1
- package/es/components/Grid/Row.d.ts +1 -0
- package/es/components/Grid/Row.js +2 -1
- package/es/components/Input/Input/Input.css +1 -1
- package/es/components/Input/Input/Input.js +16 -4
- package/es/components/Input/Mask/Mask.js +3 -2
- package/es/components/Input/interface.d.ts +5 -0
- package/es/components/ProForm/ProForm.js +24 -13
- package/es/components/ProForm/ProFormItem.js +2 -1
- package/es/components/ProForm/core/constants.d.ts +1 -1
- package/es/components/ProForm/core/constants.js +5 -2
- package/es/components/ProForm/style/ProForm.css +1 -1
- package/es/components/Select/Select.js +8 -3
- package/es/index.css +1 -1
- package/es/index.d.ts +5 -1
- package/es/index.js +3 -1
- package/lib/business/Dialog/BaseDialog/BaseDialog.d.ts +3 -0
- package/lib/business/Dialog/BaseDialog/BaseDialog.js +140 -0
- package/lib/business/Dialog/BaseDialog/constants.d.ts +12 -0
- package/lib/business/Dialog/BaseDialog/constants.js +19 -0
- package/lib/business/Dialog/BaseDialog/index.d.ts +4 -0
- package/lib/business/Dialog/BaseDialog/index.js +30 -0
- package/lib/business/Dialog/BaseDialog/interface.d.ts +69 -0
- package/lib/business/Dialog/BaseDialog/interface.js +6 -0
- package/lib/business/Dialog/BaseDialog/style/BaseDialog.css +72 -0
- package/lib/business/Dialog/BaseDialog/style/css.js +4 -0
- package/lib/business/Dialog/BaseDialog/style/index.d.ts +1 -0
- package/lib/business/Dialog/BaseDialog/style/index.js +4 -0
- package/lib/business/Dialog/Descriptions/Descriptions.d.ts +3 -0
- package/lib/business/Dialog/Descriptions/Descriptions.js +112 -0
- package/lib/business/Dialog/Descriptions/constants.d.ts +16 -0
- package/lib/business/Dialog/Descriptions/constants.js +30 -0
- package/lib/business/Dialog/Descriptions/index.d.ts +4 -0
- package/lib/business/Dialog/Descriptions/index.js +30 -0
- package/lib/business/Dialog/Descriptions/interface.d.ts +58 -0
- package/lib/business/Dialog/{ResultDialog → Descriptions}/interface.js +1 -1
- package/lib/business/Dialog/Descriptions/style/Descriptions.css +60 -0
- package/lib/business/Dialog/{ResultDialog → Descriptions}/style/css.js +2 -2
- package/lib/business/Dialog/Descriptions/style/index.d.ts +1 -0
- package/lib/business/Dialog/{ResultDialog → Descriptions}/style/index.js +2 -2
- package/lib/business/Dialog/DetailsDialog/DetailsDialog.d.ts +3 -0
- package/lib/business/Dialog/DetailsDialog/DetailsDialog.js +111 -0
- package/lib/business/Dialog/DetailsDialog/index.d.ts +4 -0
- package/lib/business/Dialog/DetailsDialog/index.js +30 -0
- package/lib/business/Dialog/DetailsDialog/interface.d.ts +31 -0
- package/lib/business/Dialog/DetailsDialog/interface.js +6 -0
- package/lib/business/Dialog/DetailsDialog/style/DetailsDialog.css +43 -0
- package/lib/business/Dialog/DetailsDialog/style/css.js +4 -0
- package/lib/business/Dialog/DetailsDialog/style/index.d.ts +1 -0
- package/lib/business/Dialog/DetailsDialog/style/index.js +4 -0
- package/lib/business/Dialog/FormDialog/FormDialog.d.ts +5 -0
- package/lib/business/Dialog/FormDialog/FormDialog.js +130 -0
- package/lib/business/Dialog/FormDialog/index.d.ts +6 -0
- package/lib/business/Dialog/FormDialog/index.js +52 -0
- package/lib/business/Dialog/FormDialog/interface.d.ts +53 -0
- package/lib/business/Dialog/FormDialog/interface.js +6 -0
- package/{es/business/Dialog/TransactionDialog/style/TransactionDialog.css → lib/business/Dialog/FormDialog/style/FormDialog.css} +11 -11
- package/lib/business/Dialog/FormDialog/style/css.js +4 -0
- package/lib/business/Dialog/FormDialog/style/index.d.ts +1 -0
- package/lib/business/Dialog/FormDialog/style/index.js +4 -0
- package/lib/business/Dialog/VerificationDialog/VerificationDialog.js +250 -92
- package/lib/business/Dialog/VerificationDialog/constants.d.ts +8 -35
- package/lib/business/Dialog/VerificationDialog/constants.js +9 -31
- package/lib/business/Dialog/VerificationDialog/index.d.ts +2 -1
- package/lib/business/Dialog/VerificationDialog/index.js +4 -17
- package/lib/business/Dialog/VerificationDialog/interface.d.ts +42 -106
- package/lib/business/Dialog/VerificationDialog/style/VerificationDialog.css +17 -6
- package/lib/business/Dialog/index.d.ts +5 -2
- package/lib/business/Dialog/index.js +31 -9
- package/lib/business/Dialog/variants/DeleteDialog.d.ts +3 -0
- package/lib/business/Dialog/variants/DeleteDialog.js +26 -0
- package/lib/business/Dialog/variants/FailureDialog.d.ts +3 -0
- package/lib/business/Dialog/variants/FailureDialog.js +26 -0
- package/lib/business/Dialog/variants/LoadingDialog.d.ts +33 -0
- package/lib/business/Dialog/variants/LoadingDialog.js +199 -0
- package/lib/business/Dialog/variants/PendingDialog.d.ts +3 -0
- package/lib/business/Dialog/variants/PendingDialog.js +25 -0
- package/lib/business/Dialog/variants/SuccessDialog.d.ts +3 -0
- package/lib/business/Dialog/variants/SuccessDialog.js +25 -0
- package/lib/business/Dialog/variants/index.d.ts +10 -0
- package/lib/business/Dialog/variants/index.js +41 -0
- package/lib/business/Dialog/variants/style/LoadingDialog.css +62 -0
- package/lib/business/Dialog/variants/style/css.js +4 -0
- package/lib/business/Dialog/variants/style/index.d.ts +1 -0
- package/lib/business/Dialog/variants/style/index.js +4 -0
- package/lib/business/FieldList/index.d.ts +30 -0
- package/lib/business/FieldList/index.js +67 -0
- package/lib/business/FieldList/style/FieldList.css +89 -0
- package/lib/business/FieldList/style/css.js +4 -0
- package/lib/business/FieldList/style/index.d.ts +1 -0
- package/lib/business/FieldList/style/index.js +4 -0
- package/lib/business/FormPage/FormPage.d.ts +4 -0
- package/lib/business/FormPage/FormPage.js +98 -0
- package/lib/business/FormPage/index.d.ts +4 -0
- package/lib/business/FormPage/index.js +30 -0
- package/lib/business/FormPage/interface.d.ts +53 -0
- package/lib/business/FormPage/interface.js +6 -0
- package/lib/business/Select/Asset/AssetSelect.js +5 -1
- package/lib/business/Select/Country/CountrySelect.js +5 -1
- package/lib/business/Select/Currency/CurrencySelect.js +5 -1
- package/lib/business/Select/Network/NetworkSelect.js +5 -1
- package/lib/business/Select/PaymentMethod/PaymentMethodSelect.js +5 -1
- package/lib/business/index.d.ts +3 -0
- package/lib/business/index.js +27 -1
- package/lib/business/shared/formCore/BaseProForm.d.ts +40 -0
- package/lib/business/shared/formCore/BaseProForm.js +93 -0
- package/lib/business/shared/formCore/useRelayedFormRef.d.ts +16 -0
- package/lib/business/shared/formCore/useRelayedFormRef.js +49 -0
- package/lib/business/shared/formCore/useSubmitAction.d.ts +11 -0
- package/lib/business/shared/formCore/useSubmitAction.js +99 -0
- package/lib/components/ActionBar/ActionBar.d.ts +3 -0
- package/lib/components/ActionBar/ActionBar.js +124 -0
- package/lib/components/ActionBar/constants.d.ts +29 -0
- package/lib/components/ActionBar/constants.js +36 -0
- package/lib/components/ActionBar/index.d.ts +4 -0
- package/lib/components/ActionBar/index.js +30 -0
- package/lib/components/ActionBar/interface.d.ts +82 -0
- package/lib/components/ActionBar/interface.js +6 -0
- package/lib/components/ActionBar/style/ActionBar.css +44 -0
- package/lib/components/ActionBar/style/css.js +4 -0
- package/lib/components/ActionBar/style/index.d.ts +1 -0
- package/lib/components/ActionBar/style/index.js +4 -0
- package/lib/components/Dialog/Dialog.js +13 -8
- package/lib/components/Dialog/interface.d.ts +11 -0
- package/lib/components/Dialog/style/Dialog.css +7 -4
- package/lib/{business/Dialog/ResultDialog/style/ResultDialog.css → components/Dialog/style/DialogBare.css} +10 -5
- package/lib/components/Dialog/style/css.js +2 -1
- package/lib/components/Dialog/style/index.d.ts +1 -0
- package/lib/components/Dialog/style/index.js +2 -1
- package/lib/components/FormLayout/FormLayout.d.ts +25 -0
- package/lib/components/FormLayout/FormLayout.js +138 -0
- package/lib/components/FormLayout/config.d.ts +96 -0
- package/lib/components/FormLayout/config.js +99 -0
- package/lib/components/FormLayout/context.d.ts +9 -0
- package/lib/components/FormLayout/context.js +19 -0
- package/lib/components/FormLayout/index.d.ts +7 -0
- package/lib/components/FormLayout/index.js +102 -0
- package/lib/components/FormLayout/interface.d.ts +51 -0
- package/lib/components/FormLayout/interface.js +6 -0
- package/lib/components/FormLayout/style/FormLayout.css +110 -0
- package/lib/components/FormLayout/style/css.js +4 -0
- package/lib/components/FormLayout/style/index.d.ts +1 -0
- package/lib/components/FormLayout/style/index.js +4 -0
- package/lib/components/Grid/Col.d.ts +1 -0
- package/lib/components/Grid/Col.js +2 -1
- package/lib/components/Grid/Row.d.ts +1 -0
- package/lib/components/Grid/Row.js +2 -1
- package/lib/components/Input/Input/Input.css +1 -1
- package/lib/components/Input/Input/Input.js +16 -4
- package/lib/components/Input/Mask/Mask.js +3 -2
- package/lib/components/Input/interface.d.ts +5 -0
- package/lib/components/ProForm/ProForm.js +27 -16
- package/lib/components/ProForm/ProFormItem.js +2 -1
- package/lib/components/ProForm/core/constants.d.ts +1 -1
- package/lib/components/ProForm/core/constants.js +5 -2
- package/lib/components/ProForm/style/ProForm.css +1 -1
- package/lib/components/Select/Select.js +8 -3
- package/lib/index.css +1 -1
- package/lib/index.d.ts +5 -1
- package/lib/index.js +33 -1
- package/package.json +39 -9
- package/scripts/mcp-server/examples.generated.json +84 -0
- package/scripts/mcp-server/index.generated.json +743 -152
- package/es/business/Dialog/ResultDialog/ResultDialog.d.ts +0 -3
- package/es/business/Dialog/ResultDialog/ResultDialog.js +0 -126
- package/es/business/Dialog/ResultDialog/constants.d.ts +0 -27
- package/es/business/Dialog/ResultDialog/constants.js +0 -24
- package/es/business/Dialog/ResultDialog/index.d.ts +0 -3
- package/es/business/Dialog/ResultDialog/index.js +0 -4
- package/es/business/Dialog/ResultDialog/interface.d.ts +0 -95
- package/es/business/Dialog/ResultDialog/presets.d.ts +0 -178
- package/es/business/Dialog/ResultDialog/presets.js +0 -139
- package/es/business/Dialog/ResultDialog/style/index.d.ts +0 -1
- package/es/business/Dialog/TransactionDialog/TransactionDialog.d.ts +0 -3
- package/es/business/Dialog/TransactionDialog/TransactionDialog.js +0 -174
- package/es/business/Dialog/TransactionDialog/constants.d.ts +0 -34
- package/es/business/Dialog/TransactionDialog/constants.js +0 -33
- package/es/business/Dialog/TransactionDialog/index.d.ts +0 -3
- package/es/business/Dialog/TransactionDialog/index.js +0 -4
- package/es/business/Dialog/TransactionDialog/interface.d.ts +0 -116
- package/es/business/Dialog/TransactionDialog/interface.js +0 -2
- package/es/business/Dialog/TransactionDialog/presets.d.ts +0 -89
- package/es/business/Dialog/TransactionDialog/presets.js +0 -62
- package/es/business/Dialog/TransactionDialog/style/css.js +0 -2
- package/es/business/Dialog/TransactionDialog/style/index.d.ts +0 -1
- package/es/business/Dialog/TransactionDialog/style/index.js +0 -2
- package/es/business/Dialog/VerificationDialog/ResendRow.d.ts +0 -14
- package/es/business/Dialog/VerificationDialog/ResendRow.js +0 -65
- package/es/business/Dialog/VerificationDialog/hooks/index.d.ts +0 -4
- package/es/business/Dialog/VerificationDialog/hooks/index.js +0 -3
- package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.d.ts +0 -50
- package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +0 -138
- package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.d.ts +0 -26
- package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +0 -103
- package/lib/business/Dialog/ResultDialog/ResultDialog.d.ts +0 -3
- package/lib/business/Dialog/ResultDialog/ResultDialog.js +0 -132
- package/lib/business/Dialog/ResultDialog/constants.d.ts +0 -27
- package/lib/business/Dialog/ResultDialog/constants.js +0 -30
- package/lib/business/Dialog/ResultDialog/index.d.ts +0 -3
- package/lib/business/Dialog/ResultDialog/index.js +0 -40
- package/lib/business/Dialog/ResultDialog/interface.d.ts +0 -95
- package/lib/business/Dialog/ResultDialog/presets.d.ts +0 -178
- package/lib/business/Dialog/ResultDialog/presets.js +0 -145
- package/lib/business/Dialog/ResultDialog/style/index.d.ts +0 -1
- package/lib/business/Dialog/TransactionDialog/TransactionDialog.d.ts +0 -3
- package/lib/business/Dialog/TransactionDialog/TransactionDialog.js +0 -180
- package/lib/business/Dialog/TransactionDialog/constants.d.ts +0 -34
- package/lib/business/Dialog/TransactionDialog/constants.js +0 -39
- package/lib/business/Dialog/TransactionDialog/index.d.ts +0 -3
- package/lib/business/Dialog/TransactionDialog/index.js +0 -40
- package/lib/business/Dialog/TransactionDialog/interface.d.ts +0 -116
- package/lib/business/Dialog/TransactionDialog/interface.js +0 -6
- package/lib/business/Dialog/TransactionDialog/presets.d.ts +0 -89
- package/lib/business/Dialog/TransactionDialog/presets.js +0 -68
- package/lib/business/Dialog/TransactionDialog/style/css.js +0 -4
- package/lib/business/Dialog/TransactionDialog/style/index.d.ts +0 -1
- package/lib/business/Dialog/TransactionDialog/style/index.js +0 -4
- package/lib/business/Dialog/VerificationDialog/ResendRow.d.ts +0 -14
- package/lib/business/Dialog/VerificationDialog/ResendRow.js +0 -71
- package/lib/business/Dialog/VerificationDialog/hooks/index.d.ts +0 -4
- package/lib/business/Dialog/VerificationDialog/hooks/index.js +0 -20
- package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.d.ts +0 -50
- package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +0 -145
- package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.d.ts +0 -26
- package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +0 -110
|
@@ -43,6 +43,7 @@ import useSafeState from '@1money/hooks/useSafeState';
|
|
|
43
43
|
import useMemoizedFn from '@1money/hooks/useMemoizedFn';
|
|
44
44
|
import useEventCallback from '@1money/hooks/useEventCallback';
|
|
45
45
|
import { default as classnames, joinCls } from '../../utils/classnames';
|
|
46
|
+
import { FormControlSizeContext } from '../FormLayout/context';
|
|
46
47
|
import { Row } from '../Grid';
|
|
47
48
|
import { useForm } from './core/hooks/useForm';
|
|
48
49
|
import { ProFormStableContext, ProFormStateContext } from './context';
|
|
@@ -328,10 +329,17 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
328
329
|
});
|
|
329
330
|
}, [formInstance, applyPipeline, wrappedHandleSubmit]);
|
|
330
331
|
// ── Sync to formRef prop ──
|
|
332
|
+
// The cleanup clears the ref on unmount: a handle to an unmounted form
|
|
333
|
+
// validates an empty field store and reports fake success, so consumers
|
|
334
|
+
// (and the business-shell relay refs) must observe `undefined` instead.
|
|
331
335
|
useEffect(function () {
|
|
332
|
-
if (formRef)
|
|
333
|
-
|
|
334
|
-
|
|
336
|
+
if (!formRef) return undefined;
|
|
337
|
+
formRef.current = proFormFormInstance;
|
|
338
|
+
return function () {
|
|
339
|
+
if (formRef.current === proFormFormInstance) {
|
|
340
|
+
formRef.current = undefined;
|
|
341
|
+
}
|
|
342
|
+
};
|
|
335
343
|
}, [formRef, proFormFormInstance]);
|
|
336
344
|
// ── request / params auto-load ──
|
|
337
345
|
var requestRef = useLatest(request);
|
|
@@ -485,19 +493,22 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
485
493
|
value: stableValue,
|
|
486
494
|
children: _jsx(ProFormStateContext.Provider, {
|
|
487
495
|
value: store,
|
|
488
|
-
children:
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
496
|
+
children: _jsx(FormControlSizeContext.Provider, {
|
|
497
|
+
value: size,
|
|
498
|
+
children: _jsxs("form", Object.assign({}, rest, {
|
|
499
|
+
ref: formElRef,
|
|
500
|
+
className: formClasses(undefined, joinCls(classes(), className)),
|
|
501
|
+
onSubmit: wrappedHandleSubmit,
|
|
502
|
+
onReset: internals.handleReset,
|
|
503
|
+
children: [_jsx(WrapperComponent, Object.assign({}, wrapperProps, {
|
|
504
|
+
children: children
|
|
505
|
+
})), submitterNode]
|
|
506
|
+
}))
|
|
507
|
+
})
|
|
497
508
|
})
|
|
498
509
|
});
|
|
499
510
|
};
|
|
500
511
|
ProFormBase.displayName = 'ProForm';
|
|
501
512
|
export var ProForm = /*#__PURE__*/memo(ProFormBase);
|
|
502
513
|
export default ProForm;
|
|
503
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fcmVzdCIsInMiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsIkZyYWdtZW50IiwidXNlTGF0ZXN0IiwidXNlU2FmZVN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJSb3ciLCJ1c2VGb3JtIiwiUHJvRm9ybVN0YWJsZUNvbnRleHQiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiU3VibWl0dGVyIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfQ09MX1NQQU4iLCJzdGFibGVTZXJpYWxpemUiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJvbWl0TmlsVmFsdWVzIiwiZm9ybWF0RGF0ZVZhbHVlcyIsInVzZVNoYWxsb3dTdGFibGUiLCJ1c2VVcmxTeW5jIiwicmVzb2x2ZVZhbHVlIiwic2V0TmVzdGVkVmFsdWUiLCJGb3JtVmFsaWRhdGlvbkVycm9yIiwiY2xhc3NlcyIsImZvcm1DbGFzc2VzIiwiREVGQVVMVF9DT0xfUFJPUFMiLCJzcGFuIiwiUHJvRm9ybUJhc2UiLCJwcm9wcyIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwic3VibWl0dGVyIiwiX3Byb3BzJG1vZGUiLCJtb2RlIiwiX3Byb3BzJGdyaWQiLCJncmlkIiwiY29sUHJvcHMiLCJyb3dQcm9wcyIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsInJlcXVlc3QiLCJwYXJhbXMiLCJpbml0aWFsVmFsdWVzIiwib25GaW5pc2giLCJvbkZpbmlzaEZhaWxlZCIsIm9uVmFsdWVzQ2hhbmdlIiwib25SZXNldCIsIm9uSW5pdCIsIm9uTG9hZGluZ0NoYW5nZSIsInN5bmNUb1VybCIsIl9wcm9wcyRzeW5jVG9VcmxBc0ltcCIsInN5bmNUb1VybEFzSW1wb3J0YW50IiwiZXh0cmFVcmxQYXJhbXMiLCJfcHJvcHMkYXV0b0ZvY3VzRmlyc3QiLCJhdXRvRm9jdXNGaXJzdElucHV0IiwiZm9ybUNvbXBvbmVudFR5cGUiLCJmb3JtUmVmIiwiX3Byb3BzJG9taXROaWwiLCJvbWl0TmlsIiwiX3Byb3BzJGRhdGVGb3JtYXR0ZXIiLCJkYXRlRm9ybWF0dGVyIiwiZmllbGRQcm9wcyIsImZvcm1JdGVtUHJvcHMiLCJsYXlvdXQiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkbGFiZWxBbGlnbiIsImxhYmVsQWxpZ24iLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9wcm9wcyR2YWxpZGF0ZVRyaWdnZSIsInZhbGlkYXRlVHJpZ2dlciIsIl9wcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJyZXN0IiwiX3VzZVNhZmVTdGF0ZSIsIl91c2VTYWZlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJyZXF1ZXN0TG9hZGluZyIsInNldFJlcXVlc3RMb2FkaW5nIiwiX3VzZVNhZmVTdGF0ZTMiLCJfdXNlU2FmZVN0YXRlNCIsInN1Ym1pdHRpbmciLCJzZXRTdWJtaXR0aW5nIiwic3VibWl0dGluZ1JlZiIsImlzTG9hZGluZyIsInRyYW5zZm9ybUtleVJlZiIsInZhbHVlVHlwZVJlZiIsInJlZ2lzdGVyVHJhbnNmb3JtIiwibmFtZSIsImZuIiwiY3VycmVudCIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bmRlZmluZWQiLCJyZWdpc3RlclZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInVucmVnaXN0ZXJWYWx1ZVR5cGUiLCJvbkZpbmlzaFJlZiIsIm9uSW5pdFJlZiIsIm9uTG9hZGluZ0NoYW5nZVJlZiIsImFwcGx5UGlwZWxpbmUiLCJ2YWx1ZXMiLCJmb3JtYXRWYWx1ZXNLZWVwTmlsIiwiX3VzZVVybFN5bmMiLCJ1cmxJbml0aWFsVmFsdWVzIiwib25VcmxTeW5jRmluaXNoIiwib25VcmxTeW5jUmVzZXQiLCJtZXJnZWRJbml0aWFsVmFsdWVzUmVmIiwiYXNzaWduIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsInJlc2V0RXBvY2hSZWYiLCJmaXJlRm9ybVJlc2V0IiwiZmluYWxWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJnZXRGaWVsZHNWYWx1ZSIsIl91c2VGb3JtIiwiaW50ZXJuYWxzIiwic3RvcmUiLCJ3cmFwcGVkSGFuZGxlU3VibWl0IiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX2EiLCJfYiIsIl9jIiwiZXBvY2giLCJ2YWxpZGF0ZWRWYWx1ZXMiLCJwaXBlbGluZWQiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJwcmV2ZW50RGVmYXVsdCIsImFicnVwdCIsInZhbGlkYXRlRmllbGRzIiwic2VudCIsImVycm9ycyIsImNvbnNvbGUiLCJlcnJvciIsImZpbmlzaCIsInN0b3AiLCJwcm9Gb3JtRm9ybUluc3RhbmNlIiwiZ2V0RmllbGRzRm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdFZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdCIsImZvcm1hdHRlZCIsInZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWUiLCJfY2FsbGVlMiIsInZhbHMiLCJfdDIiLCJfY29udGV4dDIiLCJzdWNjZXNzIiwic3VibWl0Rm9ybSIsInJlcXVlc3RSZWYiLCJoYXNSZXF1ZXN0Iiwic2VyaWFsaXplZFBhcmFtcyIsImluaXRGaXJlZFJlZiIsImZpcmVJbml0Iiwic3RhbGUiLCJmZXRjaERhdGEiLCJfY2FsbGVlMyIsInJlcXVlc3RGbiIsImRhdGEiLCJfdDMiLCJfY29udGV4dDMiLCJfdHlwZW9mIiwic2V0RmllbGRzVmFsdWUiLCJmb3JtRWxSZWYiLCJmaXJzdElucHV0IiwicXVlcnlTZWxlY3RvciIsImZvY3VzIiwic3RhYmxlRmllbGRQcm9wcyIsInN0YWJsZUZvcm1JdGVtUHJvcHMiLCJzdGFibGVDb2xQcm9wcyIsInN0YWJsZUxheW91dCIsInN0YWJsZVZhbHVlIiwic2V0RmllbGRWYWx1ZSIsInNldEZpZWxkRXJyb3IiLCJzZXRGaWVsZFdhcm5pbmciLCJ2YWxpZGF0ZUZpZWxkQXN5bmMiLCJyZWdpc3RlckZpZWxkIiwidW5yZWdpc3RlckZpZWxkIiwicmV0YWluRmllbGQiLCJyZWxlYXNlRmllbGQiLCJXcmFwcGVyQ29tcG9uZW50Iiwid3JhcHBlclByb3BzIiwiaGFuZGxlU3VibWl0dGVyUmVzZXQiLCJzdWJtaXR0ZXJOb2RlIiwiUHJvdmlkZXIiLCJyZWYiLCJvblN1Ym1pdCIsImhhbmRsZVJlc2V0IiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFB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QVc7SUFBQWxKLFFBQUEsRUFHL0N0QyxJQUFBLENBQUNtQixtQkFBbUIsQ0FBQ2tMLFFBQVEsRUFBQTtNQUFDaE8sS0FBSyxFQUFFeUosS0FBSztNQUFBeEYsUUFBQSxFQUN4Q3BDLEtBQUEsQ0FBQSxNQUFBLEVBQUFaLE1BQUEsQ0FBQStILE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTWxDLElBQUksRUFBQTtRQUNSbUgsR0FBRyxFQUFFdEIsU0FBUztRQUNkekksU0FBUyxFQUFFTixXQUFXLENBQUNxRSxTQUFTLEVBQUV2RixPQUFPLENBQUNpQixPQUFPLENBQUEsQ0FBRSxFQUFFTyxTQUFTLENBQUMsQ0FBQztRQUNoRWdLLFFBQVEsRUFBRXhFLG1CQUFtQjtRQUM3QnhFLE9BQU8sRUFBRXNFLFNBQVMsQ0FBQzJFLFdBQVc7UUFBQWxLLFFBQUEsRUFBQSxDQUU5QnRDLElBQUEsQ0FBQ2lNLGdCQUFnQixFQUFBM00sTUFBQSxDQUFBK0gsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLNkUsWUFBWSxFQUFBO1VBQUE1SixRQUFBLEVBQUdBO1FBQVEsQ0FBQSxDQUFBLENBQW9CLEVBQ2hFOEosYUFBYTtNQUFBLENBQUEsQ0FBQTtJQUNULENBQUE7RUFDc0IsQ0FBQSxDQUNEO0FBRXBDLENBQUM7QUFFRGhLLFdBQVcsQ0FBQ3FLLFdBQVcsR0FBRyxTQUFTO0FBYW5DLE9BQU8sSUFBTUMsT0FBTyxnQkFBR3RNLElBQUksQ0FBQ2dDLFdBQVcsQ0FBNEI7QUFFbkUsZUFBZXNLLE9BQU8iLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IHVzZUZvcm0gfSBmcm9tICcuL2NvcmUvaG9va3MvdXNlRm9ybSc7XG5pbXBvcnQgeyBQcm9Gb3JtU3RhYmxlQ29udGV4dCwgUHJvRm9ybVN0YXRlQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBTdWJtaXR0ZXIgfSBmcm9tICcuL1N1Ym1pdHRlcic7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgc3RhYmxlU2VyaWFsaXplLCB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMsIG9taXROaWxWYWx1ZXMsIGZvcm1hdERhdGVWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZVNoYWxsb3dTdGFibGUgfSBmcm9tICcuL2NvcmUvZm9ybVN0b3JlJztcbmltcG9ydCB7IHVzZVVybFN5bmMgfSBmcm9tICcuL2hvb2tzL3VzZVVybFN5bmMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vY29yZS92YWxpZGF0aW9uRXJyb3InO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoQ1NTX1BSRUZJWCk7XG5jb25zdCBmb3JtQ2xhc3NlcyA9IGNsYXNzbmFtZXMoJ2Zvcm0nKTtcbmNvbnN0IERFRkFVTFRfQ09MX1BST1BTID0geyBzcGFuOiBERUZBVUxUX0NPTF9TUEFOIH07XG5jb25zdCBQcm9Gb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgc3VibWl0dGVyLCBtb2RlID0gJ2VkaXQnLCBncmlkID0gZmFsc2UsIGNvbFByb3BzLCByb3dQcm9wcywgbG9hZGluZyA9IGZhbHNlLCByZXF1ZXN0LCBwYXJhbXMsIGluaXRpYWxWYWx1ZXMsIG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIG9uSW5pdCwgb25Mb2FkaW5nQ2hhbmdlLCBzeW5jVG9VcmwsIHN5bmNUb1VybEFzSW1wb3J0YW50ID0gZmFsc2UsIGV4dHJhVXJsUGFyYW1zLCBhdXRvRm9jdXNGaXJzdElucHV0ID0gZmFsc2UsIGZvcm1Db21wb25lbnRUeXBlLCBmb3JtUmVmLCBvbWl0TmlsID0gdHJ1ZSwgZGF0ZUZvcm1hdHRlciA9ICdzdHJpbmcnLCBmaWVsZFByb3BzLCBmb3JtSXRlbVByb3BzLCBsYXlvdXQsIHNpemUgPSAnbGFyZ2UnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCBwcmVmaXhDbHM6IF9wcmVmaXhDbHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiLCBcInN1Ym1pdHRlclwiLCBcIm1vZGVcIiwgXCJncmlkXCIsIFwiY29sUHJvcHNcIiwgXCJyb3dQcm9wc1wiLCBcImxvYWRpbmdcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwiaW5pdGlhbFZhbHVlc1wiLCBcIm9uRmluaXNoXCIsIFwib25GaW5pc2hGYWlsZWRcIiwgXCJvblZhbHVlc0NoYW5nZVwiLCBcIm9uUmVzZXRcIiwgXCJvbkluaXRcIiwgXCJvbkxvYWRpbmdDaGFuZ2VcIiwgXCJzeW5jVG9VcmxcIiwgXCJzeW5jVG9VcmxBc0ltcG9ydGFudFwiLCBcImV4dHJhVXJsUGFyYW1zXCIsIFwiYXV0b0ZvY3VzRmlyc3RJbnB1dFwiLCBcImZvcm1Db21wb25lbnRUeXBlXCIsIFwiZm9ybVJlZlwiLCBcIm9taXROaWxcIiwgXCJkYXRlRm9ybWF0dGVyXCIsIFwiZmllbGRQcm9wc1wiLCBcImZvcm1JdGVtUHJvcHNcIiwgXCJsYXlvdXRcIiwgXCJzaXplXCIsIFwibGFiZWxBbGlnblwiLCBcImRpc2FibGVkXCIsIFwidmFsaWRhdGVUcmlnZ2VyXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCBbcmVxdWVzdExvYWRpbmcsIHNldFJlcXVlc3RMb2FkaW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgLy8gdXNlU2FmZVN0YXRlIGZvciB0aGUgUkVOREVSRUQgc3VibWl0dGluZyBzdGF0ZSAoaXRzIHNldHRlciBpcyB1bm1vdW50LXNhZmVcbiAgICAvLyDigJQgdGhlIGZpbmFsbHkgYmVsb3cgcnVucyBhZnRlciBhd2FpdGluZyBvbkZpbmlzaCwgd2hlbiB0aGUgdHlwaWNhbFxuICAgIC8vIHN1Ym1pdC10aGVuLWNsb3NlIGZsb3cgbWF5IGFscmVhZHkgaGF2ZSB1bm1vdW50ZWQgdGhlIGZvcm0gb24gUmVhY3RcbiAgICAvLyAxNi8xNykuIFRoZSByZWYgaXMgdGhlIHN5bmNocm9ub3VzIHJlLWVudHJ5IGd1YXJkOyBAMW1vbmV5L2hvb2tzIGhhcyBub1xuICAgIC8vIHNpbmdsZSBob29rIHRoYXQgaXMgYm90aCB1bm1vdW50LXNhZmUgYW5kIHN5bmNocm9ub3VzbHkgcmVhZGFibGUuXG4gICAgY29uc3QgW3N1Ym1pdHRpbmcsIHNldFN1Ym1pdHRpbmddID0gdXNlU2FmZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzdWJtaXR0aW5nUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSBsb2FkaW5nIHx8IHJlcXVlc3RMb2FkaW5nIHx8IHN1Ym1pdHRpbmc7XG4gICAgLy8g4pSA4pSAIFRyYW5zZm9ybSAvIHZhbHVlVHlwZSByZWdpc3RyaWVzIOKUgOKUgFxuICAgIGNvbnN0IHRyYW5zZm9ybUtleVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgdmFsdWVUeXBlUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCByZWdpc3RlclRyYW5zZm9ybSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZuKSA9PiB7XG4gICAgICAgIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdID0gZm47XG4gICAgfSk7XG4gICAgLy8gVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBndWFyZHMgcmVtb3ZhbDogZGVsZXRlIG9ubHkgd2hlbiB0aGUgcmVnaXN0cnlcbiAgICAvLyBzdGlsbCBob2xkcyB0aGUgQ0FMTEVSJ1MgcmVnaXN0cmF0aW9uLCBzbyBhbiB1bm1vdW50aW5nIGluc3RhbmNlIGNhbiBuZXZlclxuICAgIC8vIHdpcGUgYSBzYW1lLW5hbWUgc2libGluZydzIG9yIHN1Y2Nlc3NvcidzIGVudHJ5LlxuICAgIGNvbnN0IHVucmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICBpZiAoZm4gPT09IHVuZGVmaW5lZCB8fCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9PT0gZm4pIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID0gdmFsdWVUeXBlO1xuICAgIH0pO1xuICAgIGNvbnN0IHVucmVnaXN0ZXJWYWx1ZVR5cGUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZVR5cGUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlVHlwZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID09PSB2YWx1ZVR5cGUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uRmluaXNoUmVmID0gdXNlTGF0ZXN0KG9uRmluaXNoKTtcbiAgICBjb25zdCBvbkluaXRSZWYgPSB1c2VMYXRlc3Qob25Jbml0KTtcbiAgICBjb25zdCBvbkxvYWRpbmdDaGFuZ2VSZWYgPSB1c2VMYXRlc3Qob25Mb2FkaW5nQ2hhbmdlKTtcbiAgICAvLyBTdWJtaXQgcGlwZWxpbmU6IGRhdGVzIOKGkiBmaWVsZCB0cmFuc2Zvcm1zIOKGkiBvbWl0TmlsXG4gICAgY29uc3QgYXBwbHlQaXBlbGluZSA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmVzdWx0ID0gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHJlc3VsdCwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAob21pdE5pbClcbiAgICAgICAgICAgIHJlc3VsdCA9IG9taXROaWxWYWx1ZXMocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICAvLyBTYW1lIHBpcGVsaW5lIFdJVEhPVVQgb21pdE5pbCDigJQgc2luZ2xlLWZpZWxkIHJlYWRlcnMgbXVzdCBub3Qgc2VlIGEgZmllbGRcbiAgICAvLyB2YW5pc2gganVzdCBiZWNhdXNlIGl0cyBjdXJyZW50IHZhbHVlIGlzIGVtcHR5LlxuICAgIGNvbnN0IGZvcm1hdFZhbHVlc0tlZXBOaWwgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgVVJMIHN5bmMgKHN5bmNUb1VybCAvIHN5bmNUb1VybEFzSW1wb3J0YW50IC8gZXh0cmFVcmxQYXJhbXMpIOKUgOKUgFxuICAgIGNvbnN0IHsgdXJsSW5pdGlhbFZhbHVlcywgb25VcmxTeW5jRmluaXNoLCBvblVybFN5bmNSZXNldCB9ID0gdXNlVXJsU3luYyh7XG4gICAgICAgIHN5bmNUb1VybCxcbiAgICAgICAgZXh0cmFVcmxQYXJhbXMsXG4gICAgfSk7XG4gICAgLy8gaW5pdGlhbFZhbHVlcyBpcyBNT1VOVC1PTkxZIChkb2N1bWVudGVkIGNvbnRyYWN0OyB1c2VGb3JtQ29yZSByZS1mcmVlemVzXG4gICAgLy8gYXMgYSBzYWZldHkgbmV0KSDigJQgY29tcHV0ZSB0aGUgVVJMIG1lcmdlIG9uY2Ugc28gdGhlIGZyZWV6ZSBpcyB2aXNpYmxlXG4gICAgLy8gd2hlcmUgdGhlIHByb3BzIGVudGVyLCBpbnN0ZWFkIG9mIHJlY29tcHV0aW5nIGRlYWQgc3ByZWFkcyBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPSBzeW5jVG9VcmxcbiAgICAgICAgICAgID8gKHN5bmNUb1VybEFzSW1wb3J0YW50XG4gICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXMpLCB1cmxJbml0aWFsVmFsdWVzKSA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdXJsSW5pdGlhbFZhbHVlcyksIGluaXRpYWxWYWx1ZXMpKVxuICAgICAgICAgICAgOiAoaW5pdGlhbFZhbHVlcyAhPT0gbnVsbCAmJiBpbml0aWFsVmFsdWVzICE9PSB2b2lkIDAgPyBpbml0aWFsVmFsdWVzIDoge30pO1xuICAgIH1cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50O1xuICAgIC8vIEJ1bXBlZCBvbiBldmVyeSByZXNldCDigJQgYW4gaW4tZmxpZ2h0IHN1Ym1pdCBjYXB0dXJlcyBpdCBhbmQgYWJvcnRzIHdoZW5cbiAgICAvLyBpdCBjaGFuZ2VkIHVuZGVybmVhdGggKHRoZSB1c2VyIGRpc2NhcmRlZCB0aGUgc3VibWlzc2lvbidzIHZhbHVlcykuXG4gICAgY29uc3QgcmVzZXRFcG9jaFJlZiA9IHVzZVJlZigwKTtcbiAgICAvLyBSZXNldCBjaGFpbjogZm9ybS1sZXZlbCBvblJlc2V0IHJlY2VpdmVzIHRoZSAocG9zdC1yZXNldCkgZm9ybWF0dGVkXG4gICAgLy8gdmFsdWVzLCB0aGVuIHRoZSBmb3JtJ3Mgb3duIFVSTCBwYXJhbXMgYXJlIGNsZWFyZWQuIHVzZU1lbW9pemVkRm4gZGVmZXJzXG4gICAgLy8gZXhlY3V0aW9uIHRvIGV2ZW50IHRpbWUsIHdoZW4gYGZvcm1JbnN0YW5jZWAgKGNyZWF0ZWQganVzdCBiZWxvdykgZXhpc3RzLlxuICAgIGNvbnN0IGZpcmVGb3JtUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgcmVzZXRFcG9jaFJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIGNvbnN0IGZpbmFsVmFsdWVzID0gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldChmaW5hbFZhbHVlcyk7XG4gICAgICAgIG9uVXJsU3luY1Jlc2V0KCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEZvcm0gZW5naW5lICh1c2VGb3JtIHdpdGggYXN5bmMgdmFsaWRhdGlvbikg4pSA4pSAXG4gICAgY29uc3QgeyBmb3JtSW5zdGFuY2UsIGludGVybmFscywgc3RvcmUgfSA9IHVzZUZvcm0oe1xuICAgICAgICBpbml0aWFsVmFsdWVzOiBtZXJnZWRJbml0aWFsVmFsdWVzLFxuICAgICAgICBvblZhbHVlc0NoYW5nZSxcbiAgICAgICAgb25SZXNldDogZmlyZUZvcm1SZXNldCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICB9KTtcbiAgICAvLyDilIDilIAgQXN5bmMgc3VibWl0IHdpdGggdHJhbnNmb3JtIHBpcGVsaW5lIOKUgOKUgFxuICAgIC8vIFJlLWVudHJ5IGd1YXJkOiBhIHNlY29uZCBzdWJtaXQgd2hpbGUgb25lIGlzIGluIGZsaWdodCBpcyBpZ25vcmVkICh0aGVcbiAgICAvLyByZWYgY2F0Y2hlcyB0d28gY2FsbHMgaW4gdGhlIHNhbWUgdGljaykuXG4gICAgY29uc3Qgd3JhcHBlZEhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzdWJtaXR0aW5nUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHNldFN1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgICAgIChfYSA9IG9uTG9hZGluZ0NoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkxvYWRpbmdDaGFuZ2VSZWYsIHRydWUpO1xuICAgICAgICBjb25zdCBlcG9jaCA9IHJlc2V0RXBvY2hSZWYuY3VycmVudDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZFZhbHVlcyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgKGFzeW5jKSB2YWxpZGF0aW9uIGRpc2NhcmRzIHRoaXMgc3VibWlzc2lvbiBlbnRpcmVseTpcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlLXJlYWRzIHRoZSBsaXZlIHN0b3JlLCBzbyBwcm9jZWVkaW5nIHdvdWxkIGhhbmRcbiAgICAgICAgICAgIC8vIG9uRmluaXNoIHRoZSBQT1NULXJlc2V0IHZhbHVlcy5cbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHBpcGVsaW5lZCA9IGFwcGx5UGlwZWxpbmUodmFsaWRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkICgoX2IgPSBvbkZpbmlzaFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChvbkZpbmlzaFJlZiwgcGlwZWxpbmVkKSk7XG4gICAgICAgICAgICAvLyBTeW5jIHRoZSBVUkwgdW5sZXNzIG9uRmluaXNoIGV4cGxpY2l0bHkgcmV0dXJuZWQgZmFsc2UgKGEgdGhyb3cgYWJvdmVcbiAgICAgICAgICAgIC8vIGFsc28gc2tpcHMg4oCUIGEgZmFpbGVkIHN1Ym1pdCBtdXN0IG5vdCBwb2xsdXRlIHRoZSBVUkwpLCBhbmQgb25seSBpZlxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgZGlkIE5PVCByZXNldCB0aGUgZm9ybSB3aGlsZSB0aGUgc3VibWl0IHdhcyBpbiBmbGlnaHQuXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSAmJiBlcG9jaCA9PT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgb25VcmxTeW5jRmluaXNoKHBpcGVsaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgdmFsaWRhdGlvbiBhbHNvIGludmFsaWRhdGVzIHRoZSBGQUlMVVJFIGNhbGxiYWNrIOKAlFxuICAgICAgICAgICAgLy8gdGhlIGVycm9yIGNhcnJpZXMgcG9zdC1yZXNldCB2YWx1ZXMgZm9yIGEgZGlzY2FyZGVkIHN1Ym1pc3Npb24uXG4gICAgICAgICAgICAvLyAoRmllbGQgZXJyb3JzIGZyb20gdGhlIGRlYWQgdmFsaWRhdGlvbiBhcmUgc3VwcHJlc3NlZCBieSB0aGVcbiAgICAgICAgICAgIC8vIHBlci1maWVsZCB2YWxpZGF0aW9uIGVwb2NoczogcmVzZXRGaWVsZHMgaW52YWxpZGF0ZXMgaW4tZmxpZ2h0IHJ1bnMuKVxuICAgICAgICAgICAgaWYgKGVwb2NoICE9PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gT25seSBhIFZBTElEQVRJT04gZmFpbHVyZSByb3V0ZXMgdG8gb25GaW5pc2hGYWlsZWQuIEFuIGV4Y2VwdGlvbiBvdXRcbiAgICAgICAgICAgIC8vIG9mIHRoZSBjb25zdW1lcidzIG93biBvbkZpbmlzaCBpcyBub3QgYSB2YWxpZGF0aW9uIHJlc3VsdDogdGhlIHN1Ym1pdFxuICAgICAgICAgICAgLy8gZmFpbHMgKFVSTCB1bnRvdWNoZWQsIG92ZXJsYXkgc3RheXMgb3BlbikgYW5kIHRoZSBlcnJvciBpcyBzdXJmYWNlZFxuICAgICAgICAgICAgLy8gb24gdGhlIGNvbnNvbGUgaW5zdGVhZCBvZiBiZWluZyBtaXNyZXBvcnRlZCB3aXRoIGFuIGVtcHR5IHBheWxvYWQuXG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRm9ybVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlczogZXJyLnZhbHVlcywgZXJyb3JzOiBlcnIuZXJyb3JzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIG9uRmluaXNoIHRocmV3IGR1cmluZyBzdWJtaXQ6JywgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgLy8g4pSA4pSAIFByb0Zvcm0gaW5zdGFuY2U6IHN1cGVyc2V0IG9mIEZvcm1JbnN0YW5jZSDilIDilIBcbiAgICBjb25zdCBwcm9Gb3JtRm9ybUluc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmb3JtSW5zdGFuY2UpLCB7IGdldEZpZWxkc0Zvcm1hdFZhbHVlOiAoKSA9PiBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZTogKChuYW1lKSA9PiByZXNvbHZlVmFsdWUoZm9ybWF0VmFsdWVzS2VlcE5pbChmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIG5hbWUpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdDogKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICAgICAgICAvLyBBIG5lc3RlZCBvYmplY3QgY2FycnlpbmcgT05MWSB0aGUgcmVxdWVzdGVkIGxlYWYg4oCUIG5vdCB0aGUgd2hvbGVcbiAgICAgICAgICAgIC8vIHRvcC1sZXZlbCBzdWJ0cmVlIHRoZSBwYXRoIGhhcHBlbnMgdG8gbGl2ZSBpbi5cbiAgICAgICAgICAgIHJldHVybiBzZXROZXN0ZWRWYWx1ZSh7fSwgbmFtZSwgcmVzb2x2ZVZhbHVlKGZvcm1hdHRlZCwgbmFtZSkpO1xuICAgICAgICB9LCB2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlOiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFscyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlczogYXBwbHlQaXBlbGluZSh2YWxzKSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlamVjdHMgd2l0aCBhbiBFcnJvciBjYXJyeWluZyB0aGUgZmllbGQgZXJyb3JzIG1hcFxuICAgICAgICAgICAgICAgIC8vIChzYW1lIHNoYXBlIHdyYXBwZWRIYW5kbGVTdWJtaXQgY29uc3VtZXMgYWJvdmUpLlxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzIH0gPSBlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDoge30gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksIHN1Ym1pdEZvcm06IHdyYXBwZWRIYW5kbGVTdWJtaXQgfSkpLCBbZm9ybUluc3RhbmNlLCBhcHBseVBpcGVsaW5lLCB3cmFwcGVkSGFuZGxlU3VibWl0XSk7XG4gICAgLy8g4pSA4pSAIFN5bmMgdG8gZm9ybVJlZiBwcm9wIOKUgOKUgFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChmb3JtUmVmKSB7XG4gICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSBwcm9Gb3JtRm9ybUluc3RhbmNlO1xuICAgICAgICB9XG4gICAgfSwgW2Zvcm1SZWYsIHByb0Zvcm1Gb3JtSW5zdGFuY2VdKTtcbiAgICAvLyDilIDilIAgcmVxdWVzdCAvIHBhcmFtcyBhdXRvLWxvYWQg4pSA4pSAXG4gICAgY29uc3QgcmVxdWVzdFJlZiA9IHVzZUxhdGVzdChyZXF1ZXN0KTtcbiAgICBjb25zdCBoYXNSZXF1ZXN0ID0gISFyZXF1ZXN0O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRQYXJhbXMgPSB1c2VNZW1vKCgpID0+IHN0YWJsZVNlcmlhbGl6ZShwYXJhbXMpLCBbcGFyYW1zXSk7XG4gICAgLy8gb25Jbml0IGZpcmVzIGV4YWN0bHkgb25jZTogYWZ0ZXIgdGhlIEZJUlNUIHJlcXVlc3QgcmVzb2x2ZXMgd2hlbiBhXG4gICAgLy8gcmVxdWVzdCBpcyBjb25maWd1cmVkLCBvdGhlcndpc2UgcmlnaHQgYWZ0ZXIgbW91bnQuXG4gICAgY29uc3QgaW5pdEZpcmVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBmaXJlSW5pdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbml0RmlyZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaW5pdEZpcmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAoX2EgPSBvbkluaXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Jbml0UmVmLCBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgcHJvRm9ybUZvcm1JbnN0YW5jZSk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gU3RhbGVuZXNzIGd1YXJkOiBpZiBwYXJhbXMgY2hhbmdlIGFnYWluIGJlZm9yZSB0aGlzIGZldGNoIHJlc29sdmVzLCB0aGVcbiAgICAgICAgLy8gY2xlYW51cCBtYXJrcyBpdCBzdGFsZSBzbyB0aGUgbGF0ZSByZXNwb25zZSBjYW4ndCBvdmVyd3JpdGUgdGhlIHZhbHVlc1xuICAgICAgICAvLyBhIG5ld2VyIHJlcXVlc3QgYWxyZWFkeSAob3Igd2lsbCkgc2V0LlxuICAgICAgICBsZXQgc3RhbGUgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmV0Y2hEYXRhID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0Rm4gPSByZXF1ZXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoIXJlcXVlc3RGbilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlcXVlc3RGbihwYXJhbXMpO1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUgJiYgZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybUluc3RhbmNlLnNldEZpZWxkc1ZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBBIGZhaWxlZCByZXF1ZXN0IG11c3Qgbm90IGVzY2FwZSBhcyBhbiB1bmhhbmRsZWQgcmVqZWN0aW9uIOKAlCB0aGVcbiAgICAgICAgICAgICAgICAvLyBmb3JtIGtlZXBzIGl0cyBpbml0aWFsVmFsdWVzIGFuZCB0aGUgZmFpbHVyZSBpcyBzdXJmYWNlZCBvbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlIChtaXJyb3JzIHRoZSBmaWVsZC1sZXZlbCB1c2VGaWVsZFJlcXVlc3QgaGFuZGxpbmcpLlxuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIHJlcXVlc3QgZmFpbGVkOicsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgYSBOT04tc3VwZXJzZWRlZCBzZXR0bGUgaW5pdGlhbGl6ZXMgdGhlIGZvcm06IGEgc3RhbGVcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWVzdCdzIGRhdGEgd2FzIGRpc2NhcmRlZCwgc28gaXRzIHZhbHVlcyBtdXN0IG5vdCBiZSByZXBvcnRlZC5cbiAgICAgICAgICAgICAgICAgICAgZmlyZUluaXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVxdWVzdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBmZXRjaERhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHN0YWxlID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gUmUtZmV0Y2ggd2hlbiBwYXJhbXMgY2hhbmdlIGJ5IFZBTFVFIChkZXBlbmRpbmcgb24gdGhlIHJhdyBgcGFyYW1zYFxuICAgICAgICAvLyByZWZlcmVuY2Ugd291bGQgcmUtcnVuIG9uIGV2ZXJ5IHJlbmRlciBmb3IgaW5saW5lIG9iamVjdCBsaXRlcmFscyBhbmQsXG4gICAgICAgIC8vIGNvbWJpbmVkIHdpdGggdGhlIGxvYWRpbmcgc2V0U3RhdGUsIGxvb3AgZm9yZXZlcikg4oCUIGFuZCB3aGVuIGByZXF1ZXN0YFxuICAgICAgICAvLyBmaXJzdCBiZWNvbWVzIGRlZmluZWQgKGUuZy4gYmVoaW5kIGEgZmVhdHVyZSBmbGFnKSwgbWlycm9yaW5nXG4gICAgICAgIC8vIHVzZUZpZWxkUmVxdWVzdC4gZmlyZUluaXQncyBvbmNlLWd1YXJkIGtlZXBzIG9uSW5pdCBmcm9tIHJlLWZpcmluZy5cbiAgICB9LCBbc2VyaWFsaXplZFBhcmFtcywgaGFzUmVxdWVzdF0pO1xuICAgIC8vIOKUgOKUgCBhdXRvRm9jdXNGaXJzdElucHV0IOKUgOKUgFxuICAgIGNvbnN0IGZvcm1FbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghYXV0b0ZvY3VzRmlyc3RJbnB1dCB8fCBtb2RlID09PSAncmVhZCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGZpcnN0SW5wdXQgPSAoX2EgPSBmb3JtRWxSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Om5vdChbdHlwZT1cImhpZGRlblwiXSk6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknKTtcbiAgICAgICAgZmlyc3RJbnB1dCA9PT0gbnVsbCB8fCBmaXJzdElucHV0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaXJzdElucHV0LmZvY3VzKCk7XG4gICAgICAgIC8vIE1vdW50LW9ubHkgYnkgZGVzaWduLlxuICAgIH0sIFtdKTtcbiAgICAvLyDilIDilIAgU3BsaXQgY29udGV4dCDilIDilIBcbiAgICAvLyBGb3JtLWxldmVsIHByb3AgYmFncyBhcmUgb2Z0ZW4gaW5saW5lIGxpdGVyYWxzOiBrZWVwIHRoZWlyIGlkZW50aXR5XG4gICAgLy8gc3RhYmxlIHdoaWxlIHNoYWxsb3ctZXF1YWwgc28gdGhlIHN0YWJsZSBzbGljZSBkb2Vzbid0IGNodXJuIHBlciByZW5kZXIuXG4gICAgY29uc3Qgc3RhYmxlRmllbGRQcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZmllbGRQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlRm9ybUl0ZW1Qcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZm9ybUl0ZW1Qcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlQ29sUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGNvbFByb3BzKTtcbiAgICBjb25zdCBzdGFibGVMYXlvdXQgPSB1c2VTaGFsbG93U3RhYmxlKGxheW91dCk7XG4gICAgLy8gU3RhYmxlIHNsaWNlOiBjb25maWd1cmF0aW9uICsgaWRlbnRpdHktc3RhYmxlIGRpc3BhdGNoZXJzL2luc3RhbmNlLlxuICAgIC8vIENoYW5nZXMgb25seSB3aGVuIGZvcm0tbGV2ZWwgcHJvcHMgY2hhbmdlIOKAlCBOT1Qgb24ga2V5c3Ryb2tlcywgc29cbiAgICAvLyBzdWJzY3JpYmVycyBsaWtlIFN1Ym1pdHRlciBhbmQgdGhlIGZpZWxkIGZhY3RvcmllcyBza2lwIHRob3NlIHJlbmRlcnMuXG4gICAgY29uc3Qgc3RhYmxlVmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIGZvcm1JbnN0YW5jZTogcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3I6IGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZFdhcm5pbmc6IGludGVybmFscy5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIHZhbGlkYXRlRmllbGRBc3luYzogaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgcmV0YWluRmllbGQ6IGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgcmVsZWFzZUZpZWxkOiBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICAvLyBTdWJtaXR0aW5nL2xvYWRpbmcgZG9lcyBOT1QgZGlzYWJsZSBmaWVsZHMg4oCUIG9ubHkgdGhlXG4gICAgICAgIC8vIGV4cGxpY2l0IGBkaXNhYmxlZGAgcHJvcCBkb2VzLiBLZWVwaW5nIGlzTG9hZGluZyBvdXQgb2YgdGhpcyBzbGljZVxuICAgICAgICAvLyBtZWFucyBhIHN1Ym1pdCBjeWNsZSBubyBsb25nZXIgcmUtcmVuZGVycyBldmVyeSBmaWVsZCBzaGVsbC5cbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgLy8gUHJvRm9ybSBzcGVjaWZpY3NcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgY29sUHJvcHM6IHN0YWJsZUNvbFByb3BzICE9PSBudWxsICYmIHN0YWJsZUNvbFByb3BzICE9PSB2b2lkIDAgPyBzdGFibGVDb2xQcm9wcyA6IERFRkFVTFRfQ09MX1BST1BTLFxuICAgICAgICByZWdpc3RlclRyYW5zZm9ybTogcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm06IHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBmaWVsZFByb3BzOiBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBmb3JtSXRlbVByb3BzOiBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBsYXlvdXQ6IHN0YWJsZUxheW91dCxcbiAgICAgICAgZm9ybUNvbXBvbmVudFR5cGUsXG4gICAgfSksIFtcbiAgICAgICAgcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICBpbnRlcm5hbHMudmFsaWRhdGVGaWVsZEFzeW5jLFxuICAgICAgICBpbnRlcm5hbHMucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJldGFpbkZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgICAgICBtb2RlLFxuICAgICAgICBncmlkLFxuICAgICAgICBzdGFibGVDb2xQcm9wcyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIF0pO1xuICAgIGNvbnN0IFdyYXBwZXJDb21wb25lbnQgPSBncmlkID8gUm93IDogRnJhZ21lbnQ7XG4gICAgY29uc3Qgd3JhcHBlclByb3BzID0gZ3JpZCA/IE9iamVjdC5hc3NpZ24oe30sIHJvd1Byb3BzKSA6IHt9O1xuICAgIC8vIFJlc2V0IGNhbGxiYWNrIGNoYWluOiB0aGUgU3VibWl0dGVyIHJlc2V0cyB0aGUgdmFsdWVzIGZpcnN0LCB0aGVuIHRoZVxuICAgIC8vIHN1Ym1pdHRlci1sZXZlbCBvblJlc2V0LCB0aGVuIHRoZSBmb3JtLWxldmVsIG9uUmVzZXQgKHdpdGggZmluYWxWYWx1ZXMpXG4gICAgLy8gYW5kIHRoZSBVUkwgY2xlYW51cCDigJQgZmlyZWQgZXhhY3RseSBvbmNlIHBlciByZXNldCBhY3Rpb24uXG4gICAgY29uc3QgaGFuZGxlU3VibWl0dGVyUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodHlwZW9mIHN1Ym1pdHRlciA9PT0gJ29iamVjdCcpXG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXIub25SZXNldCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0dGVyKTtcbiAgICAgICAgZmlyZUZvcm1SZXNldCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHN1Ym1pdHRlck5vZGUgPSBzdWJtaXR0ZXIgIT09IGZhbHNlICYmIG1vZGUgIT09ICdyZWFkJyA/IChfanN4KFN1Ym1pdHRlciwgT2JqZWN0LmFzc2lnbih7fSwgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnID8gc3VibWl0dGVyIDoge30pLCB7IG9uUmVzZXQ6IGhhbmRsZVN1Ym1pdHRlclJlc2V0LCBsb2FkaW5nOiBpc0xvYWRpbmcgfSkpKSA6IG51bGw7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm1TdGFibGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzdGFibGVWYWx1ZSwgY2hpbGRyZW46IF9qc3goUHJvRm9ybVN0YXRlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RvcmUsIGNoaWxkcmVuOiBfanN4cyhcImZvcm1cIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGZvcm1FbFJlZiwgY2xhc3NOYW1lOiBmb3JtQ2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc05hbWUpKSwgb25TdWJtaXQ6IHdyYXBwZWRIYW5kbGVTdWJtaXQsIG9uUmVzZXQ6IGludGVybmFscy5oYW5kbGVSZXNldCwgY2hpbGRyZW46IFtfanN4KFdyYXBwZXJDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHdyYXBwZXJQcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpLCBzdWJtaXR0ZXJOb2RlXSB9KSkgfSkgfSkpO1xufTtcblByb0Zvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm0gPSBtZW1vKFByb0Zvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
514
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fcmVzdCIsInMiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsIkZyYWdtZW50IiwidXNlTGF0ZXN0IiwidXNlU2FmZVN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJGb3JtQ29udHJvbFNpemVDb250ZXh0IiwiUm93IiwidXNlRm9ybSIsIlByb0Zvcm1TdGFibGVDb250ZXh0IiwiUHJvRm9ybVN0YXRlQ29udGV4dCIsIlN1Ym1pdHRlciIsIkNTU19QUkVGSVgiLCJERUZBVUxUX0NPTF9TUEFOIiwic3RhYmxlU2VyaWFsaXplIiwidHJhbnNmb3JtU3VibWl0VmFsdWVzIiwib21pdE5pbFZhbHVlcyIsImZvcm1hdERhdGVWYWx1ZXMiLCJ1c2VTaGFsbG93U3RhYmxlIiwidXNlVXJsU3luYyIsInJlc29sdmVWYWx1ZSIsInNldE5lc3RlZFZhbHVlIiwiRm9ybVZhbGlkYXRpb25FcnJvciIsImNsYXNzZXMiLCJmb3JtQ2xhc3NlcyIsIkRFRkFVTFRfQ09MX1BST1BTIiwic3BhbiIsIlByb0Zvcm1CYXNlIiwicHJvcHMiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsInN1Ym1pdHRlciIsIl9wcm9wcyRtb2RlIiwibW9kZSIsIl9wcm9wcyRncmlkIiwiZ3JpZCIsImNvbFByb3BzIiwicm93UHJvcHMiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJyZXF1ZXN0IiwicGFyYW1zIiwiaW5pdGlhbFZhbHVlcyIsIm9uRmluaXNoIiwib25GaW5pc2hGYWlsZWQiLCJvblZhbHVlc0NoYW5nZSIsIm9uUmVzZXQiLCJvbkluaXQiLCJvbkxvYWRpbmdDaGFuZ2UiLCJzeW5jVG9VcmwiLCJfcHJvcHMkc3luY1RvVXJsQXNJbXAiLCJzeW5jVG9VcmxBc0ltcG9ydGFudCIsImV4dHJhVXJsUGFyYW1zIiwiX3Byb3BzJGF1dG9Gb2N1c0ZpcnN0IiwiYXV0b0ZvY3VzRmlyc3RJbnB1dCIsImZvcm1Db21wb25lbnRUeXBlIiwiZm9ybVJlZiIsIl9wcm9wcyRvbWl0TmlsIiwib21pdE5pbCIsIl9wcm9wcyRkYXRlRm9ybWF0dGVyIiwiZGF0ZUZvcm1hdHRlciIsImZpZWxkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibGF5b3V0IiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkdmFsaWRhdGVUcmlnZ2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJfcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVzdCIsIl91c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwicmVxdWVzdExvYWRpbmciLCJzZXRSZXF1ZXN0TG9hZGluZyIsIl91c2VTYWZlU3RhdGUzIiwiX3VzZVNhZmVTdGF0ZTQiLCJzdWJtaXR0aW5nIiwic2V0U3VibWl0dGluZyIsInN1Ym1pdHRpbmdSZWYiLCJpc0xvYWRpbmciLCJ0cmFuc2Zvcm1LZXlSZWYiLCJ2YWx1ZVR5cGVSZWYiLCJyZWdpc3RlclRyYW5zZm9ybSIsIm5hbWUiLCJmbiIsImN1cnJlbnQiLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwidW5kZWZpbmVkIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ2YWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwib25GaW5pc2hSZWYiLCJvbkluaXRSZWYiLCJvbkxvYWRpbmdDaGFuZ2VSZWYiLCJhcHBseVBpcGVsaW5lIiwidmFsdWVzIiwiZm9ybWF0VmFsdWVzS2VlcE5pbCIsIl91c2VVcmxTeW5jIiwidXJsSW5pdGlhbFZhbHVlcyIsIm9uVXJsU3luY0ZpbmlzaCIsIm9uVXJsU3luY1Jlc2V0IiwibWVyZ2VkSW5pdGlhbFZhbHVlc1JlZiIsImFzc2lnbiIsIm1lcmdlZEluaXRpYWxWYWx1ZXMiLCJyZXNldEVwb2NoUmVmIiwiZmlyZUZvcm1SZXNldCIsImZpbmFsVmFsdWVzIiwiZm9ybUluc3RhbmNlIiwiZ2V0RmllbGRzVmFsdWUiLCJfdXNlRm9ybSIsImludGVybmFscyIsInN0b3JlIiwid3JhcHBlZEhhbmRsZVN1Ym1pdCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9hIiwiX2IiLCJfYyIsImVwb2NoIiwidmFsaWRhdGVkVmFsdWVzIiwicGlwZWxpbmVkIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwicHJldmVudERlZmF1bHQiLCJhYnJ1cHQiLCJ2YWxpZGF0ZUZpZWxkcyIsInNlbnQiLCJlcnJvcnMiLCJjb25zb2xlIiwiZXJyb3IiLCJmaW5pc2giLCJzdG9wIiwicHJvRm9ybUZvcm1JbnN0YW5jZSIsImdldEZpZWxkc0Zvcm1hdFZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZSIsImdldEZpZWxkRm9ybWF0VmFsdWVPYmplY3QiLCJmb3JtYXR0ZWQiLCJ2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlIiwiX2NhbGxlZTIiLCJ2YWxzIiwiX3QyIiwiX2NvbnRleHQyIiwic3VjY2VzcyIsInN1Ym1pdEZvcm0iLCJyZXF1ZXN0UmVmIiwiaGFzUmVxdWVzdCIsInNlcmlhbGl6ZWRQYXJhbXMiLCJpbml0RmlyZWRSZWYiLCJmaXJlSW5pdCIsInN0YWxlIiwiZmV0Y2hEYXRhIiwiX2NhbGxlZTMiLCJyZXF1ZXN0Rm4iLCJkYXRhIiwiX3QzIiwiX2NvbnRleHQzIiwiX3R5cGVvZiIsInNldEZpZWxkc1ZhbHVlIiwiZm9ybUVsUmVmIiwiZmlyc3RJbnB1dCIsInF1ZXJ5U2VsZWN0b3IiLCJmb2N1cyIsInN0YWJsZUZpZWxkUHJvcHMiLCJzdGFibGVGb3JtSXRlbVByb3BzIiwic3RhYmxlQ29sUHJvcHMiLCJzdGFibGVMYXlvdXQiLCJzdGFibGVWYWx1ZSIsInNldEZpZWxkVmFsdWUiLCJzZXRGaWVsZEVycm9yIiwic2V0RmllbGRXYXJuaW5nIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInJldGFpbkZpZWxkIiwicmVsZWFzZUZpZWxkIiwiV3JhcHBlckNvbXBvbmVudCIsIndyYXBwZXJQcm9wcyIsImhhbmRsZVN1Ym1pdHRlclJlc2V0Iiwic3VibWl0dGVyTm9kZSIsIlByb3ZpZGVyIiwicmVmIiwib25TdWJtaXQiLCJoYW5kbGVSZXNldCIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybSJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSUEsU0FBUyxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLFNBQVMsSUFBSyxVQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTLEVBQUU7RUFDckYsU0FBU0MsS0FBS0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQUUsT0FBT0EsS0FBSyxZQUFZSCxDQUFDLEdBQUdHLEtBQUssR0FBRyxJQUFJSCxDQUFDLENBQUMsVUFBVUksT0FBTyxFQUFFO01BQUVBLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQUU7RUFDM0csT0FBTyxLQUFLSCxDQUFDLEtBQUtB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LGdCQUFHdk0sSUFBSSxDQUFDaUMsV0FBVyxDQUE0QjtBQUVuRSxlQUFlc0ssT0FBTyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vUHJvRm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgRnJhZ21lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTGF0ZXN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF0ZXN0JztcbmltcG9ydCB1c2VTYWZlU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VTYWZlU3RhdGUnO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEZvcm1Db250cm9sU2l6ZUNvbnRleHQgfSBmcm9tICcuLi9Gb3JtTGF5b3V0L2NvbnRleHQnO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vR3JpZCc7XG5pbXBvcnQgeyB1c2VGb3JtIH0gZnJvbSAnLi9jb3JlL2hvb2tzL3VzZUZvcm0nO1xuaW1wb3J0IHsgUHJvRm9ybVN0YWJsZUNvbnRleHQsIFByb0Zvcm1TdGF0ZUNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgU3VibWl0dGVyIH0gZnJvbSAnLi9TdWJtaXR0ZXInO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9DT0xfU1BBTiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHN0YWJsZVNlcmlhbGl6ZSwgdHJhbnNmb3JtU3VibWl0VmFsdWVzLCBvbWl0TmlsVmFsdWVzLCBmb3JtYXREYXRlVmFsdWVzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyB1c2VTaGFsbG93U3RhYmxlIH0gZnJvbSAnLi9jb3JlL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyB1c2VVcmxTeW5jIH0gZnJvbSAnLi9ob29rcy91c2VVcmxTeW5jJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSwgc2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL2NvcmUvcGF0aFV0aWxzJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL2NvcmUvdmFsaWRhdGlvbkVycm9yJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKENTU19QUkVGSVgpO1xuY29uc3QgZm9ybUNsYXNzZXMgPSBjbGFzc25hbWVzKCdmb3JtJyk7XG5jb25zdCBERUZBVUxUX0NPTF9QUk9QUyA9IHsgc3BhbjogREVGQVVMVF9DT0xfU1BBTiB9O1xuY29uc3QgUHJvRm9ybUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHN1Ym1pdHRlciwgbW9kZSA9ICdlZGl0JywgZ3JpZCA9IGZhbHNlLCBjb2xQcm9wcywgcm93UHJvcHMsIGxvYWRpbmcgPSBmYWxzZSwgcmVxdWVzdCwgcGFyYW1zLCBpbml0aWFsVmFsdWVzLCBvbkZpbmlzaCwgb25GaW5pc2hGYWlsZWQsIG9uVmFsdWVzQ2hhbmdlLCBvblJlc2V0LCBvbkluaXQsIG9uTG9hZGluZ0NoYW5nZSwgc3luY1RvVXJsLCBzeW5jVG9VcmxBc0ltcG9ydGFudCA9IGZhbHNlLCBleHRyYVVybFBhcmFtcywgYXV0b0ZvY3VzRmlyc3RJbnB1dCA9IGZhbHNlLCBmb3JtQ29tcG9uZW50VHlwZSwgZm9ybVJlZiwgb21pdE5pbCA9IHRydWUsIGRhdGVGb3JtYXR0ZXIgPSAnc3RyaW5nJywgZmllbGRQcm9wcywgZm9ybUl0ZW1Qcm9wcywgbGF5b3V0LCBzaXplID0gJ2xhcmdlJywgbGFiZWxBbGlnbiA9ICdsZWZ0JywgZGlzYWJsZWQgPSBmYWxzZSwgdmFsaWRhdGVUcmlnZ2VyID0gJ29uQ2hhbmdlJywgcHJlZml4Q2xzOiBfcHJlZml4Q2xzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIiwgXCJzdWJtaXR0ZXJcIiwgXCJtb2RlXCIsIFwiZ3JpZFwiLCBcImNvbFByb3BzXCIsIFwicm93UHJvcHNcIiwgXCJsb2FkaW5nXCIsIFwicmVxdWVzdFwiLCBcInBhcmFtc1wiLCBcImluaXRpYWxWYWx1ZXNcIiwgXCJvbkZpbmlzaFwiLCBcIm9uRmluaXNoRmFpbGVkXCIsIFwib25WYWx1ZXNDaGFuZ2VcIiwgXCJvblJlc2V0XCIsIFwib25Jbml0XCIsIFwib25Mb2FkaW5nQ2hhbmdlXCIsIFwic3luY1RvVXJsXCIsIFwic3luY1RvVXJsQXNJbXBvcnRhbnRcIiwgXCJleHRyYVVybFBhcmFtc1wiLCBcImF1dG9Gb2N1c0ZpcnN0SW5wdXRcIiwgXCJmb3JtQ29tcG9uZW50VHlwZVwiLCBcImZvcm1SZWZcIiwgXCJvbWl0TmlsXCIsIFwiZGF0ZUZvcm1hdHRlclwiLCBcImZpZWxkUHJvcHNcIiwgXCJmb3JtSXRlbVByb3BzXCIsIFwibGF5b3V0XCIsIFwic2l6ZVwiLCBcImxhYmVsQWxpZ25cIiwgXCJkaXNhYmxlZFwiLCBcInZhbGlkYXRlVHJpZ2dlclwiLCBcInByZWZpeENsc1wiXSk7XG4gICAgY29uc3QgW3JlcXVlc3RMb2FkaW5nLCBzZXRSZXF1ZXN0TG9hZGluZ10gPSB1c2VTYWZlU3RhdGUoZmFsc2UpO1xuICAgIC8vIHVzZVNhZmVTdGF0ZSBmb3IgdGhlIFJFTkRFUkVEIHN1Ym1pdHRpbmcgc3RhdGUgKGl0cyBzZXR0ZXIgaXMgdW5tb3VudC1zYWZlXG4gICAgLy8g4oCUIHRoZSBmaW5hbGx5IGJlbG93IHJ1bnMgYWZ0ZXIgYXdhaXRpbmcgb25GaW5pc2gsIHdoZW4gdGhlIHR5cGljYWxcbiAgICAvLyBzdWJtaXQtdGhlbi1jbG9zZSBmbG93IG1heSBhbHJlYWR5IGhhdmUgdW5tb3VudGVkIHRoZSBmb3JtIG9uIFJlYWN0XG4gICAgLy8gMTYvMTcpLiBUaGUgcmVmIGlzIHRoZSBzeW5jaHJvbm91cyByZS1lbnRyeSBndWFyZDsgQDFtb25leS9ob29rcyBoYXMgbm9cbiAgICAvLyBzaW5nbGUgaG9vayB0aGF0IGlzIGJvdGggdW5tb3VudC1zYWZlIGFuZCBzeW5jaHJvbm91c2x5IHJlYWRhYmxlLlxuICAgIGNvbnN0IFtzdWJtaXR0aW5nLCBzZXRTdWJtaXR0aW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc3VibWl0dGluZ1JlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgaXNMb2FkaW5nID0gbG9hZGluZyB8fCByZXF1ZXN0TG9hZGluZyB8fCBzdWJtaXR0aW5nO1xuICAgIC8vIOKUgOKUgCBUcmFuc2Zvcm0gLyB2YWx1ZVR5cGUgcmVnaXN0cmllcyDilIDilIBcbiAgICBjb25zdCB0cmFuc2Zvcm1LZXlSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IHZhbHVlVHlwZVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgcmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9IGZuO1xuICAgIH0pO1xuICAgIC8vIFRoZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgZ3VhcmRzIHJlbW92YWw6IGRlbGV0ZSBvbmx5IHdoZW4gdGhlIHJlZ2lzdHJ5XG4gICAgLy8gc3RpbGwgaG9sZHMgdGhlIENBTExFUidTIHJlZ2lzdHJhdGlvbiwgc28gYW4gdW5tb3VudGluZyBpbnN0YW5jZSBjYW4gbmV2ZXJcbiAgICAvLyB3aXBlIGEgc2FtZS1uYW1lIHNpYmxpbmcncyBvciBzdWNjZXNzb3IncyBlbnRyeS5cbiAgICBjb25zdCB1bnJlZ2lzdGVyVHJhbnNmb3JtID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgZm4pID0+IHtcbiAgICAgICAgaWYgKGZuID09PSB1bmRlZmluZWQgfHwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV0gPT09IGZuKSB7XG4gICAgICAgICAgICBkZWxldGUgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZWdpc3RlclZhbHVlVHlwZSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHZhbHVlVHlwZSkgPT4ge1xuICAgICAgICB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXSA9IHZhbHVlVHlwZTtcbiAgICB9KTtcbiAgICBjb25zdCB1bnJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZVR5cGUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXSA9PT0gdmFsdWVUeXBlKSB7XG4gICAgICAgICAgICBkZWxldGUgdmFsdWVUeXBlUmVmLmN1cnJlbnRbbmFtZV07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBvbkZpbmlzaFJlZiA9IHVzZUxhdGVzdChvbkZpbmlzaCk7XG4gICAgY29uc3Qgb25Jbml0UmVmID0gdXNlTGF0ZXN0KG9uSW5pdCk7XG4gICAgY29uc3Qgb25Mb2FkaW5nQ2hhbmdlUmVmID0gdXNlTGF0ZXN0KG9uTG9hZGluZ0NoYW5nZSk7XG4gICAgLy8gU3VibWl0IHBpcGVsaW5lOiBkYXRlcyDihpIgZmllbGQgdHJhbnNmb3JtcyDihpIgb21pdE5pbFxuICAgIGNvbnN0IGFwcGx5UGlwZWxpbmUgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVSZWYuY3VycmVudCk7XG4gICAgICAgIHJlc3VsdCA9IHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICAgICAgaWYgKG9taXROaWwpXG4gICAgICAgICAgICByZXN1bHQgPSBvbWl0TmlsVmFsdWVzKHJlc3VsdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gICAgLy8gU2FtZSBwaXBlbGluZSBXSVRIT1VUIG9taXROaWwg4oCUIHNpbmdsZS1maWVsZCByZWFkZXJzIG11c3Qgbm90IHNlZSBhIGZpZWxkXG4gICAgLy8gdmFuaXNoIGp1c3QgYmVjYXVzZSBpdHMgY3VycmVudCB2YWx1ZSBpcyBlbXB0eS5cbiAgICBjb25zdCBmb3JtYXRWYWx1ZXNLZWVwTmlsID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVSZWYuY3VycmVudCk7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMocmVzdWx0LCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIFVSTCBzeW5jIChzeW5jVG9VcmwgLyBzeW5jVG9VcmxBc0ltcG9ydGFudCAvIGV4dHJhVXJsUGFyYW1zKSDilIDilIBcbiAgICBjb25zdCB7IHVybEluaXRpYWxWYWx1ZXMsIG9uVXJsU3luY0ZpbmlzaCwgb25VcmxTeW5jUmVzZXQgfSA9IHVzZVVybFN5bmMoe1xuICAgICAgICBzeW5jVG9VcmwsXG4gICAgICAgIGV4dHJhVXJsUGFyYW1zLFxuICAgIH0pO1xuICAgIC8vIGluaXRpYWxWYWx1ZXMgaXMgTU9VTlQtT05MWSAoZG9jdW1lbnRlZCBjb250cmFjdDsgdXNlRm9ybUNvcmUgcmUtZnJlZXplc1xuICAgIC8vIGFzIGEgc2FmZXR5IG5ldCkg4oCUIGNvbXB1dGUgdGhlIFVSTCBtZXJnZSBvbmNlIHNvIHRoZSBmcmVlemUgaXMgdmlzaWJsZVxuICAgIC8vIHdoZXJlIHRoZSBwcm9wcyBlbnRlciwgaW5zdGVhZCBvZiByZWNvbXB1dGluZyBkZWFkIHNwcmVhZHMgcGVyIHJlbmRlci5cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGlmIChtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50ID0gc3luY1RvVXJsXG4gICAgICAgICAgICA/IChzeW5jVG9VcmxBc0ltcG9ydGFudFxuICAgICAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpbml0aWFsVmFsdWVzKSwgdXJsSW5pdGlhbFZhbHVlcykgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHVybEluaXRpYWxWYWx1ZXMpLCBpbml0aWFsVmFsdWVzKSlcbiAgICAgICAgICAgIDogKGluaXRpYWxWYWx1ZXMgIT09IG51bGwgJiYgaW5pdGlhbFZhbHVlcyAhPT0gdm9pZCAwID8gaW5pdGlhbFZhbHVlcyA6IHt9KTtcbiAgICB9XG4gICAgY29uc3QgbWVyZ2VkSW5pdGlhbFZhbHVlcyA9IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudDtcbiAgICAvLyBCdW1wZWQgb24gZXZlcnkgcmVzZXQg4oCUIGFuIGluLWZsaWdodCBzdWJtaXQgY2FwdHVyZXMgaXQgYW5kIGFib3J0cyB3aGVuXG4gICAgLy8gaXQgY2hhbmdlZCB1bmRlcm5lYXRoICh0aGUgdXNlciBkaXNjYXJkZWQgdGhlIHN1Ym1pc3Npb24ncyB2YWx1ZXMpLlxuICAgIGNvbnN0IHJlc2V0RXBvY2hSZWYgPSB1c2VSZWYoMCk7XG4gICAgLy8gUmVzZXQgY2hhaW46IGZvcm0tbGV2ZWwgb25SZXNldCByZWNlaXZlcyB0aGUgKHBvc3QtcmVzZXQpIGZvcm1hdHRlZFxuICAgIC8vIHZhbHVlcywgdGhlbiB0aGUgZm9ybSdzIG93biBVUkwgcGFyYW1zIGFyZSBjbGVhcmVkLiB1c2VNZW1vaXplZEZuIGRlZmVyc1xuICAgIC8vIGV4ZWN1dGlvbiB0byBldmVudCB0aW1lLCB3aGVuIGBmb3JtSW5zdGFuY2VgIChjcmVhdGVkIGp1c3QgYmVsb3cpIGV4aXN0cy5cbiAgICBjb25zdCBmaXJlRm9ybVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHJlc2V0RXBvY2hSZWYuY3VycmVudCArPSAxO1xuICAgICAgICBjb25zdCBmaW5hbFZhbHVlcyA9IGFwcGx5UGlwZWxpbmUoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoZmluYWxWYWx1ZXMpO1xuICAgICAgICBvblVybFN5bmNSZXNldCgpO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBGb3JtIGVuZ2luZSAodXNlRm9ybSB3aXRoIGFzeW5jIHZhbGlkYXRpb24pIOKUgOKUgFxuICAgIGNvbnN0IHsgZm9ybUluc3RhbmNlLCBpbnRlcm5hbHMsIHN0b3JlIH0gPSB1c2VGb3JtKHtcbiAgICAgICAgaW5pdGlhbFZhbHVlczogbWVyZ2VkSW5pdGlhbFZhbHVlcyxcbiAgICAgICAgb25WYWx1ZXNDaGFuZ2UsXG4gICAgICAgIG9uUmVzZXQ6IGZpcmVGb3JtUmVzZXQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEFzeW5jIHN1Ym1pdCB3aXRoIHRyYW5zZm9ybSBwaXBlbGluZSDilIDilIBcbiAgICAvLyBSZS1lbnRyeSBndWFyZDogYSBzZWNvbmQgc3VibWl0IHdoaWxlIG9uZSBpcyBpbiBmbGlnaHQgaXMgaWdub3JlZCAodGhlXG4gICAgLy8gcmVmIGNhdGNoZXMgdHdvIGNhbGxzIGluIHRoZSBzYW1lIHRpY2spLlxuICAgIGNvbnN0IHdyYXBwZWRIYW5kbGVTdWJtaXQgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAoc3VibWl0dGluZ1JlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzdWJtaXR0aW5nUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBzZXRTdWJtaXR0aW5nKHRydWUpO1xuICAgICAgICAoX2EgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZXBvY2ggPSByZXNldEVwb2NoUmVmLmN1cnJlbnQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0ZWRWYWx1ZXMgPSB5aWVsZCBmb3JtSW5zdGFuY2UudmFsaWRhdGVGaWVsZHMoKTtcbiAgICAgICAgICAgIC8vIEEgcmVzZXQgZHVyaW5nIChhc3luYykgdmFsaWRhdGlvbiBkaXNjYXJkcyB0aGlzIHN1Ym1pc3Npb24gZW50aXJlbHk6XG4gICAgICAgICAgICAvLyB2YWxpZGF0ZUZpZWxkcyByZS1yZWFkcyB0aGUgbGl2ZSBzdG9yZSwgc28gcHJvY2VlZGluZyB3b3VsZCBoYW5kXG4gICAgICAgICAgICAvLyBvbkZpbmlzaCB0aGUgUE9TVC1yZXNldCB2YWx1ZXMuXG4gICAgICAgICAgICBpZiAoZXBvY2ggIT09IHJlc2V0RXBvY2hSZWYuY3VycmVudClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBwaXBlbGluZWQgPSBhcHBseVBpcGVsaW5lKHZhbGlkYXRlZFZhbHVlcyk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCAoKF9iID0gb25GaW5pc2hSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwob25GaW5pc2hSZWYsIHBpcGVsaW5lZCkpO1xuICAgICAgICAgICAgLy8gU3luYyB0aGUgVVJMIHVubGVzcyBvbkZpbmlzaCBleHBsaWNpdGx5IHJldHVybmVkIGZhbHNlIChhIHRocm93IGFib3ZlXG4gICAgICAgICAgICAvLyBhbHNvIHNraXBzIOKAlCBhIGZhaWxlZCBzdWJtaXQgbXVzdCBub3QgcG9sbHV0ZSB0aGUgVVJMKSwgYW5kIG9ubHkgaWZcbiAgICAgICAgICAgIC8vIHRoZSB1c2VyIGRpZCBOT1QgcmVzZXQgdGhlIGZvcm0gd2hpbGUgdGhlIHN1Ym1pdCB3YXMgaW4gZmxpZ2h0LlxuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gZmFsc2UgJiYgZXBvY2ggPT09IHJlc2V0RXBvY2hSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIG9uVXJsU3luY0ZpbmlzaChwaXBlbGluZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIEEgcmVzZXQgZHVyaW5nIHZhbGlkYXRpb24gYWxzbyBpbnZhbGlkYXRlcyB0aGUgRkFJTFVSRSBjYWxsYmFjayDigJRcbiAgICAgICAgICAgIC8vIHRoZSBlcnJvciBjYXJyaWVzIHBvc3QtcmVzZXQgdmFsdWVzIGZvciBhIGRpc2NhcmRlZCBzdWJtaXNzaW9uLlxuICAgICAgICAgICAgLy8gKEZpZWxkIGVycm9ycyBmcm9tIHRoZSBkZWFkIHZhbGlkYXRpb24gYXJlIHN1cHByZXNzZWQgYnkgdGhlXG4gICAgICAgICAgICAvLyBwZXItZmllbGQgdmFsaWRhdGlvbiBlcG9jaHM6IHJlc2V0RmllbGRzIGludmFsaWRhdGVzIGluLWZsaWdodCBydW5zLilcbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIE9ubHkgYSBWQUxJREFUSU9OIGZhaWx1cmUgcm91dGVzIHRvIG9uRmluaXNoRmFpbGVkLiBBbiBleGNlcHRpb24gb3V0XG4gICAgICAgICAgICAvLyBvZiB0aGUgY29uc3VtZXIncyBvd24gb25GaW5pc2ggaXMgbm90IGEgdmFsaWRhdGlvbiByZXN1bHQ6IHRoZSBzdWJtaXRcbiAgICAgICAgICAgIC8vIGZhaWxzIChVUkwgdW50b3VjaGVkLCBvdmVybGF5IHN0YXlzIG9wZW4pIGFuZCB0aGUgZXJyb3IgaXMgc3VyZmFjZWRcbiAgICAgICAgICAgIC8vIG9uIHRoZSBjb25zb2xlIGluc3RlYWQgb2YgYmVpbmcgbWlzcmVwb3J0ZWQgd2l0aCBhbiBlbXB0eSBwYXlsb2FkLlxuICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEZvcm1WYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBvbkZpbmlzaEZhaWxlZCA9PT0gbnVsbCB8fCBvbkZpbmlzaEZhaWxlZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2hGYWlsZWQoeyB2YWx1ZXM6IGVyci52YWx1ZXMsIGVycm9yczogZXJyLmVycm9ycyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tQcm9Gb3JtXSBvbkZpbmlzaCB0aHJldyBkdXJpbmcgc3VibWl0OicsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBzdWJtaXR0aW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHNldFN1Ym1pdHRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgKF9jID0gb25Mb2FkaW5nQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5jYWxsKG9uTG9hZGluZ0NoYW5nZVJlZiwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfSkpO1xuICAgIC8vIOKUgOKUgCBQcm9Gb3JtIGluc3RhbmNlOiBzdXBlcnNldCBvZiBGb3JtSW5zdGFuY2Ug4pSA4pSAXG4gICAgY29uc3QgcHJvRm9ybUZvcm1JbnN0YW5jZSA9IHVzZU1lbW8oKCkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZm9ybUluc3RhbmNlKSwgeyBnZXRGaWVsZHNGb3JtYXRWYWx1ZTogKCkgPT4gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIGdldEZpZWxkRm9ybWF0VmFsdWU6ICgobmFtZSkgPT4gcmVzb2x2ZVZhbHVlKGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpLCBuYW1lKSksIGdldEZpZWxkRm9ybWF0VmFsdWVPYmplY3Q6IChuYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRWYWx1ZXNLZWVwTmlsKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKTtcbiAgICAgICAgICAgIGlmICghbmFtZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkO1xuICAgICAgICAgICAgLy8gQSBuZXN0ZWQgb2JqZWN0IGNhcnJ5aW5nIE9OTFkgdGhlIHJlcXVlc3RlZCBsZWFmIOKAlCBub3QgdGhlIHdob2xlXG4gICAgICAgICAgICAvLyB0b3AtbGV2ZWwgc3VidHJlZSB0aGUgcGF0aCBoYXBwZW5zIHRvIGxpdmUgaW4uXG4gICAgICAgICAgICByZXR1cm4gc2V0TmVzdGVkVmFsdWUoe30sIG5hbWUsIHJlc29sdmVWYWx1ZShmb3JtYXR0ZWQsIG5hbWUpKTtcbiAgICAgICAgfSwgdmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZTogKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHMgPSB5aWVsZCBmb3JtSW5zdGFuY2UudmFsaWRhdGVGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCB2YWx1ZXM6IGFwcGx5UGlwZWxpbmUodmFscykgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyB2YWxpZGF0ZUZpZWxkcyByZWplY3RzIHdpdGggYW4gRXJyb3IgY2FycnlpbmcgdGhlIGZpZWxkIGVycm9ycyBtYXBcbiAgICAgICAgICAgICAgICAvLyAoc2FtZSBzaGFwZSB3cmFwcGVkSGFuZGxlU3VibWl0IGNvbnN1bWVzIGFib3ZlKS5cbiAgICAgICAgICAgICAgICBjb25zdCB7IGVycm9ycyB9ID0gZXJyO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcnM6IGVycm9ycyAhPT0gbnVsbCAmJiBlcnJvcnMgIT09IHZvaWQgMCA/IGVycm9ycyA6IHt9IH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLCBzdWJtaXRGb3JtOiB3cmFwcGVkSGFuZGxlU3VibWl0IH0pKSwgW2Zvcm1JbnN0YW5jZSwgYXBwbHlQaXBlbGluZSwgd3JhcHBlZEhhbmRsZVN1Ym1pdF0pO1xuICAgIC8vIOKUgOKUgCBTeW5jIHRvIGZvcm1SZWYgcHJvcCDilIDilIBcbiAgICAvLyBUaGUgY2xlYW51cCBjbGVhcnMgdGhlIHJlZiBvbiB1bm1vdW50OiBhIGhhbmRsZSB0byBhbiB1bm1vdW50ZWQgZm9ybVxuICAgIC8vIHZhbGlkYXRlcyBhbiBlbXB0eSBmaWVsZCBzdG9yZSBhbmQgcmVwb3J0cyBmYWtlIHN1Y2Nlc3MsIHNvIGNvbnN1bWVyc1xuICAgIC8vIChhbmQgdGhlIGJ1c2luZXNzLXNoZWxsIHJlbGF5IHJlZnMpIG11c3Qgb2JzZXJ2ZSBgdW5kZWZpbmVkYCBpbnN0ZWFkLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZm9ybVJlZilcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGZvcm1SZWYuY3VycmVudCA9IHByb0Zvcm1Gb3JtSW5zdGFuY2U7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZm9ybVJlZi5jdXJyZW50ID09PSBwcm9Gb3JtRm9ybUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgZm9ybVJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtmb3JtUmVmLCBwcm9Gb3JtRm9ybUluc3RhbmNlXSk7XG4gICAgLy8g4pSA4pSAIHJlcXVlc3QgLyBwYXJhbXMgYXV0by1sb2FkIOKUgOKUgFxuICAgIGNvbnN0IHJlcXVlc3RSZWYgPSB1c2VMYXRlc3QocmVxdWVzdCk7XG4gICAgY29uc3QgaGFzUmVxdWVzdCA9ICEhcmVxdWVzdDtcbiAgICBjb25zdCBzZXJpYWxpemVkUGFyYW1zID0gdXNlTWVtbygoKSA9PiBzdGFibGVTZXJpYWxpemUocGFyYW1zKSwgW3BhcmFtc10pO1xuICAgIC8vIG9uSW5pdCBmaXJlcyBleGFjdGx5IG9uY2U6IGFmdGVyIHRoZSBGSVJTVCByZXF1ZXN0IHJlc29sdmVzIHdoZW4gYVxuICAgIC8vIHJlcXVlc3QgaXMgY29uZmlndXJlZCwgb3RoZXJ3aXNlIHJpZ2h0IGFmdGVyIG1vdW50LlxuICAgIGNvbnN0IGluaXRGaXJlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgZmlyZUluaXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoaW5pdEZpcmVkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGluaXRGaXJlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgKF9hID0gb25Jbml0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uSW5pdFJlZiwgYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIHByb0Zvcm1Gb3JtSW5zdGFuY2UpO1xuICAgIH0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIFN0YWxlbmVzcyBndWFyZDogaWYgcGFyYW1zIGNoYW5nZSBhZ2FpbiBiZWZvcmUgdGhpcyBmZXRjaCByZXNvbHZlcywgdGhlXG4gICAgICAgIC8vIGNsZWFudXAgbWFya3MgaXQgc3RhbGUgc28gdGhlIGxhdGUgcmVzcG9uc2UgY2FuJ3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZXNcbiAgICAgICAgLy8gYSBuZXdlciByZXF1ZXN0IGFscmVhZHkgKG9yIHdpbGwpIHNldC5cbiAgICAgICAgbGV0IHN0YWxlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGZldGNoRGF0YSA9ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgcmVxdWVzdEZuID0gcmVxdWVzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKCFyZXF1ZXN0Rm4pXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2V0UmVxdWVzdExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCByZXF1ZXN0Rm4ocGFyYW1zKTtcbiAgICAgICAgICAgICAgICBpZiAoIXN0YWxlICYmIGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1JbnN0YW5jZS5zZXRGaWVsZHNWYWx1ZShkYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgLy8gQSBmYWlsZWQgcmVxdWVzdCBtdXN0IG5vdCBlc2NhcGUgYXMgYW4gdW5oYW5kbGVkIHJlamVjdGlvbiDigJQgdGhlXG4gICAgICAgICAgICAgICAgLy8gZm9ybSBrZWVwcyBpdHMgaW5pdGlhbFZhbHVlcyBhbmQgdGhlIGZhaWx1cmUgaXMgc3VyZmFjZWQgb24gdGhlXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZSAobWlycm9ycyB0aGUgZmllbGQtbGV2ZWwgdXNlRmllbGRSZXF1ZXN0IGhhbmRsaW5nKS5cbiAgICAgICAgICAgICAgICBpZiAoIXN0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tQcm9Gb3JtXSByZXF1ZXN0IGZhaWxlZDonLCBlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVxdWVzdExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGEgTk9OLXN1cGVyc2VkZWQgc2V0dGxlIGluaXRpYWxpemVzIHRoZSBmb3JtOiBhIHN0YWxlXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlcXVlc3QncyBkYXRhIHdhcyBkaXNjYXJkZWQsIHNvIGl0cyB2YWx1ZXMgbXVzdCBub3QgYmUgcmVwb3J0ZWQuXG4gICAgICAgICAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlcXVlc3RSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgZmV0Y2hEYXRhKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBmaXJlSW5pdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzdGFsZSA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFJlLWZldGNoIHdoZW4gcGFyYW1zIGNoYW5nZSBieSBWQUxVRSAoZGVwZW5kaW5nIG9uIHRoZSByYXcgYHBhcmFtc2BcbiAgICAgICAgLy8gcmVmZXJlbmNlIHdvdWxkIHJlLXJ1biBvbiBldmVyeSByZW5kZXIgZm9yIGlubGluZSBvYmplY3QgbGl0ZXJhbHMgYW5kLFxuICAgICAgICAvLyBjb21iaW5lZCB3aXRoIHRoZSBsb2FkaW5nIHNldFN0YXRlLCBsb29wIGZvcmV2ZXIpIOKAlCBhbmQgd2hlbiBgcmVxdWVzdGBcbiAgICAgICAgLy8gZmlyc3QgYmVjb21lcyBkZWZpbmVkIChlLmcuIGJlaGluZCBhIGZlYXR1cmUgZmxhZyksIG1pcnJvcmluZ1xuICAgICAgICAvLyB1c2VGaWVsZFJlcXVlc3QuIGZpcmVJbml0J3Mgb25jZS1ndWFyZCBrZWVwcyBvbkluaXQgZnJvbSByZS1maXJpbmcuXG4gICAgfSwgW3NlcmlhbGl6ZWRQYXJhbXMsIGhhc1JlcXVlc3RdKTtcbiAgICAvLyDilIDilIAgYXV0b0ZvY3VzRmlyc3RJbnB1dCDilIDilIBcbiAgICBjb25zdCBmb3JtRWxSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWF1dG9Gb2N1c0ZpcnN0SW5wdXQgfHwgbW9kZSA9PT0gJ3JlYWQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBmaXJzdElucHV0ID0gKF9hID0gZm9ybUVsUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5xdWVyeVNlbGVjdG9yKCdpbnB1dDpub3QoW3R5cGU9XCJoaWRkZW5cIl0pOm5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyk7XG4gICAgICAgIGZpcnN0SW5wdXQgPT09IG51bGwgfHwgZmlyc3RJbnB1dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmlyc3RJbnB1dC5mb2N1cygpO1xuICAgICAgICAvLyBNb3VudC1vbmx5IGJ5IGRlc2lnbi5cbiAgICB9LCBbXSk7XG4gICAgLy8g4pSA4pSAIFNwbGl0IGNvbnRleHQg4pSA4pSAXG4gICAgLy8gRm9ybS1sZXZlbCBwcm9wIGJhZ3MgYXJlIG9mdGVuIGlubGluZSBsaXRlcmFsczoga2VlcCB0aGVpciBpZGVudGl0eVxuICAgIC8vIHN0YWJsZSB3aGlsZSBzaGFsbG93LWVxdWFsIHNvIHRoZSBzdGFibGUgc2xpY2UgZG9lc24ndCBjaHVybiBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IHN0YWJsZUZpZWxkUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGZpZWxkUHJvcHMpO1xuICAgIGNvbnN0IHN0YWJsZUZvcm1JdGVtUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGZvcm1JdGVtUHJvcHMpO1xuICAgIGNvbnN0IHN0YWJsZUNvbFByb3BzID0gdXNlU2hhbGxvd1N0YWJsZShjb2xQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlTGF5b3V0ID0gdXNlU2hhbGxvd1N0YWJsZShsYXlvdXQpO1xuICAgIC8vIFN0YWJsZSBzbGljZTogY29uZmlndXJhdGlvbiArIGlkZW50aXR5LXN0YWJsZSBkaXNwYXRjaGVycy9pbnN0YW5jZS5cbiAgICAvLyBDaGFuZ2VzIG9ubHkgd2hlbiBmb3JtLWxldmVsIHByb3BzIGNoYW5nZSDigJQgTk9UIG9uIGtleXN0cm9rZXMsIHNvXG4gICAgLy8gc3Vic2NyaWJlcnMgbGlrZSBTdWJtaXR0ZXIgYW5kIHRoZSBmaWVsZCBmYWN0b3JpZXMgc2tpcCB0aG9zZSByZW5kZXJzLlxuICAgIGNvbnN0IHN0YWJsZVZhbHVlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICBmb3JtSW5zdGFuY2U6IHByb0Zvcm1Gb3JtSW5zdGFuY2UsXG4gICAgICAgIHNldEZpZWxkVmFsdWU6IGludGVybmFscy5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yOiBpbnRlcm5hbHMuc2V0RmllbGRFcnJvcixcbiAgICAgICAgc2V0RmllbGRXYXJuaW5nOiBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkQXN5bmM6IGludGVybmFscy52YWxpZGF0ZUZpZWxkQXN5bmMsXG4gICAgICAgIHJlZ2lzdGVyRmllbGQ6IGludGVybmFscy5yZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQ6IGludGVybmFscy51bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHJldGFpbkZpZWxkOiBpbnRlcm5hbHMucmV0YWluRmllbGQsXG4gICAgICAgIHJlbGVhc2VGaWVsZDogaW50ZXJuYWxzLnJlbGVhc2VGaWVsZCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgLy8gU3VibWl0dGluZy9sb2FkaW5nIGRvZXMgTk9UIGRpc2FibGUgZmllbGRzIOKAlCBvbmx5IHRoZVxuICAgICAgICAvLyBleHBsaWNpdCBgZGlzYWJsZWRgIHByb3AgZG9lcy4gS2VlcGluZyBpc0xvYWRpbmcgb3V0IG9mIHRoaXMgc2xpY2VcbiAgICAgICAgLy8gbWVhbnMgYSBzdWJtaXQgY3ljbGUgbm8gbG9uZ2VyIHJlLXJlbmRlcnMgZXZlcnkgZmllbGQgc2hlbGwuXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgICAgIC8vIFByb0Zvcm0gc3BlY2lmaWNzXG4gICAgICAgIG1vZGUsXG4gICAgICAgIGdyaWQsXG4gICAgICAgIGNvbFByb3BzOiBzdGFibGVDb2xQcm9wcyAhPT0gbnVsbCAmJiBzdGFibGVDb2xQcm9wcyAhPT0gdm9pZCAwID8gc3RhYmxlQ29sUHJvcHMgOiBERUZBVUxUX0NPTF9QUk9QUyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm06IHJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICB1bnJlZ2lzdGVyVHJhbnNmb3JtOiB1bnJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICByZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgdW5yZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgZmllbGRQcm9wczogc3RhYmxlRmllbGRQcm9wcyxcbiAgICAgICAgZm9ybUl0ZW1Qcm9wczogc3RhYmxlRm9ybUl0ZW1Qcm9wcyxcbiAgICAgICAgbGF5b3V0OiBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIH0pLCBbXG4gICAgICAgIHByb0Zvcm1Gb3JtSW5zdGFuY2UsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRFcnJvcixcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkV2FybmluZyxcbiAgICAgICAgaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGludGVybmFscy51bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJlbGVhc2VGaWVsZCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgc3RhYmxlQ29sUHJvcHMsXG4gICAgICAgIHJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICB1bnJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICByZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgdW5yZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgc3RhYmxlRmllbGRQcm9wcyxcbiAgICAgICAgc3RhYmxlRm9ybUl0ZW1Qcm9wcyxcbiAgICAgICAgc3RhYmxlTGF5b3V0LFxuICAgICAgICBmb3JtQ29tcG9uZW50VHlwZSxcbiAgICBdKTtcbiAgICBjb25zdCBXcmFwcGVyQ29tcG9uZW50ID0gZ3JpZCA/IFJvdyA6IEZyYWdtZW50O1xuICAgIGNvbnN0IHdyYXBwZXJQcm9wcyA9IGdyaWQgPyBPYmplY3QuYXNzaWduKHt9LCByb3dQcm9wcykgOiB7fTtcbiAgICAvLyBSZXNldCBjYWxsYmFjayBjaGFpbjogdGhlIFN1Ym1pdHRlciByZXNldHMgdGhlIHZhbHVlcyBmaXJzdCwgdGhlbiB0aGVcbiAgICAvLyBzdWJtaXR0ZXItbGV2ZWwgb25SZXNldCwgdGhlbiB0aGUgZm9ybS1sZXZlbCBvblJlc2V0ICh3aXRoIGZpbmFsVmFsdWVzKVxuICAgIC8vIGFuZCB0aGUgVVJMIGNsZWFudXAg4oCUIGZpcmVkIGV4YWN0bHkgb25jZSBwZXIgcmVzZXQgYWN0aW9uLlxuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdHRlclJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnKVxuICAgICAgICAgICAgKF9hID0gc3VibWl0dGVyLm9uUmVzZXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlcik7XG4gICAgICAgIGZpcmVGb3JtUmVzZXQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBzdWJtaXR0ZXJOb2RlID0gc3VibWl0dGVyICE9PSBmYWxzZSAmJiBtb2RlICE9PSAncmVhZCcgPyAoX2pzeChTdWJtaXR0ZXIsIE9iamVjdC5hc3NpZ24oe30sICh0eXBlb2Ygc3VibWl0dGVyID09PSAnb2JqZWN0JyA/IHN1Ym1pdHRlciA6IHt9KSwgeyBvblJlc2V0OiBoYW5kbGVTdWJtaXR0ZXJSZXNldCwgbG9hZGluZzogaXNMb2FkaW5nIH0pKSkgOiBudWxsO1xuICAgIHJldHVybiAoX2pzeChQcm9Gb3JtU3RhYmxlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RhYmxlVmFsdWUsIGNoaWxkcmVuOiBfanN4KFByb0Zvcm1TdGF0ZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHN0b3JlLCBjaGlsZHJlbjogX2pzeChGb3JtQ29udHJvbFNpemVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzaXplLCBjaGlsZHJlbjogX2pzeHMoXCJmb3JtXCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBmb3JtRWxSZWYsIGNsYXNzTmFtZTogZm9ybUNsYXNzZXModW5kZWZpbmVkLCBqb2luQ2xzKGNsYXNzZXMoKSwgY2xhc3NOYW1lKSksIG9uU3VibWl0OiB3cmFwcGVkSGFuZGxlU3VibWl0LCBvblJlc2V0OiBpbnRlcm5hbHMuaGFuZGxlUmVzZXQsIGNoaWxkcmVuOiBbX2pzeChXcmFwcGVyQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHt9LCB3cmFwcGVyUHJvcHMsIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSwgc3VibWl0dGVyTm9kZV0gfSkpIH0pIH0pIH0pKTtcbn07XG5Qcm9Gb3JtQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtJztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtID0gbWVtbyhQcm9Gb3JtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -255,6 +255,7 @@ var ProFormItemBase = function ProFormItemBase(props) {
|
|
|
255
255
|
className: classes('label-wrapper', joinCls(classes('label-wrapper-vertical'), labelAlign && classes("label-wrapper-".concat(labelAlign)))),
|
|
256
256
|
children: [_jsx(TypographyLabel, {
|
|
257
257
|
as: "label",
|
|
258
|
+
strong: true,
|
|
258
259
|
size: FORM_LABEL_SIZES[size],
|
|
259
260
|
color: FORM_LABEL_COLOR,
|
|
260
261
|
className: classes('label'),
|
|
@@ -309,4 +310,4 @@ var ProFormItemBase = function ProFormItemBase(props) {
|
|
|
309
310
|
ProFormItemBase.displayName = 'ProFormItem';
|
|
310
311
|
export var ProFormItem = /*#__PURE__*/memo(ProFormItemBase);
|
|
311
312
|
export default ProFormItem;
|
|
312
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlJlYWN0IiwibWVtbyIsInVzZUVmZmVjdCIsInVzZVJlZiIsIkNvbCIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUxhYmVsIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwidXNlRm9ybUl0ZW0iLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9FUlJPUl9TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0xBQkVMX1NJWkVTIiwidXNlUHJvRm9ybVN0YWJsZSIsInVzZVByb0Zvcm1TdG9yZSIsInVzZVN0b3JlU2VsZWN0b3IiLCJzaGFsbG93RXF1YWxBcnJheXMiLCJyZXNvbHZlVmFsdWUiLCJERUZBVUxUX0NPTF9TUEFOIiwidmFsdWVFbnVtVG9PcHRpb25zIiwiZm9ybWF0RGF0ZUJ5UGF0dGVybiIsIkRBVEVfRk9STUFUIiwiREFURV9USU1FX0ZPUk1BVCIsIkVNUFRZX1RFWFRfREVGQVVMVCIsInJlbmRlckJ5VmFsdWVUeXBlIiwidmFsdWVUeXBlIiwidmFsdWUiLCJwcm9wcyIsInVuZGVmaW5lZCIsInJlcGVhdCIsIlN0cmluZyIsImxlbmd0aCIsIm51bSIsIk51bWJlciIsImlzTmFOIiwidG9Mb2NhbGVTdHJpbmciLCJ2YWx1ZUVudW0iLCJvcHRpb25zIiwibWF0Y2giLCJmaW5kIiwibyIsImxhYmVsIiwiRGF0ZSIsIlJlYWRvbmx5Q2hpbGRCYXNlIiwiX3JlZiIsIm5hbWUiLCJjb252ZXJ0VmFsdWUiLCJyZWFkb25seVJlbmRlciIsImVtcHR5VGV4dCIsInN0b3JlIiwiX3VzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsInZhbHVlcyIsIl91c2VTdG9yZVNlbGVjdG9yMiIsIl9zbGljZWRUb0FycmF5IiwicmF3IiwiYWxsVmFsdWVzIiwibm9kZSIsImdldFN0YXRlIiwiY2hpbGRyZW4iLCJyZW5kZXJlZCIsImRpc3BsYXlOYW1lIiwiUmVhZG9ubHlDaGlsZCIsIkNvbnZlcnRWYWx1ZUNoaWxkQmFzZSIsIl9yZWYyIiwiX3JlZjIkdmFsdWVQcm9wTmFtZSIsInZhbHVlUHJvcE5hbWUiLCJjb252ZXJ0ZWQiLCJjbG9uZUVsZW1lbnQiLCJfZGVmaW5lUHJvcGVydHkiLCJDb252ZXJ0VmFsdWVDaGlsZCIsIlByb0Zvcm1JdGVtQmFzZSIsIl9hIiwiY3R4IiwibWVyZ2VkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibWVyZ2VkIiwiT2JqZWN0IiwiYXNzaWduIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJrZXlzIiwia2V5IiwiX21lcmdlZFByb3BzIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsImZlZWRiYWNrIiwidmFsaWRhdGVTdGF0dXMiLCJfbWVyZ2VkUHJvcHMkY2xhc3NOYW0iLCJjbGFzc05hbWUiLCJfbWVyZ2VkUHJvcHMkcHJlZml4Q2wiLCJwcmVmaXhDbHMiLCJoaWRkZW4iLCJ0cmFuc2Zvcm0iLCJjb2xQcm9wcyIsIm1vZGVQcm9wIiwibW9kZSIsIl9tZXJnZWRQcm9wcyRlbXB0eVRleCIsInZhbGlkYXRlRGVib3VuY2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJtZXJnZWRNb2RlIiwiaXNSZWFkb25seSIsIl91c2VGb3JtSXRlbSIsImZpZWxkRXJyb3IiLCJmaWVsZFdhcm5pbmciLCJzaXplIiwibGFiZWxBbGlnbiIsImluamVjdEZpZWxkIiwib3duVHJhbnNmb3JtUmVmIiwib3duVmFsdWVUeXBlUmVmIiwicHJldlRyYW5zZm9ybSIsImN1cnJlbnQiLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwiZm4iLCJyZWdpc3RlclRyYW5zZm9ybSIsInByZXZWYWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ0cmFuc2Zvcm1SZWciLCJ2YWx1ZVR5cGVSZWciLCJ0IiwidiIsImNvbnRyb2xDaGlsZCIsImluamVjdGVkIiwiaXNWYWxpZEVsZW1lbnQiLCJjbGFzc2VzIiwiaXRlbUdhcCIsImxheW91dCIsImdhcFN0eWxlIiwibWFyZ2luQm90dG9tIiwiY29uY2F0Iiwic2hlbGwiLCJzdHlsZSIsImFzIiwiY29sb3IiLCJncmlkIiwiX21lcmdlZCRzcGFuIiwic3BhbiIsInNtIiwibWQiLCJsZyIsIlByb0Zvcm1JdGVtIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsT0FBT0MsS0FBSyxJQUFJQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFdEQsU0FBU0MsR0FBRyxRQUFRLFNBQVM7QUFDN0IsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsZUFBZTtBQUMvRCxTQUFTQyxPQUFPLElBQUlDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUN2RSxTQUFTQyxXQUFXLFFBQVEsb0JBQW9CO0FBQ2hELFNBQ0VDLGdCQUFnQixFQUNoQkMsZUFBZSxFQUNmQyxrQkFBa0IsRUFDbEJDLGlCQUFpQixFQUNqQkMsc0JBQXNCLEVBQ3RCQyxxQkFBcUIsRUFDckJDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixRQUNYLGtCQUFrQjtBQUN6QixTQUFTQyxnQkFBZ0IsRUFBRUMsZUFBZSxRQUFRLFdBQVc7QUFDN0QsU0FBU0MsZ0JBQWdCLEVBQUVDLGtCQUFrQixRQUFRLGtCQUFrQjtBQUN2RSxTQUFTQyxZQUFZLFFBQVEsa0JBQWtCO0FBQy9DLFNBQVNDLGdCQUFnQixRQUFRLGFBQWE7QUFDOUMsU0FBU0Msa0JBQWtCLEVBQUVDLG1CQUFtQixFQUFFQyxXQUFXLEVBQUVDLGdCQUFnQixRQUFRLFNBQVM7QUFJaEcsSUFBTUMsa0JBQWtCLEdBQUcsR0FBRztBQUU5QjtBQUNBO0FBQ0E7QUFDQSxTQUFTQyxpQkFBaUJBLENBQ3hCQyxTQUF1QyxFQUN2Q0MsS0FBVSxFQUNWQyxLQUEwQyxFQUFBO0VBRTFDLElBQUlELEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssS0FBS0UsU0FBUyxJQUFJRixLQUFLLEtBQUssRUFBRSxFQUFFLE9BQU8sSUFBSTtFQUV0RSxRQUFRRCxTQUFTO0lBQ2YsS0FBSyxVQUFVO01BQ2IsT0FBTyxHQUFHLENBQUNJLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDSixLQUFLLENBQUMsQ0FBQ0ssTUFBTSxDQUFDO0lBQ3pDLEtBQUssUUFBUTtNQUNYLE9BQU9MLEtBQUssR0FBRyxJQUFJLEdBQUcsS0FBSztJQUM3QixLQUFLLE9BQU87TUFBRTtRQUNaLElBQU1NLEdBQUcsR0FBR0MsTUFBTSxDQUFDUCxLQUFLLENBQUM7UUFDekIsSUFBSU8sTUFBTSxDQUFDQyxLQUFLLENBQUNGLEdBQUcsQ0FBQyxFQUFFLE9BQU9GLE1BQU0sQ0FBQ0osS0FBSyxDQUFDO1FBQzNDLE9BQU9NLEdBQUcsQ0FBQ0csY0FBYyxDQUFBLENBQUU7TUFDN0I7SUFDQSxLQUFLLFFBQVE7SUFDYixLQUFLLE9BQU87SUFDWixLQUFLLEtBQUs7TUFBRTtRQUNWLElBQUksQ0FBQ1IsS0FBSyxDQUFDUyxTQUFTLEVBQUUsT0FBT04sTUFBTSxDQUFDSixLQUFLLENBQUM7UUFDMUMsSUFBTVcsT0FBTyxHQUFHbEIsa0JBQWtCLENBQUNRLEtBQUssQ0FBQ1MsU0FBUyxDQUFDO1FBQ25ELElBQU1FLEtBQUssR0FBR0QsT0FBTyxDQUFDRSxJQUFJLENBQUMsVUFBQ0MsQ0FBQztVQUFBLE9BQUtWLE1BQU0sQ0FBQ1UsQ0FBQyxDQUFDZCxLQUFLLENBQUMsS0FBS0ksTUFBTSxDQUFDSixLQUFLLENBQUM7UUFBQSxFQUFDO1FBQ3BFLE9BQU9ZLEtBQUssR0FBR0EsS0FBSyxDQUFDRyxLQUFLLEdBQUdYLE1BQU0sQ0FBQ0osS0FBSyxDQUFDO01BQzVDO0lBQ0EsS0FBSyxNQUFNO01BQ1QsT0FBT0EsS0FBSyxZQUFZZ0IsSUFBSSxHQUFHdEIsbUJBQW1CLENBQUNNLEtBQUssRUFBRUwsV0FBVyxDQUFDLEdBQUdTLE1BQU0sQ0FBQ0osS0FBSyxDQUFDO0lBQ3hGLEtBQUssVUFBVTtNQUNiLE9BQU9BLEtBQUssWUFBWWdCLElBQUksR0FBR3RCLG1CQUFtQixDQUFDTSxLQUFLLEVBQUVKLGdCQUFnQixDQUFDLEdBQUdRLE1BQU0sQ0FBQ0osS0FBSyxDQUFDO0lBQzdGLEtBQUssTUFBTTtJQUNYO01BQ0UsT0FBT0ksTUFBTSxDQUFDSixLQUFLLENBQUM7RUFDeEI7QUFDRjtBQWNBLElBQU1pQixpQkFBaUIsR0FBMkIsU0FBNUNBLGlCQUFpQkEsQ0FBQUMsSUFBQSxFQU9sQjtFQUFBLElBTkhDLElBQUksR0FBQUQsSUFBQSxDQUFKQyxJQUFJO0lBQ0pwQixTQUFTLEdBQUFtQixJQUFBLENBQVRuQixTQUFTO0lBQ1RXLFNBQVMsR0FBQVEsSUFBQSxDQUFUUixTQUFTO0lBQ1RVLFlBQVksR0FBQUYsSUFBQSxDQUFaRSxZQUFZO0lBQ1pDLGNBQWMsR0FBQUgsSUFBQSxDQUFkRyxjQUFjO0lBQ2RDLFNBQVMsR0FBQUosSUFBQSxDQUFUSSxTQUFTO0VBRVQsSUFBTUMsS0FBSyxHQUFHbkMsZUFBZSxDQUFBLENBQUU7RUFDL0I7RUFDQTtFQUNBLElBQUFvQyxpQkFBQSxHQUF5Qm5DLGdCQUFnQixDQUN2Q2tDLEtBQUssRUFDTCxVQUFDRSxLQUFLO01BQUEsT0FBNkMsQ0FDakROLElBQUksR0FBRzVCLFlBQVksQ0FBQ2tDLEtBQUssQ0FBQ0MsTUFBTSxFQUFFUCxJQUFJLENBQUMsR0FBR2pCLFNBQVMsRUFDbkRtQixjQUFjLEdBQUdJLEtBQUssQ0FBQ0MsTUFBTSxHQUFHeEIsU0FBUyxDQUMxQztJQUFBLEdBQ0RaLGtCQUFrQixDQUNuQjtJQUFBcUMsa0JBQUEsR0FBQUMsY0FBQSxDQUFBSixpQkFBQTtJQVBNSyxHQUFHLEdBQUFGLGtCQUFBO0lBQUVHLFNBQVMsR0FBQUgsa0JBQUE7RUFRckIsSUFBTTNCLEtBQUssR0FBR29CLFlBQVksSUFBSUQsSUFBSSxHQUFHQyxZQUFZLENBQUNTLEdBQUcsRUFBRVYsSUFBSSxDQUFDLEdBQUdVLEdBQUc7RUFFbEUsSUFBSVIsY0FBYyxFQUFFO0lBQ2xCLElBQU1VLElBQUksR0FBR1YsY0FBYyxDQUFDckIsS0FBSyxFQUFFOEIsU0FBUyxLQUFBLElBQUEsSUFBVEEsU0FBUyxLQUFBLEtBQUEsQ0FBQSxHQUFUQSxTQUFTLEdBQUlQLEtBQUssQ0FBQ1MsUUFBUSxDQUFBLENBQUUsQ0FBQ04sTUFBTSxDQUFDO0lBQ3hFLE9BQU8vRCxJQUFBLENBQUEsTUFBQSxFQUFBO01BQUFzRSxRQUFBLEVBQU9GLElBQUksS0FBQSxJQUFBLElBQUpBLElBQUksS0FBQSxLQUFBLENBQUEsR0FBSkEsSUFBSSxHQUFJVDtJQUFTLENBQUEsQ0FBUTtFQUN6QztFQUVBLElBQUl0QixLQUFLLEtBQUssSUFBSSxJQUFJQSxLQUFLLEtBQUtFLFNBQVMsSUFBSUYsS0FBSyxLQUFLLEVBQUUsRUFBRTtJQUN6RCxPQUFPckMsSUFBQSxDQUFBLE1BQUEsRUFBQTtNQUFBc0UsUUFBQSxFQUFPWDtJQUFTLENBQUEsQ0FBUTtFQUNqQztFQUVBLElBQU1ZLFFBQVEsR0FBR3BDLGlCQUFpQixDQUFDQyxTQUFTLEVBQUVDLEtBQUssRUFBRTtJQUFFVSxTQUFTLEVBQVRBO0VBQVMsQ0FBRSxDQUFDO0VBQ25FLE9BQU8vQyxJQUFBLENBQUEsTUFBQSxFQUFBO0lBQUFzRSxRQUFBLEVBQU9DLFFBQVEsS0FBQSxJQUFBLElBQVJBLFFBQVEsS0FBQSxLQUFBLENBQUEsR0FBUkEsUUFBUSxHQUFJWjtFQUFTLENBQUEsQ0FBUTtBQUM3QyxDQUFDO0FBRURMLGlCQUFpQixDQUFDa0IsV0FBVyxHQUFHLHFCQUFxQjtBQUNyRCxJQUFNQyxhQUFhLGdCQUFHckUsSUFBSSxDQUFDa0QsaUJBQWlCLENBQUM7QUFhN0MsSUFBTW9CLHFCQUFxQixHQUErQixTQUFwREEscUJBQXFCQSxDQUFBQyxLQUFBLEVBS3RCO0VBQUEsSUFKSG5CLElBQUksR0FBQW1CLEtBQUEsQ0FBSm5CLElBQUk7SUFDSkMsWUFBWSxHQUFBa0IsS0FBQSxDQUFabEIsWUFBWTtJQUFBbUIsbUJBQUEsR0FBQUQsS0FBQSxDQUNaRSxhQUFhO0lBQWJBLGFBQWEsR0FBQUQsbUJBQUEsY0FBRyxPQUFPLEdBQUFBLG1CQUFBO0lBQ3ZCTixRQUFRLEdBQUFLLEtBQUEsQ0FBUkwsUUFBUTtFQUVSLElBQU1WLEtBQUssR0FBR25DLGVBQWUsQ0FBQSxDQUFFO0VBQy9CLElBQU15QyxHQUFHLEdBQUd4QyxnQkFBZ0IsQ0FBQ2tDLEtBQUssRUFBRSxVQUFDRSxLQUFLO0lBQUEsT0FBS2xDLFlBQVksQ0FBQ2tDLEtBQUssQ0FBQ0MsTUFBTSxFQUFFUCxJQUFJLENBQUM7RUFBQSxFQUFDO0VBQ2hGLElBQU1zQixTQUFTLEdBQUdyQixZQUFZLEdBQUdBLFlBQVksQ0FBQ1MsR0FBRyxFQUFFVixJQUFJLENBQUMsR0FBR1UsR0FBRztFQUM5RCxvQkFBTy9ELEtBQUssQ0FBQzRFLFlBQVksQ0FBQ1QsUUFBUSxFQUFBVSxlQUFBLEtBQUtILGFBQWEsRUFBR0MsU0FBUyxDQUF5QixDQUFDO0FBQzVGLENBQUM7QUFFREoscUJBQXFCLENBQUNGLFdBQVcsR0FBRyx5QkFBeUI7QUFDN0QsSUFBTVMsaUJBQWlCLGdCQUFHN0UsSUFBSSxDQUFDc0UscUJBQXFCLENBQUM7QUFFckQ7QUFDQTtBQUNBO0FBQ0EsSUFBTVEsZUFBZSxHQUF5QixTQUF4Q0EsZUFBZUEsQ0FBMEI1QyxLQUFLLEVBQUk7RUQvRHBELElBQUk2QyxFQUFFO0VDZ0VSO0VBQ0E7RUFDQSxJQUFNQyxHQUFHLEdBQUc1RCxnQkFBZ0IsQ0FBQSxDQUFFO0VBRTlCO0VBQ0E7RUFDQTtFQUNBLElBQUk2RCxXQUFXLEdBQUcvQyxLQUFLO0VBQ3ZCLElBQUk4QyxHQUFHLENBQUNFLGFBQWEsRUFBRTtJQUNyQixJQUFNQyxNQUFNLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUE2QkwsR0FBRyxDQUFDRSxhQUFhLENBQUU7SUFDNUQsU0FBQUksRUFBQSxNQUFBQyxZQUFBLEdBQWtCSCxNQUFNLENBQUNJLElBQUksQ0FBQ3RELEtBQUssQ0FBQyxFQUFBb0QsRUFBQSxHQUFBQyxZQUFBLENBQUFqRCxNQUFBLEVBQUFnRCxFQUFBLElBQUU7TUFBakMsSUFBTUcsR0FBRyxHQUFBRixZQUFBLENBQUFELEVBQUE7TUFDWixJQUFNckQsS0FBSyxHQUFJQyxLQUE2QixDQUFDdUQsR0FBRyxDQUFDO01BQ2pELElBQUl4RCxLQUFLLEtBQUtFLFNBQVMsRUFBRWdELE1BQU0sQ0FBQ00sR0FBRyxDQUFDLEdBQUd4RCxLQUFLO0lBQzlDO0lBQ0FnRCxXQUFXLEdBQUdFLE1BQTBCO0VBQzFDO0VBRUEsSUFBQU8sWUFBQSxHQXNCSVQsV0FBVztJQXJCYmYsUUFBUSxHQUFBd0IsWUFBQSxDQUFSeEIsUUFBUTtJQUNSZCxJQUFJLEdBQUFzQyxZQUFBLENBQUp0QyxJQUFJO0lBQ0pKLEtBQUssR0FBQTBDLFlBQUEsQ0FBTDFDLEtBQUs7SUFDTDJDLFdBQVcsR0FBQUQsWUFBQSxDQUFYQyxXQUFXO0lBQ1hDLEtBQUssR0FBQUYsWUFBQSxDQUFMRSxLQUFLO0lBQ0xDLFFBQVEsR0FBQUgsWUFBQSxDQUFSRyxRQUFRO0lBQ1JDLGNBQWMsR0FBQUosWUFBQSxDQUFkSSxjQUFjO0lBQUFDLHFCQUFBLEdBQUFMLFlBQUEsQ0FDZE0sU0FBUztJQUFUQSxTQUFTLEdBQUFELHFCQUFBLGNBQUcsRUFBRSxHQUFBQSxxQkFBQTtJQUFBRSxxQkFBQSxHQUFBUCxZQUFBLENBQ2RRLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxxQkFBQSxjQUFHLFdBQVcsR0FBQUEscUJBQUE7SUFDdkJFLE1BQU0sR0FBQVQsWUFBQSxDQUFOUyxNQUFNO0lBQ05DLFNBQVMsR0FBQVYsWUFBQSxDQUFUVSxTQUFTO0lBQ1QvQyxZQUFZLEdBQUFxQyxZQUFBLENBQVpyQyxZQUFZO0lBQ1pyQixTQUFTLEdBQUEwRCxZQUFBLENBQVQxRCxTQUFTO0lBQ1RzQixjQUFjLEdBQUFvQyxZQUFBLENBQWRwQyxjQUFjO0lBQ2QrQyxRQUFRLEdBQUFYLFlBQUEsQ0FBUlcsUUFBUTtJQUNGQyxRQUFRLEdBQUFaLFlBQUEsQ0FBZGEsSUFBSTtJQUFBQyxxQkFBQSxHQUFBZCxZQUFBLENBQ0puQyxTQUFTO0lBQVRBLFNBQVMsR0FBQWlELHFCQUFBLGNBQUcxRSxrQkFBa0IsR0FBQTBFLHFCQUFBO0lBQzlCN0QsU0FBUyxHQUFBK0MsWUFBQSxDQUFUL0MsU0FBUztJQUNUOEIsYUFBYSxHQUFBaUIsWUFBQSxDQUFiakIsYUFBYTtJQUNiZ0MsZ0JBQWdCLEdBQUFmLFlBQUEsQ0FBaEJlLGdCQUFnQjtJQUNoQkMsZUFBZSxHQUFBaEIsWUFBQSxDQUFmZ0IsZUFBZTtFQUdqQixJQUFNQyxVQUFVLEdBQUdMLFFBQVEsS0FBQSxJQUFBLElBQVJBLFFBQVEsS0FBQSxLQUFBLENBQUEsR0FBUkEsUUFBUSxHQUFJdEIsR0FBRyxDQUFDdUIsSUFBSTtFQUN2QyxJQUFNSyxVQUFVLEdBQUdELFVBQVUsS0FBSyxNQUFNO0VBRXhDLElBQUFFLFlBQUEsR0FNSXBHLFdBQVcsQ0FBQztNQUNkMkMsSUFBSSxFQUFKQSxJQUFJO01BQ0p3QyxLQUFLLEVBQUxBLEtBQUs7TUFDTEUsY0FBYyxFQUFkQSxjQUFjO01BQ2RyQixhQUFhLEVBQWJBLGFBQWE7TUFDYmdDLGdCQUFnQixFQUFoQkEsZ0JBQWdCO01BQ2hCQyxlQUFlLEVBQWZBO0lEN0ZBLENDOEZELENBQUM7SUFaQUksVUFBVSxHQUFBRCxZQUFBLENBQVZDLFVBQVU7SUFDVkMsWUFBWSxHQUFBRixZQUFBLENBQVpFLFlBQVk7SUFDWkMsSUFBSSxHQUFBSCxZQUFBLENBQUpHLElBQUk7SUFDSkMsVUFBVSxHQUFBSixZQUFBLENBQVZJLFVBQVU7SUFDVkMsV0FBVyxHQUFBTCxZQUFBLENBQVhLLFdBQVc7RUFVYjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsZUFBZSxHQUFHakgsTUFBTSxDQUF1RCxJQUFJLENBQUM7RUFDMUYsSUFBTWtILGVBQWUsR0FBR2xILE1BQU0sQ0FBdUQsSUFBSSxDQUFDO0VBRTFGLElBQU1tSCxhQUFhLEdBQUdGLGVBQWUsQ0FBQ0csT0FBTztFQUM3QyxJQUFJRCxhQUFhLEtBQUtBLGFBQWEsQ0FBQ2pFLElBQUksS0FBS0EsSUFBSSxJQUFJLENBQUNnRCxTQUFTLENBQUMsRUFBRTtJQUNoRXBCLEdBQUcsQ0FBQ3VDLG1CQUFtQixDQUFDRixhQUFhLENBQUNqRSxJQUFJLEVBQUVpRSxhQUFhLENBQUNHLEVBQUUsQ0FBQztJQUM3REwsZUFBZSxDQUFDRyxPQUFPLEdBQUcsSUFBSTtFQUNoQztFQUNBLElBQUlsRSxJQUFJLElBQUlnRCxTQUFTLEVBQUU7SUFDckJwQixHQUFHLENBQUN5QyxpQkFBaUIsQ0FBQ3JFLElBQUksRUFBRWdELFNBQVMsQ0FBQztJQUN0Q2UsZUFBZSxDQUFDRyxPQUFPLEdBQUc7TUFBRWxFLElBQUksRUFBSkEsSUFBSTtNQUFFb0UsRUFBRSxFQUFFcEI7SUFBUyxDQUFFO0VBQ25EO0VBRUEsSUFBTXNCLGFBQWEsR0FBR04sZUFBZSxDQUFDRSxPQUFPO0VBQzdDLElBQUlJLGFBQWEsS0FBS0EsYUFBYSxDQUFDdEUsSUFBSSxLQUFLQSxJQUFJLElBQUksQ0FBQ3BCLFNBQVMsQ0FBQyxFQUFFO0lBQ2hFZ0QsR0FBRyxDQUFDMkMsbUJBQW1CLENBQUNELGFBQWEsQ0FBQ3RFLElBQUksRUFBRXNFLGFBQWEsQ0FBQzFGLFNBQVMsQ0FBQztJQUNwRW9GLGVBQWUsQ0FBQ0UsT0FBTyxHQUFHLElBQUk7RUFDaEM7RUFDQSxJQUFJbEUsSUFBSSxJQUFJcEIsU0FBUyxFQUFFO0lBQ3JCZ0QsR0FBRyxDQUFDNEMsaUJBQWlCLENBQUN4RSxJQUFJLEVBQUVwQixTQUFTLENBQUM7SUFDdENvRixlQUFlLENBQUNFLE9BQU8sR0FBRztNQUFFbEUsSUFBSSxFQUFKQSxJQUFJO01BQUVwQixTQUFTLEVBQVRBO0lBQVMsQ0FBRTtFQUMvQztFQUVBL0IsU0FBUyxDQUFDLFlBQUs7SUFDYjtJQUNBO0lBQ0E7SUFDQTtJQUNBLElBQU00SCxZQUFZLEdBQUdWLGVBQWUsQ0FBQ0csT0FBTztJQUM1QyxJQUFJTyxZQUFZLEVBQUU3QyxHQUFHLENBQUN5QyxpQkFBaUIsQ0FBQ0ksWUFBWSxDQUFDekUsSUFBSSxFQUFFeUUsWUFBWSxDQUFDTCxFQUFFLENBQUM7SUFDM0UsSUFBTU0sWUFBWSxHQUFHVixlQUFlLENBQUNFLE9BQU87SUFDNUMsSUFBSVEsWUFBWSxFQUFFOUMsR0FBRyxDQUFDNEMsaUJBQWlCLENBQUNFLFlBQVksQ0FBQzFFLElBQUksRUFBRTBFLFlBQVksQ0FBQzlGLFNBQVMsQ0FBQztJQUNsRixPQUFPLFlBQUs7TUFDVixJQUFNK0YsQ0FBQyxHQUFHWixlQUFlLENBQUNHLE9BQU87TUFDakMsSUFBSVMsQ0FBQyxFQUFFL0MsR0FBRyxDQUFDdUMsbUJBQW1CLENBQUNRLENBQUMsQ0FBQzNFLElBQUksRUFBRTJFLENBQUMsQ0FBQ1AsRUFBRSxDQUFDO01BQzVDLElBQU1RLENBQUMsR0FBR1osZUFBZSxDQUFDRSxPQUFPO01BQ2pDLElBQUlVLENBQUMsRUFBRWhELEdBQUcsQ0FBQzJDLG1CQUFtQixDQUFDSyxDQUFDLENBQUM1RSxJQUFJLEVBQUU0RSxDQUFDLENBQUNoRyxTQUFTLENBQUM7SUFDckQsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDb0IsSUFBSSxFQUFFNEIsR0FBRyxDQUFDeUMsaUJBQWlCLEVBQUV6QyxHQUFHLENBQUN1QyxtQkFBbUIsRUFBRXZDLEdBQUcsQ0FBQzRDLGlCQUFpQixFQUFFNUMsR0FBRyxDQUFDMkMsbUJBQW1CLENBQUMsQ0FBQztFQUUxRyxJQUFJeEIsTUFBTSxFQUFFLE9BQU8sSUFBSTtFQUV2QixJQUFJOEIsWUFBdUI7RUFDM0IsSUFBSXJCLFVBQVUsRUFBRTtJQUNkcUIsWUFBWSxHQUNWckksSUFBQSxDQUFDeUUsYUFBYSxFQUFBO01BQ1pqQixJQUFJLEVBQUVBLElBQUk7TUFDVnBCLFNBQVMsRUFBRUEsU0FBUztNQUNwQlcsU0FBUyxFQUFFQSxTQUFTO01BQ3BCVSxZQUFZLEVBQUVBLFlBQVk7TUFDMUJDLGNBQWMsRUFBRUEsY0FBYztNQUM5QkMsU0FBUyxFQUFFQTtJQUFTLENBQUEsQ0FFdkI7RUFDSCxDQUFDLE1BQU07SUFDTDtJQUNBO0lBQ0EsSUFBTTJFLFFBQVEsR0FBR2hCLFdBQVcsQ0FBQ2hELFFBQVEsQ0FBQztJQUN0QyxJQUFJYixZQUFZLElBQUlELElBQUksaUJBQUlyRCxLQUFLLENBQUNvSSxjQUFjLENBQUNELFFBQVEsQ0FBQyxFQUFFO01BQzFERCxZQUFZLEdBQ1ZySSxJQUFBLENBQUNpRixpQkFBaUIsRUFBQTtRQUFDekIsSUFBSSxFQUFFQSxJQUFJO1FBQUVDLFlBQVksRUFBRUEsWUFBWTtRQUFFb0IsYUFBYSxFQUFFQSxhQUFhO1FBQUFQLFFBQUEsRUFDcEZnRTtNQUE4QixDQUFBLENBRWxDO0lBQ0gsQ0FBQyxNQUFNO01BQ0xELFlBQVksR0FBR0MsUUFBUTtJQUN6QjtFQUNGO0VBRUEsSUFBTUUsT0FBTyxHQUFHN0gsVUFBVSxDQUFDMkYsU0FBUyxDQUFDO0VBRXJDO0VBQ0E7RUFDQSxJQUFNbUMsT0FBTyxHQUFHLENBQUF0RCxFQUFBLEdBQUFDLEdBQUcsQ0FBQ3NELE1BQU0sTUFBQSxJQUFBLElBQUF2RCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRXNELE9BQU87RUFDbkMsSUFBTUUsUUFBUSxHQUNaRixPQUFPLEtBQUtsRyxTQUFTLEdBQ2pCO0lBQUVxRyxZQUFZLEVBQUUsT0FBT0gsT0FBTyxLQUFLLFFBQVEsTUFBQUksTUFBQSxDQUFNSixPQUFPLFVBQU9BO0VBQU8sQ0FBRSxHQUN4RWxHLFNBQVM7RUFFZixJQUFNdUcsS0FBSyxHQUNUNUksS0FBQSxDQUFBLEtBQUEsRUFBQTtJQUNFa0csU0FBUyxFQUFFb0MsT0FBTyxDQUNoQmpHLFNBQVMsRUFDVDNCLE9BQU8sQ0FBQzRILE9BQU8sQ0FBQ3BCLElBQUksQ0FBQyxFQUFFaEIsU0FBUyxDQUFDLENBQ2xDO0lBQ0QyQyxLQUFLLEVBQUVKLFFBQVE7SUFBQXJFLFFBQUEsRUFBQSxDQUVkbEIsS0FBSyxJQUNKbEQsS0FBQSxDQUFBLEtBQUEsRUFBQTtNQUNFa0csU0FBUyxFQUFFb0MsT0FBTyxDQUNoQixlQUFlLEVBQ2Y1SCxPQUFPLENBQ0w0SCxPQUFPLENBQUMsd0JBQXdCLENBQUMsRUFDakNuQixVQUFVLElBQUltQixPQUFPLGtCQUFBSyxNQUFBLENBQWtCeEIsVUFBVSxDQUFFLENBQUMsQ0FDckQsQ0FDRjtNQUFBL0MsUUFBQSxFQUFBLENBRUR0RSxJQUFBLENBQUNTLGVBQWUsRUFBQTtRQUNkdUksRUFBRSxFQUFDLE9BQU87UUFDVjVCLElBQUksRUFBRTdGLGdCQUFnQixDQUFDNkYsSUFBSSxDQUFDO1FBQzVCNkIsS0FBSyxFQUFFM0gsZ0JBQWdCO1FBQ3ZCOEUsU0FBUyxFQUFFb0MsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUFBbEUsUUFBQSxFQUUxQmxCO01BQUssQ0FBQSxDQUNVLEVBQ2pCMkMsV0FBVyxJQUNWL0YsSUFBQSxDQUFDUSxjQUFjLEVBQUE7UUFDYndJLEVBQUUsRUFBQyxLQUFLO1FBQ1I1QyxTQUFTLEVBQUVvQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ2pDcEIsSUFBSSxFQUFFakcscUJBQXFCO1FBQzNCOEgsS0FBSyxFQUFFL0gsc0JBQXNCO1FBQUFvRCxRQUFBLEVBRTVCeUI7TUFBVyxDQUFBLENBRWY7SUFBQSxDQUFBLENBRUosRUFFRDdGLEtBQUEsQ0FBQSxLQUFBLEVBQUE7TUFBS2tHLFNBQVMsRUFBRW9DLE9BQU8sQ0FBQyxTQUFTLENBQUM7TUFBQWxFLFFBQUEsRUFBQSxDQUMvQitELFlBQVksRUFFWm5CLFVBQVUsSUFDVGxILElBQUEsQ0FBQ1EsY0FBYyxFQUFBO1FBQ2J3SSxFQUFFLEVBQUMsS0FBSztRQUNSNUMsU0FBUyxFQUFFb0MsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMzQnBCLElBQUksRUFBRXJHLGVBQWU7UUFDckJrSSxLQUFLLEVBQUVuSSxnQkFBZ0I7UUFBQXdELFFBQUEsRUFFdEI0QztNQUFVLENBQUEsQ0FFZCxFQUVBLENBQUNBLFVBQVUsSUFBSUMsWUFBWSxJQUMxQm5ILElBQUEsQ0FBQ1EsY0FBYyxFQUFBO1FBQ2J3SSxFQUFFLEVBQUMsS0FBSztRQUNSNUMsU0FBUyxFQUFFb0MsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUM3QnBCLElBQUksRUFBRW5HLGlCQUFpQjtRQUN2QmdJLEtBQUssRUFBRWpJLGtCQUFrQjtRQUFBc0QsUUFBQSxFQUV4QjZDO01BQVksQ0FBQSxDQUVoQixFQUVBLENBQUNELFVBQVUsSUFBSSxDQUFDQyxZQUFZLElBQUlsQixRQUFRLElBQ3ZDakcsSUFBQSxDQUFDUSxjQUFjLEVBQUE7UUFDYndJLEVBQUUsRUFBQyxLQUFLO1FBQ1I1QyxTQUFTLEVBQUVvQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQzlCcEIsSUFBSSxFQUFFL0Ysa0JBQWtCO1FBQ3hCNEgsS0FBSyxFQUFFN0gsbUJBQW1CO1FBQUFrRCxRQUFBLEVBRXpCMkI7TUFBUSxDQUFBLENBRVo7SUFBQSxDQUFBLENBQ0c7RUFBQSxDQUFBLENBRVQ7RUFFRCxJQUFJYixHQUFHLENBQUM4RCxJQUFJLEVBQUU7SUFDWixJQUFNM0QsT0FBTSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsQ0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQVFMLEdBQUcsQ0FBQ3FCLFFBQVEsQ0FBQSxFQUFLQSxRQUFRLENBQUU7SUFDL0MsSUFBQTBDLFlBQUEsR0FBZ0Q1RCxPQUFNLENBQTlDNkQsSUFBSTtNQUFKQSxJQUFJLEdBQUFELFlBQUEsY0FBR3RILGdCQUFnQixHQUFBc0gsWUFBQTtNQUFFRSxFQUFFLEdBQWE5RCxPQUFNLENBQXJCOEQsRUFBRTtNQUFFQyxFQUFFLEdBQVMvRCxPQUFNLENBQWpCK0QsRUFBRTtNQUFFQyxFQUFFLEdBQUtoRSxPQUFNLENBQWJnRSxFQUFFO0lBQzNDLE9BQU92SixJQUFBLENBQUNPLEdBQUcsRUFBQTtNQUFDNkksSUFBSSxFQUFFQSxJQUFJO01BQUVDLEVBQUUsRUFBRUEsRUFBRTtNQUFFQyxFQUFFLEVBQUVBLEVBQUU7TUFBRUMsRUFBRSxFQUFFQSxFQUFFO01BQUFqRixRQUFBLEVBQUd3RTtJQUFLLENBQUEsQ0FBTztFQUMvRDtFQUVBLE9BQU9BLEtBQUs7QUFDZCxDQUFDO0FBRUQ1RCxlQUFlLENBQUNWLFdBQVcsR0FBRyxhQUFhO0FBWTNDLE9BQU8sSUFBTWdGLFdBQVcsZ0JBQUdwSixJQUFJLENBQUM4RSxlQUFlLENBQWdDO0FBRS9FLGVBQWVzRSxXQUFXIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb2wgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdXNlRm9ybUl0ZW0gfSBmcm9tICcuL2NvcmUvdXNlRm9ybUl0ZW0nO1xuaW1wb3J0IHsgRk9STV9FUlJPUl9DT0xPUiwgRk9STV9FUlJPUl9TSVpFLCBGT1JNX1dBUk5JTkdfQ09MT1IsIEZPUk1fV0FSTklOR19TSVpFLCBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SLCBGT1JNX0RFU0NSSVBUSU9OX1NJWkUsIEZPUk1fRkVFREJBQ0tfQ09MT1IsIEZPUk1fRkVFREJBQ0tfU0laRSwgRk9STV9MQUJFTF9DT0xPUiwgRk9STV9MQUJFTF9TSVpFUywgfSBmcm9tICcuL2NvcmUvY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZVByb0Zvcm1TdGFibGUsIHVzZVByb0Zvcm1TdG9yZSB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyB1c2VTdG9yZVNlbGVjdG9yLCBzaGFsbG93RXF1YWxBcnJheXMgfSBmcm9tICcuL2NvcmUvZm9ybVN0b3JlJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgREVGQVVMVF9DT0xfU1BBTiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHZhbHVlRW51bVRvT3B0aW9ucywgZm9ybWF0RGF0ZUJ5UGF0dGVybiwgREFURV9GT1JNQVQsIERBVEVfVElNRV9GT1JNQVQgfSBmcm9tICcuL3V0aWxzJztcbmNvbnN0IEVNUFRZX1RFWFRfREVGQVVMVCA9ICctJztcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVhZC1tb2RlIHJlbmRlcmluZyBmb3IgZWFjaCBzdXBwb3J0ZWQgdmFsdWVUeXBlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHJlbmRlckJ5VmFsdWVUeXBlKHZhbHVlVHlwZSwgdmFsdWUsIHByb3BzKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBzd2l0Y2ggKHZhbHVlVHlwZSkge1xuICAgICAgICBjYXNlICdwYXNzd29yZCc6XG4gICAgICAgICAgICByZXR1cm4gJyonLnJlcGVhdChTdHJpbmcodmFsdWUpLmxlbmd0aCk7XG4gICAgICAgIGNhc2UgJ3N3aXRjaCc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPyAnT24nIDogJ09mZic7XG4gICAgICAgIGNhc2UgJ2RpZ2l0Jzoge1xuICAgICAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVtKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiBudW0udG9Mb2NhbGVTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICBjYXNlICdyYWRpbyc6XG4gICAgICAgIGNhc2UgJ3RhZyc6IHtcbiAgICAgICAgICAgIGlmICghcHJvcHMudmFsdWVFbnVtKVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHZhbHVlRW51bVRvT3B0aW9ucyhwcm9wcy52YWx1ZUVudW0pO1xuICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBvcHRpb25zLmZpbmQoKG8pID0+IFN0cmluZyhvLnZhbHVlKSA9PT0gU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaC5sYWJlbCA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gZm9ybWF0RGF0ZUJ5UGF0dGVybih2YWx1ZSwgREFURV9GT1JNQVQpIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgY2FzZSAnZGF0ZVRpbWUnOlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IGZvcm1hdERhdGVCeVBhdHRlcm4odmFsdWUsIERBVEVfVElNRV9GT1JNQVQpIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICB9XG59XG5jb25zdCBSZWFkb25seUNoaWxkQmFzZSA9ICh7IG5hbWUsIHZhbHVlVHlwZSwgdmFsdWVFbnVtLCBjb252ZXJ0VmFsdWUsIHJlYWRvbmx5UmVuZGVyLCBlbXB0eVRleHQsIH0pID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIC8vIFN1YnNjcmliZSBwZXItZmllbGQ7IG9ubHkgYSBjdXN0b20gcmVhZG9ubHlSZW5kZXIgKHdoaWNoIHJlY2VpdmVzIEFMTFxuICAgIC8vIHZhbHVlcykgbmVlZHMgdG8gdHJhY2sgdGhlIHdob2xlIHZhbHVlcyBvYmplY3QuXG4gICAgY29uc3QgW3JhdywgYWxsVmFsdWVzXSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gW1xuICAgICAgICBuYW1lID8gcmVzb2x2ZVZhbHVlKHN0YXRlLnZhbHVlcywgbmFtZSkgOiB1bmRlZmluZWQsXG4gICAgICAgIHJlYWRvbmx5UmVuZGVyID8gc3RhdGUudmFsdWVzIDogdW5kZWZpbmVkLFxuICAgIF0sIHNoYWxsb3dFcXVhbEFycmF5cyk7XG4gICAgY29uc3QgdmFsdWUgPSBjb252ZXJ0VmFsdWUgJiYgbmFtZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIGlmIChyZWFkb25seVJlbmRlcikge1xuICAgICAgICBjb25zdCBub2RlID0gcmVhZG9ubHlSZW5kZXIodmFsdWUsIGFsbFZhbHVlcyAhPT0gbnVsbCAmJiBhbGxWYWx1ZXMgIT09IHZvaWQgMCA/IGFsbFZhbHVlcyA6IHN0b3JlLmdldFN0YXRlKCkudmFsdWVzKTtcbiAgICAgICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IG5vZGUgIT09IG51bGwgJiYgbm9kZSAhPT0gdm9pZCAwID8gbm9kZSA6IGVtcHR5VGV4dCB9KTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiBlbXB0eVRleHQgfSk7XG4gICAgfVxuICAgIGNvbnN0IHJlbmRlcmVkID0gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgeyB2YWx1ZUVudW0gfSk7XG4gICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IHJlbmRlcmVkICE9PSBudWxsICYmIHJlbmRlcmVkICE9PSB2b2lkIDAgPyByZW5kZXJlZCA6IGVtcHR5VGV4dCB9KTtcbn07XG5SZWFkb25seUNoaWxkQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbVJlYWRvbmx5JztcbmNvbnN0IFJlYWRvbmx5Q2hpbGQgPSBtZW1vKFJlYWRvbmx5Q2hpbGRCYXNlKTtcbmNvbnN0IENvbnZlcnRWYWx1ZUNoaWxkQmFzZSA9ICh7IG5hbWUsIGNvbnZlcnRWYWx1ZSwgdmFsdWVQcm9wTmFtZSA9ICd2YWx1ZScsIGNoaWxkcmVuLCB9KSA9PiB7XG4gICAgY29uc3Qgc3RvcmUgPSB1c2VQcm9Gb3JtU3RvcmUoKTtcbiAgICBjb25zdCByYXcgPSB1c2VTdG9yZVNlbGVjdG9yKHN0b3JlLCAoc3RhdGUpID0+IHJlc29sdmVWYWx1ZShzdGF0ZS52YWx1ZXMsIG5hbWUpKTtcbiAgICBjb25zdCBjb252ZXJ0ZWQgPSBjb252ZXJ0VmFsdWUgPyBjb252ZXJ0VmFsdWUocmF3LCBuYW1lKSA6IHJhdztcbiAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuLCB7IFt2YWx1ZVByb3BOYW1lXTogY29udmVydGVkIH0pO1xufTtcbkNvbnZlcnRWYWx1ZUNoaWxkQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbUNvbnZlcnRWYWx1ZSc7XG5jb25zdCBDb252ZXJ0VmFsdWVDaGlsZCA9IG1lbW8oQ29udmVydFZhbHVlQ2hpbGRCYXNlKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJvRm9ybUl0ZW1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3QgUHJvRm9ybUl0ZW1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIC8vIFN0YWJsZSBzbGljZSBvbmx5IOKAlCB2YWx1ZS9lcnJvciByZWFjdGl2aXR5IGxpdmVzIGluIHVzZUZvcm1JdGVtJ3NcbiAgICAvLyBwZXItZmllbGQgc3Vic2NyaXB0aW9uLCBzbyB0aGlzIHNoZWxsIG5ldmVyIHJlLXJlbmRlcnMgZm9yIHNpYmxpbmdzLlxuICAgIGNvbnN0IGN0eCA9IHVzZVByb0Zvcm1TdGFibGUoKTtcbiAgICAvLyBGb3JtLWxldmVsIGBmb3JtSXRlbVByb3BzYCBhY3QgYXMgREVGQVVMVFM7IHByb3BzIGV4cGxpY2l0bHkgc2V0IG9uIHRoZVxuICAgIC8vIGl0ZW0gd2luLiBKU1ggZnJlcXVlbnRseSBwYXNzZXMgYHVuZGVmaW5lZGAgZm9yIHVuc2V0IHByb3BzIChlLmcuIHRoZVxuICAgIC8vIGNyZWF0ZVByb0Zvcm1GaWVsZCBwYXNzLXRocm91Z2gpLCBzbyBvbmx5IGRlZmluZWQgdmFsdWVzIG1heSBvdmVycmlkZS5cbiAgICBsZXQgbWVyZ2VkUHJvcHMgPSBwcm9wcztcbiAgICBpZiAoY3R4LmZvcm1JdGVtUHJvcHMpIHtcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmFzc2lnbih7fSwgY3R4LmZvcm1JdGVtUHJvcHMpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwcm9wcykpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIG1lcmdlZFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgbWVyZ2VkUHJvcHMgPSBtZXJnZWQ7XG4gICAgfVxuICAgIGNvbnN0IHsgY2hpbGRyZW4sIG5hbWUsIGxhYmVsLCBkZXNjcmlwdGlvbiwgcnVsZXMsIGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1cywgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdmb3JtLWl0ZW0nLCBoaWRkZW4sIHRyYW5zZm9ybSwgY29udmVydFZhbHVlLCB2YWx1ZVR5cGUsIHJlYWRvbmx5UmVuZGVyLCBjb2xQcm9wcywgbW9kZTogbW9kZVByb3AsIGVtcHR5VGV4dCA9IEVNUFRZX1RFWFRfREVGQVVMVCwgdmFsdWVFbnVtLCB2YWx1ZVByb3BOYW1lLCB2YWxpZGF0ZURlYm91bmNlLCB2YWxpZGF0ZVRyaWdnZXIsIH0gPSBtZXJnZWRQcm9wcztcbiAgICBjb25zdCBtZXJnZWRNb2RlID0gbW9kZVByb3AgIT09IG51bGwgJiYgbW9kZVByb3AgIT09IHZvaWQgMCA/IG1vZGVQcm9wIDogY3R4Lm1vZGU7XG4gICAgY29uc3QgaXNSZWFkb25seSA9IG1lcmdlZE1vZGUgPT09ICdyZWFkJztcbiAgICBjb25zdCB7IGZpZWxkRXJyb3IsIGZpZWxkV2FybmluZywgc2l6ZSwgbGFiZWxBbGlnbiwgaW5qZWN0RmllbGQsIH0gPSB1c2VGb3JtSXRlbSh7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIHJ1bGVzLFxuICAgICAgICB2YWxpZGF0ZVN0YXR1cyxcbiAgICAgICAgdmFsdWVQcm9wTmFtZSxcbiAgICAgICAgdmFsaWRhdGVEZWJvdW5jZSxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgIH0pO1xuICAgIC8vIFJlZ2lzdGVyIHRyYW5zZm9ybSAvIHZhbHVlVHlwZSBEVVJJTkcgcmVuZGVyIChpZGVtcG90ZW50IHJlZiB3cml0ZXMsIGxpa2VcbiAgICAvLyByZWdpc3RlckZpZWxkKTogY29uc3VtZXJzIHJlbmRlcmVkIGxhdGVyIGluIHRoZSBzYW1lIHBhc3Mg4oCUIGUuZy4gYVxuICAgIC8vIERlcGVuZGVuY3kgcmVhZGluZyBmb3JtYXR0ZWQgdmFsdWVzIOKAlCBtdXN0IGFscmVhZHkgc2VlIHRoZW0uIEVmZmVjdHNcbiAgICAvLyB3b3VsZCByZWdpc3RlciB0b28gbGF0ZSAoYWZ0ZXIgdGhlIHdob2xlIHRyZWUgcmVuZGVyZWQpLlxuICAgIC8vXG4gICAgLy8gRWFjaCBpbnN0YW5jZSB0cmFja3MgdGhlIHtuYW1lLCB2YWx1ZX0gUEFJUiBpdCByZWdpc3RlcmVkLiBSZW1vdmFsIGlzXG4gICAgLy8gYWx3YXlzIHBlcmZvcm1lZCB3aXRoIHRoZSBwYWlyJ3Mgb3duIG5hbWUgQU5EIHZhbHVlOiBhbiBpdGVtIHdpdGhvdXQgYVxuICAgIC8vIHRyYW5zZm9ybSBuZXZlciB0b3VjaGVzIGEgc2FtZS1uYW1lIHNpYmxpbmcncyByZWdpc3RyYXRpb24sIGFuIHVubW91bnRcbiAgICAvLyBjbGVhbnVwIGNhbid0IHdpcGUgYSBzdWNjZXNzb3IncyAodmFsdWUtZ3VhcmRlZCksIGFuZCBhIE5BTUUgY2hhbmdlXG4gICAgLy8gcmVtb3ZlcyB0aGUgb2xkIG5hbWUncyBlbnRyeSB3aXRoIHRoZSBPTEQgdmFsdWUgYmVmb3JlIHRoZSByZWYgaXNcbiAgICAvLyBvdmVyd3JpdHRlbiAoYSBsaXZlIHNpbmdsZS12YWx1ZSByZWYgd291bGQgbGVhayBpdCkuXG4gICAgY29uc3Qgb3duVHJhbnNmb3JtUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IG93blZhbHVlVHlwZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmV2VHJhbnNmb3JtID0gb3duVHJhbnNmb3JtUmVmLmN1cnJlbnQ7XG4gICAgaWYgKHByZXZUcmFuc2Zvcm0gJiYgKHByZXZUcmFuc2Zvcm0ubmFtZSAhPT0gbmFtZSB8fCAhdHJhbnNmb3JtKSkge1xuICAgICAgICBjdHgudW5yZWdpc3RlclRyYW5zZm9ybShwcmV2VHJhbnNmb3JtLm5hbWUsIHByZXZUcmFuc2Zvcm0uZm4pO1xuICAgICAgICBvd25UcmFuc2Zvcm1SZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICAgIGlmIChuYW1lICYmIHRyYW5zZm9ybSkge1xuICAgICAgICBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0obmFtZSwgdHJhbnNmb3JtKTtcbiAgICAgICAgb3duVHJhbnNmb3JtUmVmLmN1cnJlbnQgPSB7IG5hbWUsIGZuOiB0cmFuc2Zvcm0gfTtcbiAgICB9XG4gICAgY29uc3QgcHJldlZhbHVlVHlwZSA9IG93blZhbHVlVHlwZVJlZi5jdXJyZW50O1xuICAgIGlmIChwcmV2VmFsdWVUeXBlICYmIChwcmV2VmFsdWVUeXBlLm5hbWUgIT09IG5hbWUgfHwgIXZhbHVlVHlwZSkpIHtcbiAgICAgICAgY3R4LnVucmVnaXN0ZXJWYWx1ZVR5cGUocHJldlZhbHVlVHlwZS5uYW1lLCBwcmV2VmFsdWVUeXBlLnZhbHVlVHlwZSk7XG4gICAgICAgIG93blZhbHVlVHlwZVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKG5hbWUgJiYgdmFsdWVUeXBlKSB7XG4gICAgICAgIGN0eC5yZWdpc3RlclZhbHVlVHlwZShuYW1lLCB2YWx1ZVR5cGUpO1xuICAgICAgICBvd25WYWx1ZVR5cGVSZWYuY3VycmVudCA9IHsgbmFtZSwgdmFsdWVUeXBlIH07XG4gICAgfVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIFJFLVJFR0lTVEVSIGluIHRoZSBib2R5OiBTdHJpY3RNb2RlJ3MgbW91bnTihpJjbGVhbnVw4oaScmUtcnVuIGN5Y2xlIGFuZFxuICAgICAgICAvLyBrZXllZCByZW1vdW50cyAob2xkIGluc3RhbmNlJ3MgY2xlYW51cCBydW5zIEFGVEVSIHRoZSBuZXcgcmVuZGVyXG4gICAgICAgIC8vIHJlZ2lzdGVyZWQpIGJvdGggZW5kIHdpdGggYSBjbGVhbnVwIGhhdmluZyBkZWxldGVkIHRoZSBlbnRyeSDigJQgdGhlXG4gICAgICAgIC8vIGVmZmVjdCBib2R5IG11c3QgcmVzdG9yZSB0aGUgbGF0ZXN0IHJlZ2lzdHJhdGlvbi5cbiAgICAgICAgY29uc3QgdHJhbnNmb3JtUmVnID0gb3duVHJhbnNmb3JtUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICh0cmFuc2Zvcm1SZWcpXG4gICAgICAgICAgICBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0odHJhbnNmb3JtUmVnLm5hbWUsIHRyYW5zZm9ybVJlZy5mbik7XG4gICAgICAgIGNvbnN0IHZhbHVlVHlwZVJlZyA9IG93blZhbHVlVHlwZVJlZi5jdXJyZW50O1xuICAgICAgICBpZiAodmFsdWVUeXBlUmVnKVxuICAgICAgICAgICAgY3R4LnJlZ2lzdGVyVmFsdWVUeXBlKHZhbHVlVHlwZVJlZy5uYW1lLCB2YWx1ZVR5cGVSZWcudmFsdWVUeXBlKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHQgPSBvd25UcmFuc2Zvcm1SZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmICh0KVxuICAgICAgICAgICAgICAgIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtKHQubmFtZSwgdC5mbik7XG4gICAgICAgICAgICBjb25zdCB2ID0gb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAodilcbiAgICAgICAgICAgICAgICBjdHgudW5yZWdpc3RlclZhbHVlVHlwZSh2Lm5hbWUsIHYudmFsdWVUeXBlKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbmFtZSwgY3R4LnJlZ2lzdGVyVHJhbnNmb3JtLCBjdHgudW5yZWdpc3RlclRyYW5zZm9ybSwgY3R4LnJlZ2lzdGVyVmFsdWVUeXBlLCBjdHgudW5yZWdpc3RlclZhbHVlVHlwZV0pO1xuICAgIGlmIChoaWRkZW4pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGxldCBjb250cm9sQ2hpbGQ7XG4gICAgaWYgKGlzUmVhZG9ubHkpIHtcbiAgICAgICAgY29udHJvbENoaWxkID0gKF9qc3goUmVhZG9ubHlDaGlsZCwgeyBuYW1lOiBuYW1lLCB2YWx1ZVR5cGU6IHZhbHVlVHlwZSwgdmFsdWVFbnVtOiB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZTogY29udmVydFZhbHVlLCByZWFkb25seVJlbmRlcjogcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dDogZW1wdHlUZXh0IH0pKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIC8vIEluamVjdCBmaXJzdCBzbyB0aGUgcmVhbCBmaWVsZCByZWNlaXZlcyB2YWx1ZS9vbkNoYW5nZS9vbkJsdXIsXG4gICAgICAgIC8vIHRoZW4gb3B0aW9uYWxseSB3cmFwIGluIENvbnZlcnRWYWx1ZUNoaWxkIHRvIG92ZXJyaWRlIHRoZSBkaXNwbGF5ZWQgdmFsdWUuXG4gICAgICAgIGNvbnN0IGluamVjdGVkID0gaW5qZWN0RmllbGQoY2hpbGRyZW4pO1xuICAgICAgICBpZiAoY29udmVydFZhbHVlICYmIG5hbWUgJiYgUmVhY3QuaXNWYWxpZEVsZW1lbnQoaW5qZWN0ZWQpKSB7XG4gICAgICAgICAgICBjb250cm9sQ2hpbGQgPSAoX2pzeChDb252ZXJ0VmFsdWVDaGlsZCwgeyBuYW1lOiBuYW1lLCBjb252ZXJ0VmFsdWU6IGNvbnZlcnRWYWx1ZSwgdmFsdWVQcm9wTmFtZTogdmFsdWVQcm9wTmFtZSwgY2hpbGRyZW46IGluamVjdGVkIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2xDaGlsZCA9IGluamVjdGVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgLy8gRm9ybS1sZXZlbCBsYXlvdXQuaXRlbUdhcCBvdmVycmlkZXMgdGhlIHNpemUtY2xhc3MgbWFyZ2luIChpbmxpbmUgc3R5bGVcbiAgICAvLyB3aW5zKTsgaXRlbUdhcD0wIGlzIG1lYW5pbmdmdWwuXG4gICAgY29uc3QgaXRlbUdhcCA9IChfYSA9IGN0eC5sYXlvdXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pdGVtR2FwO1xuICAgIGNvbnN0IGdhcFN0eWxlID0gaXRlbUdhcCAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8geyBtYXJnaW5Cb3R0b206IHR5cGVvZiBpdGVtR2FwID09PSAnbnVtYmVyJyA/IGAke2l0ZW1HYXB9cHhgIDogaXRlbUdhcCB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHNoZWxsID0gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHVuZGVmaW5lZCwgam9pbkNscyhjbGFzc2VzKHNpemUpLCBjbGFzc05hbWUpKSwgc3R5bGU6IGdhcFN0eWxlLCBjaGlsZHJlbjogW2xhYmVsICYmIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwtd3JhcHBlcicsIGpvaW5DbHMoY2xhc3NlcygnbGFiZWwtd3JhcHBlci12ZXJ0aWNhbCcpLCBsYWJlbEFsaWduICYmIGNsYXNzZXMoYGxhYmVsLXdyYXBwZXItJHtsYWJlbEFsaWdufWApKSksIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgYXM6IFwibGFiZWxcIiwgc2l6ZTogRk9STV9MQUJFTF9TSVpFU1tzaXplXSwgY29sb3I6IEZPUk1fTEFCRUxfQ09MT1IsIGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwnKSwgY2hpbGRyZW46IGxhYmVsIH0pLCBkZXNjcmlwdGlvbiAmJiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdkZXNjcmlwdGlvbicpLCBzaXplOiBGT1JNX0RFU0NSSVBUSU9OX1NJWkUsIGNvbG9yOiBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SLCBjaGlsZHJlbjogZGVzY3JpcHRpb24gfSkpXSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250cm9sJyksIGNoaWxkcmVuOiBbY29udHJvbENoaWxkLCBmaWVsZEVycm9yICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Vycm9yJyksIHNpemU6IEZPUk1fRVJST1JfU0laRSwgY29sb3I6IEZPUk1fRVJST1JfQ09MT1IsIGNoaWxkcmVuOiBmaWVsZEVycm9yIH0pKSwgIWZpZWxkRXJyb3IgJiYgZmllbGRXYXJuaW5nICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3dhcm5pbmcnKSwgc2l6ZTogRk9STV9XQVJOSU5HX1NJWkUsIGNvbG9yOiBGT1JNX1dBUk5JTkdfQ09MT1IsIGNoaWxkcmVuOiBmaWVsZFdhcm5pbmcgfSkpLCAhZmllbGRFcnJvciAmJiAhZmllbGRXYXJuaW5nICYmIGZlZWRiYWNrICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2ZlZWRiYWNrJyksIHNpemU6IEZPUk1fRkVFREJBQ0tfU0laRSwgY29sb3I6IEZPUk1fRkVFREJBQ0tfQ09MT1IsIGNoaWxkcmVuOiBmZWVkYmFjayB9KSldIH0pXSB9KSk7XG4gICAgaWYgKGN0eC5ncmlkKSB7XG4gICAgICAgIGNvbnN0IG1lcmdlZCA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY3R4LmNvbFByb3BzKSwgY29sUHJvcHMpO1xuICAgICAgICBjb25zdCB7IHNwYW4gPSBERUZBVUxUX0NPTF9TUEFOLCBzbSwgbWQsIGxnIH0gPSBtZXJnZWQ7XG4gICAgICAgIHJldHVybiBfanN4KENvbCwgeyBzcGFuOiBzcGFuLCBzbTogc20sIG1kOiBtZCwgbGc6IGxnLCBjaGlsZHJlbjogc2hlbGwgfSk7XG4gICAgfVxuICAgIHJldHVybiBzaGVsbDtcbn07XG5Qcm9Gb3JtSXRlbUJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybUl0ZW0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1JdGVtID0gbWVtbyhQcm9Gb3JtSXRlbUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybUl0ZW07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
313
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIlJlYWN0IiwibWVtbyIsInVzZUVmZmVjdCIsInVzZVJlZiIsIkNvbCIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUxhYmVsIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwidXNlRm9ybUl0ZW0iLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9FUlJPUl9TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0xBQkVMX1NJWkVTIiwidXNlUHJvRm9ybVN0YWJsZSIsInVzZVByb0Zvcm1TdG9yZSIsInVzZVN0b3JlU2VsZWN0b3IiLCJzaGFsbG93RXF1YWxBcnJheXMiLCJyZXNvbHZlVmFsdWUiLCJERUZBVUxUX0NPTF9TUEFOIiwidmFsdWVFbnVtVG9PcHRpb25zIiwiZm9ybWF0RGF0ZUJ5UGF0dGVybiIsIkRBVEVfRk9STUFUIiwiREFURV9USU1FX0ZPUk1BVCIsIkVNUFRZX1RFWFRfREVGQVVMVCIsInJlbmRlckJ5VmFsdWVUeXBlIiwidmFsdWVUeXBlIiwidmFsdWUiLCJwcm9wcyIsInVuZGVmaW5lZCIsInJlcGVhdCIsIlN0cmluZyIsImxlbmd0aCIsIm51bSIsIk51bWJlciIsImlzTmFOIiwidG9Mb2NhbGVTdHJpbmciLCJ2YWx1ZUVudW0iLCJvcHRpb25zIiwibWF0Y2giLCJmaW5kIiwibyIsImxhYmVsIiwiRGF0ZSIsIlJlYWRvbmx5Q2hpbGRCYXNlIiwiX3JlZiIsIm5hbWUiLCJjb252ZXJ0VmFsdWUiLCJyZWFkb25seVJlbmRlciIsImVtcHR5VGV4dCIsInN0b3JlIiwiX3VzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsInZhbHVlcyIsIl91c2VTdG9yZVNlbGVjdG9yMiIsIl9zbGljZWRUb0FycmF5IiwicmF3IiwiYWxsVmFsdWVzIiwibm9kZSIsImdldFN0YXRlIiwiY2hpbGRyZW4iLCJyZW5kZXJlZCIsImRpc3BsYXlOYW1lIiwiUmVhZG9ubHlDaGlsZCIsIkNvbnZlcnRWYWx1ZUNoaWxkQmFzZSIsIl9yZWYyIiwiX3JlZjIkdmFsdWVQcm9wTmFtZSIsInZhbHVlUHJvcE5hbWUiLCJjb252ZXJ0ZWQiLCJjbG9uZUVsZW1lbnQiLCJfZGVmaW5lUHJvcGVydHkiLCJDb252ZXJ0VmFsdWVDaGlsZCIsIlByb0Zvcm1JdGVtQmFzZSIsIl9hIiwiY3R4IiwibWVyZ2VkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibWVyZ2VkIiwiT2JqZWN0IiwiYXNzaWduIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJrZXlzIiwia2V5IiwiX21lcmdlZFByb3BzIiwiZGVzY3JpcHRpb24iLCJydWxlcyIsImZlZWRiYWNrIiwidmFsaWRhdGVTdGF0dXMiLCJfbWVyZ2VkUHJvcHMkY2xhc3NOYW0iLCJjbGFzc05hbWUiLCJfbWVyZ2VkUHJvcHMkcHJlZml4Q2wiLCJwcmVmaXhDbHMiLCJoaWRkZW4iLCJ0cmFuc2Zvcm0iLCJjb2xQcm9wcyIsIm1vZGVQcm9wIiwibW9kZSIsIl9tZXJnZWRQcm9wcyRlbXB0eVRleCIsInZhbGlkYXRlRGVib3VuY2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJtZXJnZWRNb2RlIiwiaXNSZWFkb25seSIsIl91c2VGb3JtSXRlbSIsImZpZWxkRXJyb3IiLCJmaWVsZFdhcm5pbmciLCJzaXplIiwibGFiZWxBbGlnbiIsImluamVjdEZpZWxkIiwib3duVHJhbnNmb3JtUmVmIiwib3duVmFsdWVUeXBlUmVmIiwicHJldlRyYW5zZm9ybSIsImN1cnJlbnQiLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwiZm4iLCJyZWdpc3RlclRyYW5zZm9ybSIsInByZXZWYWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ0cmFuc2Zvcm1SZWciLCJ2YWx1ZVR5cGVSZWciLCJ0IiwidiIsImNvbnRyb2xDaGlsZCIsImluamVjdGVkIiwiaXNWYWxpZEVsZW1lbnQiLCJjbGFzc2VzIiwiaXRlbUdhcCIsImxheW91dCIsImdhcFN0eWxlIiwibWFyZ2luQm90dG9tIiwiY29uY2F0Iiwic2hlbGwiLCJzdHlsZSIsImFzIiwic3Ryb25nIiwiY29sb3IiLCJncmlkIiwiX21lcmdlZCRzcGFuIiwic3BhbiIsInNtIiwibWQiLCJsZyIsIlByb0Zvcm1JdGVtIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNBOUQsT0FBT0MsS0FBSyxJQUFJQyxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFdEQsU0FBU0MsR0FBRyxRQUFRLFNBQVM7QUFDN0IsU0FBU0MsY0FBYyxFQUFFQyxlQUFlLFFBQVEsZUFBZTtBQUMvRCxTQUFTQyxPQUFPLElBQUlDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUN2RSxTQUFTQyxXQUFXLFFBQVEsb0JBQW9CO0FBQ2hELFNBQ0VDLGdCQUFnQixFQUNoQkMsZUFBZSxFQUNmQyxrQkFBa0IsRUFDbEJDLGlCQUFpQixFQUNqQkMsc0JBQXNCLEVBQ3RCQyxxQkFBcUIsRUFDckJDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixRQUNYLGtCQUFrQjtBQUN6QixTQUFTQyxnQkFBZ0IsRUFBRUMsZUFBZSxRQUFRLFdBQVc7QUFDN0QsU0FBU0MsZ0JBQWdCLEVBQUVDLGtCQUFrQixRQUFRLGtCQUFrQjtBQUN2RSxTQUFTQyxZQUFZLFFBQVEsa0JBQWtCO0FBQy9DLFNBQVNDLGdCQUFn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LEdBQVNoRSxPQUFNLENBQWpCZ0UsRUFBRTtNQUFFQyxFQUFFLEdBQUtqRSxPQUFNLENBQWJpRSxFQUFFO0lBQzNDLE9BQU94SixJQUFBLENBQUNPLEdBQUcsRUFBQTtNQUFDOEksSUFBSSxFQUFFQSxJQUFJO01BQUVDLEVBQUUsRUFBRUEsRUFBRTtNQUFFQyxFQUFFLEVBQUVBLEVBQUU7TUFBRUMsRUFBRSxFQUFFQSxFQUFFO01BQUFsRixRQUFBLEVBQUd3RTtJQUFLLENBQUEsQ0FBTztFQUMvRDtFQUVBLE9BQU9BLEtBQUs7QUFDZCxDQUFDO0FBRUQ1RCxlQUFlLENBQUNWLFdBQVcsR0FBRyxhQUFhO0FBWTNDLE9BQU8sSUFBTWlGLFdBQVcsZ0JBQUdySixJQUFJLENBQUM4RSxlQUFlLENBQWdDO0FBRS9FLGVBQWV1RSxXQUFXIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtSXRlbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb2wgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdXNlRm9ybUl0ZW0gfSBmcm9tICcuL2NvcmUvdXNlRm9ybUl0ZW0nO1xuaW1wb3J0IHsgRk9STV9FUlJPUl9DT0xPUiwgRk9STV9FUlJPUl9TSVpFLCBGT1JNX1dBUk5JTkdfQ09MT1IsIEZPUk1fV0FSTklOR19TSVpFLCBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SLCBGT1JNX0RFU0NSSVBUSU9OX1NJWkUsIEZPUk1fRkVFREJBQ0tfQ09MT1IsIEZPUk1fRkVFREJBQ0tfU0laRSwgRk9STV9MQUJFTF9DT0xPUiwgRk9STV9MQUJFTF9TSVpFUywgfSBmcm9tICcuL2NvcmUvY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZVByb0Zvcm1TdGFibGUsIHVzZVByb0Zvcm1TdG9yZSB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyB1c2VTdG9yZVNlbGVjdG9yLCBzaGFsbG93RXF1YWxBcnJheXMgfSBmcm9tICcuL2NvcmUvZm9ybVN0b3JlJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgREVGQVVMVF9DT0xfU1BBTiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHZhbHVlRW51bVRvT3B0aW9ucywgZm9ybWF0RGF0ZUJ5UGF0dGVybiwgREFURV9GT1JNQVQsIERBVEVfVElNRV9GT1JNQVQgfSBmcm9tICcuL3V0aWxzJztcbmNvbnN0IEVNUFRZX1RFWFRfREVGQVVMVCA9ICctJztcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVhZC1tb2RlIHJlbmRlcmluZyBmb3IgZWFjaCBzdXBwb3J0ZWQgdmFsdWVUeXBlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHJlbmRlckJ5VmFsdWVUeXBlKHZhbHVlVHlwZSwgdmFsdWUsIHByb3BzKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBzd2l0Y2ggKHZhbHVlVHlwZSkge1xuICAgICAgICBjYXNlICdwYXNzd29yZCc6XG4gICAgICAgICAgICByZXR1cm4gJyonLnJlcGVhdChTdHJpbmcodmFsdWUpLmxlbmd0aCk7XG4gICAgICAgIGNhc2UgJ3N3aXRjaCc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPyAnT24nIDogJ09mZic7XG4gICAgICAgIGNhc2UgJ2RpZ2l0Jzoge1xuICAgICAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChOdW1iZXIuaXNOYU4obnVtKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiBudW0udG9Mb2NhbGVTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICBjYXNlICdyYWRpbyc6XG4gICAgICAgIGNhc2UgJ3RhZyc6IHtcbiAgICAgICAgICAgIGlmICghcHJvcHMudmFsdWVFbnVtKVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHZhbHVlRW51bVRvT3B0aW9ucyhwcm9wcy52YWx1ZUVudW0pO1xuICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBvcHRpb25zLmZpbmQoKG8pID0+IFN0cmluZyhvLnZhbHVlKSA9PT0gU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaC5sYWJlbCA6IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gZm9ybWF0RGF0ZUJ5UGF0dGVybih2YWx1ZSwgREFURV9GT1JNQVQpIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgY2FzZSAnZGF0ZVRpbWUnOlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IGZvcm1hdERhdGVCeVBhdHRlcm4odmFsdWUsIERBVEVfVElNRV9GT1JNQVQpIDogU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICB9XG59XG5jb25zdCBSZWFkb25seUNoaWxkQmFzZSA9ICh7IG5hbWUsIHZhbHVlVHlwZSwgdmFsdWVFbnVtLCBjb252ZXJ0VmFsdWUsIHJlYWRvbmx5UmVuZGVyLCBlbXB0eVRleHQsIH0pID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIC8vIFN1YnNjcmliZSBwZXItZmllbGQ7IG9ubHkgYSBjdXN0b20gcmVhZG9ubHlSZW5kZXIgKHdoaWNoIHJlY2VpdmVzIEFMTFxuICAgIC8vIHZhbHVlcykgbmVlZHMgdG8gdHJhY2sgdGhlIHdob2xlIHZhbHVlcyBvYmplY3QuXG4gICAgY29uc3QgW3JhdywgYWxsVmFsdWVzXSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gW1xuICAgICAgICBuYW1lID8gcmVzb2x2ZVZhbHVlKHN0YXRlLnZhbHVlcywgbmFtZSkgOiB1bmRlZmluZWQsXG4gICAgICAgIHJlYWRvbmx5UmVuZGVyID8gc3RhdGUudmFsdWVzIDogdW5kZWZpbmVkLFxuICAgIF0sIHNoYWxsb3dFcXVhbEFycmF5cyk7XG4gICAgY29uc3QgdmFsdWUgPSBjb252ZXJ0VmFsdWUgJiYgbmFtZSA/IGNvbnZlcnRWYWx1ZShyYXcsIG5hbWUpIDogcmF3O1xuICAgIGlmIChyZWFkb25seVJlbmRlcikge1xuICAgICAgICBjb25zdCBub2RlID0gcmVhZG9ubHlSZW5kZXIodmFsdWUsIGFsbFZhbHVlcyAhPT0gbnVsbCAmJiBhbGxWYWx1ZXMgIT09IHZvaWQgMCA/IGFsbFZhbHVlcyA6IHN0b3JlLmdldFN0YXRlKCkudmFsdWVzKTtcbiAgICAgICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IG5vZGUgIT09IG51bGwgJiYgbm9kZSAhPT0gdm9pZCAwID8gbm9kZSA6IGVtcHR5VGV4dCB9KTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICAgIHJldHVybiBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiBlbXB0eVRleHQgfSk7XG4gICAgfVxuICAgIGNvbnN0IHJlbmRlcmVkID0gcmVuZGVyQnlWYWx1ZVR5cGUodmFsdWVUeXBlLCB2YWx1ZSwgeyB2YWx1ZUVudW0gfSk7XG4gICAgcmV0dXJuIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IHJlbmRlcmVkICE9PSBudWxsICYmIHJlbmRlcmVkICE9PSB2b2lkIDAgPyByZW5kZXJlZCA6IGVtcHR5VGV4dCB9KTtcbn07XG5SZWFkb25seUNoaWxkQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbVJlYWRvbmx5JztcbmNvbnN0IFJlYWRvbmx5Q2hpbGQgPSBtZW1vKFJlYWRvbmx5Q2hpbGRCYXNlKTtcbmNvbnN0IENvbnZlcnRWYWx1ZUNoaWxkQmFzZSA9ICh7IG5hbWUsIGNvbnZlcnRWYWx1ZSwgdmFsdWVQcm9wTmFtZSA9ICd2YWx1ZScsIGNoaWxkcmVuLCB9KSA9PiB7XG4gICAgY29uc3Qgc3RvcmUgPSB1c2VQcm9Gb3JtU3RvcmUoKTtcbiAgICBjb25zdCByYXcgPSB1c2VTdG9yZVNlbGVjdG9yKHN0b3JlLCAoc3RhdGUpID0+IHJlc29sdmVWYWx1ZShzdGF0ZS52YWx1ZXMsIG5hbWUpKTtcbiAgICBjb25zdCBjb252ZXJ0ZWQgPSBjb252ZXJ0VmFsdWUgPyBjb252ZXJ0VmFsdWUocmF3LCBuYW1lKSA6IHJhdztcbiAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuLCB7IFt2YWx1ZVByb3BOYW1lXTogY29udmVydGVkIH0pO1xufTtcbkNvbnZlcnRWYWx1ZUNoaWxkQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbUNvbnZlcnRWYWx1ZSc7XG5jb25zdCBDb252ZXJ0VmFsdWVDaGlsZCA9IG1lbW8oQ29udmVydFZhbHVlQ2hpbGRCYXNlKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJvRm9ybUl0ZW1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3QgUHJvRm9ybUl0ZW1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIC8vIFN0YWJsZSBzbGljZSBvbmx5IOKAlCB2YWx1ZS9lcnJvciByZWFjdGl2aXR5IGxpdmVzIGluIHVzZUZvcm1JdGVtJ3NcbiAgICAvLyBwZXItZmllbGQgc3Vic2NyaXB0aW9uLCBzbyB0aGlzIHNoZWxsIG5ldmVyIHJlLXJlbmRlcnMgZm9yIHNpYmxpbmdzLlxuICAgIGNvbnN0IGN0eCA9IHVzZVByb0Zvcm1TdGFibGUoKTtcbiAgICAvLyBGb3JtLWxldmVsIGBmb3JtSXRlbVByb3BzYCBhY3QgYXMgREVGQVVMVFM7IHByb3BzIGV4cGxpY2l0bHkgc2V0IG9uIHRoZVxuICAgIC8vIGl0ZW0gd2luLiBKU1ggZnJlcXVlbnRseSBwYXNzZXMgYHVuZGVmaW5lZGAgZm9yIHVuc2V0IHByb3BzIChlLmcuIHRoZVxuICAgIC8vIGNyZWF0ZVByb0Zvcm1GaWVsZCBwYXNzLXRocm91Z2gpLCBzbyBvbmx5IGRlZmluZWQgdmFsdWVzIG1heSBvdmVycmlkZS5cbiAgICBsZXQgbWVyZ2VkUHJvcHMgPSBwcm9wcztcbiAgICBpZiAoY3R4LmZvcm1JdGVtUHJvcHMpIHtcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmFzc2lnbih7fSwgY3R4LmZvcm1JdGVtUHJvcHMpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwcm9wcykpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIG1lcmdlZFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgbWVyZ2VkUHJvcHMgPSBtZXJnZWQ7XG4gICAgfVxuICAgIGNvbnN0IHsgY2hpbGRyZW4sIG5hbWUsIGxhYmVsLCBkZXNjcmlwdGlvbiwgcnVsZXMsIGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1cywgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdmb3JtLWl0ZW0nLCBoaWRkZW4sIHRyYW5zZm9ybSwgY29udmVydFZhbHVlLCB2YWx1ZVR5cGUsIHJlYWRvbmx5UmVuZGVyLCBjb2xQcm9wcywgbW9kZTogbW9kZVByb3AsIGVtcHR5VGV4dCA9IEVNUFRZX1RFWFRfREVGQVVMVCwgdmFsdWVFbnVtLCB2YWx1ZVByb3BOYW1lLCB2YWxpZGF0ZURlYm91bmNlLCB2YWxpZGF0ZVRyaWdnZXIsIH0gPSBtZXJnZWRQcm9wcztcbiAgICBjb25zdCBtZXJnZWRNb2RlID0gbW9kZVByb3AgIT09IG51bGwgJiYgbW9kZVByb3AgIT09IHZvaWQgMCA/IG1vZGVQcm9wIDogY3R4Lm1vZGU7XG4gICAgY29uc3QgaXNSZWFkb25seSA9IG1lcmdlZE1vZGUgPT09ICdyZWFkJztcbiAgICBjb25zdCB7IGZpZWxkRXJyb3IsIGZpZWxkV2FybmluZywgc2l6ZSwgbGFiZWxBbGlnbiwgaW5qZWN0RmllbGQsIH0gPSB1c2VGb3JtSXRlbSh7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIHJ1bGVzLFxuICAgICAgICB2YWxpZGF0ZVN0YXR1cyxcbiAgICAgICAgdmFsdWVQcm9wTmFtZSxcbiAgICAgICAgdmFsaWRhdGVEZWJvdW5jZSxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgIH0pO1xuICAgIC8vIFJlZ2lzdGVyIHRyYW5zZm9ybSAvIHZhbHVlVHlwZSBEVVJJTkcgcmVuZGVyIChpZGVtcG90ZW50IHJlZiB3cml0ZXMsIGxpa2VcbiAgICAvLyByZWdpc3RlckZpZWxkKTogY29uc3VtZXJzIHJlbmRlcmVkIGxhdGVyIGluIHRoZSBzYW1lIHBhc3Mg4oCUIGUuZy4gYVxuICAgIC8vIERlcGVuZGVuY3kgcmVhZGluZyBmb3JtYXR0ZWQgdmFsdWVzIOKAlCBtdXN0IGFscmVhZHkgc2VlIHRoZW0uIEVmZmVjdHNcbiAgICAvLyB3b3VsZCByZWdpc3RlciB0b28gbGF0ZSAoYWZ0ZXIgdGhlIHdob2xlIHRyZWUgcmVuZGVyZWQpLlxuICAgIC8vXG4gICAgLy8gRWFjaCBpbnN0YW5jZSB0cmFja3MgdGhlIHtuYW1lLCB2YWx1ZX0gUEFJUiBpdCByZWdpc3RlcmVkLiBSZW1vdmFsIGlzXG4gICAgLy8gYWx3YXlzIHBlcmZvcm1lZCB3aXRoIHRoZSBwYWlyJ3Mgb3duIG5hbWUgQU5EIHZhbHVlOiBhbiBpdGVtIHdpdGhvdXQgYVxuICAgIC8vIHRyYW5zZm9ybSBuZXZlciB0b3VjaGVzIGEgc2FtZS1uYW1lIHNpYmxpbmcncyByZWdpc3RyYXRpb24sIGFuIHVubW91bnRcbiAgICAvLyBjbGVhbnVwIGNhbid0IHdpcGUgYSBzdWNjZXNzb3IncyAodmFsdWUtZ3VhcmRlZCksIGFuZCBhIE5BTUUgY2hhbmdlXG4gICAgLy8gcmVtb3ZlcyB0aGUgb2xkIG5hbWUncyBlbnRyeSB3aXRoIHRoZSBPTEQgdmFsdWUgYmVmb3JlIHRoZSByZWYgaXNcbiAgICAvLyBvdmVyd3JpdHRlbiAoYSBsaXZlIHNpbmdsZS12YWx1ZSByZWYgd291bGQgbGVhayBpdCkuXG4gICAgY29uc3Qgb3duVHJhbnNmb3JtUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IG93blZhbHVlVHlwZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmV2VHJhbnNmb3JtID0gb3duVHJhbnNmb3JtUmVmLmN1cnJlbnQ7XG4gICAgaWYgKHByZXZUcmFuc2Zvcm0gJiYgKHByZXZUcmFuc2Zvcm0ubmFtZSAhPT0gbmFtZSB8fCAhdHJhbnNmb3JtKSkge1xuICAgICAgICBjdHgudW5yZWdpc3RlclRyYW5zZm9ybShwcmV2VHJhbnNmb3JtLm5hbWUsIHByZXZUcmFuc2Zvcm0uZm4pO1xuICAgICAgICBvd25UcmFuc2Zvcm1SZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICAgIGlmIChuYW1lICYmIHRyYW5zZm9ybSkge1xuICAgICAgICBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0obmFtZSwgdHJhbnNmb3JtKTtcbiAgICAgICAgb3duVHJhbnNmb3JtUmVmLmN1cnJlbnQgPSB7IG5hbWUsIGZuOiB0cmFuc2Zvcm0gfTtcbiAgICB9XG4gICAgY29uc3QgcHJldlZhbHVlVHlwZSA9IG93blZhbHVlVHlwZVJlZi5jdXJyZW50O1xuICAgIGlmIChwcmV2VmFsdWVUeXBlICYmIChwcmV2VmFsdWVUeXBlLm5hbWUgIT09IG5hbWUgfHwgIXZhbHVlVHlwZSkpIHtcbiAgICAgICAgY3R4LnVucmVnaXN0ZXJWYWx1ZVR5cGUocHJldlZhbHVlVHlwZS5uYW1lLCBwcmV2VmFsdWVUeXBlLnZhbHVlVHlwZSk7XG4gICAgICAgIG93blZhbHVlVHlwZVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKG5hbWUgJiYgdmFsdWVUeXBlKSB7XG4gICAgICAgIGN0eC5yZWdpc3RlclZhbHVlVHlwZShuYW1lLCB2YWx1ZVR5cGUpO1xuICAgICAgICBvd25WYWx1ZVR5cGVSZWYuY3VycmVudCA9IHsgbmFtZSwgdmFsdWVUeXBlIH07XG4gICAgfVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIFJFLVJFR0lTVEVSIGluIHRoZSBib2R5OiBTdHJpY3RNb2RlJ3MgbW91bnTihpJjbGVhbnVw4oaScmUtcnVuIGN5Y2xlIGFuZFxuICAgICAgICAvLyBrZXllZCByZW1vdW50cyAob2xkIGluc3RhbmNlJ3MgY2xlYW51cCBydW5zIEFGVEVSIHRoZSBuZXcgcmVuZGVyXG4gICAgICAgIC8vIHJlZ2lzdGVyZWQpIGJvdGggZW5kIHdpdGggYSBjbGVhbnVwIGhhdmluZyBkZWxldGVkIHRoZSBlbnRyeSDigJQgdGhlXG4gICAgICAgIC8vIGVmZmVjdCBib2R5IG11c3QgcmVzdG9yZSB0aGUgbGF0ZXN0IHJlZ2lzdHJhdGlvbi5cbiAgICAgICAgY29uc3QgdHJhbnNmb3JtUmVnID0gb3duVHJhbnNmb3JtUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICh0cmFuc2Zvcm1SZWcpXG4gICAgICAgICAgICBjdHgucmVnaXN0ZXJUcmFuc2Zvcm0odHJhbnNmb3JtUmVnLm5hbWUsIHRyYW5zZm9ybVJlZy5mbik7XG4gICAgICAgIGNvbnN0IHZhbHVlVHlwZVJlZyA9IG93blZhbHVlVHlwZVJlZi5jdXJyZW50O1xuICAgICAgICBpZiAodmFsdWVUeXBlUmVnKVxuICAgICAgICAgICAgY3R4LnJlZ2lzdGVyVmFsdWVUeXBlKHZhbHVlVHlwZVJlZy5uYW1lLCB2YWx1ZVR5cGVSZWcudmFsdWVUeXBlKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHQgPSBvd25UcmFuc2Zvcm1SZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmICh0KVxuICAgICAgICAgICAgICAgIGN0eC51bnJlZ2lzdGVyVHJhbnNmb3JtKHQubmFtZSwgdC5mbik7XG4gICAgICAgICAgICBjb25zdCB2ID0gb3duVmFsdWVUeXBlUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAodilcbiAgICAgICAgICAgICAgICBjdHgudW5yZWdpc3RlclZhbHVlVHlwZSh2Lm5hbWUsIHYudmFsdWVUeXBlKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbmFtZSwgY3R4LnJlZ2lzdGVyVHJhbnNmb3JtLCBjdHgudW5yZWdpc3RlclRyYW5zZm9ybSwgY3R4LnJlZ2lzdGVyVmFsdWVUeXBlLCBjdHgudW5yZWdpc3RlclZhbHVlVHlwZV0pO1xuICAgIGlmIChoaWRkZW4pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGxldCBjb250cm9sQ2hpbGQ7XG4gICAgaWYgKGlzUmVhZG9ubHkpIHtcbiAgICAgICAgY29udHJvbENoaWxkID0gKF9qc3goUmVhZG9ubHlDaGlsZCwgeyBuYW1lOiBuYW1lLCB2YWx1ZVR5cGU6IHZhbHVlVHlwZSwgdmFsdWVFbnVtOiB2YWx1ZUVudW0sIGNvbnZlcnRWYWx1ZTogY29udmVydFZhbHVlLCByZWFkb25seVJlbmRlcjogcmVhZG9ubHlSZW5kZXIsIGVtcHR5VGV4dDogZW1wdHlUZXh0IH0pKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIC8vIEluamVjdCBmaXJzdCBzbyB0aGUgcmVhbCBmaWVsZCByZWNlaXZlcyB2YWx1ZS9vbkNoYW5nZS9vbkJsdXIsXG4gICAgICAgIC8vIHRoZW4gb3B0aW9uYWxseSB3cmFwIGluIENvbnZlcnRWYWx1ZUNoaWxkIHRvIG92ZXJyaWRlIHRoZSBkaXNwbGF5ZWQgdmFsdWUuXG4gICAgICAgIGNvbnN0IGluamVjdGVkID0gaW5qZWN0RmllbGQoY2hpbGRyZW4pO1xuICAgICAgICBpZiAoY29udmVydFZhbHVlICYmIG5hbWUgJiYgUmVhY3QuaXNWYWxpZEVsZW1lbnQoaW5qZWN0ZWQpKSB7XG4gICAgICAgICAgICBjb250cm9sQ2hpbGQgPSAoX2pzeChDb252ZXJ0VmFsdWVDaGlsZCwgeyBuYW1lOiBuYW1lLCBjb252ZXJ0VmFsdWU6IGNvbnZlcnRWYWx1ZSwgdmFsdWVQcm9wTmFtZTogdmFsdWVQcm9wTmFtZSwgY2hpbGRyZW46IGluamVjdGVkIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2xDaGlsZCA9IGluamVjdGVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgLy8gRm9ybS1sZXZlbCBsYXlvdXQuaXRlbUdhcCBvdmVycmlkZXMgdGhlIHNpemUtY2xhc3MgbWFyZ2luIChpbmxpbmUgc3R5bGVcbiAgICAvLyB3aW5zKTsgaXRlbUdhcD0wIGlzIG1lYW5pbmdmdWwuXG4gICAgY29uc3QgaXRlbUdhcCA9IChfYSA9IGN0eC5sYXlvdXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pdGVtR2FwO1xuICAgIGNvbnN0IGdhcFN0eWxlID0gaXRlbUdhcCAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8geyBtYXJnaW5Cb3R0b206IHR5cGVvZiBpdGVtR2FwID09PSAnbnVtYmVyJyA/IGAke2l0ZW1HYXB9cHhgIDogaXRlbUdhcCB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHNoZWxsID0gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHVuZGVmaW5lZCwgam9pbkNscyhjbGFzc2VzKHNpemUpLCBjbGFzc05hbWUpKSwgc3R5bGU6IGdhcFN0eWxlLCBjaGlsZHJlbjogW2xhYmVsICYmIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwtd3JhcHBlcicsIGpvaW5DbHMoY2xhc3NlcygnbGFiZWwtd3JhcHBlci12ZXJ0aWNhbCcpLCBsYWJlbEFsaWduICYmIGNsYXNzZXMoYGxhYmVsLXdyYXBwZXItJHtsYWJlbEFsaWdufWApKSksIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgYXM6IFwibGFiZWxcIiwgc3Ryb25nOiB0cnVlLCBzaXplOiBGT1JNX0xBQkVMX1NJWkVTW3NpemVdLCBjb2xvcjogRk9STV9MQUJFTF9DT0xPUiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcpLCBjaGlsZHJlbjogbGFiZWwgfSksIGRlc2NyaXB0aW9uICYmIChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Rlc2NyaXB0aW9uJyksIHNpemU6IEZPUk1fREVTQ1JJUFRJT05fU0laRSwgY29sb3I6IEZPUk1fREVTQ1JJUFRJT05fQ09MT1IsIGNoaWxkcmVuOiBkZXNjcmlwdGlvbiB9KSldIH0pKSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRyb2wnKSwgY2hpbGRyZW46IFtjb250cm9sQ2hpbGQsIGZpZWxkRXJyb3IgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZXJyb3InKSwgc2l6ZTogRk9STV9FUlJPUl9TSVpFLCBjb2xvcjogRk9STV9FUlJPUl9DT0xPUiwgY2hpbGRyZW46IGZpZWxkRXJyb3IgfSkpLCAhZmllbGRFcnJvciAmJiBmaWVsZFdhcm5pbmcgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3Nlcygnd2FybmluZycpLCBzaXplOiBGT1JNX1dBUk5JTkdfU0laRSwgY29sb3I6IEZPUk1fV0FSTklOR19DT0xPUiwgY2hpbGRyZW46IGZpZWxkV2FybmluZyB9KSksICFmaWVsZEVycm9yICYmICFmaWVsZFdhcm5pbmcgJiYgZmVlZGJhY2sgJiYgKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnZmVlZGJhY2snKSwgc2l6ZTogRk9STV9GRUVEQkFDS19TSVpFLCBjb2xvcjogRk9STV9GRUVEQkFDS19DT0xPUiwgY2hpbGRyZW46IGZlZWRiYWNrIH0pKV0gfSldIH0pKTtcbiAgICBpZiAoY3R4LmdyaWQpIHtcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdHguY29sUHJvcHMpLCBjb2xQcm9wcyk7XG4gICAgICAgIGNvbnN0IHsgc3BhbiA9IERFRkFVTFRfQ09MX1NQQU4sIHNtLCBtZCwgbGcgfSA9IG1lcmdlZDtcbiAgICAgICAgcmV0dXJuIF9qc3goQ29sLCB7IHNwYW46IHNwYW4sIHNtOiBzbSwgbWQ6IG1kLCBsZzogbGcsIGNoaWxkcmVuOiBzaGVsbCB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHNoZWxsO1xufTtcblByb0Zvcm1JdGVtQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtSXRlbSc7XG5leHBvcnQgY29uc3QgUHJvRm9ybUl0ZW0gPSBtZW1vKFByb0Zvcm1JdGVtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtSXRlbTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -21,7 +21,7 @@ export declare const FORM_DESCRIPTION_SIZE: TypographyBodySize;
|
|
|
21
21
|
export declare const FORM_DESCRIPTION_COLOR: TypographyColor;
|
|
22
22
|
export declare const FORM_FEEDBACK_SIZE: TypographyBodySize;
|
|
23
23
|
export declare const FORM_FEEDBACK_COLOR: TypographyColor;
|
|
24
|
-
export declare const FORM_COMPONENT_NAMES: readonly ["Input", "InputNumber", "InputPassword", "InputTextArea", "InputSearch", "InputOTP", "InputTrade", "InputAmount", "InputMask", "Select", "BaseSelect", "DatePicker", "TimePicker", "Calendar", "Checkbox", "CheckboxGroup", "Radio", "RadioGroup", "Switch", "Slider", "TextArea"];
|
|
24
|
+
export declare const FORM_COMPONENT_NAMES: readonly ["Input", "InputNumber", "InputPassword", "InputTextArea", "InputSearch", "InputOTP", "InputTrade", "InputAmount", "InputMask", "Select", "BaseSelect", "DatePicker", "TimePicker", "Calendar", "Checkbox", "CheckboxGroup", "Radio", "RadioGroup", "Switch", "Slider", "TextArea", "AssetSelect", "CountrySelect", "CurrencySelect", "NetworkSelect", "PaymentMethodSelect"];
|
|
25
25
|
/**
|
|
26
26
|
* Form controls that declare a `size` prop accepting `'large' | 'small'`.
|
|
27
27
|
* `injectField` cascades the form-level `size` into these as a DEFAULT — an
|
|
@@ -25,7 +25,10 @@ export var FORM_DESCRIPTION_SIZE = 'md';
|
|
|
25
25
|
export var FORM_DESCRIPTION_COLOR = 'default-tertiary';
|
|
26
26
|
export var FORM_FEEDBACK_SIZE = 'sm';
|
|
27
27
|
export var FORM_FEEDBACK_COLOR = 'default-tertiary';
|
|
28
|
-
export var FORM_COMPONENT_NAMES = ['Input', 'InputNumber', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputTrade', 'InputAmount', 'InputMask', 'Select', 'BaseSelect', 'DatePicker', 'TimePicker', 'Calendar', 'Checkbox', 'CheckboxGroup', 'Radio', 'RadioGroup', 'Switch', 'Slider', 'TextArea'
|
|
28
|
+
export var FORM_COMPONENT_NAMES = ['Input', 'InputNumber', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputTrade', 'InputAmount', 'InputMask', 'Select', 'BaseSelect', 'DatePicker', 'TimePicker', 'Calendar', 'Checkbox', 'CheckboxGroup', 'Radio', 'RadioGroup', 'Switch', 'Slider', 'TextArea',
|
|
29
|
+
// business/ selects — recognized by their explicit displayName so hosts
|
|
30
|
+
// don't have to pass a placeholder/value just to trigger injection.
|
|
31
|
+
'AssetSelect', 'CountrySelect', 'CurrencySelect', 'NetworkSelect', 'PaymentMethodSelect'];
|
|
29
32
|
/**
|
|
30
33
|
* Form controls that declare a `size` prop accepting `'large' | 'small'`.
|
|
31
34
|
* `injectField` cascades the form-level `size` into these as a DEFAULT — an
|
|
@@ -40,4 +43,4 @@ export var SIZE_AWARE_COMPONENT_NAMES = ['Input', 'InputPassword', 'InputTextAre
|
|
|
40
43
|
* fallback value.
|
|
41
44
|
*/
|
|
42
45
|
export var TEXT_LIKE_COMPONENT_NAMES = ['Input', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputTrade', 'InputAmount', 'InputMask', 'TextArea', 'InputNumber'];
|
|
43
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkZPUk1fU0laRVMiLCJGT1JNX0xBWU9VVFMiLCJMQUJFTF9BTElHTlMiLCJWQUxJREFURV9TVEFUVVNFUyIsIlZBTElEQVRFX1RSSUdHRVJTIiwiUlVMRV9DT05URVhUX1JFQURfTUVNQkVSUyIsIlJVTEVfQ09OVEVYVF9NVVRBVE9SX01FTUJFUlMiLCJGT1JNX0xBQkVMX1NJWkVTIiwibGFyZ2UiLCJzbWFsbCIsIkZPUk1fTEFCRUxfQ09MT1IiLCJGT1JNX0VSUk9SX1NJWkUiLCJGT1JNX0VSUk9SX0NPTE9SIiwiRk9STV9XQVJOSU5HX1NJWkUiLCJGT1JNX1dBUk5JTkdfQ09MT1IiLCJGT1JNX0RFU0NSSVBUSU9OX1NJWkUiLCJGT1JNX0RFU0NSSVBUSU9OX0NPTE9SIiwiRk9STV9GRUVEQkFDS19TSVpFIiwiRk9STV9GRUVEQkFDS19DT0xPUiIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwiU0laRV9BV0FSRV9DT01QT05FTlRfTkFNRVMiLCJURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLElBQU1BLFVBQVUsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVU7QUFDckQsT0FBTyxJQUFNQyxZQUFZLEdBQUcsQ0FBQyxVQUFVLENBQVU7QUFDakQsT0FBTyxJQUFNQyxZQUFZLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFVO0FBQ3RELE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQVU7QUFDdkYsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQVU7QUFFaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLHlCQUF5QixHQUFHLENBQ3ZDLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixDQUNYO0FBQ1YsT0FBTyxJQUFNQyw0QkFBNEIsR0FBRyxDQUMxQyxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGFBQWEsQ0FDTDtBQVFWO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsZ0JBQWdCLEdBQTBDO0VBQ3JFQyxLQUFLLEVBQUUsSUFBSTtFQUNYQyxLQUFLLEVBQUU7QUNUVCxDRFVDO0FBQ0QsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBb0IsU0FBUztBQUMxRCxPQUFPLElBQU1DLGVBQWUsR0FBdUIsSUFBSTtBQUN2RCxPQUFPLElBQU1DLGdCQUFnQixHQUFvQixRQUFRO0FBQ3pELE9BQU8sSUFBTUMsaUJBQWlCLEdBQXVCLElBQUk7QUFDekQsT0FBTyxJQUFNQyxrQkFBa0IsR0FBb0IsU0FBUztBQUM1RCxPQUFPLElBQU1DLHFCQUFxQixHQUF1QixJQUFJO0FBQzdELE9BQU8sSUFBTUMsc0JBQXNCLEdBQW9CLGtCQUFrQjtBQUN6RSxPQUFPLElBQU1DLGtCQUFrQixHQUF1QixJQUFJO0FBQzFELE9BQU8sSUFBTUMsbUJBQW1CLEdBQW9CLGtCQUFrQjtBQUV0RSxPQUFPLElBQU1DLG9CQUFvQixHQUFHLENBQ2xDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxFQUNYLFFBQVEsRUFDUixZQUFZLEVBQ1osWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsVUFBVSxFQUNWLGVBQWUsRUFDZixPQUFPLEVBQ1AsWUFBWSxFQUNaLFFBQVEsRUFDUixRQUFRLEVBQ1IsVUFBVTtBQUNWO0FBQ0E7QUFDQSxhQUFhLEVBQ2IsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YscUJBQXFCLENBQ2I7QUFFVjtBQ1hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRGFBLE9BQU8sSUFBTUMsMEJBQTBCLEdBQXNCLENBQzNELE9BQU8sRUFDUCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGFBQWEsRUFDYixVQUFVLEVBQ1YsYUFBYSxFQUNiLFdBQVcsRUFDWCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE9BQU8sRUFDUCxZQUFZLENBQ2I7QUFFRDtBQ1pBO0FBQ0E7QUFDQTtBQUNBO0FEY0EsT0FBTyxJQUFNQyx5QkFBeUIsR0FBc0IsQ0FDMUQsT0FBTyxFQUNQLGVBQWUsRUFDZixlQUFlLEVBQ2YsYUFBYSxFQUNiLFVBQVUsRUFDVixZQUFZLEVBQ1osYUFBYSxFQUNiLFdBQVcsRUFDWCxVQUFVLEVBQ1YsYUFBYSxDQUNkIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2NvbnN0YW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiZXhwb3J0IGNvbnN0IEZPUk1fU0laRVMgPSBbJ2xhcmdlJywgJ3NtYWxsJ107XG5leHBvcnQgY29uc3QgRk9STV9MQVlPVVRTID0gWyd2ZXJ0aWNhbCddO1xuZXhwb3J0IGNvbnN0IExBQkVMX0FMSUdOUyA9IFsnbGVmdCcsICdyaWdodCddO1xuZXhwb3J0IGNvbnN0IFZBTElEQVRFX1NUQVRVU0VTID0gWydzdWNjZXNzJywgJ3dhcm5pbmcnLCAnZXJyb3InLCAndmFsaWRhdGluZyddO1xuZXhwb3J0IGNvbnN0IFZBTElEQVRFX1RSSUdHRVJTID0gWydvbkNoYW5nZScsICdvbkJsdXInXTtcbi8vIFJ1bGVDb250ZXh0IGluc3RhbmNlIG1lbWJlcnMsIHNwbGl0IGJ5IHNhZmV0eTogUkVBRCBtZW1iZXJzIGFyZSBhdmFpbGFibGVcbi8vIGluIEVWRVJZIHJ1bGUgcmVzb2x1dGlvbiAoaW5jbHVkaW5nIHJlbmRlci1waGFzZSByZXF1aXJlZC1tYXJrIGNoZWNrcyk7XG4vLyBNVVRBVE9SIG1lbWJlcnMgYXJlIGhhbmRlZCBvdXQgb25seSBkdXJpbmcgdmFsaWRhdGlvbi10aW1lIHJlc29sdXRpb25zLlxuLy8gdXNlRm9ybUl0ZW0gKHJlbmRlclNhZmVJbnN0YW5jZSkgYW5kIHRoZSBjb250cmFjdCB0ZXN0cyBkZXJpdmUgZnJvbSB0aGVzZS5cbmV4cG9ydCBjb25zdCBSVUxFX0NPTlRFWFRfUkVBRF9NRU1CRVJTID0gW1xuICAgICdnZXRGaWVsZEVycm9yJyxcbiAgICAnZ2V0RmllbGRXYXJuaW5nJyxcbiAgICAnaXNGaWVsZFRvdWNoZWQnLFxuICAgICdpc0ZpZWxkVmFsaWRhdGluZycsXG5dO1xuZXhwb3J0IGNvbnN0IFJVTEVfQ09OVEVYVF9NVVRBVE9SX01FTUJFUlMgPSBbXG4gICAgJ3NldEZpZWxkVmFsdWUnLFxuICAgICdzZXRGaWVsZHNWYWx1ZScsXG4gICAgJ3Jlc2V0RmllbGRzJyxcbl07XG4vLyBMYWJlbCB0eXBvZ3JhcGh5IHBhaXJzIHdpdGggdGhlIGZpZWxkIGNvbnRyb2wncyB0ZXh0IHNpemUgZm9yIGVhY2ggZm9ybVxuLy8gc2l6ZTogbGFyZ2UgY29udHJvbCB0ZXh0IGlzIGJvZHkvbGcgKDE2cHgpIOKGkiBsYWJlbCBsZzsgc21hbGwgaXMgYm9keS9tZFxuLy8gKDE0cHgpIOKGkiBsYWJlbCBtZC5cbmV4cG9ydCBjb25zdCBGT1JNX0xBQkVMX1NJWkVTID0ge1xuICAgIGxhcmdlOiAnbGcnLFxuICAgIHNtYWxsOiAnbWQnLFxufTtcbmV4cG9ydCBjb25zdCBGT1JNX0xBQkVMX0NPTE9SID0gJ2RlZmF1bHQnO1xuZXhwb3J0IGNvbnN0IEZPUk1fRVJST1JfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9FUlJPUl9DT0xPUiA9ICdkYW5nZXInO1xuZXhwb3J0IGNvbnN0IEZPUk1fV0FSTklOR19TSVpFID0gJ3NtJztcbmV4cG9ydCBjb25zdCBGT1JNX1dBUk5JTkdfQ09MT1IgPSAnd2FybmluZyc7XG5leHBvcnQgY29uc3QgRk9STV9ERVNDUklQVElPTl9TSVpFID0gJ21kJztcbmV4cG9ydCBjb25zdCBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SID0gJ2RlZmF1bHQtdGVydGlhcnknO1xuZXhwb3J0IGNvbnN0IEZPUk1fRkVFREJBQ0tfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9GRUVEQkFDS19DT0xPUiA9ICdkZWZhdWx0LXRlcnRpYXJ5JztcbmV4cG9ydCBjb25zdCBGT1JNX0NPTVBPTkVOVF9OQU1FUyA9IFtcbiAgICAnSW5wdXQnLFxuICAgICdJbnB1dE51bWJlcicsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0VHJhZGUnLFxuICAgICdJbnB1dEFtb3VudCcsXG4gICAgJ0lucHV0TWFzaycsXG4gICAgJ1NlbGVjdCcsXG4gICAgJ0Jhc2VTZWxlY3QnLFxuICAgICdEYXRlUGlja2VyJyxcbiAgICAnVGltZVBpY2tlcicsXG4gICAgJ0NhbGVuZGFyJyxcbiAgICAnQ2hlY2tib3gnLFxuICAgICdDaGVja2JveEdyb3VwJyxcbiAgICAnUmFkaW8nLFxuICAgICdSYWRpb0dyb3VwJyxcbiAgICAnU3dpdGNoJyxcbiAgICAnU2xpZGVyJyxcbiAgICAnVGV4dEFyZWEnLFxuICAgIC8vIGJ1c2luZXNzLyBzZWxlY3RzIOKAlCByZWNvZ25pemVkIGJ5IHRoZWlyIGV4cGxpY2l0IGRpc3BsYXlOYW1lIHNvIGhvc3RzXG4gICAgLy8gZG9uJ3QgaGF2ZSB0byBwYXNzIGEgcGxhY2Vob2xkZXIvdmFsdWUganVzdCB0byB0cmlnZ2VyIGluamVjdGlvbi5cbiAgICAnQXNzZXRTZWxlY3QnLFxuICAgICdDb3VudHJ5U2VsZWN0JyxcbiAgICAnQ3VycmVuY3lTZWxlY3QnLFxuICAgICdOZXR3b3JrU2VsZWN0JyxcbiAgICAnUGF5bWVudE1ldGhvZFNlbGVjdCcsXG5dO1xuLyoqXG4gKiBGb3JtIGNvbnRyb2xzIHRoYXQgZGVjbGFyZSBhIGBzaXplYCBwcm9wIGFjY2VwdGluZyBgJ2xhcmdlJyB8ICdzbWFsbCdgLlxuICogYGluamVjdEZpZWxkYCBjYXNjYWRlcyB0aGUgZm9ybS1sZXZlbCBgc2l6ZWAgaW50byB0aGVzZSBhcyBhIERFRkFVTFQg4oCUIGFuXG4gKiBleHBsaWNpdCBmaWVsZC1sZXZlbCBgc2l6ZWAgKG93biBwcm9wIG9yIHZpYSBgZmllbGRQcm9wc2ApIHdpbnMuIENvbnRyb2xzXG4gKiB3aXRob3V0IGEgc2l6ZSBwcm9wIChDaGVja2JveCwgU3dpdGNoLCBTbGlkZXIsIOKApikgbXVzdCBzdGF5IG9mZiB0aGlzIGxpc3Q6XG4gKiBhbiBhbnkgYHNpemVgIHByb3AgY291bGQgbGVhayBvbnRvIHRoZSBET00gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTID0gW1xuICAgICdJbnB1dCcsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0QW1vdW50JyxcbiAgICAnSW5wdXRNYXNrJyxcbiAgICAnU2VsZWN0JyxcbiAgICAnQ2FsZW5kYXInLFxuICAgICdSYWRpbycsXG4gICAgJ1JhZGlvR3JvdXAnLFxuXTtcbi8qKlxuICogVGV4dC1saWtlIGZvcm0gY29udHJvbHMgd2hvc2UgZW1wdHkgdmFsdWUgbXVzdCBkZWZhdWx0IHRvICcnIChhIGNvbnRyb2xsZWRcbiAqIHN0cmluZyBpbnB1dCkgcmF0aGVyIHRoYW4gdW5kZWZpbmVkLiBVc2VkIGJ5IGBpbmplY3RGaWVsZGAgdG8gcGljayBhIHNhZmVcbiAqIGZhbGxiYWNrIHZhbHVlLlxuICovXG5leHBvcnQgY29uc3QgVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyA9IFtcbiAgICAnSW5wdXQnLFxuICAgICdJbnB1dFBhc3N3b3JkJyxcbiAgICAnSW5wdXRUZXh0QXJlYScsXG4gICAgJ0lucHV0U2VhcmNoJyxcbiAgICAnSW5wdXRPVFAnLFxuICAgICdJbnB1dFRyYWRlJyxcbiAgICAnSW5wdXRBbW91bnQnLFxuICAgICdJbnB1dE1hc2snLFxuICAgICdUZXh0QXJlYScsXG4gICAgJ0lucHV0TnVtYmVyJyxcbl07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|