@smileid/web-components 11.1.0 → 11.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/esm/{DocumentCaptureScreens-DHAfE8VG.js → DocumentCaptureScreens-N-0o7eE5.js} +14 -14
  2. package/dist/esm/DocumentCaptureScreens-N-0o7eE5.js.map +1 -0
  3. package/dist/esm/{EndUserConsent-DE6OBSGG.js → EndUserConsent-BgKCCMMn.js} +3 -3
  4. package/dist/esm/{EndUserConsent-DE6OBSGG.js.map → EndUserConsent-BgKCCMMn.js.map} +1 -1
  5. package/dist/esm/{Navigation-kjll5SgE.js → Navigation-DOFYqTZt.js} +2 -2
  6. package/dist/esm/{Navigation-kjll5SgE.js.map → Navigation-DOFYqTZt.js.map} +1 -1
  7. package/dist/esm/{SelfieCaptureScreens-DaREKFi4.js → SelfieCaptureScreens-DKd0f7K8.js} +1568 -1551
  8. package/dist/esm/SelfieCaptureScreens-DKd0f7K8.js.map +1 -0
  9. package/dist/esm/{TotpConsent-DsMJhXD8.js → TotpConsent-BQm8j4-u.js} +2 -2
  10. package/dist/esm/{TotpConsent-DsMJhXD8.js.map → TotpConsent-BQm8j4-u.js.map} +1 -1
  11. package/dist/esm/combobox.js +1 -1
  12. package/dist/esm/document.js +1 -1
  13. package/dist/esm/end-user-consent.js +1 -1
  14. package/dist/esm/{index-LJce6hoU.js → index-Cjzs1eA_.js} +120 -120
  15. package/dist/esm/{index-LJce6hoU.js.map → index-Cjzs1eA_.js.map} +1 -1
  16. package/dist/esm/localisation.js +1 -1
  17. package/dist/esm/main.js +6 -6
  18. package/dist/esm/navigation.js +1 -1
  19. package/dist/esm/{package-BoRHLVSv.js → package-KQ2l43v1.js} +3 -3
  20. package/dist/esm/{package-BoRHLVSv.js.map → package-KQ2l43v1.js.map} +1 -1
  21. package/dist/esm/selfie.js +1 -1
  22. package/dist/esm/smart-camera-web.js +21 -16
  23. package/dist/esm/smart-camera-web.js.map +1 -1
  24. package/dist/esm/totp-consent.js +1 -1
  25. package/dist/package.json +1 -1
  26. package/dist/smart-camera-web.js +45 -45
  27. package/dist/smart-camera-web.js.map +1 -1
  28. package/lib/components/camera-permission/CameraPermission.js +1 -1
  29. package/lib/components/document/src/document-capture/DocumentCapture.js +3 -3
  30. package/lib/components/document/src/document-capture-instructions/DocumentCaptureInstructions.js +3 -3
  31. package/lib/components/document/src/document-capture-review/DocumentCaptureReview.js +3 -3
  32. package/lib/components/selfie/src/SelfieCaptureScreens.js +9 -1
  33. package/lib/components/selfie/src/selfie-capture/SelfieCapture.js +2 -2
  34. package/lib/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.js +3 -3
  35. package/lib/components/selfie/src/selfie-capture-review/SelfieCaptureReview.js +3 -3
  36. package/lib/components/selfie/src/selfie-capture-wrapper/SelfieCaptureWrapper.tsx +97 -46
  37. package/lib/components/signature-pad/package.json +1 -1
  38. package/lib/components/smart-camera-web/src/SmartCameraWeb.js +9 -1
  39. package/package.json +2 -2
  40. package/dist/esm/DocumentCaptureScreens-DHAfE8VG.js.map +0 -1
  41. package/dist/esm/SelfieCaptureScreens-DaREKFi4.js.map +0 -1
  42. package/lib/components/selfie/src/smartselfie-capture/SmartSelfieCapture.stories.js +0 -47
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelfieCaptureScreens-DaREKFi4.js","sources":["../../lib/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.js","../../lib/components/selfie/src/selfie-capture-review/SelfieCaptureReview.js","../../../../node_modules/preact/dist/preact.module.js","../../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../../../../node_modules/preact/hooks/dist/hooks.module.js","../../../../node_modules/@tabler/icons-preact/dist/esm/defaultAttributes.mjs","../../../../node_modules/@tabler/icons-preact/dist/esm/createPreactComponent.mjs","../../../../node_modules/@tabler/icons-preact/dist/esm/icons/IconLoader2.mjs","../../../../node_modules/preact-custom-element/dist/preact-custom-element.esm.js","../../lib/utils/props.ts","../../../../node_modules/@preact/signals-core/dist/signals-core.module.js","../../../../node_modules/@preact/signals/dist/signals.module.js","../../../../node_modules/lodash/now.js","../../../../node_modules/lodash/_trimmedEndIndex.js","../../../../node_modules/lodash/_baseTrim.js","../../../../node_modules/lodash/isSymbol.js","../../../../node_modules/lodash/toNumber.js","../../../../node_modules/lodash/debounce.js","../../../../node_modules/lodash/throttle.js","../../lib/components/selfie/src/smartselfie-capture/hooks/useCamera.ts","../../../../node_modules/@mediapipe/tasks-vision/vision_bundle.mjs","../../lib/components/selfie/src/smartselfie-capture/utils/faceDetection.ts","../../lib/components/selfie/src/smartselfie-capture/utils/canvas.ts","../../lib/components/selfie/src/smartselfie-capture/utils/imageCapture.ts","../../lib/components/selfie/src/smartselfie-capture/constants.ts","../../lib/components/selfie/src/smartselfie-capture/utils/alertMessages.ts","../../lib/components/selfie/src/smartselfie-capture/utils/mediapipeManager.ts","../../lib/components/selfie/src/smartselfie-capture/hooks/useFaceCapture.ts","../../lib/components/selfie/src/smartselfie-capture/OvalProgress.tsx","../../lib/components/selfie/src/smartselfie-capture/components/CameraPreview.tsx","../../lib/components/selfie/src/smartselfie-capture/components/AlertDisplay.tsx","../../lib/components/selfie/src/smartselfie-capture/components/CaptureControls.tsx","../../lib/components/selfie/src/smartselfie-capture/SmartSelfieCapture.tsx","../../lib/components/selfie/src/selfie-capture/SelfieCapture.js","../../lib/components/selfie/src/selfie-capture-wrapper/SelfieCaptureWrapper.tsx","../../lib/components/selfie/src/SelfieCaptureScreens.js"],"sourcesContent":["import styles from '../../../../styles/src/styles';\nimport '../../../navigation/src';\nimport { t, getDirection } from '../../../../domain/localisation';\n\nfunction templateString() {\n return `\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" />\n <link\n href=\"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;700&display=swap\"\n rel=\"stylesheet\"\n />\n <style>\n :host {\n --theme-color: ${this.themeColor || '#001096'}\n --color-active: #001096;\n --color-default: #2d2b2a;\n --color-disabled: #848282;\n }\n\n * {\n font-family: \"DM Sans\", sans-serif;\n }\n\n [hidden] {\n display: none !important;\n }\n\n [disabled] {\n cursor: not-allowed !important;\n filter: grayscale(75%);\n }\n\n .visually-hidden {\n border: 0;\n clip: rect(1px 1px 1px 1px);\n clip: rect(1px, 1px, 1px, 1px);\n height: auto;\n margin: 0;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n img {\n height: auto;\n max-width: 100%;\n transform: scaleX(-1);\n }\n\n video {\n background-color: black;\n }\n\n a {\n color: currentColor;\n text-decoration: none;\n }\n\n svg {\n max-width: 100%;\n }\n\n .color-gray {\n color: #797979;\n }\n\n .color-red {\n color: red;\n }\n\n .color-richblue {\n color: #4e6577;\n }\n\n .color-richblue-shade {\n color: #0e1b42;\n }\n\n .color-digital-blue {\n color: #001096 !important;\n }\n\n .color-deep-blue {\n color: #001096;\n }\n\n .center {\n text-align: center;\n margin-left: auto;\n margin-right: auto;\n }\n\n .font-size-small {\n font-size: 0.75rem;\n }\n\n .font-size-large {\n font-size: 1.5rem;\n }\n\n .text-transform-uppercase {\n text-transform: uppercase;\n }\n\n [id*=-\"screen\"] {\n min-block-size: 100%;\n }\n\n [data-variant~=\"full-width\"] {\n inline-size: 100%;\n }\n\n .flow > * + * {\n margin-top: 1rem;\n }\n\n .button {\n --button-color: var(--theme-color);\n -webkit-appearance: none;\n appearance: none;\n border-radius: 2.5rem;\n border: 0;\n background-color: transparent;\n color: #fff;\n cursor: pointer;\n display: block;\n font-size: 18px;\n font-weight: 600;\n padding: 0.75rem 1.5rem;\n text-align: center;\n }\n\n .button:hover,\n .button:focus,\n .button:active {\n --button-color: var(--color-default);\n }\n\n .button:disabled {\n --button-color: var(--color-disabled);\n }\n\n .button[data-variant~=\"solid\"] {\n background-color: var(--button-color);\n border: 2px solid var(--button-color);\n }\n\n .button[data-variant~=\"outline\"] {\n color: var(--button-color);\n border: 2px solid var(--button-color);\n }\n\n .button[data-variant~=\"ghost\"] {\n padding: 0px;\n color: var(--button-color);\n background-color: transparent;\n }\n\n .icon-btn {\n appearance: none;\n background: none;\n border: none;\n color: hsl(0deg 0% 94%);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px 8px;\n }\n .justify-right {\n justify-content: end !important;\n }\n .nav {\n display: flex;\n justify-content: space-between;\n }\n\n .back-wrapper {\n display: flex;\n align-items: center;\n }\n\n .back-button {\n display: block !important;\n }\n .back-button-text {\n font-size: 11px;\n line-height: 11px;\n color: rgb(21, 31, 114);\n }\n .section {\n border: 1px solid #f4f4f4;\n border-radius: 0.5rem;\n margin-left: auto;\n margin-right: auto;\n max-width: 35ch;\n padding: 1rem;\n }\n\n .selfie-capture-review-image {\n overflow: hidden;\n aspect-ratio: 1/1;\n }\n\n #review-image {\n scale: 1.75;\n }\n\n @media (max-aspect-ratio: 1/1) {\n #review-image {\n transform: scaleX(-1) translateY(-10%);\n }\n }\n\n .tips,\n .powered-by {\n align-items: center;\n border-radius: 0.25rem;\n color: #4e6577;\n display: flex;\n justify-content: center;\n letter-spacing: 0.075em;\n }\n\n .powered-by {\n box-shadow: 0px 2.57415px 2.57415px rgba(0, 0, 0, 0.06);\n display: inline-flex;\n font-size: 0.5rem;\n }\n\n .tips {\n margin-left: auto;\n margin-right: auto;\n max-width: 17rem;\n }\n\n .tips > * + *,\n .powered-by > * + * {\n display: inline-block;\n margin-left: 0.5em;\n }\n\n .powered-by .company {\n color: #18406d;\n font-weight: 700;\n letter-spacing: 0.15rem;\n }\n\n .logo-mark {\n background-color: #004071;\n display: inline-block;\n padding: 0.25em 0.5em;\n }\n\n .logo-mark svg {\n height: auto;\n justify-self: center;\n width: 0.75em;\n }\n\n #selfie-capture-instruction-screen {\n box-sizing: border-box;\n height: 100%;\n padding: 1rem;\n display: flex;\n flex-direction: column;\n max-block-size: 100%;\n max-inline-size: 40ch;\n }\n\n #selfie-capture-instruction-screen header p {\n margin-block: 0 !important;\n }\n\n header h1 {\n font-size: 1.25rem;\n }\n\n .instructions {\n display: flex;\n align-items: center;\n text-align: initial;\n gap: 0.5rem;\n }\n\n .instructions svg {\n flex-shrink: 0;\n margin-inline-end: 0.25rem;\n }\n\n .instructions p {\n margin-block: 0;\n }\n\n h1 {\n color: ${this.themeColor};\n text-align: center;\n margin-top: 0;\n margin-bottom: 1rem;\n\n /* h1 */\n font-size: 1.5rem;\n font-style: normal;\n font-weight: 700;\n line-height: 36px; /* 150% */\n }\n\n .controls {\n width: 100%;\n margin-top: 1rem;\n }\n\n .content-root {\n height: 100%;\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n\n .content-header, .content-body, .content-footer {\n width: 100%;\n }\n\n .content-body {\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n }\n\n .tip-header {\n color: ${this.themeColor};\n }\n\n .tip-body {\n text-align: justify;\n }\n </style>\n ${styles(this.themeColor)}\n <div id=\"selfie-capture-instruction-screen\" class=\"center\" dir=\"${this.direction}\">\n <div class=\"content-root\">\n <div class=\"content-header\">\n <smileid-navigation theme-color=${this.themeColor} ${this.hideBack ? 'hide-back' : ''} ${this.showNavigation ? '' : 'hidden'}></smileid-navigation>\n </div>\n <div class=\"content-body\">\n <header>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"65\" height=\"91\" viewBox=\"0 0 65 91\" fill=\"none\">\n <g clip-path=\"url(#clip0_604_692)\">\n <path d=\"M36.6833 60.4888C26.9272 54.8682 13.1977 54.3026 5.53473 59.2162C-2.12824 64.1298 -0.851078 72.9318 8.05358 78.9413L17.8806 85.1274L51.5126 69.6797L36.7188 60.4534H36.6478L36.6833 60.4888Z\" fill=\"#3B3837\"/>\n <path d=\"M27.5624 90.5007L17.9127 85.0923C17.9127 85.0923 17.9127 74.6288 18.1256 70.4929C18.232 68.2305 23.2342 37.441 44.1655 34.6484C48.1389 34.1182 56.8662 40.5871 56.8662 40.5871\" fill=\"#91190F\"/>\n <path d=\"M27.5624 90.5007L17.9127 85.0923C17.9127 85.0923 17.9127 74.6288 18.1256 70.4929C18.232 68.2305 23.2342 37.441 44.1655 34.6484C48.1389 34.1182 56.8662 40.5871 56.8662 40.5871\" fill=\"#3B3837\"/>\n <path d=\"M64.0705 51.9698C63.8931 41.0114 56.2301 36.5927 46.7224 42.0366C37.0727 47.5511 29.055 60.9486 28.3454 72.2958L27.5649 90.4655L63.7512 69.5739L64.1769 51.8991H64.106L64.0705 51.9698Z\" fill=\"#7ECAF0\"/>\n <path d=\"M44.2729 28.3906L30.0112 36.521L30.4015 19.73L44.6631 11.5643L44.2729 28.3906Z\" fill=\"#F8CEEB\"/>\n <path d=\"M53.959 33.8711L39.6974 42.0368L40.0876 25.2104L54.3493 17.0447L53.959 33.8711Z\" fill=\"#7ECAF0\"/>\n <path d=\"M44.6631 11.5643L54.3483 17.0434L40.0866 25.2092L39.6964 42.0356L30.0112 36.521L30.4015 19.73L44.6631 11.5643Z\" fill=\"#3B3837\"/>\n <path d=\"M53.0767 51.0497L59.9591 46.8785L59.9237 36.9099L64.4647 34.3294L64.5002 49.4236L53.0767 56.2461V51.0497Z\" fill=\"#FF5805\"/>\n <path d=\"M54.0676 54.5139L63.5044 48.8933L63.469 36.026L60.9146 37.4754V47.4439L54.0676 51.5798V54.5139Z\" fill=\"#FF5805\"/>\n <path d=\"M30.4053 52.2515L34.9463 49.6356V60.8414L44.0638 55.1855V60.4172L30.4407 68.7244L30.4053 52.2515Z\" fill=\"#FF5805\"/>\n <path d=\"M31.4317 66.9921L43.0681 59.8869V56.9529L33.9506 62.6088V51.3323L31.3962 52.817L31.4317 66.9921Z\" fill=\"#FF5805\"/>\n <path d=\"M30.4053 19.7312L42.5383 13.0148V18.1759L34.9463 22.3471V32.4924L30.4407 35.073L30.4053 19.7312Z\" fill=\"#FF5805\"/>\n <path d=\"M31.3962 33.377L33.9506 31.9276V21.7823L41.5426 17.6111V14.6771L31.3962 20.2976V28.7815V33.377Z\" fill=\"#FF5805\"/>\n <path d=\"M59.9223 8.27746L53.5365 11.9538V6.79277L64.4279 0.500549L64.4633 16.5846L59.9578 19.1651L59.9223 8.27746Z\" fill=\"#FF5805\"/>\n <path d=\"M60.9142 17.4682L63.504 16.0189L63.4685 2.19722L54.4929 7.35826L54.5284 10.2569L60.9142 6.58057V17.4682Z\" fill=\"#FF5805\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_604_692\">\n <rect width=\"64\" height=\"90\" fill=\"white\" transform=\"translate(0.5 0.5)\"/>\n </clipPath>\n </defs>\n </svg>\n <h1 class='title-color font-bold'>${t('selfie.instructions.title')}</h1>\n </header>\n <div class=\"instructions-wrapper\">\n <div class=\"instructions\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"38\"\n height=\"38\"\n viewBox=\"0 0 38 38\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_604_670)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M31.8569 19C31.8569 21.5428 31.1029 24.0285 29.6902 26.1428C28.2774 28.2571 26.2695 29.9049 23.9203 30.878C21.571 31.8511 18.986 32.1057 16.492 31.6096C13.9981 31.1136 11.7072 29.8891 9.90919 28.091C8.11115 26.293 6.88668 24.0022 6.3906 21.5082C5.89452 19.0143 6.14913 16.4292 7.12222 14.08C8.09531 11.7307 9.74318 9.72279 11.8574 8.31008C13.9717 6.89737 16.4574 6.14334 19.0002 6.14334C22.41 6.14334 25.6802 7.49788 28.0913 9.90897C30.5024 12.3201 31.8569 15.5902 31.8569 19Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M19.6064 4.5419H18.394L18.9912 0L19.6064 4.5419Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M26.7541 6.77667L25.7046 6.17048L28.4913 2.54239L26.7541 6.77667Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M31.8298 12.2957L31.2236 11.2462L35.4489 9.49097L31.8298 12.2957Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M33.4674 19.6062V18.3938L38.0003 18.9909L33.4674 19.6062Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M31.2236 26.7538L31.8298 25.7043L35.4579 28.491L31.2236 26.7538Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M25.7046 31.8295L26.7541 31.2233L28.5094 35.4486L25.7046 31.8295Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M18.394 33.4671H19.6064L19.0093 38L18.394 33.4671Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M11.2464 31.2233L12.2959 31.8295L9.50928 35.4576L11.2464 31.2233Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M6.17068 25.7043L6.77687 26.7538L2.55164 28.509L6.17068 25.7043Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M4.54215 18.3938V19.6062L0.000244141 19.009L4.54215 18.3938Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M6.77689 11.2462L6.1707 12.2957L2.5426 9.50903L6.77689 11.2462Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M12.296 6.17047L11.2464 6.77666L9.49121 2.55142L12.296 6.17047Z\"\n fill=\"${this.themeColor}\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_604_670\">\n <rect\n width=\"38\"\n height=\"38\"\n fill=\"white\"\n transform=\"translate(0.000244141)\"\n />\n </clipPath>\n </defs>\n </svg>\n <div class=\"instruction\">\n <p class=\"text-base title-color font-bold tip-header\">${t('selfie.instructions.tips.goodLight.header')}</p>\n <p class=\"tip-body\">\n ${t('selfie.instructions.tips.goodLight.body')}\n </p>\n </div>\n </div>\n <div class=\"instructions\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"38\"\n height=\"36\"\n viewBox=\"0 0 38 36\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_604_672)\">\n <path\n d=\"M36.7211 12.6391H1.22537C1.06275 13.0909 0.910962 13.5427 0.77002 14.0055H37.1764C37.0463 13.5427 36.8946 13.0909 36.7211 12.6391Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.3716 14.7438H0.574875C0.466458 15.1625 0.379725 15.5813 0.303833 16.011H37.6426C37.5667 15.5813 37.48 15.1625 37.3716 14.7438Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.7727 16.8485H0.173703C0.119494 17.2342 0.0869685 17.6198 0.0544434 18.0055H37.892C37.8594 17.6198 37.8269 17.2342 37.7727 16.8485Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.9462 19.4711C37.9462 19.2948 37.9462 19.1295 37.9353 18.9532H0.0110865C0.000244802 19.1295 0.000244141 19.2948 0.000244141 19.4711C0.000244141 19.6474 0.000244802 19.8347 0.0110865 20.011H37.9353C37.9462 19.8347 37.9462 19.6474 37.9462 19.4711Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.8811 21.0579H0.0653076C0.086991 21.3774 0.119515 21.697 0.162882 22.0055H37.7836C37.8269 21.697 37.8595 21.3774 37.8811 21.0579Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.5992 23.1625H0.347168C0.401376 23.449 0.466426 23.7245 0.531477 24H37.4149C37.48 23.7245 37.545 23.449 37.5992 23.1625Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.0788 25.2672H0.867554C0.954287 25.5096 1.03018 25.7631 1.11691 26.0055H36.8295C36.9162 25.7631 37.0029 25.5096 37.0788 25.2672Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M36.2874 27.3719H1.65906L1.95178 28H35.9947L36.2874 27.3719Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M35.2032 29.4766H2.75403C2.84799 29.6529 2.95641 29.8292 3.07928 30.0055H34.878L35.2032 29.4766Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M33.7396 31.5813H4.20679L4.54288 32H33.4035L33.7396 31.5813Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M31.7989 33.6859H6.14746L6.49439 33.9945H31.452L31.7989 33.6859Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M29.0993 35.7906H8.84705L9.18314 36H28.7632L29.0993 35.7906Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M34.2384 8.01102C33.8914 7.53719 33.5228 7.07438 33.1325 6.63361C29.8258 2.60055 24.6977 0 18.9407 0C12.891 0 7.53525 2.86501 4.25021 7.26171H4.28274C4.08759 7.51515 3.89244 7.75757 3.70813 8.01102H34.2384Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M34.531 8.44077H3.41533C3.06839 8.94765 2.74314 9.47658 2.43958 10.0165H35.5068C35.2124 9.47215 34.8866 8.94597 34.531 8.44077Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M35.7887 10.5344H2.15776C1.9084 11.0193 1.68072 11.5151 1.47473 12.011H36.4717C36.2657 11.5151 36.0381 11.0193 35.7887 10.5344Z\"\n fill=\"${this.themeColor}\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_604_672\">\n <rect\n width=\"37.9459\"\n height=\"36\"\n fill=\"white\"\n transform=\"translate(0.000244141)\"\n />\n </clipPath>\n </defs>\n </svg>\n <div class=\"instruction\">\n <p class=\"text-base title-color font-bold tip-header\">${t('selfie.instructions.tips.clearImage.header')}</p>\n <p class=\"tip-body\">\n ${t('selfie.instructions.tips.clearImage.body')}\n </p>\n </div>\n </div>\n <div class=\"instructions\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"38\"\n height=\"38\"\n viewBox=\"0 0 38 38\"\n fill=\"none\"\n >\n <path\n d=\"M18.9496 0C18.9496 0 13.9842 6.03205e-06 11.1469 1.09139C8.30957 2.18277 8.41092 4.46476 7.80292 6.15145C7.28787 7.56786 6.91455 9.02989 6.68824 10.517C6.68824 10.517 4.86424 11.3107 3.24291 12.2036C2.43378 12.6113 1.72475 13.1862 1.16487 13.8886C0.604986 14.5909 0.207618 15.404 0.000244141 16.2715C0.506911 21.4308 6.68824 23.6136 6.68824 23.6136C6.67321 21.7242 6.77473 19.8356 6.99225 17.9582C7.29625 16.47 7.90424 15.7754 10.4376 14.6841C12.9709 13.5927 18.9496 13.1958 18.9496 13.1958C18.9496 13.1958 24.9282 13.5927 27.4616 14.6841C29.9949 15.7754 30.7042 16.47 31.0082 17.9582C31.2258 19.8356 31.3273 21.7242 31.3122 23.6136C31.3122 23.6136 37.3922 21.4308 38.0002 16.2715C37.5126 14.5484 36.3463 13.0853 34.7576 12.2036L31.2109 10.517C30.9867 9.03874 30.6479 7.57936 30.1976 6.15145C29.4882 4.46476 28.4749 1.78591 26.8536 1.09139C25.2322 0.396873 18.9496 0 18.9496 0Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M10.7416 21.53C12.8058 21.6524 14.8473 22.0188 16.8216 22.6214C18.6235 23.1643 20.5642 23.0588 22.2936 22.3238C24.8269 21.2324 27.5629 21.4308 30.1976 21.6292C30.7849 21.6319 31.3675 21.7326 31.9202 21.9269C32.4269 22.1253 32.4269 22.423 32.4269 23.2167C32.14 24.7237 31.6635 26.19 31.0083 27.5822C30.7799 28.1169 30.4019 28.5776 29.9179 28.9111C29.4338 29.2446 28.8634 29.4375 28.2723 29.4674C27.2359 29.6525 26.1773 29.6859 25.1309 29.5666C24.279 29.5405 23.4506 29.2863 22.736 28.8315C22.0214 28.3766 21.4478 27.7387 21.0776 26.987C20.8887 26.3594 20.6161 25.7589 20.2669 25.201C19.8616 24.705 19.5576 24.5065 19.0509 24.6057C18.7188 24.5693 18.3842 24.6489 18.1061 24.8304C17.828 25.0119 17.6243 25.2837 17.5309 25.5979C16.9229 27.0862 16.4162 28.6736 14.6936 29.2689C13.939 29.5055 13.1548 29.6391 12.3629 29.6658C11.2345 29.6928 10.1081 29.5591 9.01892 29.2689C7.39759 28.7728 6.89092 27.3838 6.38425 25.8956C6.24296 25.2819 6.03928 24.6836 5.77625 24.1096C5.57359 23.5143 5.37092 23.1175 5.67492 22.5222C5.97892 21.9269 6.18159 22.0261 6.68825 21.9269C8.02604 21.6866 9.38168 21.5538 10.7416 21.53ZM12.0589 28.8721C14.4909 28.5744 14.8963 28.5744 15.6056 27.3838C16.0105 26.8072 16.3184 26.1708 16.5176 25.4987C16.9229 24.3081 16.7203 23.7128 15.6056 23.2167C13.2959 22.2331 10.6949 22.127 8.30959 22.9191C8.07105 23.0198 7.85723 23.1693 7.68248 23.3575C7.50772 23.5458 7.37604 23.7684 7.29626 24.0105C7.12045 24.8478 7.19957 25.7172 7.52382 26.5109C7.84807 27.3046 8.40315 27.9876 9.12025 28.4752C10.0603 28.8088 11.0617 28.9441 12.0589 28.8721ZM25.7389 28.9713C26.8173 28.9934 27.8881 28.7904 28.8802 28.376C30.7042 27.5823 30.7043 25.7963 30.7043 24.1096C30.7043 22.423 29.9949 22.9191 29.2856 22.7206C27.3226 22.2044 25.2509 22.2387 23.3069 22.8198C23.0246 22.8282 22.7476 22.8972 22.4956 23.0221C22.2436 23.1469 22.0228 23.3245 21.8487 23.5423C21.6746 23.7601 21.5516 24.0127 21.4884 24.2822C21.4252 24.5517 21.4233 24.8315 21.4829 25.1018C21.6856 27.3838 23.1043 28.5744 25.7389 28.9713Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M11.9576 24.4073C10.8429 24.4073 9.93091 25.1018 9.93091 25.7963V26.2924C9.9546 26.4062 10.0183 26.5082 10.1109 26.5807C10.2034 26.6532 10.319 26.6916 10.4376 26.6893C10.8429 26.6893 11.0456 26.4909 11.0456 26.2924V25.7963C11.0456 25.4987 11.4509 25.201 11.9576 25.201C12.4642 25.201 12.8696 25.4987 12.8696 25.7963V26.2924C12.8696 26.4909 13.1736 26.6893 13.4776 26.6893C13.5961 26.6916 13.7117 26.6532 13.8043 26.5807C13.8969 26.5082 13.9606 26.4062 13.9842 26.2924V25.7963C13.9842 25.1018 13.0722 24.4073 11.9576 24.4073Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M26.1442 24.4073C24.9282 24.4073 24.0162 25.1018 24.0162 25.7963V26.2924C24.0162 26.4909 24.3202 26.6893 24.6242 26.6893C24.9282 26.6893 25.2322 26.4909 25.2322 26.2924V25.7963C25.2322 25.4987 25.6376 25.201 26.1442 25.201C26.6509 25.201 27.0562 25.4987 27.0562 25.7963V26.2924C27.0799 26.4062 27.1436 26.5082 27.2362 26.5807C27.3287 26.6532 27.4444 26.6916 27.5629 26.6893C27.8669 26.6893 28.1709 26.4909 28.1709 26.2924V25.7963C28.1709 25.1018 27.2589 24.4073 26.1442 24.4073Z\"\n fill=\"${this.themeColor}\"\n />\n </svg>\n <div class=\"instruction\">\n <p class=\"text-base title-color font-bold tip-header\">${t('selfie.instructions.tips.removeObstructions.header')}</p>\n <p class=\"tip-body\">\n ${t('selfie.instructions.tips.removeObstructions.body')}\n </p>\n </div>\n </div>\n <div class=\"instructions\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"38\" height=\"38\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"${this.themeColor}\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"icon icon-tabler icons-tabler-outline icon-tabler-mood-happy\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0\" /><path d=\"M9 9l.01 0\" /><path d=\"M15 9l.01 0\" /><path d=\"M8 13a4 4 0 1 0 8 0h-8\" /></svg>\n <div class=\"instruction\">\n <p class=\"text-base title-color font-bold tip-header\">${t('selfie.instructions.tips.wideSmile.header')}</p>\n <p class=\"tip-body\">\n ${t('selfie.instructions.tips.wideSmile.body')}\n </p>\n </div>\n </div>\n </div>\n <section class=\"controls\">\n <button id='allow' data-variant='solid full-width' class='button theme-background'>\n ${t('selfie.instructions.allowButton')}\n </button>\n </section>\n ${\n this.hideAttribution\n ? ''\n : `\n <div class=\"content-footer\">\n <powered-by-smile-id></powered-by-smile-id>\n </div>\n `\n }\n </div>\n </div>\n</div>\n `;\n}\n\nclass SelfieCaptureInstructions extends HTMLElement {\n constructor() {\n super();\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n this.pages = [];\n const template = document.createElement('template');\n template.innerHTML = this.render();\n\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n\n this.allowButton = this.shadowRoot.querySelector('#allow');\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\n\n this.navigation.addEventListener('navigation.back', () => {\n this.handleBackEvents();\n });\n\n if (this.allowButton) {\n this.allowButton.addEventListener('click', () => {\n this.dispatchEvent(\n new CustomEvent('selfie-capture-instructions.capture'),\n );\n });\n }\n\n this.navigation.addEventListener(\n 'navigation.close',\n () => {\n this.handleCloseEvents();\n },\n false,\n );\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n handleBackEvents() {\n this.dispatchEvent(\n new CustomEvent('selfie-capture-instructions.cancelled'),\n );\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation');\n }\n\n get direction() {\n return this.getAttribute('dir') || getDirection() || 'ltr';\n }\n\n handleCloseEvents() {\n this.dispatchEvent(new CustomEvent('selfie-capture-instructions.close'));\n }\n\n static get observedAttributes() {\n return ['show-navigation'];\n }\n}\n\nif (\n 'customElements' in window &&\n !window.customElements.get('selfie-capture-instructions')\n) {\n window.customElements.define(\n 'selfie-capture-instructions',\n SelfieCaptureInstructions,\n );\n}\n\nexport default SelfieCaptureInstructions;\n","import styles from '../../../../styles/src/styles';\nimport '../../../navigation/src';\nimport { t, getDirection } from '../../../../domain/localisation';\n\nfunction templateString() {\n return `\n <style>\n .retake-photo.button[data-variant~=\"ghost\"] {\n color: #FF5805;\n }\n\n #selfie-capture-review-screen {\n display: flex;\n flex-direction: column;\n padding: 1rem;\n }\n\n #selfie-capture-review-screen .selfie-review-container.landscape {\n height: auto;\n }\n\n #selfie-capture-review-screen header p {\n margin-block: 0 !important;\n }\n\n .selfie-review-container.portrait {\n width: 100%;\n position: relative;\n height: calc(200px * 1.4);\n }\n\n .selfie-review-container.portrait img {\n width: calc(213px + 0.9rem);\n height: 100%;\n position: absolute;\n top: 239px;\n left: 161px;\n padding-bottom: calc((214px * 1.4) / 3);\n padding-top: calc((191px * 1.4) / 3);\n object-fit: cover;\n \n transform: translateX(-50%) translateY(-50%);\n z-index: 1;\n block-size: 100%;\n }\n\n h1 {\n color: var(--web-digital-blue, #001096);\n text-align: center;\n /* h1 */\n font-size: 1.25rem;\n font-style: normal;\n font-weight: 700;\n line-height: 36px; /* 150% */\n margin-top: 0;\n }\n </style>\n ${styles(this.themeColor)}\n <div id='selfie-capture-review-screen' class='center' dir='${this.direction}'>\n <smileid-navigation ${this.showNavigation ? 'show-navigation' : ''} hide-back></smileid-navigation>\n <h1 class=\"header-title title-color font-bold\">\n ${t('selfie.review.question')}\n </h1>\n <div class='section | flow'>\n <div class='selfie-review-container ${this.isPortraitCaptureView ? 'portrait' : 'landscape'}'>\n ${\n this.imageSrc\n ? `<img\n alt='your ID card'\n id='document-capture-review-image'\n src='${this.imageSrc}'\n width='396'\n style='max-width: 90%;${this.shouldMirror ? ' transform: scaleX(-1);' : ''}'\n />`\n : ''\n }\n </div>\n <div class='flow action-buttons'>\n <button data-variant='solid full-width' class='button' type='button' id='select-id-image'>\n ${t('selfie.review.acceptButton')}\n </button>\n <button data-variant='ghost full-width' class='button retake-photo' type='button' id='re-capture-image'>\n ${t('selfie.review.retakeButton')}\n </button>\n </div>\n ${\n this.hideAttribution\n ? ''\n : `\n <powered-by-smile-id></powered-by-smile-id>\n `\n }\n </div>\n </div>\n `;\n}\n\nclass SelfieCaptureReview extends HTMLElement {\n constructor() {\n super();\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n const template = document.createElement('template');\n template.innerHTML = this.render();\n this.shadowRoot.innerHTML = '';\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n this.setUpEventListeners();\n }\n\n static get observedAttributes() {\n return [\n 'hide-back-to-host',\n 'show-navigation',\n 'data-image',\n 'mirror-image',\n ];\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back-to-host');\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n get imageSrc() {\n return this.getAttribute('data-image');\n }\n\n get shouldMirror() {\n return this.getAttribute('mirror-image') !== 'false';\n }\n\n get title() {\n return this.getAttribute('title') || t('selfie.review.title');\n }\n\n get direction() {\n return this.getAttribute('dir') || getDirection() || 'ltr';\n }\n\n handleBackEvents() {\n this.dispatchEvent(new CustomEvent('selfie-capture-review.cancelled'));\n }\n\n handleCloseEvents() {\n this.dispatchEvent(new CustomEvent('selfie-capture-review.close'));\n }\n\n attributeChangedCallback(name) {\n switch (name) {\n case 'data-image':\n case 'hide-back-to-host':\n case 'show-navigation':\n case 'mirror-image':\n this.shadowRoot.innerHTML = this.render();\n this.setUpEventListeners();\n break;\n default:\n break;\n }\n }\n\n setUpEventListeners() {\n this.selectImage = this.shadowRoot.querySelector('#select-id-image');\n this.reCaptureImage = this.shadowRoot.querySelector('#re-capture-image');\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\n\n this.navigation.addEventListener('navigation.back', () => {\n this.handleBackEvents();\n });\n this.navigation.addEventListener('navigation.close', () => {\n this.handleCloseEvents();\n });\n\n this.selectImage.addEventListener('click', () => {\n this.dispatchEvent(\n new CustomEvent('selfie-capture-review.accepted', {\n detail: {},\n }),\n );\n });\n this.reCaptureImage.addEventListener('click', () => {\n this.dispatchEvent(\n new CustomEvent('selfie-capture-review.rejected', {\n detail: {},\n }),\n );\n });\n }\n}\n\nif (\n 'customElements' in window &&\n !customElements.get('selfie-capture-review')\n) {\n window.customElements.define('selfie-capture-review', SelfieCaptureReview);\n}\n\nexport default SelfieCaptureReview;\n","var n,l,u,t,i,o,r,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,d=Array.isArray;function w(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,o,r,e={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:e[r]=u[r];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===e[r]&&(e[r]=l.defaultProps[r]);return m(l,e,i,o,null)}function m(n,t,i,o,r){var e={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||o!=l.debounceRendering)&&((o=l.debounceRendering)||r)($)}function $(){for(var n,u,t,o,r,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,o=void 0,r=(o=(u=n).__v).__e,f=[],c=[],u.__P&&((t=w({},o)).__v=o.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,o,u.__n,u.__P.namespaceURI,32&o.__u?[r]:null,f,null==r?S(o):r,!!(32&o.__u),c),t.__v=o.__v,t.__.__k[t.__i]=t,N(f,t,c),o.__e=o.__=null,t.__e!=r&&C(t)));$.__r=0}function I(n,l,u,t,i,o,r,e,f,c,s){var a,h,y,d,w,g,_,m=t&&t.__k||v,b=l.length;for(f=P(u,l,m,f,b),a=0;a<b;a++)null!=(y=u.__k[a])&&(h=-1==y.__i?p:m[y.__i]||p,y.__i=a,g=O(n,y,h,i,o,r,e,f,c,s),d=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&B(h.ref,null,y),s.push(y.ref,y.__c||d,y)),null==w&&null!=d&&(w=d),(_=!!(4&y.__u))||h.__k===y.__k?f=A(y,f,n,_):\"function\"==typeof y.type&&void 0!==g?f=g:d&&(f=d.nextSibling),y.__u&=-7);return u.__e=w,f}function P(n,l,u,t,i){var o,r,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),o=0;o<i;o++)null!=(r=l[o])&&\"boolean\"!=typeof r&&\"function\"!=typeof r?(f=o+h,(r=n.__k[o]=\"string\"==typeof r||\"number\"==typeof r||\"bigint\"==typeof r||r.constructor==String?m(null,r,null,null,null):d(r)?m(k,{children:r},null,null,null):void 0===r.constructor&&r.__b>0?m(r.type,r.props,r.key,r.ref?r.ref:null,r.__v):r).__=n,r.__b=n.__b+1,e=null,-1!=(c=r.__i=L(r,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof r.type&&(r.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,r.__u|=4))):n.__k[o]=null;if(a)for(o=0;o<s;o++)null!=(e=u[o])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),D(e,e));return t}function A(n,l,u,t){var i,o;if(\"function\"==typeof n.type){for(i=n.__k,o=0;i&&o<i.length;o++)i[o]&&(i[o].__=n,l=A(i[o],l,u,t));return l}n.__e!=l&&(t&&(l&&n.type&&!l.parentNode&&(l=S(n)),u.insertBefore(n.__e,l||null)),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(d(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,o,r,e=n.key,f=n.type,c=l[u],s=null!=c&&0==(2&c.__u);if(null===c&&null==n.key||s&&e==c.key&&f==c.type)return u;if(t>(s?1:0))for(i=u-1,o=u+1;i>=0||o<l.length;)if(null!=(c=l[r=i>=0?i--:o++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return r;return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||y.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var o,r;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])o=l!=(l=l.replace(f,\"$1\")),r=l.toLowerCase(),l=r in n||\"onFocusOut\"==l||\"onFocusIn\"==l?r.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,o?a:s,o)):n.removeEventListener(l,o?a:s,o);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,o,r,e,f,c,s){var a,h,p,v,y,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),r=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=E),C&&C.sub(h),h.props=b,h.state||(h.state={}),h.context=M,h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=w({},h.__s)),w(h.__s,j.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)||u.__v==t.__v){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=w(w({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(v,y)),L=a,null!=a&&a.type===k&&null==a.key&&(L=V(a.props.children)),f=I(n,d(L)?L:[L],u,t,i,o,r,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=r)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;r[r.indexOf(f)]=null,u.__e=f}else{for(T=r.length;T--;)g(r[T]);z(u)}else u.__e=t.__e,u.__k=t.__k,n.then||z(u);l.__e(n,u,t)}else null==r&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=q(t.__e,u,t,i,o,r,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n){n&&n.__c&&(n.__c.__e=!0),n&&n.__k&&n.__k.forEach(z)}function N(n,u,t){for(var i=0;i<t.length;i++)B(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function V(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:d(n)?n.map(V):w({},n)}function q(u,t,i,o,r,e,f,c,s){var a,h,v,y,w,_,m,b=i.props,k=t.props,x=t.type;if(\"svg\"==x?r=\"http://www.w3.org/2000/svg\":\"math\"==x?r=\"http://www.w3.org/1998/Math/MathML\":r||(r=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((w=e[a])&&\"setAttribute\"in w==!!x&&(x?w.localName==x:3==w.nodeType)){u=w,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(r,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),b=i.props||p,!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(w=u.attributes[a]).name]=w.value;for(a in b)if(w=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=w;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,w,r)}for(a in k)w=k[a],\"children\"==a?y=w:\"dangerouslySetInnerHTML\"==a?h=w:\"value\"==a?_=w:\"checked\"==a?m=w:c&&\"function\"!=typeof w||b[a]===w||j(u,a,w,b[a],r);if(h)c||v&&(h.__html==v.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(v&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,d(y)?y:[y],t,i,o,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":r,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],r),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],r))}return u}function B(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function D(n,u,t){var i,o;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||B(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(o=0;o<i.length;o++)i[o]&&D(i[o],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function E(n,l,u){return this.constructor(n,u)}function G(u,t,i){var o,r,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),r=(o=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!o&&i||t).__k=_(k,null,[u]),r||p,p,t.namespaceURI,!o&&i?[i]:r?null:t.firstChild?n.call(t.childNodes):null,e,!o&&i?i:r?r.__e:t.firstChild,o,f),N(e,u,f)}function J(n,l){G(n,l,J)}function K(l,u,t){var i,o,r,e,f=w({},l.props);for(r in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=void 0===u[r]&&null!=e?e[r]:u[r];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,o||l.ref,null)}function Q(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&void 0===n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=w({},this.state),\"function\"==typeof n&&(n=n(w({},u),this.props)),n&&w(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,K as cloneElement,Q as createContext,_ as createElement,b as createRef,_ as h,J as hydrate,t as isValidElement,l as options,G as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\"&quot;\";break;case 38:f=\"&amp;\";break;case 60:f=\"&lt;\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","/**\n * @license @tabler/icons-preact v3.34.1 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n outline: {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": 2,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n },\n filled: {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n stroke: \"none\"\n }\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * @license @tabler/icons-preact v3.34.1 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { h, toChildArray } from 'preact';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst createPreactComponent = (type, iconName, iconNamePascal, iconNode) => {\n const Component = ({\n color = \"currentColor\",\n size = 24,\n stroke = 2,\n title,\n children,\n className = \"\",\n class: classes = \"\",\n style,\n ...rest\n }) => h(\n \"svg\",\n {\n ...defaultAttributes[type],\n width: String(size),\n height: String(size),\n class: [`tabler-icon`, `tabler-icon-${iconName}`, classes, className].join(\" \"),\n ...type === \"filled\" ? {\n fill: color\n } : {\n \"stroke-width\": stroke,\n stroke: color\n },\n style,\n ...rest\n },\n [\n title && h(\"title\", {}, title),\n ...iconNode.map(([tag, attrs]) => h(tag, attrs)),\n ...toChildArray(children)\n ]\n );\n Component.displayName = `${iconNamePascal}`;\n return Component;\n};\n\nexport { createPreactComponent as default };\n//# sourceMappingURL=createPreactComponent.mjs.map\n","/**\n * @license @tabler/icons-preact v3.34.1 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createPreactComponent from '../createPreactComponent.mjs';\n\nvar IconLoader2 = createPreactComponent(\"outline\", \"loader-2\", \"Loader2\", [[\"path\", { \"d\": \"M12 3a9 9 0 1 0 9 9\", \"key\": \"svg-0\" }]]);\n\nexport { IconLoader2 as default };\n//# sourceMappingURL=IconLoader2.mjs.map\n","import{h as t,hydrate as e,render as n,cloneElement as o}from\"preact\";function r(){return(r=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}var i=[\"context\",\"children\"];function a(t){this.getChildContext=function(){return t.context};var e=t.children,n=function(t,e){if(null==t)return{};var n,o,r={},i=Object.keys(t);for(o=0;o<i.length;o++)e.indexOf(n=i[o])>=0||(r[n]=t[n]);return r}(t,i);return o(e,n)}function s(){var o=new CustomEvent(\"_preact\",{detail:{},bubbles:!0,cancelable:!0});this.dispatchEvent(o),this._vdom=t(a,r({},this._props,{context:o.detail.context}),function e(n,o){if(3===n.nodeType)return n.data;if(1!==n.nodeType)return null;var r=[],i={},a=0,s=n.attributes,l=n.childNodes;for(a=s.length;a--;)\"slot\"!==s[a].name&&(i[s[a].name]=s[a].value,i[c(s[a].name)]=s[a].value);for(a=l.length;a--;){var u=e(l[a],null),d=l[a].slot;d?i[d]=t(p,{name:d},u):r[a]=u}var h=o?t(p,null,r):r;return t(o||n.nodeName.toLowerCase(),i,h)}(this,this._vdomComponent)),(this.hasAttribute(\"hydrate\")?e:n)(this._vdom,this._root)}function c(t){return t.replace(/-(\\w)/g,function(t,e){return e?e.toUpperCase():\"\"})}function l(t,e,r){if(this._vdom){var i={};i[t]=r=null==r?void 0:r,i[c(t)]=r,this._vdom=o(this._vdom,i),n(this._vdom,this._root)}}function u(){n(this._vdom=null,this._root)}function p(e,n){var o=this;return t(\"slot\",r({},e,{ref:function(t){t?(o.ref=t,o._listener||(o._listener=function(t){t.stopPropagation(),t.detail.context=n},t.addEventListener(\"_preact\",o._listener))):o.ref.removeEventListener(\"_preact\",o._listener)}}))}export default function(t,e,n,o){function r(){var e=Reflect.construct(HTMLElement,[],r);return e._vdomComponent=t,e._root=o&&o.shadow?e.attachShadow({mode:o.mode||\"open\"}):e,e}return(r.prototype=Object.create(HTMLElement.prototype)).constructor=r,r.prototype.connectedCallback=s,r.prototype.attributeChangedCallback=l,r.prototype.disconnectedCallback=u,n=n||t.observedAttributes||Object.keys(t.propTypes||{}),r.observedAttributes=n,n.forEach(function(t){Object.defineProperty(r.prototype,t,{get:function(){return this._vdom.props[t]},set:function(e){this._vdom?this.attributeChangedCallback(t,null,e):(this._props||(this._props={}),this._props[t]=e,this.connectedCallback());var n=typeof e;null!=e&&\"string\"!==n&&\"boolean\"!==n&&\"number\"!==n||this.setAttribute(t,e)}})}),customElements.define(e||t.tagName||t.displayName||t.name,r)}\n//# sourceMappingURL=preact-custom-element.esm.js.map\n","export const getBoolProp = (\n value: string | boolean | undefined,\n defaultValue: boolean = false,\n): boolean => {\n if (typeof value === 'boolean') return value;\n if (typeof value === 'string') {\n return value === 'true' || value === '';\n }\n return defaultValue;\n};\n\nexport const getStringProp = (\n element: HTMLElement,\n attributeName: string,\n defaultValue: string = '',\n): string => element.getAttribute(attributeName) || defaultValue;\n","var i=Symbol.for(\"preact-signals\");function t(){if(!(s>1)){var i,t=!1;while(void 0!==h){var r=h;h=void 0;f++;while(void 0!==r){var o=r.o;r.o=void 0;r.f&=-3;if(!(8&r.f)&&c(r))try{r.c()}catch(r){if(!t){i=r;t=!0}}r=o}}f=0;s--;if(t)throw i}else s--}function r(i){if(s>0)return i();s++;try{return i()}finally{t()}}var o=void 0;function n(i){var t=o;o=void 0;try{return i()}finally{o=t}}var h=void 0,s=0,f=0,v=0;function e(i){if(void 0!==o){var t=i.n;if(void 0===t||t.t!==o){t={i:0,S:i,p:o.s,n:void 0,t:o,e:void 0,x:void 0,r:t};if(void 0!==o.s)o.s.n=t;o.s=t;i.n=t;if(32&o.f)i.S(t);return t}else if(-1===t.i){t.i=0;if(void 0!==t.n){t.n.p=t.p;if(void 0!==t.p)t.p.n=t.n;t.p=o.s;t.n=void 0;o.s.n=t;o.s=t}return t}}}function u(i,t){this.v=i;this.i=0;this.n=void 0;this.t=void 0;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched}u.prototype.brand=i;u.prototype.h=function(){return!0};u.prototype.S=function(i){var t=this,r=this.t;if(r!==i&&void 0===i.e){i.x=r;this.t=i;if(void 0!==r)r.e=i;else n(function(){var i;null==(i=t.W)||i.call(t)})}};u.prototype.U=function(i){var t=this;if(void 0!==this.t){var r=i.e,o=i.x;if(void 0!==r){r.x=o;i.e=void 0}if(void 0!==o){o.e=r;i.x=void 0}if(i===this.t){this.t=o;if(void 0===o)n(function(){var i;null==(i=t.Z)||i.call(t)})}}};u.prototype.subscribe=function(i){var t=this;return E(function(){var r=t.value,n=o;o=void 0;try{i(r)}finally{o=n}})};u.prototype.valueOf=function(){return this.value};u.prototype.toString=function(){return this.value+\"\"};u.prototype.toJSON=function(){return this.value};u.prototype.peek=function(){var i=o;o=void 0;try{return this.value}finally{o=i}};Object.defineProperty(u.prototype,\"value\",{get:function(){var i=e(this);if(void 0!==i)i.i=this.i;return this.v},set:function(i){if(i!==this.v){if(f>100)throw new Error(\"Cycle detected\");this.v=i;this.i++;v++;s++;try{for(var r=this.t;void 0!==r;r=r.x)r.t.N()}finally{t()}}}});function d(i,t){return new u(i,t)}function c(i){for(var t=i.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function a(i){for(var t=i.s;void 0!==t;t=t.n){var r=t.S.n;if(void 0!==r)t.r=r;t.S.n=t;t.i=-1;if(void 0===t.n){i.s=t;break}}}function l(i){var t=i.s,r=void 0;while(void 0!==t){var o=t.p;if(-1===t.i){t.S.U(t);if(void 0!==o)o.n=t.n;if(void 0!==t.n)t.n.p=o}else r=t;t.S.n=t.r;if(void 0!==t.r)t.r=void 0;t=o}i.s=r}function y(i,t){u.call(this,void 0);this.x=i;this.s=void 0;this.g=v-1;this.f=4;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched}y.prototype=new u;y.prototype.h=function(){this.f&=-3;if(1&this.f)return!1;if(32==(36&this.f))return!0;this.f&=-5;if(this.g===v)return!0;this.g=v;this.f|=1;if(this.i>0&&!c(this)){this.f&=-2;return!0}var i=o;try{a(this);o=this;var t=this.x();if(16&this.f||this.v!==t||0===this.i){this.v=t;this.f&=-17;this.i++}}catch(i){this.v=i;this.f|=16;this.i++}o=i;l(this);this.f&=-2;return!0};y.prototype.S=function(i){if(void 0===this.t){this.f|=36;for(var t=this.s;void 0!==t;t=t.n)t.S.S(t)}u.prototype.S.call(this,i)};y.prototype.U=function(i){if(void 0!==this.t){u.prototype.U.call(this,i);if(void 0===this.t){this.f&=-33;for(var t=this.s;void 0!==t;t=t.n)t.S.U(t)}}};y.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var i=this.t;void 0!==i;i=i.x)i.t.N()}};Object.defineProperty(y.prototype,\"value\",{get:function(){if(1&this.f)throw new Error(\"Cycle detected\");var i=e(this);this.h();if(void 0!==i)i.i=this.i;if(16&this.f)throw this.v;return this.v}});function w(i,t){return new y(i,t)}function _(i){var r=i.u;i.u=void 0;if(\"function\"==typeof r){s++;var n=o;o=void 0;try{r()}catch(t){i.f&=-2;i.f|=8;b(i);throw t}finally{o=n;t()}}}function b(i){for(var t=i.s;void 0!==t;t=t.n)t.S.U(t);i.x=void 0;i.s=void 0;_(i)}function g(i){if(o!==this)throw new Error(\"Out-of-order effect\");l(this);o=i;this.f&=-2;if(8&this.f)b(this);t()}function p(i){this.x=i;this.u=void 0;this.s=void 0;this.o=void 0;this.f=32}p.prototype.c=function(){var i=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var t=this.x();if(\"function\"==typeof t)this.u=t}finally{i()}};p.prototype.S=function(){if(1&this.f)throw new Error(\"Cycle detected\");this.f|=1;this.f&=-9;_(this);a(this);s++;var i=o;o=this;return g.bind(this,i)};p.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.o=h;h=this}};p.prototype.d=function(){this.f|=8;if(!(1&this.f))b(this)};p.prototype.dispose=function(){this.d()};function E(i){var t=new p(i);try{t.c()}catch(i){t.d();throw i}var r=t.d.bind(t);r[Symbol.dispose]=r;return r}export{u as Signal,r as batch,w as computed,E as effect,d as signal,n as untracked};//# sourceMappingURL=signals-core.module.js.map\n","import{Component as i,options as n,isValidElement as r,Fragment as t}from\"preact\";import{useMemo as f,useRef as o,useEffect as e}from\"preact/hooks\";import{effect as u,Signal as a,computed as c,signal as v,batch as s}from\"@preact/signals-core\";export{Signal,batch,computed,effect,signal,untracked}from\"@preact/signals-core\";var h,l,d,p=[],m=[];u(function(){h=this.N})();function _(i,r){n[i]=r.bind(null,n[i]||function(){})}function g(i){if(d)d();d=i&&i.S()}function b(i){var n=this,t=i.data,o=useSignal(t);o.value=t;var e=f(function(){var i=n,t=n.__v;while(t=t.__)if(t.__c){t.__c.__$f|=4;break}var f=c(function(){var i=o.value.value;return 0===i?0:!0===i?\"\":i||\"\"}),e=c(function(){return!Array.isArray(f.value)&&!r(f.value)}),a=u(function(){this.N=T;if(e.value){var n=f.value;if(i.__v&&i.__v.__e&&3===i.__v.__e.nodeType)i.__v.__e.data=n}}),v=n.__$u.d;n.__$u.d=function(){a();v.call(this)};return[e,f]},[]),a=e[0],v=e[1];return a.value?v.peek():v.value}b.displayName=\"_st\";Object.defineProperties(a.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:b},props:{configurable:!0,get:function(){return{data:this}}},__b:{configurable:!0,value:1}});_(\"__b\",function(i,n){if(\"string\"==typeof n.type){var r,t=n.props;for(var f in t)if(\"children\"!==f){var o=t[f];if(o instanceof a){if(!r)n.__np=r={};r[f]=o;t[f]=o.peek()}}}i(n)});_(\"__r\",function(i,n){if(n.type!==t){g();var r,f=n.__c;if(f){f.__$f&=-2;if(void 0===(r=f.__$u))f.__$u=r=function(i){var n;u(function(){n=this});n.c=function(){f.__$f|=1;f.setState({})};return n}()}l=f;g(r)}i(n)});_(\"__e\",function(i,n,r,t){g();l=void 0;i(n,r,t)});_(\"diffed\",function(i,n){g();l=void 0;var r;if(\"string\"==typeof n.type&&(r=n.__e)){var t=n.__np,f=n.props;if(t){var o=r.U;if(o)for(var e in o){var u=o[e];if(void 0!==u&&!(e in t)){u.d();o[e]=void 0}}else{o={};r.U=o}for(var a in t){var c=o[a],v=t[a];if(void 0===c){c=y(r,a,v,f);o[a]=c}else c.o(v,f)}}}i(n)});function y(i,n,r,t){var f=n in i&&void 0===i.ownerSVGElement,o=v(r);return{o:function(i,n){o.value=i;t=n},d:u(function(){this.N=T;var r=o.value.value;if(t[n]!==r){t[n]=r;if(f)i[n]=r;else if(r)i.setAttribute(n,r);else i.removeAttribute(n)}})}}_(\"unmount\",function(i,n){if(\"string\"==typeof n.type){var r=n.__e;if(r){var t=r.U;if(t){r.U=void 0;for(var f in t){var o=t[f];if(o)o.d()}}}}else{var e=n.__c;if(e){var u=e.__$u;if(u){e.__$u=void 0;u.d()}}}i(n)});_(\"__h\",function(i,n,r,t){if(t<3||9===t)n.__$f|=2;i(n,r,t)});i.prototype.shouldComponentUpdate=function(i,n){var r=this.__$u,t=r&&void 0!==r.s;for(var f in n)return!0;if(this.__f||\"boolean\"==typeof this.u&&!0===this.u){var o=2&this.__$f;if(!(t||o||4&this.__$f))return!0;if(1&this.__$f)return!0}else{if(!(t||4&this.__$f))return!0;if(3&this.__$f)return!0}for(var e in i)if(\"__source\"!==e&&i[e]!==this.props[e])return!0;for(var u in this.props)if(!(u in i))return!0;return!1};function useSignal(i,n){return f(function(){return v(i,n)},[])}function useComputed(i,n){var r=o(i);r.current=i;l.__$f|=4;return f(function(){return c(function(){return r.current()},n)},[])}var k=\"undefined\"==typeof requestAnimationFrame?setTimeout:function(i){var n=function(){clearTimeout(r);cancelAnimationFrame(t);i()},r=setTimeout(n,35),t=requestAnimationFrame(n)},q=function(i){queueMicrotask(function(){queueMicrotask(i)})};function A(){s(function(){var i;while(i=p.shift())h.call(i)})}function w(){if(1===p.push(this))(n.requestAnimationFrame||k)(A)}function F(){s(function(){var i;while(i=m.shift())h.call(i)})}function T(){if(1===m.push(this))(n.requestAnimationFrame||q)(F)}function useSignalEffect(i){var n=o(i);n.current=i;e(function(){return u(function(){this.N=w;return n.current()})},[])}export{useComputed,useSignal,useSignalEffect};//# sourceMappingURL=signals.module.js.map\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","import { useRef, useState, useEffect } from 'preact/hooks';\n\nexport const useCamera = (initialFacingMode: CameraFacingMode = 'user') => {\n const videoRef = useRef<HTMLVideoElement>(null);\n const streamRef = useRef<MediaStream | null>(null);\n const [facingMode, setFacingMode] = useState(initialFacingMode);\n const [agentSupported, setAgentSupported] = useState(false);\n const onCameraSwitchCallbackRef = useRef<(() => void) | null>(null);\n const isSwitchingCameraRef = useRef(false);\n const timeoutIdsRef = useRef<Set<NodeJS.Timeout>>(new Set());\n\n const registerCameraSwitchCallback = (callback: () => void) => {\n onCameraSwitchCallbackRef.current = callback;\n };\n\n useEffect(() => {\n const video = videoRef.current;\n if (!video) return undefined;\n\n const handleVideoReady = () => {\n if (isSwitchingCameraRef.current && onCameraSwitchCallbackRef.current) {\n const timeoutId = setTimeout(() => {\n onCameraSwitchCallbackRef.current?.();\n isSwitchingCameraRef.current = false;\n timeoutIdsRef.current.delete(timeoutId);\n }, 100);\n timeoutIdsRef.current.add(timeoutId);\n }\n };\n\n video.addEventListener('loadedmetadata', handleVideoReady);\n\n return () => {\n video.removeEventListener('loadedmetadata', handleVideoReady);\n timeoutIdsRef.current.forEach((timeoutId) => clearTimeout(timeoutId));\n timeoutIdsRef.current.clear();\n };\n }, [videoRef.current?.src]);\n\n useEffect(\n () => () => {\n timeoutIdsRef.current.forEach((timeoutId) => clearTimeout(timeoutId));\n timeoutIdsRef.current.clear();\n },\n [],\n );\n\n const startCamera = async (\n targetFacingMode?: CameraFacingMode,\n callback?: (cameraName?: string) => void,\n ) => {\n try {\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n }\n\n if (videoRef.current) {\n videoRef.current.srcObject = null;\n }\n\n const stream = await navigator.mediaDevices.getUserMedia({\n video: { facingMode: targetFacingMode || facingMode },\n });\n streamRef.current = stream;\n\n const track = stream.getVideoTracks()[0];\n const settings = track.getSettings();\n const actualFacingMode = settings.facingMode as\n | CameraFacingMode\n | undefined;\n\n const requestedFacingMode = targetFacingMode || facingMode;\n\n if (actualFacingMode && actualFacingMode !== requestedFacingMode) {\n setFacingMode(actualFacingMode);\n } else if (actualFacingMode && actualFacingMode !== facingMode) {\n setFacingMode(actualFacingMode);\n }\n\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevice = devices.find(\n (device) =>\n device.kind === 'videoinput' &&\n stream.getVideoTracks()[0].getSettings().deviceId === device.deviceId,\n );\n\n callback?.(videoDevice?.label);\n\n if (videoRef.current) {\n videoRef.current.srcObject = stream;\n await videoRef.current.play();\n // Video ready callback will be handled by useEffect\n }\n } catch (error) {\n console.error('Failed to start camera:', error);\n }\n };\n\n const switchCamera = async () => {\n const newFacingMode = facingMode === 'user' ? 'environment' : 'user';\n isSwitchingCameraRef.current = true;\n\n const previousFacingMode = facingMode;\n try {\n setFacingMode(newFacingMode);\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n }\n\n await startCamera(newFacingMode);\n } catch {\n setFacingMode(previousFacingMode);\n isSwitchingCameraRef.current = false;\n\n try {\n await startCamera(previousFacingMode);\n } catch (restoreError) {\n console.error('Failed to restore previous camera:', restoreError);\n }\n }\n };\n\n const detectBrowserEngine = () => {\n const userAgent = navigator.userAgent.toLowerCase();\n\n const isGecko =\n userAgent.includes('firefox') ||\n (userAgent.includes('gecko') &&\n !userAgent.includes('chrome') &&\n !userAgent.includes('edge'));\n\n const hasFirefoxFeatures =\n 'mozInnerScreenX' in window ||\n 'mozInputSource' in window ||\n 'mozPaintCount' in window ||\n typeof (window as any).InstallTrigger !== 'undefined';\n\n const supportsMozCSS =\n CSS.supports &&\n (CSS.supports('-moz-appearance', 'none') ||\n CSS.supports('-moz-user-select', 'none'));\n\n return {\n isGecko: isGecko || hasFirefoxFeatures || supportsMozCSS,\n isChromium:\n userAgent.includes('chrome') ||\n userAgent.includes('chromium') ||\n userAgent.includes('edge'),\n isWebKit: userAgent.includes('webkit') && !userAgent.includes('chrome'),\n };\n };\n\n const checkAgentSupport = async () => {\n try {\n const isMobile =\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent,\n ) ||\n (navigator.maxTouchPoints && navigator.maxTouchPoints > 1);\n\n // mobile devices generally support both cameras\n // also, ios crashes if we try to check for cameras\n if (isMobile) {\n setAgentSupported(true);\n return;\n }\n\n const { isGecko } = detectBrowserEngine();\n\n let userCameraId: string | null = null;\n let environmentCameraId: string | null = null;\n\n // test if we can get a user-facing camera\n try {\n const userStream = await navigator.mediaDevices.getUserMedia({\n video: { facingMode: 'user' },\n });\n userCameraId =\n userStream.getVideoTracks()[0].getSettings().deviceId ?? null;\n userStream.getTracks().forEach((track) => track.stop());\n } catch {\n // no user-facing camera available\n }\n\n // test if we can get an environment-facing camera\n try {\n const envStream = await navigator.mediaDevices.getUserMedia({\n video: { facingMode: 'environment' },\n });\n environmentCameraId =\n envStream.getVideoTracks()[0].getSettings().deviceId ?? null;\n envStream.getTracks().forEach((track) => track.stop());\n } catch {\n // no environment-facing camera available\n }\n\n const hasBothCameras =\n userCameraId &&\n environmentCameraId &&\n userCameraId !== environmentCameraId;\n\n if (!hasBothCameras) {\n setAgentSupported(false);\n return;\n }\n\n setAgentSupported(!isGecko);\n } catch {\n setAgentSupported(false);\n }\n };\n\n const stopCamera = () => {\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n }\n\n if (videoRef.current) {\n videoRef.current.srcObject = null;\n videoRef.current.load();\n }\n };\n\n return {\n videoRef,\n streamRef,\n facingMode,\n agentSupported,\n startCamera,\n switchCamera,\n checkAgentSupport,\n stopCamera,\n registerCameraSwitchCallback,\n };\n};\n","var t=\"undefined\"!=typeof self?self:{};function e(){throw Error(\"Invalid UTF8\")}function n(t,e){return e=String.fromCharCode.apply(null,e),null==t?e:t+e}let r,i;const s=\"undefined\"!=typeof TextDecoder;let o;const a=\"undefined\"!=typeof TextEncoder;function c(t){if(a)t=(o||=new TextEncoder).encode(t);else{let n=0;const r=new Uint8Array(3*t.length);for(let i=0;i<t.length;i++){var e=t.charCodeAt(i);if(e<128)r[n++]=e;else{if(e<2048)r[n++]=e>>6|192;else{if(e>=55296&&e<=57343){if(e<=56319&&i<t.length){const s=t.charCodeAt(++i);if(s>=56320&&s<=57343){e=1024*(e-55296)+s-56320+65536,r[n++]=e>>18|240,r[n++]=e>>12&63|128,r[n++]=e>>6&63|128,r[n++]=63&e|128;continue}i--}e=65533}r[n++]=e>>12|224,r[n++]=e>>6&63|128}r[n++]=63&e|128}}t=n===r.length?r:r.subarray(0,n)}return t}var h,u;t:{for(var l=[\"CLOSURE_FLAGS\"],d=t,f=0;f<l.length;f++)if(null==(d=d[l[f]])){u=null;break t}u=d}var p,g=u&&u[610401301];h=null!=g&&g;const m=t.navigator;function y(t){return!!h&&(!!p&&p.brands.some((({brand:e})=>e&&-1!=e.indexOf(t))))}function _(e){var n;return(n=t.navigator)&&(n=n.userAgent)||(n=\"\"),-1!=n.indexOf(e)}function v(){return!!h&&(!!p&&p.brands.length>0)}function E(){return v()?y(\"Chromium\"):(_(\"Chrome\")||_(\"CriOS\"))&&!(!v()&&_(\"Edge\"))||_(\"Silk\")}function w(t){return w[\" \"](t),t}p=m&&m.userAgentData||null,w[\" \"]=function(){};var T=!v()&&(_(\"Trident\")||_(\"MSIE\"));!_(\"Android\")||E(),E(),_(\"Safari\")&&(E()||!v()&&_(\"Coast\")||!v()&&_(\"Opera\")||!v()&&_(\"Edge\")||(v()?y(\"Microsoft Edge\"):_(\"Edg/\"))||v()&&y(\"Opera\"));var A={},b=null;function k(t){const e=t.length;let n=3*e/4;n%3?n=Math.floor(n):-1!=\"=.\".indexOf(t[e-1])&&(n=-1!=\"=.\".indexOf(t[e-2])?n-2:n-1);const r=new Uint8Array(n);let i=0;return function(t,e){function n(e){for(;r<t.length;){const e=t.charAt(r++),n=b[e];if(null!=n)return n;if(!/^[\\s\\xa0]*$/.test(e))throw Error(\"Unknown base64 encoding at char: \"+e)}return e}S();let r=0;for(;;){const t=n(-1),r=n(0),i=n(64),s=n(64);if(64===s&&-1===t)break;e(t<<2|r>>4),64!=i&&(e(r<<4&240|i>>2),64!=s&&e(i<<6&192|s))}}(t,(function(t){r[i++]=t})),i!==n?r.subarray(0,i):r}function S(){if(!b){b={};var t=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\"),e=[\"+/=\",\"+/\",\"-_=\",\"-_.\",\"-_\"];for(let n=0;n<5;n++){const r=t.concat(e[n].split(\"\"));A[n]=r;for(let t=0;t<r.length;t++){const e=r[t];void 0===b[e]&&(b[e]=t)}}}}var x=\"undefined\"!=typeof Uint8Array,L=!T&&\"function\"==typeof btoa;function R(t){if(!L){var e;void 0===e&&(e=0),S(),e=A[e];var n=Array(Math.floor(t.length/3)),r=e[64]||\"\";let c=0,h=0;for(;c<t.length-2;c+=3){var i=t[c],s=t[c+1],o=t[c+2],a=e[i>>2];i=e[(3&i)<<4|s>>4],s=e[(15&s)<<2|o>>6],o=e[63&o],n[h++]=a+i+s+o}switch(a=0,o=r,t.length-c){case 2:o=e[(15&(a=t[c+1]))<<2]||r;case 1:t=t[c],n[h]=e[t>>2]+e[(3&t)<<4|a>>4]+o+r}return n.join(\"\")}for(e=\"\",n=0,r=t.length-10240;n<r;)e+=String.fromCharCode.apply(null,t.subarray(n,n+=10240));return e+=String.fromCharCode.apply(null,n?t.subarray(n):t),btoa(e)}const F=/[-_.]/g,I={\"-\":\"+\",_:\"/\",\".\":\"=\"};function M(t){return I[t]||\"\"}function P(t){if(!L)return k(t);F.test(t)&&(t=t.replace(F,M)),t=atob(t);const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}function C(t){return x&&null!=t&&t instanceof Uint8Array}var O={};function U(){return B||=new N(null,O)}function D(t){j(O);var e=t.g;return null==(e=null==e||C(e)?e:\"string\"==typeof e?P(e):null)?e:t.g=e}var N=class{h(){return new Uint8Array(D(this)||0)}constructor(t,e){if(j(e),this.g=t,null!=t&&0===t.length)throw Error(\"ByteString should be constructed with non-empty values\")}};let B,G;function j(t){if(t!==O)throw Error(\"illegal external caller\")}function V(t,e){t.__closure__error__context__984382||(t.__closure__error__context__984382={}),t.__closure__error__context__984382.severity=e}function X(t){return V(t=Error(t),\"warning\"),t}function H(e){if(null!=e){var n=G??={},r=n[e]||0;r>=5||(n[e]=r+1,V(e=Error(),\"incident\"),function(e){t.setTimeout((()=>{throw e}),0)}(e))}}var W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol();function z(t,e,n=!1){return\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol()?n&&Symbol.for&&t?Symbol.for(t):null!=t?Symbol(t):Symbol():e}var K=z(\"jas\",void 0,!0),Y=z(void 0,\"0di\"),$=z(void 0,\"1oa\"),q=z(void 0,Symbol()),J=z(void 0,\"0actk\"),Z=z(void 0,\"8utk\");const Q=W?K:\"Ea\",tt={Ea:{value:0,configurable:!0,writable:!0,enumerable:!1}},et=Object.defineProperties;function nt(t,e){W||Q in t||et(t,tt),t[Q]|=e}function rt(t,e){W||Q in t||et(t,tt),t[Q]=e}function it(t){return nt(t,34),t}function st(t,e){rt(e,-15615&(0|t))}function ot(t,e){rt(e,-15581&(34|t))}function at(){return\"function\"==typeof BigInt}function ct(t){return Array.prototype.slice.call(t)}var ht,ut={};function lt(t){return null!==t&&\"object\"==typeof t&&!Array.isArray(t)&&t.constructor===Object}function dt(t,e){if(null!=t)if(\"string\"==typeof t)t=t?new N(t,O):U();else if(t.constructor!==N)if(C(t))t=t.length?new N(new Uint8Array(t),O):U();else{if(!e)throw Error();t=void 0}return t}const ft=[];function pt(t){if(2&t)throw Error()}rt(ft,55),ht=Object.freeze(ft);class gt{constructor(t,e,n){this.g=t,this.h=e,this.l=n}next(){const t=this.g.next();return t.done||(t.value=this.h.call(this.l,t.value)),t}[Symbol.iterator](){return this}}function mt(t){return q?t[q]:void 0}var yt=Object.freeze({});function _t(t){return t.Na=!0,t}var vt=_t((t=>\"number\"==typeof t)),Et=_t((t=>\"string\"==typeof t)),wt=_t((t=>\"boolean\"==typeof t)),Tt=\"function\"==typeof t.BigInt&&\"bigint\"==typeof t.BigInt(0);function At(t){var e=t;if(Et(e)){if(!/^\\s*(?:-?[1-9]\\d*|0)?\\s*$/.test(e))throw Error(String(e))}else if(vt(e)&&!Number.isSafeInteger(e))throw Error(String(e));return Tt?BigInt(t):t=wt(t)?t?\"1\":\"0\":Et(t)?t.trim()||\"0\":String(t)}var bt=_t((t=>Tt?t>=St&&t<=Lt:\"-\"===t[0]?Rt(t,kt):Rt(t,xt)));const kt=Number.MIN_SAFE_INTEGER.toString(),St=Tt?BigInt(Number.MIN_SAFE_INTEGER):void 0,xt=Number.MAX_SAFE_INTEGER.toString(),Lt=Tt?BigInt(Number.MAX_SAFE_INTEGER):void 0;function Rt(t,e){if(t.length>e.length)return!1;if(t.length<e.length||t===e)return!0;for(let n=0;n<t.length;n++){const r=t[n],i=e[n];if(r>i)return!1;if(r<i)return!0}}const Ft=\"function\"==typeof Uint8Array.prototype.slice;let It,Mt=0,Pt=0;function Ct(t){const e=t>>>0;Mt=e,Pt=(t-e)/4294967296>>>0}function Ot(t){if(t<0){Ct(-t);const[e,n]=Xt(Mt,Pt);Mt=e>>>0,Pt=n>>>0}else Ct(t)}function Ut(t){const e=It||=new DataView(new ArrayBuffer(8));e.setFloat32(0,+t,!0),Pt=0,Mt=e.getUint32(0,!0)}function Dt(t,e){const n=4294967296*e+(t>>>0);return Number.isSafeInteger(n)?n:Bt(t,e)}function Nt(t,e){const n=2147483648&e;return n&&(e=~e>>>0,0==(t=1+~t>>>0)&&(e=e+1>>>0)),\"number\"==typeof(t=Dt(t,e))?n?-t:t:n?\"-\"+t:t}function Bt(t,e){if(t>>>=0,(e>>>=0)<=2097151)var n=\"\"+(4294967296*e+t);else at()?n=\"\"+(BigInt(e)<<BigInt(32)|BigInt(t)):(t=(16777215&t)+6777216*(n=16777215&(t>>>24|e<<8))+6710656*(e=e>>16&65535),n+=8147497*e,e*=2,t>=1e7&&(n+=t/1e7>>>0,t%=1e7),n>=1e7&&(e+=n/1e7>>>0,n%=1e7),n=e+Gt(n)+Gt(t));return n}function Gt(t){return t=String(t),\"0000000\".slice(t.length)+t}function jt(){var t=Mt,e=Pt;if(2147483648&e)if(at())t=\"\"+(BigInt(0|e)<<BigInt(32)|BigInt(t>>>0));else{const[n,r]=Xt(t,e);t=\"-\"+Bt(n,r)}else t=Bt(t,e);return t}function Vt(t){if(t.length<16)Ot(Number(t));else if(at())t=BigInt(t),Mt=Number(t&BigInt(4294967295))>>>0,Pt=Number(t>>BigInt(32)&BigInt(4294967295));else{const e=+(\"-\"===t[0]);Pt=Mt=0;const n=t.length;for(let r=e,i=(n-e)%6+e;i<=n;r=i,i+=6){const e=Number(t.slice(r,i));Pt*=1e6,Mt=1e6*Mt+e,Mt>=4294967296&&(Pt+=Math.trunc(Mt/4294967296),Pt>>>=0,Mt>>>=0)}if(e){const[t,e]=Xt(Mt,Pt);Mt=t,Pt=e}}}function Xt(t,e){return e=~e,t?t=1+~t:e+=1,[t,e]}const Ht=\"function\"==typeof BigInt?BigInt.asIntN:void 0,Wt=\"function\"==typeof BigInt?BigInt.asUintN:void 0,zt=Number.isSafeInteger,Kt=Number.isFinite,Yt=Math.trunc,$t=At(0);function qt(t){return null==t||\"number\"==typeof t?t:\"NaN\"===t||\"Infinity\"===t||\"-Infinity\"===t?Number(t):void 0}function Jt(t){return null==t||\"boolean\"==typeof t?t:\"number\"==typeof t?!!t:void 0}const Zt=/^-?([1-9][0-9]*|0)(\\.[0-9]+)?$/;function Qt(t){switch(typeof t){case\"bigint\":return!0;case\"number\":return Kt(t);case\"string\":return Zt.test(t);default:return!1}}function te(t){if(null==t)return t;if(\"string\"==typeof t&&t)t=+t;else if(\"number\"!=typeof t)return;return Kt(t)?0|t:void 0}function ee(t){if(null==t)return t;if(\"string\"==typeof t&&t)t=+t;else if(\"number\"!=typeof t)return;return Kt(t)?t>>>0:void 0}function ne(t){if(\"-\"===t[0])return!1;const e=t.length;return e<20||20===e&&Number(t.substring(0,6))<184467}function re(t){const e=t.length;return\"-\"===t[0]?e<20||20===e&&Number(t.substring(0,7))>-922337:e<19||19===e&&Number(t.substring(0,6))<922337}function ie(t){return re(t)?t:(Vt(t),jt())}function se(t){return t=Yt(t),zt(t)||(Ot(t),t=Nt(Mt,Pt)),t}function oe(t){var e=Yt(Number(t));return zt(e)?String(e):(-1!==(e=t.indexOf(\".\"))&&(t=t.substring(0,e)),ie(t))}function ae(t){var e=Yt(Number(t));return zt(e)?At(e):(-1!==(e=t.indexOf(\".\"))&&(t=t.substring(0,e)),at()?At(Ht(64,BigInt(t))):At(ie(t)))}function ce(t){if(zt(t))t=At(se(t));else{if(t=Yt(t),zt(t))t=String(t);else{const e=String(t);re(e)?t=e:(Ot(t),t=jt())}t=At(t)}return t}function he(t){return null==t?t:\"bigint\"==typeof t?(bt(t)?t=Number(t):(t=Ht(64,t),t=bt(t)?Number(t):String(t)),t):Qt(t)?\"number\"==typeof t?se(t):oe(t):void 0}function ue(t){if(null==t)return t;var e=typeof t;if(\"bigint\"===e)return String(Wt(64,t));if(Qt(t)){if(\"string\"===e)return e=Yt(Number(t)),zt(e)&&e>=0?t=String(e):(-1!==(e=t.indexOf(\".\"))&&(t=t.substring(0,e)),ne(t)||(Vt(t),t=Bt(Mt,Pt))),t;if(\"number\"===e)return(t=Yt(t))>=0&&zt(t)?t:function(t){if(t<0){Ot(t);var e=Bt(Mt,Pt);return t=Number(e),zt(t)?t:e}return ne(e=String(t))?e:(Ot(t),Dt(Mt,Pt))}(t)}}function le(t){if(\"string\"!=typeof t)throw Error();return t}function de(t){if(null!=t&&\"string\"!=typeof t)throw Error();return t}function fe(t){return null==t||\"string\"==typeof t?t:void 0}function pe(t,e,n,r){if(null!=t&&\"object\"==typeof t&&t.W===ut)return t;if(!Array.isArray(t))return n?2&r?((t=e[Y])||(it((t=new e).u),t=e[Y]=t),e=t):e=new e:e=void 0,e;let i=n=0|t[Q];return 0===i&&(i|=32&r),i|=2&r,i!==n&&rt(t,i),new e(t)}function ge(t,e,n){if(e)t:{if(!Qt(e=t))throw X(\"int64\");switch(typeof e){case\"string\":e=ae(e);break t;case\"bigint\":e=At(Ht(64,e));break t;default:e=ce(e)}}else t=typeof(e=t),e=null==e?e:\"bigint\"===t?At(Ht(64,e)):Qt(e)?\"string\"===t?ae(e):ce(e):void 0;return null==(t=e)?n?$t:void 0:t}function me(t){return t}const ye={};let _e=function(){try{return w(new class extends Map{constructor(){super()}}),!1}catch{return!0}}();class ve{constructor(){this.g=new Map}get(t){return this.g.get(t)}set(t,e){return this.g.set(t,e),this.size=this.g.size,this}delete(t){return t=this.g.delete(t),this.size=this.g.size,t}clear(){this.g.clear(),this.size=this.g.size}has(t){return this.g.has(t)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(t,e){return this.g.forEach(t,e)}[Symbol.iterator](){return this.entries()}}const Ee=_e?(Object.setPrototypeOf(ve.prototype,Map.prototype),Object.defineProperties(ve.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),ve):class extends Map{constructor(){super()}};function we(t){return t}function Te(t){if(2&t.M)throw Error(\"Cannot mutate an immutable Map\")}var Ae=class extends Ee{constructor(t,e,n=we,r=we){super();let i=0|t[Q];i|=64,rt(t,i),this.M=i,this.I=e,this.S=n,this.X=this.I?be:r;for(let s=0;s<t.length;s++){const o=t[s],a=n(o[0],!1,!0);let c=o[1];e?void 0===c&&(c=null):c=r(o[1],!1,!0,void 0,void 0,i),super.set(a,c)}}La(){var t=Ce;if(0!==this.size)return Array.from(super.entries(),(e=>(e[0]=t(e[0]),e[1]=t(e[1]),e)))}da(t=ke){const e=[],n=super.entries();for(var r;!(r=n.next()).done;)(r=r.value)[0]=t(r[0]),r[1]=t(r[1]),e.push(r);return e}clear(){Te(this),super.clear()}delete(t){return Te(this),super.delete(this.S(t,!0,!1))}entries(){if(this.I){var t=super.keys();t=new gt(t,Se,this)}else t=super.entries();return t}values(){if(this.I){var t=super.keys();t=new gt(t,Ae.prototype.get,this)}else t=super.values();return t}forEach(t,e){this.I?super.forEach(((n,r,i)=>{t.call(e,i.get(r),r,i)})):super.forEach(t,e)}set(t,e){return Te(this),null==(t=this.S(t,!0,!1))?this:null==e?(super.delete(t),this):super.set(t,this.X(e,!0,!0,this.I,!1,this.M))}Ja(t){const e=this.S(t[0],!1,!0);t=t[1],t=this.I?void 0===t?null:t:this.X(t,!1,!0,void 0,!1,this.M),super.set(e,t)}has(t){return super.has(this.S(t,!1,!1))}get(t){t=this.S(t,!1,!1);const e=super.get(t);if(void 0!==e){var n=this.I;return n?((n=this.X(e,!1,!0,n,this.pa,this.M))!==e&&super.set(t,n),n):e}}[Symbol.iterator](){return this.entries()}};function be(t,e,n,r,i,s){return t=pe(t,r,n,s),i&&(t=je(t)),t}function ke(t){return t}function Se(t){return[t,this.get(t)]}let xe,Le,Re,Fe;function Ie(){return xe||=new Ae(it([]),void 0,void 0,void 0,ye)}function Me(t,e,n,r,i){if(null!=t){if(Array.isArray(t)){const s=0|t[Q];return 0===t.length&&1&s?void 0:i&&2&s?t:Pe(t,e,n,void 0!==r,i)}return e(t,r)}}function Pe(t,e,n,r,i){const s=r||n?0|t[Q]:0,o=r?!!(32&s):void 0;let a=0;const c=(r=ct(t)).length;for(let t=0;t<c;t++){var h=r[t];if(t===c-1&&lt(h)){var u=e,l=n,d=o,f=i;let t;for(let e in h){const n=Me(h[e],u,l,d,f);null!=n&&((t??={})[e]=n)}h=t}else h=Me(r[t],e,n,o,i);r[t]=h,null!=h&&(a=t+1)}return a<c&&(r.length=a),n&&((t=mt(t))&&(r[q]=ct(t)),n(s,r)),r}function Ce(t){return Me(t,Oe,void 0,void 0,!1)}function Oe(t){switch(typeof t){case\"number\":return Number.isFinite(t)?t:\"\"+t;case\"bigint\":return bt(t)?Number(t):\"\"+t;case\"boolean\":return t?1:0;case\"object\":if(C(t))return C(t)&&H(Z),R(t);if(t.W===ut)return Ue(t);if(t instanceof N){const e=t.g;return null==e?\"\":\"string\"==typeof e?e:t.g=R(e)}return t instanceof Ae?t.La():void 0}return t}function Ue(t){var e=t.u;t=Pe(e,Oe,void 0,void 0,!1);var n=0|e[Q];if((e=t.length)&&!(512&n)){var r=t[e-1],i=!1;lt(r)?(e--,i=!0):r=void 0;var s=e-(n=512&n?0:-1),o=(Le??me)(s,n,t,r);if(r&&(t[e]=void 0),s<o&&r){for(var a in s=!0,r){const c=+a;c<=o?(t[i=c+n]=r[a],e=Math.max(i+1,e),i=!1,delete r[a]):s=!1}s&&(r=void 0)}for(s=e-1;e>0;s=e-1)if(null==(a=t[s]))e--,i=!0;else{if(!((s-=n)>=o))break;(r??={})[s]=a,e--,i=!0}i&&(t.length=e),r&&t.push(r)}return t}function De(t,e,n){return t=Ne(t,e[0],e[1],n?1:2),e!==Re&&n&&nt(t,8192),t}function Ne(t,e,n,r){if(null==t){var i=96;n?(t=[n],i|=512):t=[],e&&(i=-16760833&i|(1023&e)<<14)}else{if(!Array.isArray(t))throw Error(\"narr\");if(8192&(i=0|t[Q])||!(64&i)||2&i||H(J),1024&i)throw Error(\"farr\");if(64&i)return t;if(1===r||2===r||(i|=64),n&&(i|=512,n!==t[0]))throw Error(\"mid\");t:{var s=(n=t).length;if(s){var o=s-1;if(lt(r=n[o])){if((o-=e=512&(i|=256)?0:-1)>=1024)throw Error(\"pvtlmt\");for(var a in r)(s=+a)<o&&(n[s+e]=r[a],delete r[a]);i=-16760833&i|(1023&o)<<14;break t}}if(e){if((a=Math.max(e,s-(512&i?0:-1)))>1024)throw Error(\"spvt\");i=-16760833&i|(1023&a)<<14}}}return rt(t,i),t}function Be(t,e,n=ot){if(null!=t){if(x&&t instanceof Uint8Array)return e?t:new Uint8Array(t);if(Array.isArray(t)){var r=0|t[Q];return 2&r?t:(e&&=0===r||!!(32&r)&&!(64&r||!(16&r)),e?(rt(t,34|r),4&r&&Object.freeze(t),t):Pe(t,Be,4&r?ot:n,!0,!0))}return t.W===ut?t=2&(r=0|(n=t.u)[Q])?t:new t.constructor(Ge(n,r,!0)):t instanceof Ae&&!(2&t.M)&&(n=it(t.da(Be)),t=new Ae(n,t.I,t.S,t.X)),t}}function Ge(t,e,n){const r=n||2&e?ot:st,i=!!(32&e);return t=function(t,e,n){const r=ct(t);var i=r.length;const s=256&e?r[i-1]:void 0;for(i+=s?-1:0,e=512&e?1:0;e<i;e++)r[e]=n(r[e]);if(s){e=r[e]={};for(const t in s)e[t]=n(s[t])}return(t=mt(t))&&(r[q]=ct(t)),r}(t,e,(t=>Be(t,i,r))),nt(t,32|(n?2:0)),t}function je(t){const e=t.u,n=0|e[Q];return 2&n?new t.constructor(Ge(e,n,!1)):t}function Ve(t,e){return Xe(t=t.u,0|t[Q],e)}function Xe(t,e,n){if(-1===n)return null;const r=n+(512&e?0:-1),i=t.length-1;return r>=i&&256&e?t[i][n]:r<=i?t[r]:void 0}function He(t,e,n){const r=t.u;let i=0|r[Q];return pt(i),We(r,i,e,n),t}function We(t,e,n,r){const i=512&e?0:-1,s=n+i;var o=t.length-1;return s>=o&&256&e?(t[o][n]=r,e):s<=o?(t[s]=r,e):(void 0!==r&&(n>=(o=e>>14&1023||536870912)?null!=r&&(t[o+i]={[n]:r},rt(t,e|=256)):t[s]=r),e)}function ze(t,e){let n=0|(t=t.u)[Q];const r=Xe(t,n,e),i=qt(r);return null!=i&&i!==r&&We(t,n,e,i),i}function Ke(t){let e=0|(t=t.u)[Q];const n=Xe(t,e,1),r=dt(n,!0);return null!=r&&r!==n&&We(t,e,1,r),r}function Ye(){return void 0===yt?2:4}function $e(t,e,n,r,i){const s=t.u,o=2&(t=0|s[Q])?1:r;i=!!i;let a=0|(r=qe(s,t,e))[Q];if(!(4&a)){4&a&&(r=ct(r),a=pn(a,t),t=We(s,t,e,r));let i=0,o=0;for(;i<r.length;i++){const t=n(r[i]);null!=t&&(r[o++]=t)}o<i&&(r.length=o),a=Je(a,t),n=-2049&(20|a),a=n&=-4097,rt(r,a),2&a&&Object.freeze(r)}return 1===o||4===o&&32&a?Ze(a)||(i=a,a|=2,a!==i&&rt(r,a),Object.freeze(r)):(2===o&&Ze(a)&&(r=ct(r),a=pn(a,t),a=gn(a,t,i),rt(r,a),t=We(s,t,e,r)),Ze(a)||(e=a,a=gn(a,t,i),a!==e&&rt(r,a))),r}function qe(t,e,n){return t=Xe(t,e,n),Array.isArray(t)?t:ht}function Je(t,e){return 0===t&&(t=pn(t,e)),1|t}function Ze(t){return!!(2&t)&&!!(4&t)||!!(1024&t)}function Qe(t){t=ct(t);for(let e=0;e<t.length;e++){const n=t[e]=ct(t[e]);Array.isArray(n[1])&&(n[1]=it(n[1]))}return t}function tn(t,e,n,r){let i=0|(t=t.u)[Q];pt(i),We(t,i,e,(\"0\"===r?0===Number(n):n===r)?void 0:n)}function en(t,e,n,r){pt(e);let i=qe(t,e,n);const s=i!==ht;if(64&e||!(8192&e)||!s){const o=s?0|i[Q]:0;let a=o;(!s||2&a||Ze(a)||4&a&&!(32&a))&&(i=ct(i),a=pn(a,e),e=We(t,e,n,i)),a=-13&Je(a,e),a=gn(r?-17&a:16|a,e,!0),a!==o&&rt(i,a)}return i}function nn(t,e){var n=Ts;return on(rn(t=t.u),t,0|t[Q],n)===e?e:-1}function rn(t){if(W)return t[$]??(t[$]=new Map);if($ in t)return t[$];const e=new Map;return Object.defineProperty(t,$,{value:e}),e}function sn(t,e,n,r){const i=rn(t),s=on(i,t,e,n);return s!==r&&(s&&(e=We(t,e,s)),i.set(n,r)),e}function on(t,e,n,r){let i=t.get(r);if(null!=i)return i;i=0;for(let t=0;t<r.length;t++){const s=r[t];null!=Xe(e,n,s)&&(0!==i&&(n=We(e,n,i)),i=s)}return t.set(r,i),i}function an(t,e,n){let r=0|t[Q];const i=Xe(t,r,n);let s;if(null!=i&&i.W===ut)return(e=je(i))!==i&&We(t,r,n,e),e.u;if(Array.isArray(i)){const t=0|i[Q];s=2&t?De(Ge(i,t,!1),e,!0):64&t?i:De(s,e,!0)}else s=De(void 0,e,!0);return s!==i&&We(t,r,n,s),s}function cn(t,e,n){let r=0|(t=t.u)[Q];const i=Xe(t,r,n);return(e=pe(i,e,!1,r))!==i&&null!=e&&We(t,r,n,e),e}function hn(t,e,n){if(null==(e=cn(t,e,n)))return e;let r=0|(t=t.u)[Q];if(!(2&r)){const i=je(e);i!==e&&We(t,r,n,e=i)}return e}function un(t,e,n,r,i,s,o){t=t.u;var a=!!(2&e);const c=a?1:i;s=!!s,o&&=!a;var h=0|(i=qe(t,e,r))[Q];if(!(a=!!(4&h))){var u=i,l=e;const t=!!(2&(h=Je(h,e)));t&&(l|=2);let r=!t,s=!0,o=0,a=0;for(;o<u.length;o++){const e=pe(u[o],n,!1,l);if(e instanceof n){if(!t){const t=!!(2&(0|e.u[Q]));r&&=!t,s&&=t}u[a++]=e}}a<o&&(u.length=a),h|=4,h=s?16|h:-17&h,rt(u,h=r?8|h:-9&h),t&&Object.freeze(u)}if(o&&!(8&h||!i.length&&(1===c||4===c&&32&h))){for(Ze(h)&&(i=ct(i),h=pn(h,e),e=We(t,e,r,i)),n=i,o=h,u=0;u<n.length;u++)(h=n[u])!==(l=je(h))&&(n[u]=l);o|=8,rt(n,o=n.length?-17&o:16|o),h=o}return 1===c||4===c&&32&h?Ze(h)||(e=h,(h|=!i.length||16&h&&(!a||32&h)?2:1024)!==e&&rt(i,h),Object.freeze(i)):(2===c&&Ze(h)&&(rt(i=ct(i),h=gn(h=pn(h,e),e,s)),e=We(t,e,r,i)),Ze(h)||(r=h,(h=gn(h,e,s))!==r&&rt(i,h))),i}function ln(t,e,n){const r=0|t.u[Q];return un(t,r,e,n,Ye(),!1,!(2&r))}function dn(t,e,n,r){return null==r&&(r=void 0),He(t,n,r)}function fn(t,e,n,r){null==r&&(r=void 0);t:{let i=0|(t=t.u)[Q];if(pt(i),null==r){const r=rn(t);if(on(r,t,i,n)!==e)break t;r.set(n,0)}else i=sn(t,i,n,e);We(t,i,e,r)}}function pn(t,e){return-1025&(t=32|(2&e?2|t:-3&t))}function gn(t,e,n){return 32&e&&n||(t&=-33),t}function mn(t,e,n){pt(0|t.u[Q]),$e(t,e,fe,2,!0).push(le(n))}function yn(t,e,n,r){const i=0|t.u[Q];pt(i),t=un(t,i,n,e,2,!0),r=null!=r?r:new n,t.push(r),t[Q]=2&(0|r.u[Q])?-9&t[Q]:-17&t[Q]}function _n(t,e){return te(Ve(t,e))}function vn(t,e){return fe(Ve(t,e))}function En(t,e){return ze(t,e)??0}function wn(t,e,n){if(null!=n&&\"boolean\"!=typeof n)throw t=typeof n,Error(`Expected boolean but got ${\"object\"!=t?t:n?Array.isArray(n)?\"array\":t:\"null\"}: ${n}`);He(t,e,n)}function Tn(t,e,n){if(null!=n){if(\"number\"!=typeof n)throw X(\"int32\");if(!Kt(n))throw X(\"int32\");n|=0}He(t,e,n)}function An(t,e,n){if(null!=n&&\"number\"!=typeof n)throw Error(`Value of float/double field must be a number, found ${typeof n}: ${n}`);He(t,e,n)}function bn(t,e,n){{const o=t.u;let a=0|o[Q];if(pt(a),null==n)We(o,a,e);else{var r=t=0|n[Q],i=Ze(t),s=i||Object.isFrozen(n);for(i||(t=0),s||(n=ct(n),r=0,t=gn(t=pn(t,a),a,!0),s=!1),t|=21,i=0;i<n.length;i++){const e=n[i],o=le(e);Object.is(e,o)||(s&&(n=ct(n),r=0,t=gn(t=pn(t,a),a,!0),s=!1),n[i]=o)}t!==r&&(s&&(n=ct(n),t=gn(t=pn(t,a),a,!0)),rt(n,t)),We(o,a,e,n)}}}function kn(t,e){return Error(`Invalid wire type: ${t} (at position ${e})`)}function Sn(){return Error(\"Failed to read varint, encoding is invalid.\")}function xn(t,e){return Error(`Tried to read past the end of the data ${e} > ${t}`)}function Ln(t){if(\"string\"==typeof t)return{buffer:P(t),O:!1};if(Array.isArray(t))return{buffer:new Uint8Array(t),O:!1};if(t.constructor===Uint8Array)return{buffer:t,O:!1};if(t.constructor===ArrayBuffer)return{buffer:new Uint8Array(t),O:!1};if(t.constructor===N)return{buffer:D(t)||new Uint8Array(0),O:!0};if(t instanceof Uint8Array)return{buffer:new Uint8Array(t.buffer,t.byteOffset,t.byteLength),O:!1};throw Error(\"Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers\")}function Rn(t,e){let n,r=0,i=0,s=0;const o=t.h;let a=t.g;do{n=o[a++],r|=(127&n)<<s,s+=7}while(s<32&&128&n);for(s>32&&(i|=(127&n)>>4),s=3;s<32&&128&n;s+=7)n=o[a++],i|=(127&n)<<s;if(Dn(t,a),n<128)return e(r>>>0,i>>>0);throw Sn()}function Fn(t){let e=0,n=t.g;const r=n+10,i=t.h;for(;n<r;){const r=i[n++];if(e|=r,0==(128&r))return Dn(t,n),!!(127&e)}throw Sn()}function In(t){const e=t.h;let n=t.g,r=e[n++],i=127&r;if(128&r&&(r=e[n++],i|=(127&r)<<7,128&r&&(r=e[n++],i|=(127&r)<<14,128&r&&(r=e[n++],i|=(127&r)<<21,128&r&&(r=e[n++],i|=r<<28,128&r&&128&e[n++]&&128&e[n++]&&128&e[n++]&&128&e[n++]&&128&e[n++])))))throw Sn();return Dn(t,n),i}function Mn(t){return In(t)>>>0}function Pn(t){var e=t.h;const n=t.g,r=e[n],i=e[n+1],s=e[n+2];return e=e[n+3],Dn(t,t.g+4),(r<<0|i<<8|s<<16|e<<24)>>>0}function Cn(t){var e=Pn(t);t=2*(e>>31)+1;const n=e>>>23&255;return e&=8388607,255==n?e?NaN:t*(1/0):0==n?1401298464324817e-60*t*e:t*Math.pow(2,n-150)*(e+8388608)}function On(t){return In(t)}function Un(t,e,{aa:n=!1}={}){t.aa=n,e&&(e=Ln(e),t.h=e.buffer,t.m=e.O,t.j=0,t.l=t.h.length,t.g=t.j)}function Dn(t,e){if(t.g=e,e>t.l)throw xn(t.l,e)}function Nn(t,e){if(e<0)throw Error(`Tried to read a negative byte length: ${e}`);const n=t.g,r=n+e;if(r>t.l)throw xn(e,t.l-n);return t.g=r,n}function Bn(t,e){if(0==e)return U();var n=Nn(t,e);return t.aa&&t.m?n=t.h.subarray(n,n+e):(t=t.h,n=n===(e=n+e)?new Uint8Array(0):Ft?t.slice(n,e):new Uint8Array(t.subarray(n,e))),0==n.length?U():new N(n,O)}Ae.prototype.toJSON=void 0;var Gn=[];function jn(t){var e=t.g;if(e.g==e.l)return!1;t.l=t.g.g;var n=Mn(t.g);if(e=n>>>3,!((n&=7)>=0&&n<=5))throw kn(n,t.l);if(e<1)throw Error(`Invalid field number: ${e} (at position ${t.l})`);return t.m=e,t.h=n,!0}function Vn(t){switch(t.h){case 0:0!=t.h?Vn(t):Fn(t.g);break;case 1:Dn(t=t.g,t.g+8);break;case 2:if(2!=t.h)Vn(t);else{var e=Mn(t.g);Dn(t=t.g,t.g+e)}break;case 5:Dn(t=t.g,t.g+4);break;case 3:for(e=t.m;;){if(!jn(t))throw Error(\"Unmatched start-group tag: stream EOF\");if(4==t.h){if(t.m!=e)throw Error(\"Unmatched end-group tag\");break}Vn(t)}break;default:throw kn(t.h,t.l)}}function Xn(t,e,n){const r=t.g.l,i=Mn(t.g),s=t.g.g+i;let o=s-r;if(o<=0&&(t.g.l=s,n(e,t,void 0,void 0,void 0),o=s-t.g.g),o)throw Error(`Message parsing ended unexpectedly. Expected to read ${i} bytes, instead read ${i-o} bytes, either the data ended unexpectedly or the message misreported its own length`);return t.g.g=s,t.g.l=r,e}function Hn(t){var o=Mn(t.g),a=Nn(t=t.g,o);if(t=t.h,s){var c,h=t;(c=i)||(c=i=new TextDecoder(\"utf-8\",{fatal:!0})),o=a+o,h=0===a&&o===h.length?h:h.subarray(a,o);try{var u=c.decode(h)}catch(t){if(void 0===r){try{c.decode(new Uint8Array([128]))}catch(t){}try{c.decode(new Uint8Array([97])),r=!0}catch(t){r=!1}}throw!r&&(i=void 0),t}}else{o=(u=a)+o,a=[];let r,i=null;for(;u<o;){var l=t[u++];l<128?a.push(l):l<224?u>=o?e():(r=t[u++],l<194||128!=(192&r)?(u--,e()):a.push((31&l)<<6|63&r)):l<240?u>=o-1?e():(r=t[u++],128!=(192&r)||224===l&&r<160||237===l&&r>=160||128!=(192&(c=t[u++]))?(u--,e()):a.push((15&l)<<12|(63&r)<<6|63&c)):l<=244?u>=o-2?e():(r=t[u++],128!=(192&r)||r-144+(l<<28)>>30!=0||128!=(192&(c=t[u++]))||128!=(192&(h=t[u++]))?(u--,e()):(l=(7&l)<<18|(63&r)<<12|(63&c)<<6|63&h,l-=65536,a.push(55296+(l>>10&1023),56320+(1023&l)))):e(),a.length>=8192&&(i=n(i,a),a.length=0)}u=n(i,a)}return u}function Wn(t){const e=Mn(t.g);return Bn(t.g,e)}function zn(t,e,n){var r=Mn(t.g);for(r=t.g.g+r;t.g.g<r;)n.push(e(t.g))}var Kn=[];function Yn(t,e,n){e.g?e.m(t,e.g,e.h,n):e.m(t,e.h,n)}var $n=class{constructor(t,e){this.u=Ne(t,e)}toJSON(){try{var t=Ue(this)}finally{Le=void 0}return t}l(){var t=_o;return t.g?t.l(this,t.g,t.h):t.l(this,t.h,t.defaultValue)}clone(){const t=this.u;return new this.constructor(Ge(t,0|t[Q],!1))}O(){return!!(2&(0|this.u[Q]))}};function qn(t){return t?/^\\d+$/.test(t)?(Vt(t),new Jn(Mt,Pt)):null:Zn||=new Jn(0,0)}$n.prototype.W=ut,$n.prototype.toString=function(){return this.u.toString()};var Jn=class{constructor(t,e){this.h=t>>>0,this.g=e>>>0}};let Zn;function Qn(t){return t?/^-?\\d+$/.test(t)?(Vt(t),new tr(Mt,Pt)):null:er||=new tr(0,0)}var tr=class{constructor(t,e){this.h=t>>>0,this.g=e>>>0}};let er;function nr(t,e,n){for(;n>0||e>127;)t.g.push(127&e|128),e=(e>>>7|n<<25)>>>0,n>>>=7;t.g.push(e)}function rr(t,e){for(;e>127;)t.g.push(127&e|128),e>>>=7;t.g.push(e)}function ir(t,e){if(e>=0)rr(t,e);else{for(let n=0;n<9;n++)t.g.push(127&e|128),e>>=7;t.g.push(1)}}function sr(t,e){t.g.push(e>>>0&255),t.g.push(e>>>8&255),t.g.push(e>>>16&255),t.g.push(e>>>24&255)}function or(t,e){0!==e.length&&(t.l.push(e),t.h+=e.length)}function ar(t,e,n){rr(t.g,8*e+n)}function cr(t,e){return ar(t,e,2),e=t.g.end(),or(t,e),e.push(t.h),e}function hr(t,e){var n=e.pop();for(n=t.h+t.g.length()-n;n>127;)e.push(127&n|128),n>>>=7,t.h++;e.push(n),t.h++}function ur(t,e,n){ar(t,e,2),rr(t.g,n.length),or(t,t.g.end()),or(t,n)}function lr(t,e,n,r){null!=n&&(e=cr(t,e),r(n,t),hr(t,e))}function dr(){const t=class{constructor(){throw Error()}};return Object.setPrototypeOf(t,t.prototype),t}var fr=dr(),pr=dr(),gr=dr(),mr=dr(),yr=dr(),_r=dr(),vr=dr(),Er=dr(),wr=dr(),Tr=class{constructor(t,e,n){this.g=t,this.h=e,t=fr,this.l=!!t&&n===t||!1}};function Ar(t,e){return new Tr(t,e,fr)}function br(t,e,n,r,i){lr(t,n,Or(e,r),i)}const kr=Ar((function(t,e,n,r,i){return 2===t.h&&(Xn(t,an(e,r,n),i),!0)}),br),Sr=Ar((function(t,e,n,r,i){return 2===t.h&&(Xn(t,an(e,r,n),i),!0)}),br);var xr=Symbol(),Lr=Symbol(),Rr=Symbol(),Fr=Symbol();let Ir,Mr;function Pr(t,e,n,r){var i=r[t];if(i)return i;(i={}).Ma=r,i.T=function(t){switch(typeof t){case\"boolean\":return Re||=[0,void 0,!0];case\"number\":return t>0?void 0:0===t?Fe||=[0,void 0]:[-t,void 0];case\"string\":return[0,t];case\"object\":return t}}(r[0]);var s=r[1];let o=1;s&&s.constructor===Object&&(i.ga=s,\"function\"==typeof(s=r[++o])&&(i.la=!0,Ir??=s,Mr??=r[o+1],s=r[o+=2]));const a={};for(;s&&Array.isArray(s)&&s.length&&\"number\"==typeof s[0]&&s[0]>0;){for(var c=0;c<s.length;c++)a[s[c]]=s;s=r[++o]}for(c=1;void 0!==s;){let t;\"number\"==typeof s&&(c+=s,s=r[++o]);var h=void 0;if(s instanceof Tr?t=s:(t=kr,o--),t?.l){s=r[++o],h=r;var u=o;\"function\"==typeof s&&(s=s(),h[u]=s),h=s}for(u=c+1,\"number\"==typeof(s=r[++o])&&s<0&&(u-=s,s=r[++o]);c<u;c++){const r=a[c];h?n(i,c,t,h,r):e(i,c,t,r)}}return r[t]=i}function Cr(t){return Array.isArray(t)?t[0]instanceof Tr?t:[Sr,t]:[t,void 0]}function Or(t,e){return t instanceof $n?t.u:Array.isArray(t)?De(t,e,!1):void 0}function Ur(t,e,n,r){const i=n.g;t[e]=r?(t,e,n)=>i(t,e,n,r):i}function Dr(t,e,n,r,i){const s=n.g;let o,a;t[e]=(t,e,n)=>s(t,e,n,a||=Pr(Lr,Ur,Dr,r).T,o||=Nr(r),i)}function Nr(t){let e=t[Rr];if(null!=e)return e;const n=Pr(Lr,Ur,Dr,t);return e=n.la?(t,e)=>Ir(t,e,n):(t,e)=>{const r=0|t[Q];for(;jn(e)&&4!=e.h;){var i=e.m,s=n[i];if(null==s){var o=n.ga;o&&(o=o[i])&&(null!=(o=Br(o))&&(s=n[i]=o))}null!=s&&s(e,t,i)||(i=(s=e).l,Vn(s),s.fa?s=void 0:(o=s.g.g-i,s.g.g=i,s=Bn(s.g,o)),i=t,s&&((o=i[q])?o.push(s):i[q]=[s]))}return 8192&r&&it(t),!0},t[Rr]=e}function Br(t){const e=(t=Cr(t))[0].g;if(t=t[1]){const n=Nr(t),r=Pr(Lr,Ur,Dr,t).T;return(t,i,s)=>e(t,i,s,r,n)}return e}function Gr(t,e,n){t[e]=n.h}function jr(t,e,n,r){let i,s;const o=n.h;t[e]=(t,e,n)=>o(t,e,n,s||=Pr(xr,Gr,jr,r).T,i||=Vr(r))}function Vr(t){let e=t[Fr];if(!e){const n=Pr(xr,Gr,jr,t);e=(t,e)=>Xr(t,e,n),t[Fr]=e}return e}function Xr(t,e,n){!function(t,e,n){const r=512&e?0:-1,i=t.length,s=i+((e=64&e?256&e:!!i&&lt(t[i-1]))?-1:0);for(let e=0;e<s;e++)n(e-r,t[e]);if(e){t=t[i-1];for(const e in t)!isNaN(e)&&n(+e,t[e])}}(t,0|t[Q]|(n.T[1]?512:0),((t,r)=>{if(null!=r){var i=function(t,e){var n=t[e];if(n)return n;if((n=t.ga)&&(n=n[e])){var r=(n=Cr(n))[0].h;if(n=n[1]){const e=Vr(n),i=Pr(xr,Gr,jr,n).T;n=t.la?Mr(i,e):(t,n,s)=>r(t,n,s,i,e)}else n=r;return t[e]=n}}(n,t);i&&i(e,r,t)}})),(t=mt(t))&&function(t,e){or(t,t.g.end());for(let n=0;n<e.length;n++)or(t,D(e[n])||new Uint8Array(0))}(e,t)}function Hr(t,e){if(Array.isArray(e)){var n=0|e[Q];if(4&n)return e;for(var r=0,i=0;r<e.length;r++){const n=t(e[r]);null!=n&&(e[i++]=n)}return i<r&&(e.length=i),rt(e,-6145&(5|n)),2&n&&Object.freeze(e),e}}function Wr(t,e,n){return new Tr(t,e,n)}function zr(t,e,n){return new Tr(t,e,n)}function Kr(t,e,n){We(t,0|t[Q],e,n)}var Yr=Ar((function(t,e,n,r,i){return 2===t.h&&(t=Xn(t,De([void 0,void 0],r,!0),i),pt(r=0|e[Q]),(i=Xe(e,r,n))instanceof Ae?0!=(2&i.M)?((i=i.da()).push(t),We(e,r,n,i)):i.Ja(t):Array.isArray(i)?(2&(0|i[Q])&&We(e,r,n,i=Qe(i)),i.push(t)):We(e,r,n,[t]),!0)}),(function(t,e,n,r,i){if(e instanceof Ae)e.forEach(((e,s)=>{lr(t,n,De([s,e],r,!1),i)}));else if(Array.isArray(e))for(let s=0;s<e.length;s++){const o=e[s];Array.isArray(o)&&lr(t,n,De(o,r,!1),i)}}));function $r(t,e,n){if(e=function(t){if(null==t)return t;const e=typeof t;if(\"bigint\"===e)return String(Ht(64,t));if(Qt(t)){if(\"string\"===e)return oe(t);if(\"number\"===e)return se(t)}}(e),null!=e){if(\"string\"==typeof e)Qn(e);if(null!=e)switch(ar(t,n,0),typeof e){case\"number\":t=t.g,Ot(e),nr(t,Mt,Pt);break;case\"bigint\":n=BigInt.asUintN(64,e),n=new tr(Number(n&BigInt(4294967295)),Number(n>>BigInt(32))),nr(t.g,n.h,n.g);break;default:n=Qn(e),nr(t.g,n.h,n.g)}}}function qr(t,e,n){null!=(e=te(e))&&null!=e&&(ar(t,n,0),ir(t.g,e))}function Jr(t,e,n){null!=(e=Jt(e))&&(ar(t,n,0),t.g.g.push(e?1:0))}function Zr(t,e,n){null!=(e=fe(e))&&ur(t,n,c(e))}function Qr(t,e,n,r,i){lr(t,n,Or(e,r),i)}function ti(t,e,n){null==e||\"string\"==typeof e||e instanceof N||(C(e)?C(e)&&H(Z):e=void 0),null!=e&&ur(t,n,Ln(e).buffer)}function ei(t,e,n){return(5===t.h||2===t.h)&&(e=en(e,0|e[Q],n,!1),2==t.h?zn(t,Cn,e):e.push(Cn(t.g)),!0)}var ni=Wr((function(t,e,n){if(1!==t.h)return!1;var r=t.g;t=Pn(r);const i=Pn(r);r=2*(i>>31)+1;const s=i>>>20&2047;return t=4294967296*(1048575&i)+t,Kr(e,n,2047==s?t?NaN:r*(1/0):0==s?5e-324*r*t:r*Math.pow(2,s-1075)*(t+4503599627370496)),!0}),(function(t,e,n){null!=(e=qt(e))&&(ar(t,n,1),t=t.g,(n=It||=new DataView(new ArrayBuffer(8))).setFloat64(0,+e,!0),Mt=n.getUint32(0,!0),Pt=n.getUint32(4,!0),sr(t,Mt),sr(t,Pt))}),dr()),ri=Wr((function(t,e,n){return 5===t.h&&(Kr(e,n,Cn(t.g)),!0)}),(function(t,e,n){null!=(e=qt(e))&&(ar(t,n,5),t=t.g,Ut(e),sr(t,Mt))}),vr),ii=zr(ei,(function(t,e,n){if(null!=(e=Hr(qt,e)))for(let o=0;o<e.length;o++){var r=t,i=n,s=e[o];null!=s&&(ar(r,i,5),r=r.g,Ut(s),sr(r,Mt))}}),vr),si=zr(ei,(function(t,e,n){if(null!=(e=Hr(qt,e))&&e.length){ar(t,n,2),rr(t.g,4*e.length);for(let r=0;r<e.length;r++)n=t.g,Ut(e[r]),sr(n,Mt)}}),vr),oi=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,Rn(t.g,Nt)),!0)}),$r,_r),ai=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,0===(t=Rn(t.g,Nt))?void 0:t),!0)}),$r,_r),ci=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,Rn(t.g,Dt)),!0)}),(function(t,e,n){if(null!=(e=ue(e))){if(\"string\"==typeof e)qn(e);if(null!=e)switch(ar(t,n,0),typeof e){case\"number\":t=t.g,Ot(e),nr(t,Mt,Pt);break;case\"bigint\":n=BigInt.asUintN(64,e),n=new Jn(Number(n&BigInt(4294967295)),Number(n>>BigInt(32))),nr(t.g,n.h,n.g);break;default:n=qn(e),nr(t.g,n.h,n.g)}}}),dr()),hi=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,In(t.g)),!0)}),qr,mr),ui=zr((function(t,e,n){return(0===t.h||2===t.h)&&(e=en(e,0|e[Q],n,!1),2==t.h?zn(t,In,e):e.push(In(t.g)),!0)}),(function(t,e,n){if(null!=(e=Hr(te,e))&&e.length){n=cr(t,n);for(let n=0;n<e.length;n++)ir(t.g,e[n]);hr(t,n)}}),mr),li=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,0===(t=In(t.g))?void 0:t),!0)}),qr,mr),di=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,Fn(t.g)),!0)}),Jr,pr),fi=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,!1===(t=Fn(t.g))?void 0:t),!0)}),Jr,pr),pi=zr((function(t,e,n){return 2===t.h&&(t=Hn(t),en(e,0|e[Q],n,!1).push(t),!0)}),(function(t,e,n){if(null!=(e=Hr(fe,e)))for(let o=0;o<e.length;o++){var r=t,i=n,s=e[o];null!=s&&ur(r,i,c(s))}}),gr),gi=Wr((function(t,e,n){return 2===t.h&&(Kr(e,n,\"\"===(t=Hn(t))?void 0:t),!0)}),Zr,gr),mi=Wr((function(t,e,n){return 2===t.h&&(Kr(e,n,Hn(t)),!0)}),Zr,gr),yi=function(t,e,n=fr){return new Tr(t,e,n)}((function(t,e,n,r,i){return 2===t.h&&(r=De(void 0,r,!0),en(e,0|e[Q],n,!0).push(r),Xn(t,r,i),!0)}),(function(t,e,n,r,i){if(Array.isArray(e))for(let s=0;s<e.length;s++)Qr(t,e[s],n,r,i)})),_i=Ar((function(t,e,n,r,i,s){return 2===t.h&&(sn(e,0|e[Q],s,n),Xn(t,e=an(e,r,n),i),!0)}),Qr),vi=Wr((function(t,e,n){return 2===t.h&&(Kr(e,n,Wn(t)),!0)}),ti,Er),Ei=zr((function(t,e,n){return(0===t.h||2===t.h)&&(e=en(e,0|e[Q],n,!1),2==t.h?zn(t,Mn,e):e.push(Mn(t.g)),!0)}),(function(t,e,n){if(null!=(e=Hr(ee,e)))for(let o=0;o<e.length;o++){var r=t,i=n,s=e[o];null!=s&&(ar(r,i,0),rr(r.g,s))}}),yr),wi=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,0===(t=Mn(t.g))?void 0:t),!0)}),(function(t,e,n){null!=(e=ee(e))&&null!=e&&(ar(t,n,0),rr(t.g,e))}),yr),Ti=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,In(t.g)),!0)}),(function(t,e,n){null!=(e=te(e))&&(e=parseInt(e,10),ar(t,n,0),ir(t.g,e))}),wr);class Ai{constructor(t,e){this.h=t,this.g=e,this.l=hn,this.m=dn,this.defaultValue=void 0}register(){w(this)}}function bi(t,e){return new Ai(t,e)}function ki(t,e){return(n,r)=>{if(Kn.length){const t=Kn.pop();t.o(r),Un(t.g,n,r),n=t}else n=new class{constructor(t,e){if(Gn.length){const n=Gn.pop();Un(n,t,e),t=n}else t=new class{constructor(t,e){this.h=null,this.m=!1,this.g=this.l=this.j=0,Un(this,t,e)}clear(){this.h=null,this.m=!1,this.g=this.l=this.j=0,this.aa=!1}}(t,e);this.g=t,this.l=this.g.g,this.h=this.m=-1,this.o(e)}o({fa:t=!1}={}){this.fa=t}}(n,r);try{const r=new t,s=r.u;Nr(e)(s,n);var i=r}finally{n.g.clear(),n.m=-1,n.h=-1,Kn.length<100&&Kn.push(n)}return i}}function Si(t){return function(){const e=new class{constructor(){this.l=[],this.h=0,this.g=new class{constructor(){this.g=[]}length(){return this.g.length}end(){const t=this.g;return this.g=[],t}}}};Xr(this.u,e,Pr(xr,Gr,jr,t)),or(e,e.g.end());const n=new Uint8Array(e.h),r=e.l,i=r.length;let s=0;for(let t=0;t<i;t++){const e=r[t];n.set(e,s),s+=e.length}return e.l=[n],n}}var xi=class extends $n{constructor(t){super(t)}},Li=[0,gi,Wr((function(t,e,n){return 2===t.h&&(Kr(e,n,(t=Wn(t))===U()?void 0:t),!0)}),(function(t,e,n){if(null!=e){if(e instanceof $n){const r=e.Oa;return void(r&&(e=r(e),null!=e&&ur(t,n,Ln(e).buffer)))}if(Array.isArray(e))return}ti(t,e,n)}),Er)];let Ri,Fi=globalThis.trustedTypes;function Ii(t){void 0===Ri&&(Ri=function(){let t=null;if(!Fi)return t;try{const e=t=>t;t=Fi.createPolicy(\"goog#html\",{createHTML:e,createScript:e,createScriptURL:e})}catch(t){}return t}());var e=Ri;return new class{constructor(t){this.g=t}toString(){return this.g+\"\"}}(e?e.createScriptURL(t):t)}function Mi(t,...e){if(0===e.length)return Ii(t[0]);let n=t[0];for(let r=0;r<e.length;r++)n+=encodeURIComponent(e[r])+t[r+1];return Ii(n)}var Pi=[0,hi,Ti,di,-1,ui,Ti,-1],Ci=class extends $n{constructor(t){super(t)}},Oi=[0,di,mi,di,Ti,-1,zr((function(t,e,n){return(0===t.h||2===t.h)&&(e=en(e,0|e[Q],n,!1),2==t.h?zn(t,On,e):e.push(In(t.g)),!0)}),(function(t,e,n){if(null!=(e=Hr(te,e))&&e.length){n=cr(t,n);for(let n=0;n<e.length;n++)ir(t.g,e[n]);hr(t,n)}}),wr),mi,-1,[0,di,-1],Ti,di,-1],Ui=[0,mi,-2],Di=class extends $n{constructor(t){super(t)}},Ni=[0],Bi=[0,hi,di,1,di,-3],Gi=class extends $n{constructor(t){super(t,2)}},ji={};ji[336783863]=[0,mi,di,-1,hi,[0,[1,2,3,4,5,6,7,8,9],_i,Ni,_i,Oi,_i,Ui,_i,Bi,_i,Pi,_i,[0,mi,-2],_i,[0,mi,Ti],_i,[0,Ti,mi,-1],_i,[0,Ti,-1]],[0,mi],di,[0,[1,3],[2,4],_i,[0,ui],-1,_i,[0,pi],-1,yi,[0,mi,-1]],mi];var Vi=[0,ai,-1,fi,-3,ai,ui,gi,li,ai,-1,fi,li,fi,-2,gi];function Xi(t,e){tn(t,2,de(e),\"\")}function Hi(t,e){mn(t,3,e)}function Wi(t,e){mn(t,4,e)}var zi=class extends $n{constructor(t){super(t,500)}o(t){return dn(this,0,7,t)}},Ki=[-1,{}],Yi=[0,mi,1,Ki],$i=[0,mi,pi,Ki];function qi(t,e){yn(t,1,zi,e)}function Ji(t,e){mn(t,10,e)}function Zi(t,e){mn(t,15,e)}var Qi=class extends $n{constructor(t){super(t,500)}o(t){return dn(this,0,1001,t)}},ts=[-500,yi,[-500,gi,-1,pi,-3,[-2,ji,di],yi,Li,li,-1,Yi,$i,yi,[0,gi,fi],gi,Vi,li,pi,987,pi],4,yi,[-500,mi,-1,[-1,{}],998,mi],yi,[-500,mi,pi,-1,[-2,{},di],997,pi,-1],li,yi,[-500,mi,pi,Ki,998,pi],pi,li,Yi,$i,yi,[0,gi,-1,Ki],pi,-2,Vi,gi,-1,fi,[0,fi,wi],978,Ki,yi,Li];Qi.prototype.g=Si(ts);var es=ki(Qi,ts),ns=class extends $n{constructor(t){super(t)}},rs=class extends $n{constructor(t){super(t)}g(){return ln(this,ns,1)}},is=[0,yi,[0,hi,ri,mi,-1]],ss=ki(rs,is),os=class extends $n{constructor(t){super(t)}},as=class extends $n{constructor(t){super(t)}},cs=class extends $n{constructor(t){super(t)}h(){return hn(this,os,2)}g(){return ln(this,as,5)}},hs=ki(class extends $n{constructor(t){super(t)}},[0,pi,ui,si,[0,Ti,[0,hi,-3],[0,ri,-3],[0,hi,-1,[0,yi,[0,hi,-2]]],yi,[0,ri,-1,mi,ri]],mi,-1,oi,yi,[0,hi,ri],pi,oi]),us=class extends $n{constructor(t){super(t)}},ls=ki(class extends $n{constructor(t){super(t)}},[0,yi,[0,ri,-4]]),ds=class extends $n{constructor(t){super(t)}},fs=ki(class extends $n{constructor(t){super(t)}},[0,yi,[0,ri,-4]]),ps=class extends $n{constructor(t){super(t)}},gs=[0,hi,-1,si,Ti],ms=class extends $n{constructor(t){super(t)}};ms.prototype.g=Si([0,ri,-4,oi]);var ys=class extends $n{constructor(t){super(t)}},_s=ki(class extends $n{constructor(t){super(t)}},[0,yi,[0,1,hi,mi,is],oi]),vs=class extends $n{constructor(t){super(t)}},Es=class extends $n{constructor(t){super(t)}ma(){const t=Ke(this);return null==t?U():t}},ws=class extends $n{constructor(t){super(t)}},Ts=[1,2],As=ki(class extends $n{constructor(t){super(t)}},[0,yi,[0,Ts,_i,[0,si],_i,[0,vi],hi,mi],oi]),bs=class extends $n{constructor(t){super(t)}},ks=[0,mi,hi,ri,pi,-1],Ss=class extends $n{constructor(t){super(t)}},xs=[0,di,-1],Ls=class extends $n{constructor(t){super(t)}},Rs=[1,2,3,4,5],Fs=class extends $n{constructor(t){super(t)}g(){return null!=Ke(this)}h(){return null!=vn(this,2)}},Is=class extends $n{constructor(t){super(t)}g(){return Jt(Ve(this,2))??!1}},Ms=[0,vi,mi,[0,hi,oi,-1],[0,ci,oi]],Ps=[0,Ms,di,[0,Rs,_i,Bi,_i,Oi,_i,Pi,_i,Ni,_i,Ui],Ti],Cs=class extends $n{constructor(t){super(t)}},Os=[0,Ps,ri,-1,hi],Us=bi(502141897,Cs);ji[502141897]=Os;var Ds=ki(class extends $n{constructor(t){super(t)}},[0,[0,Ti,-1,ii,Ei],gs]),Ns=class extends $n{constructor(t){super(t)}},Bs=class extends $n{constructor(t){super(t)}},Gs=[0,Ps,ri,[0,Ps],di],js=[0,Ps,Os,Gs,ri,[0,[0,Ms]]],Vs=bi(508968150,Bs);ji[508968150]=js,ji[508968149]=Gs;var Xs=class extends $n{constructor(t){super(t)}},Hs=bi(513916220,Xs);ji[513916220]=[0,Ps,js,hi];var Ws=class extends $n{constructor(t){super(t)}h(){return hn(this,bs,2)}g(){He(this,2)}},zs=[0,Ps,ks];ji[478825465]=zs;var Ks=class extends $n{constructor(t){super(t)}},Ys=class extends $n{constructor(t){super(t)}},$s=class extends $n{constructor(t){super(t)}},qs=class extends $n{constructor(t){super(t)}},Js=class extends $n{constructor(t){super(t)}},Zs=[0,Ps,[0,Ps],zs,-1],Qs=[0,Ps,ri,hi],to=[0,Ps,ri],eo=[0,Ps,Qs,to,ri],no=bi(479097054,Js);ji[479097054]=[0,Ps,eo,Zs],ji[463370452]=Zs,ji[464864288]=Qs;var ro=bi(462713202,qs);ji[462713202]=eo,ji[474472470]=to;var io=class extends $n{constructor(t){super(t)}},so=class extends $n{constructor(t){super(t)}},oo=class extends $n{constructor(t){super(t)}},ao=class extends $n{constructor(t){super(t)}},co=[0,Ps,ri,-1,hi],ho=[0,Ps,ri,di];ao.prototype.g=Si([0,Ps,to,[0,Ps],Os,Gs,co,ho]);var uo=class extends $n{constructor(t){super(t)}},lo=bi(456383383,uo);ji[456383383]=[0,Ps,ks];var fo=class extends $n{constructor(t){super(t)}},po=bi(476348187,fo);ji[476348187]=[0,Ps,xs];var go=class extends $n{constructor(t){super(t)}},mo=class extends $n{constructor(t){super(t)}},yo=[0,Ti,-1],_o=bi(458105876,class extends $n{constructor(t){super(t)}g(){var t=this.u;const e=0|t[Q],n=2&e;return t=function(t,e,n){var r=mo;const i=2&e;let s=!1;if(null==n){if(i)return Ie();n=[]}else if(n.constructor===Ae){if(0==(2&n.M)||i)return n;n=n.da()}else Array.isArray(n)?s=!!(2&(0|n[Q])):n=[];if(i){if(!n.length)return Ie();s||(s=!0,it(n))}else s&&(s=!1,n=Qe(n));return s||(64&(0|n[Q])?n[Q]&=-33:32&e&&nt(n,32)),We(t,e,2,r=new Ae(n,r,ge,void 0)),r}(t,e,Xe(t,e,2)),!n&&mo&&(t.pa=!0),t}});ji[458105876]=[0,yo,Yr,[!0,oi,[0,mi,-1,pi]]];var vo=class extends $n{constructor(t){super(t)}},Eo=bi(458105758,vo);ji[458105758]=[0,Ps,mi,yo];var wo=class extends $n{constructor(t){super(t)}},To=bi(443442058,wo);ji[443442058]=[0,Ps,mi,hi,ri,pi,-1,di,ri],ji[514774813]=co;var Ao=class extends $n{constructor(t){super(t)}},bo=bi(516587230,Ao);function ko(t,e){return e=e?e.clone():new bs,void 0!==t.displayNamesLocale?He(e,1,de(t.displayNamesLocale)):void 0===t.displayNamesLocale&&He(e,1),void 0!==t.maxResults?Tn(e,2,t.maxResults):\"maxResults\"in t&&He(e,2),void 0!==t.scoreThreshold?An(e,3,t.scoreThreshold):\"scoreThreshold\"in t&&He(e,3),void 0!==t.categoryAllowlist?bn(e,4,t.categoryAllowlist):\"categoryAllowlist\"in t&&He(e,4),void 0!==t.categoryDenylist?bn(e,5,t.categoryDenylist):\"categoryDenylist\"in t&&He(e,5),e}function So(t,e=-1,n=\"\"){return{categories:t.map((t=>({index:_n(t,1)??0??-1,score:En(t,2)??0,categoryName:vn(t,3)??\"\"??\"\",displayName:vn(t,4)??\"\"??\"\"}))),headIndex:e,headName:n}}function xo(t){var e=$e(t,3,qt,Ye()),n=$e(t,2,te,Ye()),r=$e(t,1,fe,Ye()),i=$e(t,9,fe,Ye());const s={categories:[],keypoints:[]};for(let t=0;t<e.length;t++)s.categories.push({score:e[t],index:n[t]??-1,categoryName:r[t]??\"\",displayName:i[t]??\"\"});if((e=hn(t,cs,4)?.h())&&(s.boundingBox={originX:_n(e,1)??0,originY:_n(e,2)??0,width:_n(e,3)??0,height:_n(e,4)??0,angle:0}),hn(t,cs,4)?.g().length)for(const e of hn(t,cs,4).g())s.keypoints.push({x:ze(e,1)??0,y:ze(e,2)??0,score:ze(e,4)??0,label:vn(e,3)??\"\"});return s}function Lo(t){const e=[];for(const n of ln(t,ds,1))e.push({x:En(n,1)??0,y:En(n,2)??0,z:En(n,3)??0,visibility:En(n,4)??0});return e}function Ro(t){const e=[];for(const n of ln(t,us,1))e.push({x:En(n,1)??0,y:En(n,2)??0,z:En(n,3)??0,visibility:En(n,4)??0});return e}function Fo(t){return Array.from(t,(t=>t>127?t-256:t))}function Io(t,e){if(t.length!==e.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${t.length} vs. ${e.length}).`);let n=0,r=0,i=0;for(let s=0;s<t.length;s++)n+=t[s]*e[s],r+=t[s]*t[s],i+=e[s]*e[s];if(r<=0||i<=0)throw Error(\"Cannot compute cosine similarity on embedding with 0 norm.\");return n/Math.sqrt(r*i)}let Mo;ji[516587230]=[0,Ps,co,ho,ri],ji[518928384]=ho;const Po=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);async function Co(){if(void 0===Mo)try{await WebAssembly.instantiate(Po),Mo=!0}catch{Mo=!1}return Mo}async function Oo(t,e=Mi``){const n=await Co()?\"wasm_internal\":\"wasm_nosimd_internal\";return{wasmLoaderPath:`${e}/${t}_${n}.js`,wasmBinaryPath:`${e}/${t}_${n}.wasm`}}var Uo=class{};function Do(){var t=navigator;return\"undefined\"!=typeof OffscreenCanvas&&(!function(t=navigator){return(t=t.userAgent).includes(\"Safari\")&&!t.includes(\"Chrome\")}(t)||!!((t=t.userAgent.match(/Version\\/([\\d]+).*Safari/))&&t.length>=1&&Number(t[1])>=17))}async function No(t){if(\"function\"!=typeof importScripts){const e=document.createElement(\"script\");return e.src=t.toString(),e.crossOrigin=\"anonymous\",new Promise(((t,n)=>{e.addEventListener(\"load\",(()=>{t()}),!1),e.addEventListener(\"error\",(t=>{n(t)}),!1),document.body.appendChild(e)}))}importScripts(t.toString())}function Bo(t){return void 0!==t.videoWidth?[t.videoWidth,t.videoHeight]:void 0!==t.naturalWidth?[t.naturalWidth,t.naturalHeight]:void 0!==t.displayWidth?[t.displayWidth,t.displayHeight]:[t.width,t.height]}function Go(t,e,n){t.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\"),n(e=t.i.stringToNewUTF8(e)),t.i._free(e)}function jo(t,e,n){if(!t.i.canvas)throw Error(\"No OpenGL canvas configured.\");if(n?t.i._bindTextureToStream(n):t.i._bindTextureToCanvas(),!(n=t.i.canvas.getContext(\"webgl2\")||t.i.canvas.getContext(\"webgl\")))throw Error(\"Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.\");t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!0),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!1);const[r,i]=Bo(e);return!t.l||r===t.i.canvas.width&&i===t.i.canvas.height||(t.i.canvas.width=r,t.i.canvas.height=i),[r,i]}function Vo(t,e,n){t.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");const r=new Uint32Array(e.length);for(let n=0;n<e.length;n++)r[n]=t.i.stringToNewUTF8(e[n]);e=t.i._malloc(4*r.length),t.i.HEAPU32.set(r,e>>2),n(e);for(const e of r)t.i._free(e);t.i._free(e)}function Xo(t,e,n){t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=n}function Ho(t,e,n){let r=[];t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=(t,e,i)=>{e?(n(r,i),r=[]):r.push(t)}}Uo.forVisionTasks=function(t){return Oo(\"vision\",t)},Uo.forTextTasks=function(t){return Oo(\"text\",t)},Uo.forGenAiExperimentalTasks=function(t){return Oo(\"genai_experimental\",t)},Uo.forGenAiTasks=function(t){return Oo(\"genai\",t)},Uo.forAudioTasks=function(t){return Oo(\"audio\",t)},Uo.isSimdSupported=function(){return Co()};async function Wo(t,e,n,r){return t=await(async(t,e,n,r,i)=>{if(e&&await No(e),!self.ModuleFactory)throw Error(\"ModuleFactory not set.\");if(n&&(await No(n),!self.ModuleFactory))throw Error(\"ModuleFactory not set.\");return self.Module&&i&&((e=self.Module).locateFile=i.locateFile,i.mainScriptUrlOrBlob&&(e.mainScriptUrlOrBlob=i.mainScriptUrlOrBlob)),i=await self.ModuleFactory(self.Module||i),self.ModuleFactory=self.Module=void 0,new t(i,r)})(t,n.wasmLoaderPath,n.assetLoaderPath,e,{locateFile:t=>t.endsWith(\".wasm\")?n.wasmBinaryPath.toString():n.assetBinaryPath&&t.endsWith(\".data\")?n.assetBinaryPath.toString():t}),await t.o(r),t}function zo(t,e){const n=hn(t.baseOptions,Fs,1)||new Fs;\"string\"==typeof e?(He(n,2,de(e)),He(n,1)):e instanceof Uint8Array&&(He(n,1,dt(e,!1)),He(n,2)),dn(t.baseOptions,0,1,n)}function Ko(t){try{const e=t.G.length;if(1===e)throw Error(t.G[0].message);if(e>1)throw Error(\"Encountered multiple errors: \"+t.G.map((t=>t.message)).join(\", \"))}finally{t.G=[]}}function Yo(t,e){t.B=Math.max(t.B,e)}function $o(t,e){t.A=new zi,Xi(t.A,\"PassThroughCalculator\"),Hi(t.A,\"free_memory\"),Wi(t.A,\"free_memory_unused_out\"),Ji(e,\"free_memory\"),qi(e,t.A)}function qo(t,e){Hi(t.A,e),Wi(t.A,e+\"_unused_out\")}function Jo(t){t.g.addBoolToStream(!0,\"free_memory\",t.B)}var Zo=class{constructor(t){this.g=t,this.G=[],this.B=0,this.g.setAutoRenderToScreen(!1)}l(t,e=!0){if(e){const e=t.baseOptions||{};if(t.baseOptions?.modelAssetBuffer&&t.baseOptions?.modelAssetPath)throw Error(\"Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer\");if(!(hn(this.baseOptions,Fs,1)?.g()||hn(this.baseOptions,Fs,1)?.h()||t.baseOptions?.modelAssetBuffer||t.baseOptions?.modelAssetPath))throw Error(\"Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set\");if(function(t,e){let n=hn(t.baseOptions,Ls,3);if(!n){var r=n=new Ls,i=new Di;fn(r,4,Rs,i)}\"delegate\"in e&&(\"GPU\"===e.delegate?(e=n,r=new Ci,fn(e,2,Rs,r)):(e=n,r=new Di,fn(e,4,Rs,r))),dn(t.baseOptions,0,3,n)}(this,e),e.modelAssetPath)return fetch(e.modelAssetPath.toString()).then((t=>{if(t.ok)return t.arrayBuffer();throw Error(`Failed to fetch model: ${e.modelAssetPath} (${t.status})`)})).then((t=>{try{this.g.i.FS_unlink(\"/model.dat\")}catch{}this.g.i.FS_createDataFile(\"/\",\"model.dat\",new Uint8Array(t),!0,!1,!1),zo(this,\"/model.dat\"),this.m(),this.J()}));if(e.modelAssetBuffer instanceof Uint8Array)zo(this,e.modelAssetBuffer);else if(e.modelAssetBuffer)return async function(t){const e=[];for(var n=0;;){const{done:r,value:i}=await t.read();if(r)break;e.push(i),n+=i.length}if(0===e.length)return new Uint8Array(0);if(1===e.length)return e[0];t=new Uint8Array(n),n=0;for(const r of e)t.set(r,n),n+=r.length;return t}(e.modelAssetBuffer).then((t=>{zo(this,t),this.m(),this.J()}))}return this.m(),this.J(),Promise.resolve()}J(){}ca(){let t;if(this.g.ca((e=>{t=es(e)})),!t)throw Error(\"Failed to retrieve CalculatorGraphConfig\");return t}setGraph(t,e){this.g.attachErrorListener(((t,e)=>{this.G.push(Error(e))})),this.g.Ha(),this.g.setGraph(t,e),this.A=void 0,Ko(this)}finishProcessing(){this.g.finishProcessing(),Ko(this)}close(){this.A=void 0,this.g.closeGraph()}};function Qo(t,e){if(!t)throw Error(`Unable to obtain required WebGL resource: ${e}`);return t}Zo.prototype.close=Zo.prototype.close;class ta{constructor(t,e,n,r){this.g=t,this.h=e,this.m=n,this.l=r}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h),this.g.deleteBuffer(this.m),this.g.deleteBuffer(this.l)}}function ea(t,e,n){const r=t.g;if(n=Qo(r.createShader(n),\"Failed to create WebGL shader\"),r.shaderSource(n,e),r.compileShader(n),!r.getShaderParameter(n,r.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${r.getShaderInfoLog(n)}`);return r.attachShader(t.h,n),n}function na(t,e){const n=t.g,r=Qo(n.createVertexArray(),\"Failed to create vertex array\");n.bindVertexArray(r);const i=Qo(n.createBuffer(),\"Failed to create buffer\");n.bindBuffer(n.ARRAY_BUFFER,i),n.enableVertexAttribArray(t.P),n.vertexAttribPointer(t.P,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),n.STATIC_DRAW);const s=Qo(n.createBuffer(),\"Failed to create buffer\");return n.bindBuffer(n.ARRAY_BUFFER,s),n.enableVertexAttribArray(t.J),n.vertexAttribPointer(t.J,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array(e?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),n.STATIC_DRAW),n.bindBuffer(n.ARRAY_BUFFER,null),n.bindVertexArray(null),new ta(n,r,i,s)}function ra(t,e){if(t.g){if(e!==t.g)throw Error(\"Cannot change GL context once initialized\")}else t.g=e}function ia(t,e,n,r){return ra(t,e),t.h||(t.m(),t.C()),n?(t.s||(t.s=na(t,!0)),n=t.s):(t.v||(t.v=na(t,!1)),n=t.v),e.useProgram(t.h),n.bind(),t.l(),t=r(),n.g.bindVertexArray(null),t}function sa(t,e,n){return ra(t,e),t=Qo(e.createTexture(),\"Failed to create texture\"),e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,n??e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,n??e.LINEAR),e.bindTexture(e.TEXTURE_2D,null),t}function oa(t,e,n){ra(t,e),t.A||(t.A=Qo(e.createFramebuffer(),\"Failed to create framebuffe.\")),e.bindFramebuffer(e.FRAMEBUFFER,t.A),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}function aa(t){t.g?.bindFramebuffer(t.g.FRAMEBUFFER,null)}var ca=class{G(){return\"\\n precision mediump float;\\n varying vec2 vTex;\\n uniform sampler2D inputTexture;\\n void main() {\\n gl_FragColor = texture2D(inputTexture, vTex);\\n }\\n \"}m(){const t=this.g;if(this.h=Qo(t.createProgram(),\"Failed to create WebGL program\"),this.Z=ea(this,\"\\n attribute vec2 aVertex;\\n attribute vec2 aTex;\\n varying vec2 vTex;\\n void main(void) {\\n gl_Position = vec4(aVertex, 0.0, 1.0);\\n vTex = aTex;\\n }\",t.VERTEX_SHADER),this.Y=ea(this,this.G(),t.FRAGMENT_SHADER),t.linkProgram(this.h),!t.getProgramParameter(this.h,t.LINK_STATUS))throw Error(`Error during program linking: ${t.getProgramInfoLog(this.h)}`);this.P=t.getAttribLocation(this.h,\"aVertex\"),this.J=t.getAttribLocation(this.h,\"aTex\")}C(){}l(){}close(){if(this.h){const t=this.g;t.deleteProgram(this.h),t.deleteShader(this.Z),t.deleteShader(this.Y)}this.A&&this.g.deleteFramebuffer(this.A),this.v&&this.v.close(),this.s&&this.s.close()}};var ha=class extends ca{G(){return\"\\n precision mediump float;\\n uniform sampler2D backgroundTexture;\\n uniform sampler2D maskTexture;\\n uniform sampler2D colorMappingTexture;\\n varying vec2 vTex;\\n void main() {\\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\\n float category = texture2D(maskTexture, vTex).r;\\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\\n }\\n \"}C(){const t=this.g;t.activeTexture(t.TEXTURE1),this.B=sa(this,t,t.LINEAR),t.activeTexture(t.TEXTURE2),this.j=sa(this,t,t.NEAREST)}m(){super.m();const t=this.g;this.L=Qo(t.getUniformLocation(this.h,\"backgroundTexture\"),\"Uniform location\"),this.U=Qo(t.getUniformLocation(this.h,\"colorMappingTexture\"),\"Uniform location\"),this.K=Qo(t.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const t=this.g;t.uniform1i(this.K,0),t.uniform1i(this.L,1),t.uniform1i(this.U,2)}close(){this.B&&this.g.deleteTexture(this.B),this.j&&this.g.deleteTexture(this.j),super.close()}},ua=class extends ca{G(){return\"\\n precision mediump float;\\n uniform sampler2D maskTexture;\\n uniform sampler2D defaultTexture;\\n uniform sampler2D overlayTexture;\\n varying vec2 vTex;\\n void main() {\\n float confidence = texture2D(maskTexture, vTex).r;\\n vec4 defaultColor = texture2D(defaultTexture, vTex);\\n vec4 overlayColor = texture2D(overlayTexture, vTex);\\n // Apply the alpha from the overlay and merge in the default color\\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\\n }\\n \"}C(){const t=this.g;t.activeTexture(t.TEXTURE1),this.j=sa(this,t),t.activeTexture(t.TEXTURE2),this.B=sa(this,t)}m(){super.m();const t=this.g;this.K=Qo(t.getUniformLocation(this.h,\"defaultTexture\"),\"Uniform location\"),this.L=Qo(t.getUniformLocation(this.h,\"overlayTexture\"),\"Uniform location\"),this.H=Qo(t.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const t=this.g;t.uniform1i(this.H,0),t.uniform1i(this.K,1),t.uniform1i(this.L,2)}close(){this.j&&this.g.deleteTexture(this.j),this.B&&this.g.deleteTexture(this.B),super.close()}};function la(t,e){switch(e){case 0:return t.g.find((t=>t instanceof Uint8Array));case 1:return t.g.find((t=>t instanceof Float32Array));case 2:return t.g.find((t=>\"undefined\"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function da(t){var e=la(t,1);if(!e){if(e=la(t,0))e=new Float32Array(e).map((t=>t/255));else{e=new Float32Array(t.width*t.height);const r=pa(t);var n=ma(t);if(oa(n,r,fa(t)),\"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod\".split(\";\").includes(navigator.platform)||navigator.userAgent.includes(\"Mac\")&&\"document\"in self&&\"ontouchend\"in self.document){n=new Float32Array(t.width*t.height*4),r.readPixels(0,0,t.width,t.height,r.RGBA,r.FLOAT,n);for(let t=0,r=0;t<e.length;++t,r+=4)e[t]=n[r]}else r.readPixels(0,0,t.width,t.height,r.RED,r.FLOAT,e)}t.g.push(e)}return e}function fa(t){let e=la(t,2);if(!e){const n=pa(t);e=ya(t);const r=da(t),i=ga(t);n.texImage2D(n.TEXTURE_2D,0,i,t.width,t.height,0,n.RED,n.FLOAT,r),_a(t)}return e}function pa(t){if(!t.canvas)throw Error(\"Conversion to different image formats require that a canvas is passed when initializing the image.\");return t.h||(t.h=Qo(t.canvas.getContext(\"webgl2\"),\"You cannot use a canvas that is already bound to a different type of rendering context.\")),t.h}function ga(t){if(t=pa(t),!va)if(t.getExtension(\"EXT_color_buffer_float\")&&t.getExtension(\"OES_texture_float_linear\")&&t.getExtension(\"EXT_float_blend\"))va=t.R32F;else{if(!t.getExtension(\"EXT_color_buffer_half_float\"))throw Error(\"GPU does not fully support 4-channel float32 or float16 formats\");va=t.R16F}return va}function ma(t){return t.l||(t.l=new ca),t.l}function ya(t){const e=pa(t);e.viewport(0,0,t.width,t.height),e.activeTexture(e.TEXTURE0);let n=la(t,2);return n||(n=sa(ma(t),e,t.m?e.LINEAR:e.NEAREST),t.g.push(n),t.j=!0),e.bindTexture(e.TEXTURE_2D,n),n}function _a(t){t.h.bindTexture(t.h.TEXTURE_2D,null)}var va,Ea=class{constructor(t,e,n,r,i,s,o){this.g=t,this.m=e,this.j=n,this.canvas=r,this.l=i,this.width=s,this.height=o,this.j&&(0===--wa&&console.error(\"You seem to be creating MPMask instances without invoking .close(). This leaks resources.\"))}Da(){return!!la(this,0)}ja(){return!!la(this,1)}R(){return!!la(this,2)}ia(){return(e=la(t=this,0))||(e=da(t),e=new Uint8Array(e.map((t=>255*t))),t.g.push(e)),e;var t,e}ha(){return da(this)}N(){return fa(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof Uint8Array)n=new Uint8Array(e);else if(e instanceof Float32Array)n=new Float32Array(e);else{if(!(e instanceof WebGLTexture))throw Error(`Type is not supported: ${e}`);{const t=pa(this),e=ma(this);t.activeTexture(t.TEXTURE1),n=sa(e,t,this.m?t.LINEAR:t.NEAREST),t.bindTexture(t.TEXTURE_2D,n);const r=ga(this);t.texImage2D(t.TEXTURE_2D,0,r,this.width,this.height,0,t.RED,t.FLOAT,null),t.bindTexture(t.TEXTURE_2D,null),oa(e,t,n),ia(e,t,!1,(()=>{ya(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),_a(this)})),aa(e),_a(this)}}t.push(n)}return new Ea(t,this.m,this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&pa(this).deleteTexture(la(this,2)),wa=-1}};Ea.prototype.close=Ea.prototype.close,Ea.prototype.clone=Ea.prototype.clone,Ea.prototype.getAsWebGLTexture=Ea.prototype.N,Ea.prototype.getAsFloat32Array=Ea.prototype.ha,Ea.prototype.getAsUint8Array=Ea.prototype.ia,Ea.prototype.hasWebGLTexture=Ea.prototype.R,Ea.prototype.hasFloat32Array=Ea.prototype.ja,Ea.prototype.hasUint8Array=Ea.prototype.Da;var wa=250;const Ta={color:\"white\",lineWidth:4,radius:6};function Aa(t){return{...Ta,fillColor:(t=t||{}).color,...t}}function ba(t,e){return t instanceof Function?t(e):t}function ka(t,e,n){return Math.max(Math.min(e,n),Math.min(Math.max(e,n),t))}function Sa(t){if(!t.l)throw Error(\"CPU rendering requested but CanvasRenderingContext2D not provided.\");return t.l}function xa(t){if(!t.j)throw Error(\"GPU rendering requested but WebGL2RenderingContext not provided.\");return t.j}function La(t,e,n){if(e.R())n(e.N());else{const r=e.ja()?e.ha():e.ia();t.m=t.m??new ca;const i=xa(t);n((t=new Ea([r],e.m,!1,i.canvas,t.m,e.width,e.height)).N()),t.close()}}function Ra(t,e,n,r){const i=function(t){return t.g||(t.g=new ha),t.g}(t),s=xa(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n;ia(i,s,!0,(()=>{!function(t,e,n,r){const i=t.g;if(i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,e),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,t.B),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,n),t.H&&function(t,e){if(t!==e)return!1;t=t.entries(),e=e.entries();for(const[r,i]of t){t=r;const s=i;var n=e.next();if(n.done)return!1;const[o,a]=n.value;if(n=a,t!==o||s[0]!==n[0]||s[1]!==n[1]||s[2]!==n[2]||s[3]!==n[3])return!1}return!!e.next().done}(t.H,r))i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j);else{t.H=r;const e=Array(1024).fill(0);r.forEach(((t,n)=>{if(4!==t.length)throw Error(`Color at index ${n} is not a four-channel value.`);e[4*n]=t[0],e[4*n+1]=t[1],e[4*n+2]=t[2],e[4*n+3]=t[3]})),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,256,1,0,i.RGBA,i.UNSIGNED_BYTE,new Uint8Array(e))}}(i,e,o,r),s.clearColor(0,0,0,0),s.clear(s.COLOR_BUFFER_BIT),s.drawArrays(s.TRIANGLE_FAN,0,4);const t=i.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}function Fa(t,e,n,r){const i=xa(t),s=function(t){return t.h||(t.h=new ua),t.h}(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n,a=Array.isArray(r)?new ImageData(new Uint8ClampedArray(r),1,1):r;ia(s,i,!0,(()=>{var t=s.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,s.j),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,o),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,s.B),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,a),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.drawArrays(i.TRIANGLE_FAN,0,4),i.bindTexture(i.TEXTURE_2D,null),(t=s.g).activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}var Ia=class{constructor(t,e){\"undefined\"!=typeof CanvasRenderingContext2D&&t instanceof CanvasRenderingContext2D||t instanceof OffscreenCanvasRenderingContext2D?(this.l=t,this.j=e):this.j=t}wa(t,e){if(t){var n=Sa(this);e=Aa(e),n.save();var r=n.canvas,i=0;for(const s of t)n.fillStyle=ba(e.fillColor,{index:i,from:s}),n.strokeStyle=ba(e.color,{index:i,from:s}),n.lineWidth=ba(e.lineWidth,{index:i,from:s}),(t=new Path2D).arc(s.x*r.width,s.y*r.height,ba(e.radius,{index:i,from:s}),0,2*Math.PI),n.fill(t),n.stroke(t),++i;n.restore()}}va(t,e,n){if(t&&e){var r=Sa(this);n=Aa(n),r.save();var i=r.canvas,s=0;for(const o of e){r.beginPath(),e=t[o.start];const a=t[o.end];e&&a&&(r.strokeStyle=ba(n.color,{index:s,from:e,to:a}),r.lineWidth=ba(n.lineWidth,{index:s,from:e,to:a}),r.moveTo(e.x*i.width,e.y*i.height),r.lineTo(a.x*i.width,a.y*i.height)),++s,r.stroke()}r.restore()}}sa(t,e){const n=Sa(this);e=Aa(e),n.save(),n.beginPath(),n.lineWidth=ba(e.lineWidth,{}),n.strokeStyle=ba(e.color,{}),n.fillStyle=ba(e.fillColor,{}),n.moveTo(t.originX,t.originY),n.lineTo(t.originX+t.width,t.originY),n.lineTo(t.originX+t.width,t.originY+t.height),n.lineTo(t.originX,t.originY+t.height),n.lineTo(t.originX,t.originY),n.stroke(),n.fill(),n.restore()}ta(t,e,n=[0,0,0,255]){this.l?function(t,e,n,r){const i=xa(t);La(t,e,(e=>{Ra(t,e,n,r),(e=Sa(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,n,e):Ra(this,t.N(),n,e)}ua(t,e,n){this.l?function(t,e,n,r){const i=xa(t);La(t,e,(e=>{Fa(t,e,n,r),(e=Sa(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,e,n):Fa(this,t.N(),e,n)}close(){this.g?.close(),this.g=void 0,this.h?.close(),this.h=void 0,this.m?.close(),this.m=void 0}};function Ma(t,e){switch(e){case 0:return t.g.find((t=>t instanceof ImageData));case 1:return t.g.find((t=>\"undefined\"!=typeof ImageBitmap&&t instanceof ImageBitmap));case 2:return t.g.find((t=>\"undefined\"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function Pa(t){var e=Ma(t,0);if(!e){e=Oa(t);const n=Ua(t),r=new Uint8Array(t.width*t.height*4);oa(n,e,Ca(t)),e.readPixels(0,0,t.width,t.height,e.RGBA,e.UNSIGNED_BYTE,r),aa(n),e=new ImageData(new Uint8ClampedArray(r.buffer),t.width,t.height),t.g.push(e)}return e}function Ca(t){let e=Ma(t,2);if(!e){const n=Oa(t);e=Da(t);const r=Ma(t,1)||Pa(t);n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,r),Na(t)}return e}function Oa(t){if(!t.canvas)throw Error(\"Conversion to different image formats require that a canvas is passed when initializing the image.\");return t.h||(t.h=Qo(t.canvas.getContext(\"webgl2\"),\"You cannot use a canvas that is already bound to a different type of rendering context.\")),t.h}function Ua(t){return t.l||(t.l=new ca),t.l}function Da(t){const e=Oa(t);e.viewport(0,0,t.width,t.height),e.activeTexture(e.TEXTURE0);let n=Ma(t,2);return n||(n=sa(Ua(t),e),t.g.push(n),t.m=!0),e.bindTexture(e.TEXTURE_2D,n),n}function Na(t){t.h.bindTexture(t.h.TEXTURE_2D,null)}function Ba(t){const e=Oa(t);return ia(Ua(t),e,!0,(()=>function(t,e){const n=t.canvas;if(n.width===t.width&&n.height===t.height)return e();const r=n.width,i=n.height;return n.width=t.width,n.height=t.height,t=e(),n.width=r,n.height=i,t}(t,(()=>{if(e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),!(t.canvas instanceof OffscreenCanvas))throw Error(\"Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas\");return t.canvas.transferToImageBitmap()}))))}Ia.prototype.close=Ia.prototype.close,Ia.prototype.drawConfidenceMask=Ia.prototype.ua,Ia.prototype.drawCategoryMask=Ia.prototype.ta,Ia.prototype.drawBoundingBox=Ia.prototype.sa,Ia.prototype.drawConnectors=Ia.prototype.va,Ia.prototype.drawLandmarks=Ia.prototype.wa,Ia.lerp=function(t,e,n,r,i){return ka(r*(1-(t-e)/(n-e))+i*(1-(n-t)/(n-e)),r,i)},Ia.clamp=ka;var Ga=class{constructor(t,e,n,r,i,s,o){this.g=t,this.j=e,this.m=n,this.canvas=r,this.l=i,this.width=s,this.height=o,(this.j||this.m)&&(0===--ja&&console.error(\"You seem to be creating MPImage instances without invoking .close(). This leaks resources.\"))}Ca(){return!!Ma(this,0)}ka(){return!!Ma(this,1)}R(){return!!Ma(this,2)}Aa(){return Pa(this)}za(){var t=Ma(this,1);return t||(Ca(this),Da(this),t=Ba(this),Na(this),this.g.push(t),this.j=!0),t}N(){return Ca(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof ImageData)n=new ImageData(e.data,this.width,this.height);else if(e instanceof WebGLTexture){const t=Oa(this),e=Ua(this);t.activeTexture(t.TEXTURE1),n=sa(e,t),t.bindTexture(t.TEXTURE_2D,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.bindTexture(t.TEXTURE_2D,null),oa(e,t,n),ia(e,t,!1,(()=>{Da(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),Na(this)})),aa(e),Na(this)}else{if(!(e instanceof ImageBitmap))throw Error(`Type is not supported: ${e}`);Ca(this),Da(this),n=Ba(this),Na(this)}t.push(n)}return new Ga(t,this.ka(),this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ma(this,1).close(),this.m&&Oa(this).deleteTexture(Ma(this,2)),ja=-1}};Ga.prototype.close=Ga.prototype.close,Ga.prototype.clone=Ga.prototype.clone,Ga.prototype.getAsWebGLTexture=Ga.prototype.N,Ga.prototype.getAsImageBitmap=Ga.prototype.za,Ga.prototype.getAsImageData=Ga.prototype.Aa,Ga.prototype.hasWebGLTexture=Ga.prototype.R,Ga.prototype.hasImageBitmap=Ga.prototype.ka,Ga.prototype.hasImageData=Ga.prototype.Ca;var ja=250;function Va(...t){return t.map((([t,e])=>({start:t,end:e})))}const Xa=function(t){return class extends t{Ha(){this.i._registerModelResourcesGraphService()}}}((Ha=class{constructor(t,e){this.l=!0,this.i=t,this.g=null,this.h=0,this.m=\"function\"==typeof this.i._addIntToInputStream,void 0!==e?this.i.canvas=e:Do()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn(\"OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas.\"),this.i.canvas=document.createElement(\"canvas\"))}async initializeGraph(t){const e=await(await fetch(t)).arrayBuffer();t=!(t.endsWith(\".pbtxt\")||t.endsWith(\".textproto\")),this.setGraph(new Uint8Array(e),t)}setGraphFromString(t){this.setGraph((new TextEncoder).encode(t),!1)}setGraph(t,e){const n=t.length,r=this.i._malloc(n);this.i.HEAPU8.set(t,r),e?this.i._changeBinaryGraph(n,r):this.i._changeTextGraph(n,r),this.i._free(r)}configureAudio(t,e,n,r,i){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep \":gl_graph_runner_audio\" missing?'),Go(this,r||\"input_audio\",(r=>{Go(this,i=i||\"audio_header\",(i=>{this.i._configureAudio(r,i,t,e??0,n)}))}))}setAutoResizeCanvas(t){this.l=t}setAutoRenderToScreen(t){this.i._setAutoRenderToScreen(t)}setGpuBufferVerticalFlip(t){this.i.gpuOriginForWebTexturesIsBottomLeft=t}ca(t){Xo(this,\"__graph_config__\",(e=>{t(e)})),Go(this,\"__graph_config__\",(t=>{this.i._getGraphConfig(t,void 0)})),delete this.i.simpleListeners.__graph_config__}attachErrorListener(t){this.i.errorListener=t}attachEmptyPacketListener(t,e){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{},this.i.emptyPacketListeners[t]=e}addAudioToStream(t,e,n){this.addAudioToStreamWithShape(t,0,0,e,n)}addAudioToStreamWithShape(t,e,n,r,i){const s=4*t.length;this.h!==s&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(s),this.h=s),this.i.HEAPF32.set(t,this.g/4),Go(this,r,(t=>{this.i._addAudioToInputStream(this.g,e,n,t,i)}))}addGpuBufferToStream(t,e,n){Go(this,e,(e=>{const[r,i]=jo(this,t,e);this.i._addBoundTextureToStream(e,r,i,n)}))}addBoolToStream(t,e,n){Go(this,e,(e=>{this.i._addBoolToInputStream(t,e,n)}))}addDoubleToStream(t,e,n){Go(this,e,(e=>{this.i._addDoubleToInputStream(t,e,n)}))}addFloatToStream(t,e,n){Go(this,e,(e=>{this.i._addFloatToInputStream(t,e,n)}))}addIntToStream(t,e,n){Go(this,e,(e=>{this.i._addIntToInputStream(t,e,n)}))}addUintToStream(t,e,n){Go(this,e,(e=>{this.i._addUintToInputStream(t,e,n)}))}addStringToStream(t,e,n){Go(this,e,(e=>{Go(this,t,(t=>{this.i._addStringToInputStream(t,e,n)}))}))}addStringRecordToStream(t,e,n){Go(this,e,(e=>{Vo(this,Object.keys(t),(r=>{Vo(this,Object.values(t),(i=>{this.i._addFlatHashMapToInputStream(r,i,Object.keys(t).length,e,n)}))}))}))}addProtoToStream(t,e,n,r){Go(this,n,(n=>{Go(this,e,(e=>{const i=this.i._malloc(t.length);this.i.HEAPU8.set(t,i),this.i._addProtoToInputStream(i,t.length,e,n,r),this.i._free(i)}))}))}addEmptyPacketToStream(t,e){Go(this,t,(t=>{this.i._addEmptyPacketToInputStream(t,e)}))}addBoolVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateBoolVector(t.length);if(!r)throw Error(\"Unable to allocate new bool vector on heap.\");for(const e of t)this.i._addBoolVectorEntry(r,e);this.i._addBoolVectorToInputStream(r,e,n)}))}addDoubleVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateDoubleVector(t.length);if(!r)throw Error(\"Unable to allocate new double vector on heap.\");for(const e of t)this.i._addDoubleVectorEntry(r,e);this.i._addDoubleVectorToInputStream(r,e,n)}))}addFloatVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateFloatVector(t.length);if(!r)throw Error(\"Unable to allocate new float vector on heap.\");for(const e of t)this.i._addFloatVectorEntry(r,e);this.i._addFloatVectorToInputStream(r,e,n)}))}addIntVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateIntVector(t.length);if(!r)throw Error(\"Unable to allocate new int vector on heap.\");for(const e of t)this.i._addIntVectorEntry(r,e);this.i._addIntVectorToInputStream(r,e,n)}))}addUintVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateUintVector(t.length);if(!r)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const e of t)this.i._addUintVectorEntry(r,e);this.i._addUintVectorToInputStream(r,e,n)}))}addStringVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateStringVector(t.length);if(!r)throw Error(\"Unable to allocate new string vector on heap.\");for(const e of t)Go(this,e,(t=>{this.i._addStringVectorEntry(r,t)}));this.i._addStringVectorToInputStream(r,e,n)}))}addBoolToInputSidePacket(t,e){Go(this,e,(e=>{this.i._addBoolToInputSidePacket(t,e)}))}addDoubleToInputSidePacket(t,e){Go(this,e,(e=>{this.i._addDoubleToInputSidePacket(t,e)}))}addFloatToInputSidePacket(t,e){Go(this,e,(e=>{this.i._addFloatToInputSidePacket(t,e)}))}addIntToInputSidePacket(t,e){Go(this,e,(e=>{this.i._addIntToInputSidePacket(t,e)}))}addUintToInputSidePacket(t,e){Go(this,e,(e=>{this.i._addUintToInputSidePacket(t,e)}))}addStringToInputSidePacket(t,e){Go(this,e,(e=>{Go(this,t,(t=>{this.i._addStringToInputSidePacket(t,e)}))}))}addProtoToInputSidePacket(t,e,n){Go(this,n,(n=>{Go(this,e,(e=>{const r=this.i._malloc(t.length);this.i.HEAPU8.set(t,r),this.i._addProtoToInputSidePacket(r,t.length,e,n),this.i._free(r)}))}))}addBoolVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateBoolVector(t.length);if(!n)throw Error(\"Unable to allocate new bool vector on heap.\");for(const e of t)this.i._addBoolVectorEntry(n,e);this.i._addBoolVectorToInputSidePacket(n,e)}))}addDoubleVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateDoubleVector(t.length);if(!n)throw Error(\"Unable to allocate new double vector on heap.\");for(const e of t)this.i._addDoubleVectorEntry(n,e);this.i._addDoubleVectorToInputSidePacket(n,e)}))}addFloatVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateFloatVector(t.length);if(!n)throw Error(\"Unable to allocate new float vector on heap.\");for(const e of t)this.i._addFloatVectorEntry(n,e);this.i._addFloatVectorToInputSidePacket(n,e)}))}addIntVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateIntVector(t.length);if(!n)throw Error(\"Unable to allocate new int vector on heap.\");for(const e of t)this.i._addIntVectorEntry(n,e);this.i._addIntVectorToInputSidePacket(n,e)}))}addUintVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateUintVector(t.length);if(!n)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const e of t)this.i._addUintVectorEntry(n,e);this.i._addUintVectorToInputSidePacket(n,e)}))}addStringVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateStringVector(t.length);if(!n)throw Error(\"Unable to allocate new string vector on heap.\");for(const e of t)Go(this,e,(t=>{this.i._addStringVectorEntry(n,t)}));this.i._addStringVectorToInputSidePacket(n,e)}))}attachBoolListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachBoolListener(t)}))}attachBoolVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachBoolVectorListener(t)}))}attachIntListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachIntListener(t)}))}attachIntVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachIntVectorListener(t)}))}attachUintListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachUintListener(t)}))}attachUintVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachUintVectorListener(t)}))}attachDoubleListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachDoubleListener(t)}))}attachDoubleVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachDoubleVectorListener(t)}))}attachFloatListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachFloatListener(t)}))}attachFloatVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachFloatVectorListener(t)}))}attachStringListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachStringListener(t)}))}attachStringVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachStringVectorListener(t)}))}attachProtoListener(t,e,n){Xo(this,t,e),Go(this,t,(t=>{this.i._attachProtoListener(t,n||!1)}))}attachProtoVectorListener(t,e,n){Ho(this,t,e),Go(this,t,(t=>{this.i._attachProtoVectorListener(t,n||!1)}))}attachAudioListener(t,e,n){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep \":gl_graph_runner_audio_out\" missing?'),Xo(this,t,((t,n)=>{t=new Float32Array(t.buffer,t.byteOffset,t.length/4),e(t,n)})),Go(this,t,(t=>{this.i._attachAudioListener(t,n||!1)}))}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph(),this.i.simpleListeners=void 0,this.i.emptyPacketListeners=void 0}},class extends Ha{get ea(){return this.i}oa(t,e,n){Go(this,e,(e=>{const[r,i]=jo(this,t,e);this.ea._addBoundTextureAsImageToStream(e,r,i,n)}))}V(t,e){Xo(this,t,e),Go(this,t,(t=>{this.ea._attachImageListener(t)}))}ba(t,e){Ho(this,t,e),Go(this,t,(t=>{this.ea._attachImageVectorListener(t)}))}}));var Ha,Wa=class extends Xa{};async function za(t,e,n){return async function(t,e,n,r){return Wo(t,e,n,r)}(t,n.canvas??(Do()?void 0:document.createElement(\"canvas\")),e,n)}function Ka(t,e,n,r){if(t.U){const s=new ms;if(n?.regionOfInterest){if(!t.na)throw Error(\"This task doesn't support region-of-interest.\");var i=n.regionOfInterest;if(i.left>=i.right||i.top>=i.bottom)throw Error(\"Expected RectF with left < right and top < bottom.\");if(i.left<0||i.top<0||i.right>1||i.bottom>1)throw Error(\"Expected RectF values to be in [0,1].\");An(s,1,(i.left+i.right)/2),An(s,2,(i.top+i.bottom)/2),An(s,4,i.right-i.left),An(s,3,i.bottom-i.top)}else An(s,1,.5),An(s,2,.5),An(s,4,1),An(s,3,1);if(n?.rotationDegrees){if(n?.rotationDegrees%90!=0)throw Error(\"Expected rotation to be a multiple of 90°.\");if(An(s,5,-Math.PI*n.rotationDegrees/180),n?.rotationDegrees%180!=0){const[t,r]=Bo(e);n=En(s,3)*r/t,i=En(s,4)*t/r,An(s,4,n),An(s,3,i)}}t.g.addProtoToStream(s.g(),\"mediapipe.NormalizedRect\",t.U,r)}t.g.oa(e,t.Z,r??performance.now()),t.finishProcessing()}function Ya(t,e,n){if(t.baseOptions?.g())throw Error(\"Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.\");Ka(t,e,n,t.B+1)}function $a(t,e,n,r){if(!t.baseOptions?.g())throw Error(\"Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.\");Ka(t,e,n,r)}function qa(t,e,n,r){var i=e.data;const s=e.width,o=s*(e=e.height);if((i instanceof Uint8Array||i instanceof Float32Array)&&i.length!==o)throw Error(\"Unsupported channel count: \"+i.length/o);return t=new Ea([i],n,!1,t.g.i.canvas,t.P,s,e),r?t.clone():t}var Ja=class extends Zo{constructor(t,e,n,r){super(t),this.g=t,this.Z=e,this.U=n,this.na=r,this.P=new ca}l(t,e=!0){if(\"runningMode\"in t&&wn(this.baseOptions,2,!!t.runningMode&&\"IMAGE\"!==t.runningMode),void 0!==t.canvas&&this.g.i.canvas!==t.canvas)throw Error(\"You must create a new task to reset the canvas.\");return super.l(t,e)}close(){this.P.close(),super.close()}};Ja.prototype.close=Ja.prototype.close;var Za=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect_in\",!1),this.j={detections:[]},dn(t=this.h=new Cs,0,1,e=new Is),An(this.h,2,.5),An(this.h,3,.3)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return\"minDetectionConfidence\"in t&&An(this.h,2,t.minDetectionConfidence??.5),\"minSuppressionThreshold\"in t&&An(this.h,3,t.minSuppressionThreshold??.3),this.l(t)}D(t,e){return this.j={detections:[]},Ya(this,t,e),this.j}F(t,e,n){return this.j={detections:[]},$a(this,t,n,e),this.j}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect_in\"),Zi(t,\"detections\");const e=new Gi;Yn(e,Us,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.face_detector.FaceDetectorGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect_in\"),Wi(n,\"DETECTIONS:detections\"),n.o(e),qi(t,n),this.g.attachProtoVectorListener(\"detections\",((t,e)=>{for(const e of t)t=hs(e),this.j.detections.push(xo(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"detections\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Za.prototype.detectForVideo=Za.prototype.F,Za.prototype.detect=Za.prototype.D,Za.prototype.setOptions=Za.prototype.o,Za.createFromModelPath=async function(t,e){return za(Za,t,{baseOptions:{modelAssetPath:e}})},Za.createFromModelBuffer=function(t,e){return za(Za,t,{baseOptions:{modelAssetBuffer:e}})},Za.createFromOptions=function(t,e){return za(Za,t,e)};var Qa=Va([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),tc=Va([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]),ec=Va([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),nc=Va([474,475],[475,476],[476,477],[477,474]),rc=Va([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),ic=Va([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),sc=Va([469,470],[470,471],[471,472],[472,469]),oc=Va([10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),ac=[...Qa,...tc,...ec,...rc,...ic,...oc],cc=Va([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]);function hc(t){t.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}var uc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!1),this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]},this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1,dn(t=this.h=new Bs,0,1,e=new Is),this.v=new Ns,dn(this.h,0,3,this.v),this.s=new Cs,dn(this.h,0,2,this.s),Tn(this.s,4,1),An(this.s,2,.5),An(this.v,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return\"numFaces\"in t&&Tn(this.s,4,t.numFaces??1),\"minFaceDetectionConfidence\"in t&&An(this.s,2,t.minFaceDetectionConfidence??.5),\"minTrackingConfidence\"in t&&An(this.h,4,t.minTrackingConfidence??.5),\"minFacePresenceConfidence\"in t&&An(this.v,2,t.minFacePresenceConfidence??.5),\"outputFaceBlendshapes\"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),\"outputFacialTransformationMatrixes\"in t&&(this.outputFacialTransformationMatrixes=!!t.outputFacialTransformationMatrixes),this.l(t)}D(t,e){return hc(this),Ya(this,t,e),this.j}F(t,e,n){return hc(this),$a(this,t,n,e),this.j}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"face_landmarks\");const e=new Gi;Yn(e,Vs,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"NORM_LANDMARKS:face_landmarks\"),n.o(e),qi(t,n),this.g.attachProtoVectorListener(\"face_landmarks\",((t,e)=>{for(const e of t)t=fs(e),this.j.faceLandmarks.push(Lo(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"face_landmarks\",(t=>{Yo(this,t)})),this.outputFaceBlendshapes&&(Zi(t,\"blendshapes\"),Wi(n,\"BLENDSHAPES:blendshapes\"),this.g.attachProtoVectorListener(\"blendshapes\",((t,e)=>{if(this.outputFaceBlendshapes)for(const e of t)t=ss(e),this.j.faceBlendshapes.push(So(t.g()??[]));Yo(this,e)})),this.g.attachEmptyPacketListener(\"blendshapes\",(t=>{Yo(this,t)}))),this.outputFacialTransformationMatrixes&&(Zi(t,\"face_geometry\"),Wi(n,\"FACE_GEOMETRY:face_geometry\"),this.g.attachProtoVectorListener(\"face_geometry\",((t,e)=>{if(this.outputFacialTransformationMatrixes)for(const e of t)(t=hn(Ds(e),ps,2))&&this.j.facialTransformationMatrixes.push({rows:_n(t,1)??0??0,columns:_n(t,2)??0??0,data:$e(t,3,qt,Ye()).slice()??[]});Yo(this,e)})),this.g.attachEmptyPacketListener(\"face_geometry\",(t=>{Yo(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};uc.prototype.detectForVideo=uc.prototype.F,uc.prototype.detect=uc.prototype.D,uc.prototype.setOptions=uc.prototype.o,uc.createFromModelPath=function(t,e){return za(uc,t,{baseOptions:{modelAssetPath:e}})},uc.createFromModelBuffer=function(t,e){return za(uc,t,{baseOptions:{modelAssetBuffer:e}})},uc.createFromOptions=function(t,e){return za(uc,t,e)},uc.FACE_LANDMARKS_LIPS=Qa,uc.FACE_LANDMARKS_LEFT_EYE=tc,uc.FACE_LANDMARKS_LEFT_EYEBROW=ec,uc.FACE_LANDMARKS_LEFT_IRIS=nc,uc.FACE_LANDMARKS_RIGHT_EYE=rc,uc.FACE_LANDMARKS_RIGHT_EYEBROW=ic,uc.FACE_LANDMARKS_RIGHT_IRIS=sc,uc.FACE_LANDMARKS_FACE_OVAL=oc,uc.FACE_LANDMARKS_CONTOURS=ac,uc.FACE_LANDMARKS_TESSELATION=cc;var lc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!0),dn(t=this.j=new Xs,0,1,e=new Is)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(t){dn(this.j,0,1,t)}o(t){return super.l(t)}Ka(t,e,n){const r=\"function\"!=typeof e?e:{};if(this.h=\"function\"==typeof e?e:n,Ya(this,t,r??{}),!this.h)return this.s}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"stylized_image\");const e=new Gi;Yn(e,Hs,this.j);const n=new zi;Xi(n,\"mediapipe.tasks.vision.face_stylizer.FaceStylizerGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"STYLIZED_IMAGE:stylized_image\"),n.o(e),qi(t,n),this.g.V(\"stylized_image\",((t,e)=>{var n=!this.h,r=t.data,i=t.width;const s=i*(t=t.height);if(r instanceof Uint8Array)if(r.length===3*s){const e=new Uint8ClampedArray(4*s);for(let t=0;t<s;++t)e[4*t]=r[3*t],e[4*t+1]=r[3*t+1],e[4*t+2]=r[3*t+2],e[4*t+3]=255;r=new ImageData(e,i,t)}else{if(r.length!==4*s)throw Error(\"Unsupported channel count: \"+r.length/s);r=new ImageData(new Uint8ClampedArray(r.buffer,r.byteOffset,r.length),i,t)}else if(!(r instanceof WebGLTexture))throw Error(`Unsupported format: ${r.constructor.name}`);i=new Ga([r],!1,!1,this.g.i.canvas,this.P,i,t),this.s=n=n?i.clone():i,this.h&&this.h(n),Yo(this,e)})),this.g.attachEmptyPacketListener(\"stylized_image\",(t=>{this.s=null,this.h&&this.h(null),Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};lc.prototype.stylize=lc.prototype.Ka,lc.prototype.setOptions=lc.prototype.o,lc.createFromModelPath=function(t,e){return za(lc,t,{baseOptions:{modelAssetPath:e}})},lc.createFromModelBuffer=function(t,e){return za(lc,t,{baseOptions:{modelAssetBuffer:e}})},lc.createFromOptions=function(t,e){return za(lc,t,e)};var dc=Va([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function fc(t){t.gestures=[],t.landmarks=[],t.worldLandmarks=[],t.handedness=[]}function pc(t){return 0===t.gestures.length?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:t.gestures,landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handedness:t.handedness,handednesses:t.handedness}}function gc(t,e=!0){const n=[];for(const i of t){var r=ss(i);t=[];for(const n of r.g())r=e&&null!=_n(n,1)?_n(n,1)??0:-1,t.push({score:En(n,2)??0,index:r,categoryName:vn(n,3)??\"\"??\"\",displayName:vn(n,4)??\"\"??\"\"});n.push(t)}return n}var mc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!1),this.gestures=[],this.landmarks=[],this.worldLandmarks=[],this.handedness=[],dn(t=this.j=new Js,0,1,e=new Is),this.s=new qs,dn(this.j,0,2,this.s),this.C=new $s,dn(this.s,0,3,this.C),this.v=new Ys,dn(this.s,0,2,this.v),this.h=new Ks,dn(this.j,0,3,this.h),An(this.v,2,.5),An(this.s,4,.5),An(this.C,2,.5)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(t){dn(this.j,0,1,t)}o(t){if(Tn(this.v,3,t.numHands??1),\"minHandDetectionConfidence\"in t&&An(this.v,2,t.minHandDetectionConfidence??.5),\"minTrackingConfidence\"in t&&An(this.s,4,t.minTrackingConfidence??.5),\"minHandPresenceConfidence\"in t&&An(this.C,2,t.minHandPresenceConfidence??.5),t.cannedGesturesClassifierOptions){var e=new Ws,n=e,r=ko(t.cannedGesturesClassifierOptions,hn(this.h,Ws,3)?.h());dn(n,0,2,r),dn(this.h,0,3,e)}else void 0===t.cannedGesturesClassifierOptions&&hn(this.h,Ws,3)?.g();return t.customGesturesClassifierOptions?(dn(n=e=new Ws,0,2,r=ko(t.customGesturesClassifierOptions,hn(this.h,Ws,4)?.h())),dn(this.h,0,4,e)):void 0===t.customGesturesClassifierOptions&&hn(this.h,Ws,4)?.g(),this.l(t)}Fa(t,e){return fc(this),Ya(this,t,e),pc(this)}Ga(t,e,n){return fc(this),$a(this,t,n,e),pc(this)}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"hand_gestures\"),Zi(t,\"hand_landmarks\"),Zi(t,\"world_hand_landmarks\"),Zi(t,\"handedness\");const e=new Gi;Yn(e,no,this.j);const n=new zi;Xi(n,\"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"HAND_GESTURES:hand_gestures\"),Wi(n,\"LANDMARKS:hand_landmarks\"),Wi(n,\"WORLD_LANDMARKS:world_hand_landmarks\"),Wi(n,\"HANDEDNESS:handedness\"),n.o(e),qi(t,n),this.g.attachProtoVectorListener(\"hand_landmarks\",((t,e)=>{for(const e of t){t=fs(e);const n=[];for(const e of ln(t,ds,1))n.push({x:En(e,1)??0,y:En(e,2)??0,z:En(e,3)??0,visibility:En(e,4)??0});this.landmarks.push(n)}Yo(this,e)})),this.g.attachEmptyPacketListener(\"hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoVectorListener(\"world_hand_landmarks\",((t,e)=>{for(const e of t){t=ls(e);const n=[];for(const e of ln(t,us,1))n.push({x:En(e,1)??0,y:En(e,2)??0,z:En(e,3)??0,visibility:En(e,4)??0});this.worldLandmarks.push(n)}Yo(this,e)})),this.g.attachEmptyPacketListener(\"world_hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoVectorListener(\"hand_gestures\",((t,e)=>{this.gestures.push(...gc(t,!1)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"hand_gestures\",(t=>{Yo(this,t)})),this.g.attachProtoVectorListener(\"handedness\",((t,e)=>{this.handedness.push(...gc(t)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"handedness\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};function yc(t){return{landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handednesses:t.handedness,handedness:t.handedness}}mc.prototype.recognizeForVideo=mc.prototype.Ga,mc.prototype.recognize=mc.prototype.Fa,mc.prototype.setOptions=mc.prototype.o,mc.createFromModelPath=function(t,e){return za(mc,t,{baseOptions:{modelAssetPath:e}})},mc.createFromModelBuffer=function(t,e){return za(mc,t,{baseOptions:{modelAssetBuffer:e}})},mc.createFromOptions=function(t,e){return za(mc,t,e)},mc.HAND_CONNECTIONS=dc;var _c=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!1),this.landmarks=[],this.worldLandmarks=[],this.handedness=[],dn(t=this.h=new qs,0,1,e=new Is),this.s=new $s,dn(this.h,0,3,this.s),this.j=new Ys,dn(this.h,0,2,this.j),Tn(this.j,3,1),An(this.j,2,.5),An(this.s,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return\"numHands\"in t&&Tn(this.j,3,t.numHands??1),\"minHandDetectionConfidence\"in t&&An(this.j,2,t.minHandDetectionConfidence??.5),\"minTrackingConfidence\"in t&&An(this.h,4,t.minTrackingConfidence??.5),\"minHandPresenceConfidence\"in t&&An(this.s,2,t.minHandPresenceConfidence??.5),this.l(t)}D(t,e){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],Ya(this,t,e),yc(this)}F(t,e,n){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],$a(this,t,n,e),yc(this)}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"hand_landmarks\"),Zi(t,\"world_hand_landmarks\"),Zi(t,\"handedness\");const e=new Gi;Yn(e,ro,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"LANDMARKS:hand_landmarks\"),Wi(n,\"WORLD_LANDMARKS:world_hand_landmarks\"),Wi(n,\"HANDEDNESS:handedness\"),n.o(e),qi(t,n),this.g.attachProtoVectorListener(\"hand_landmarks\",((t,e)=>{for(const e of t)t=fs(e),this.landmarks.push(Lo(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoVectorListener(\"world_hand_landmarks\",((t,e)=>{for(const e of t)t=ls(e),this.worldLandmarks.push(Ro(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"world_hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoVectorListener(\"handedness\",((t,e)=>{var n=this.handedness,r=n.push;const i=[];for(const e of t){t=ss(e);const n=[];for(const e of t.g())n.push({score:En(e,2)??0,index:_n(e,1)??0??-1,categoryName:vn(e,3)??\"\"??\"\",displayName:vn(e,4)??\"\"??\"\"});i.push(n)}r.call(n,...i),Yo(this,e)})),this.g.attachEmptyPacketListener(\"handedness\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};_c.prototype.detectForVideo=_c.prototype.F,_c.prototype.detect=_c.prototype.D,_c.prototype.setOptions=_c.prototype.o,_c.createFromModelPath=function(t,e){return za(_c,t,{baseOptions:{modelAssetPath:e}})},_c.createFromModelBuffer=function(t,e){return za(_c,t,{baseOptions:{modelAssetBuffer:e}})},_c.createFromOptions=function(t,e){return za(_c,t,e)},_c.HAND_CONNECTIONS=dc;var vc=Va([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function Ec(t){t.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function wc(t){try{if(!t.C)return t.h;t.C(t.h)}finally{Jo(t)}}function Tc(t,e){t=fs(t),e.push(Lo(t))}var Ac=class extends Ja{constructor(t,e){super(new Wa(t,e),\"input_frames_image\",null,!1),this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]},this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1,dn(t=this.j=new ao,0,1,e=new Is),this.K=new $s,dn(this.j,0,2,this.K),this.Y=new io,dn(this.j,0,3,this.Y),this.s=new Cs,dn(this.j,0,4,this.s),this.H=new Ns,dn(this.j,0,5,this.H),this.v=new so,dn(this.j,0,6,this.v),this.L=new oo,dn(this.j,0,7,this.L),An(this.s,2,.5),An(this.s,3,.3),An(this.H,2,.5),An(this.v,2,.5),An(this.v,3,.3),An(this.L,2,.5),An(this.K,2,.5)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(t){dn(this.j,0,1,t)}o(t){return\"minFaceDetectionConfidence\"in t&&An(this.s,2,t.minFaceDetectionConfidence??.5),\"minFaceSuppressionThreshold\"in t&&An(this.s,3,t.minFaceSuppressionThreshold??.3),\"minFacePresenceConfidence\"in t&&An(this.H,2,t.minFacePresenceConfidence??.5),\"outputFaceBlendshapes\"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),\"minPoseDetectionConfidence\"in t&&An(this.v,2,t.minPoseDetectionConfidence??.5),\"minPoseSuppressionThreshold\"in t&&An(this.v,3,t.minPoseSuppressionThreshold??.3),\"minPosePresenceConfidence\"in t&&An(this.L,2,t.minPosePresenceConfidence??.5),\"outputPoseSegmentationMasks\"in t&&(this.outputPoseSegmentationMasks=!!t.outputPoseSegmentationMasks),\"minHandLandmarksConfidence\"in t&&An(this.K,2,t.minHandLandmarksConfidence??.5),this.l(t)}D(t,e,n){const r=\"function\"!=typeof e?e:{};return this.C=\"function\"==typeof e?e:n,Ec(this),Ya(this,t,r),wc(this)}F(t,e,n,r){const i=\"function\"!=typeof n?n:{};return this.C=\"function\"==typeof n?n:r,Ec(this),$a(this,t,i,e),wc(this)}m(){var t=new Qi;Ji(t,\"input_frames_image\"),Zi(t,\"pose_landmarks\"),Zi(t,\"pose_world_landmarks\"),Zi(t,\"face_landmarks\"),Zi(t,\"left_hand_landmarks\"),Zi(t,\"left_hand_world_landmarks\"),Zi(t,\"right_hand_landmarks\"),Zi(t,\"right_hand_world_landmarks\");const e=new Gi,n=new xi;tn(n,1,de(\"type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions\"),\"\"),function(t,e){if(null!=e)if(Array.isArray(e))He(t,2,Pe(e,Oe,void 0,void 0,!1));else{if(!(\"string\"==typeof e||e instanceof N||C(e)))throw Error(\"invalid value in Any.value field: \"+e+\" expected a ByteString, a base64 encoded string, a Uint8Array or a jspb array\");tn(t,2,dt(e,!1),U())}}(n,this.j.g());const r=new zi;Xi(r,\"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph\"),yn(r,8,xi,n),Hi(r,\"IMAGE:input_frames_image\"),Wi(r,\"POSE_LANDMARKS:pose_landmarks\"),Wi(r,\"POSE_WORLD_LANDMARKS:pose_world_landmarks\"),Wi(r,\"FACE_LANDMARKS:face_landmarks\"),Wi(r,\"LEFT_HAND_LANDMARKS:left_hand_landmarks\"),Wi(r,\"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks\"),Wi(r,\"RIGHT_HAND_LANDMARKS:right_hand_landmarks\"),Wi(r,\"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks\"),r.o(e),qi(t,r),$o(this,t),this.g.attachProtoListener(\"pose_landmarks\",((t,e)=>{Tc(t,this.h.poseLandmarks),Yo(this,e)})),this.g.attachEmptyPacketListener(\"pose_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoListener(\"pose_world_landmarks\",((t,e)=>{var n=this.h.poseWorldLandmarks;t=ls(t),n.push(Ro(t)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"pose_world_landmarks\",(t=>{Yo(this,t)})),this.outputPoseSegmentationMasks&&(Wi(r,\"POSE_SEGMENTATION_MASK:pose_segmentation_mask\"),qo(this,\"pose_segmentation_mask\"),this.g.V(\"pose_segmentation_mask\",((t,e)=>{this.h.poseSegmentationMasks=[qa(this,t,!0,!this.C)],Yo(this,e)})),this.g.attachEmptyPacketListener(\"pose_segmentation_mask\",(t=>{this.h.poseSegmentationMasks=[],Yo(this,t)}))),this.g.attachProtoListener(\"face_landmarks\",((t,e)=>{Tc(t,this.h.faceLandmarks),Yo(this,e)})),this.g.attachEmptyPacketListener(\"face_landmarks\",(t=>{Yo(this,t)})),this.outputFaceBlendshapes&&(Zi(t,\"extra_blendshapes\"),Wi(r,\"FACE_BLENDSHAPES:extra_blendshapes\"),this.g.attachProtoListener(\"extra_blendshapes\",((t,e)=>{var n=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(t=ss(t),n.push(So(t.g()??[]))),Yo(this,e)})),this.g.attachEmptyPacketListener(\"extra_blendshapes\",(t=>{Yo(this,t)}))),this.g.attachProtoListener(\"left_hand_landmarks\",((t,e)=>{Tc(t,this.h.leftHandLandmarks),Yo(this,e)})),this.g.attachEmptyPacketListener(\"left_hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoListener(\"left_hand_world_landmarks\",((t,e)=>{var n=this.h.leftHandWorldLandmarks;t=ls(t),n.push(Ro(t)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"left_hand_world_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoListener(\"right_hand_landmarks\",((t,e)=>{Tc(t,this.h.rightHandLandmarks),Yo(this,e)})),this.g.attachEmptyPacketListener(\"right_hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoListener(\"right_hand_world_landmarks\",((t,e)=>{var n=this.h.rightHandWorldLandmarks;t=ls(t),n.push(Ro(t)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"right_hand_world_landmarks\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Ac.prototype.detectForVideo=Ac.prototype.F,Ac.prototype.detect=Ac.prototype.D,Ac.prototype.setOptions=Ac.prototype.o,Ac.createFromModelPath=function(t,e){return za(Ac,t,{baseOptions:{modelAssetPath:e}})},Ac.createFromModelBuffer=function(t,e){return za(Ac,t,{baseOptions:{modelAssetBuffer:e}})},Ac.createFromOptions=function(t,e){return za(Ac,t,e)},Ac.HAND_CONNECTIONS=dc,Ac.POSE_CONNECTIONS=vc,Ac.FACE_LANDMARKS_LIPS=Qa,Ac.FACE_LANDMARKS_LEFT_EYE=tc,Ac.FACE_LANDMARKS_LEFT_EYEBROW=ec,Ac.FACE_LANDMARKS_LEFT_IRIS=nc,Ac.FACE_LANDMARKS_RIGHT_EYE=rc,Ac.FACE_LANDMARKS_RIGHT_EYEBROW=ic,Ac.FACE_LANDMARKS_RIGHT_IRIS=sc,Ac.FACE_LANDMARKS_FACE_OVAL=oc,Ac.FACE_LANDMARKS_CONTOURS=ac,Ac.FACE_LANDMARKS_TESSELATION=cc;var bc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"input_image\",\"norm_rect\",!0),this.j={classifications:[]},dn(t=this.h=new uo,0,1,e=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return dn(this.h,0,2,ko(t,hn(this.h,bs,2))),this.l(t)}qa(t,e){return this.j={classifications:[]},Ya(this,t,e),this.j}ra(t,e,n){return this.j={classifications:[]},$a(this,t,n,e),this.j}m(){var t=new Qi;Ji(t,\"input_image\"),Ji(t,\"norm_rect\"),Zi(t,\"classifications\");const e=new Gi;Yn(e,lo,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph\"),Hi(n,\"IMAGE:input_image\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"CLASSIFICATIONS:classifications\"),n.o(e),qi(t,n),this.g.attachProtoListener(\"classifications\",((t,e)=>{this.j=function(t){const e={classifications:ln(t,ys,1).map((t=>So(hn(t,rs,4)?.g()??[],_n(t,2)??0,vn(t,3)??\"\")))};return null!=he(Ve(t,2))&&(e.timestampMs=he(Ve(t,2))??0),e}(_s(t)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"classifications\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};bc.prototype.classifyForVideo=bc.prototype.ra,bc.prototype.classify=bc.prototype.qa,bc.prototype.setOptions=bc.prototype.o,bc.createFromModelPath=function(t,e){return za(bc,t,{baseOptions:{modelAssetPath:e}})},bc.createFromModelBuffer=function(t,e){return za(bc,t,{baseOptions:{modelAssetBuffer:e}})},bc.createFromOptions=function(t,e){return za(bc,t,e)};var kc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!0),this.h=new fo,this.embeddings={embeddings:[]},dn(t=this.h,0,1,e=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){var e=this.h,n=hn(this.h,Ss,2);return n=n?n.clone():new Ss,void 0!==t.l2Normalize?wn(n,1,t.l2Normalize):\"l2Normalize\"in t&&He(n,1),void 0!==t.quantize?wn(n,2,t.quantize):\"quantize\"in t&&He(n,2),dn(e,0,2,n),this.l(t)}xa(t,e){return Ya(this,t,e),this.embeddings}ya(t,e,n){return $a(this,t,n,e),this.embeddings}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"embeddings_out\");const e=new Gi;Yn(e,po,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"EMBEDDINGS:embeddings_out\"),n.o(e),qi(t,n),this.g.attachProtoListener(\"embeddings_out\",((t,e)=>{t=As(t),this.embeddings=function(t){return{embeddings:ln(t,ws,1).map((t=>{const e={headIndex:_n(t,3)??0??-1,headName:vn(t,4)??\"\"??\"\"};if(void 0!==cn(t,vs,nn(t,1)))t=$e(t=hn(t,vs,nn(t,1)),1,qt,Ye()),e.floatEmbedding=t.slice();else{const n=new Uint8Array(0);e.quantizedEmbedding=hn(t,Es,nn(t,2))?.ma()?.h()??n}return e})),timestampMs:he(Ve(t,2))??0}}(t),Yo(this,e)})),this.g.attachEmptyPacketListener(\"embeddings_out\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};kc.cosineSimilarity=function(t,e){if(t.floatEmbedding&&e.floatEmbedding)t=Io(t.floatEmbedding,e.floatEmbedding);else{if(!t.quantizedEmbedding||!e.quantizedEmbedding)throw Error(\"Cannot compute cosine similarity between quantized and float embeddings.\");t=Io(Fo(t.quantizedEmbedding),Fo(e.quantizedEmbedding))}return t},kc.prototype.embedForVideo=kc.prototype.ya,kc.prototype.embed=kc.prototype.xa,kc.prototype.setOptions=kc.prototype.o,kc.createFromModelPath=function(t,e){return za(kc,t,{baseOptions:{modelAssetPath:e}})},kc.createFromModelBuffer=function(t,e){return za(kc,t,{baseOptions:{modelAssetBuffer:e}})},kc.createFromOptions=function(t,e){return za(kc,t,e)};var Sc=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};function xc(t){t.categoryMask=void 0,t.confidenceMasks=void 0,t.qualityScores=void 0}function Lc(t){try{const e=new Sc(t.confidenceMasks,t.categoryMask,t.qualityScores);if(!t.j)return e;t.j(e)}finally{Jo(t)}}Sc.prototype.close=Sc.prototype.close;var Rc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!1),this.s=[],this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new vo,this.v=new go,dn(this.h,0,3,this.v),dn(t=this.h,0,1,e=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?He(this.h,2,de(t.displayNamesLocale)):\"displayNamesLocale\"in t&&He(this.h,2),\"outputCategoryMask\"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),\"outputConfidenceMasks\"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}J(){!function(t){const e=ln(t.ca(),zi,1).filter((t=>(vn(t,1)??\"\").includes(\"mediapipe.tasks.TensorsToSegmentationCalculator\")));if(t.s=[],e.length>1)throw Error(\"The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.\");1===e.length&&(hn(e[0],Gi,7)?.l()?.g()??new Map).forEach(((e,n)=>{t.s[Number(n)]=vn(e,1)??\"\"}))}(this)}segment(t,e,n){const r=\"function\"!=typeof e?e:{};return this.j=\"function\"==typeof e?e:n,xc(this),Ya(this,t,r),Lc(this)}Ia(t,e,n,r){const i=\"function\"!=typeof n?n:{};return this.j=\"function\"==typeof n?n:r,xc(this),$a(this,t,i,e),Lc(this)}Ba(){return this.s}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\");const e=new Gi;Yn(e,Eo,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),n.o(e),qi(t,n),$o(this,t),this.outputConfidenceMasks&&(Zi(t,\"confidence_masks\"),Wi(n,\"CONFIDENCE_MASKS:confidence_masks\"),qo(this,\"confidence_masks\"),this.g.ba(\"confidence_masks\",((t,e)=>{this.confidenceMasks=t.map((t=>qa(this,t,!0,!this.j))),Yo(this,e)})),this.g.attachEmptyPacketListener(\"confidence_masks\",(t=>{this.confidenceMasks=[],Yo(this,t)}))),this.outputCategoryMask&&(Zi(t,\"category_mask\"),Wi(n,\"CATEGORY_MASK:category_mask\"),qo(this,\"category_mask\"),this.g.V(\"category_mask\",((t,e)=>{this.categoryMask=qa(this,t,!1,!this.j),Yo(this,e)})),this.g.attachEmptyPacketListener(\"category_mask\",(t=>{this.categoryMask=void 0,Yo(this,t)}))),Zi(t,\"quality_scores\"),Wi(n,\"QUALITY_SCORES:quality_scores\"),this.g.attachFloatVectorListener(\"quality_scores\",((t,e)=>{this.qualityScores=t,Yo(this,e)})),this.g.attachEmptyPacketListener(\"quality_scores\",(t=>{this.categoryMask=void 0,Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Rc.prototype.getLabels=Rc.prototype.Ba,Rc.prototype.segmentForVideo=Rc.prototype.Ia,Rc.prototype.segment=Rc.prototype.segment,Rc.prototype.setOptions=Rc.prototype.o,Rc.createFromModelPath=function(t,e){return za(Rc,t,{baseOptions:{modelAssetPath:e}})},Rc.createFromModelBuffer=function(t,e){return za(Rc,t,{baseOptions:{modelAssetBuffer:e}})},Rc.createFromOptions=function(t,e){return za(Rc,t,e)};var Fc=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};Fc.prototype.close=Fc.prototype.close;var Ic=class extends $n{constructor(t){super(t)}},Mc=[0,hi,-2],Pc=[0,ni,-3,di,ni,-1],Cc=[0,Pc],Oc=[0,Pc,hi,-1],Uc=class extends $n{constructor(t){super(t)}},Dc=[0,ni,-1,di],Nc=class extends $n{constructor(t){super(t)}},Bc=class extends $n{constructor(t){super(t)}},Gc=[1,2,3,4,5,6,7,8,9,10,14,15],jc=class extends $n{constructor(t){super(t)}};jc.prototype.g=Si([0,yi,[0,Gc,_i,Pc,_i,[0,Pc,Mc],_i,Cc,_i,[0,Cc,Mc],_i,Dc,_i,[0,ni,-3,di,Ti],_i,[0,ni,-3,di],_i,[0,mi,ni,-2,di,hi,di,-1,2,ni,Mc],_i,Oc,_i,[0,Oc,Mc],ni,Mc,mi,_i,[0,ni,-3,di,Mc,-1],_i,[0,yi,Dc]],mi,[0,mi,hi,-1,di]]);var Vc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect_in\",!1),this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new vo,this.s=new go,dn(this.h,0,3,this.s),dn(t=this.h,0,1,e=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return\"outputCategoryMask\"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),\"outputConfidenceMasks\"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}segment(t,e,n,r){const i=\"function\"!=typeof n?n:{};this.j=\"function\"==typeof n?n:r,this.qualityScores=this.categoryMask=this.confidenceMasks=void 0,n=this.B+1,r=new jc;const s=new Bc;var o=new Ic;if(Tn(o,1,255),dn(s,0,12,o),e.keypoint&&e.scribble)throw Error(\"Cannot provide both keypoint and scribble.\");if(e.keypoint){var a=new Uc;wn(a,3,!0),An(a,1,e.keypoint.x),An(a,2,e.keypoint.y),fn(s,5,Gc,a)}else{if(!e.scribble)throw Error(\"Must provide either a keypoint or a scribble.\");for(a of(o=new Nc,e.scribble))wn(e=new Uc,3,!0),An(e,1,a.x),An(e,2,a.y),yn(o,1,Uc,e);fn(s,15,Gc,o)}yn(r,1,Bc,s),this.g.addProtoToStream(r.g(),\"drishti.RenderData\",\"roi_in\",n),Ya(this,t,i);t:{try{const t=new Fc(this.confidenceMasks,this.categoryMask,this.qualityScores);if(!this.j){var c=t;break t}this.j(t)}finally{Jo(this)}c=void 0}return c}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"roi_in\"),Ji(t,\"norm_rect_in\");const e=new Gi;Yn(e,Eo,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"ROI:roi_in\"),Hi(n,\"NORM_RECT:norm_rect_in\"),n.o(e),qi(t,n),$o(this,t),this.outputConfidenceMasks&&(Zi(t,\"confidence_masks\"),Wi(n,\"CONFIDENCE_MASKS:confidence_masks\"),qo(this,\"confidence_masks\"),this.g.ba(\"confidence_masks\",((t,e)=>{this.confidenceMasks=t.map((t=>qa(this,t,!0,!this.j))),Yo(this,e)})),this.g.attachEmptyPacketListener(\"confidence_masks\",(t=>{this.confidenceMasks=[],Yo(this,t)}))),this.outputCategoryMask&&(Zi(t,\"category_mask\"),Wi(n,\"CATEGORY_MASK:category_mask\"),qo(this,\"category_mask\"),this.g.V(\"category_mask\",((t,e)=>{this.categoryMask=qa(this,t,!1,!this.j),Yo(this,e)})),this.g.attachEmptyPacketListener(\"category_mask\",(t=>{this.categoryMask=void 0,Yo(this,t)}))),Zi(t,\"quality_scores\"),Wi(n,\"QUALITY_SCORES:quality_scores\"),this.g.attachFloatVectorListener(\"quality_scores\",((t,e)=>{this.qualityScores=t,Yo(this,e)})),this.g.attachEmptyPacketListener(\"quality_scores\",(t=>{this.categoryMask=void 0,Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Vc.prototype.segment=Vc.prototype.segment,Vc.prototype.setOptions=Vc.prototype.o,Vc.createFromModelPath=function(t,e){return za(Vc,t,{baseOptions:{modelAssetPath:e}})},Vc.createFromModelBuffer=function(t,e){return za(Vc,t,{baseOptions:{modelAssetBuffer:e}})},Vc.createFromOptions=function(t,e){return za(Vc,t,e)};var Xc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"input_frame_gpu\",\"norm_rect\",!1),this.j={detections:[]},dn(t=this.h=new wo,0,1,e=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?He(this.h,2,de(t.displayNamesLocale)):\"displayNamesLocale\"in t&&He(this.h,2),void 0!==t.maxResults?Tn(this.h,3,t.maxResults):\"maxResults\"in t&&He(this.h,3),void 0!==t.scoreThreshold?An(this.h,4,t.scoreThreshold):\"scoreThreshold\"in t&&He(this.h,4),void 0!==t.categoryAllowlist?bn(this.h,5,t.categoryAllowlist):\"categoryAllowlist\"in t&&He(this.h,5),void 0!==t.categoryDenylist?bn(this.h,6,t.categoryDenylist):\"categoryDenylist\"in t&&He(this.h,6),this.l(t)}D(t,e){return this.j={detections:[]},Ya(this,t,e),this.j}F(t,e,n){return this.j={detections:[]},$a(this,t,n,e),this.j}m(){var t=new Qi;Ji(t,\"input_frame_gpu\"),Ji(t,\"norm_rect\"),Zi(t,\"detections\");const e=new Gi;Yn(e,To,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.ObjectDetectorGraph\"),Hi(n,\"IMAGE:input_frame_gpu\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"DETECTIONS:detections\"),n.o(e),qi(t,n),this.g.attachProtoVectorListener(\"detections\",((t,e)=>{for(const e of t)t=hs(e),this.j.detections.push(xo(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"detections\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Xc.prototype.detectForVideo=Xc.prototype.F,Xc.prototype.detect=Xc.prototype.D,Xc.prototype.setOptions=Xc.prototype.o,Xc.createFromModelPath=async function(t,e){return za(Xc,t,{baseOptions:{modelAssetPath:e}})},Xc.createFromModelBuffer=function(t,e){return za(Xc,t,{baseOptions:{modelAssetBuffer:e}})},Xc.createFromOptions=function(t,e){return za(Xc,t,e)};var Hc=class{constructor(t,e,n){this.landmarks=t,this.worldLandmarks=e,this.segmentationMasks=n}close(){this.segmentationMasks?.forEach((t=>{t.close()}))}};function Wc(t){t.landmarks=[],t.worldLandmarks=[],t.segmentationMasks=void 0}function zc(t){try{const e=new Hc(t.landmarks,t.worldLandmarks,t.segmentationMasks);if(!t.s)return e;t.s(e)}finally{Jo(t)}}Hc.prototype.close=Hc.prototype.close;var Kc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!1),this.landmarks=[],this.worldLandmarks=[],this.outputSegmentationMasks=!1,dn(t=this.h=new Ao,0,1,e=new Is),this.v=new oo,dn(this.h,0,3,this.v),this.j=new so,dn(this.h,0,2,this.j),Tn(this.j,4,1),An(this.j,2,.5),An(this.v,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return\"numPoses\"in t&&Tn(this.j,4,t.numPoses??1),\"minPoseDetectionConfidence\"in t&&An(this.j,2,t.minPoseDetectionConfidence??.5),\"minTrackingConfidence\"in t&&An(this.h,4,t.minTrackingConfidence??.5),\"minPosePresenceConfidence\"in t&&An(this.v,2,t.minPosePresenceConfidence??.5),\"outputSegmentationMasks\"in t&&(this.outputSegmentationMasks=t.outputSegmentationMasks??!1),this.l(t)}D(t,e,n){const r=\"function\"!=typeof e?e:{};return this.s=\"function\"==typeof e?e:n,Wc(this),Ya(this,t,r),zc(this)}F(t,e,n,r){const i=\"function\"!=typeof n?n:{};return this.s=\"function\"==typeof n?n:r,Wc(this),$a(this,t,i,e),zc(this)}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"normalized_landmarks\"),Zi(t,\"world_landmarks\"),Zi(t,\"segmentation_masks\");const e=new Gi;Yn(e,bo,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"NORM_LANDMARKS:normalized_landmarks\"),Wi(n,\"WORLD_LANDMARKS:world_landmarks\"),n.o(e),qi(t,n),$o(this,t),this.g.attachProtoVectorListener(\"normalized_landmarks\",((t,e)=>{this.landmarks=[];for(const e of t)t=fs(e),this.landmarks.push(Lo(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"normalized_landmarks\",(t=>{this.landmarks=[],Yo(this,t)})),this.g.attachProtoVectorListener(\"world_landmarks\",((t,e)=>{this.worldLandmarks=[];for(const e of t)t=ls(e),this.worldLandmarks.push(Ro(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"world_landmarks\",(t=>{this.worldLandmarks=[],Yo(this,t)})),this.outputSegmentationMasks&&(Wi(n,\"SEGMENTATION_MASK:segmentation_masks\"),qo(this,\"segmentation_masks\"),this.g.ba(\"segmentation_masks\",((t,e)=>{this.segmentationMasks=t.map((t=>qa(this,t,!0,!this.s))),Yo(this,e)})),this.g.attachEmptyPacketListener(\"segmentation_masks\",(t=>{this.segmentationMasks=[],Yo(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Kc.prototype.detectForVideo=Kc.prototype.F,Kc.prototype.detect=Kc.prototype.D,Kc.prototype.setOptions=Kc.prototype.o,Kc.createFromModelPath=function(t,e){return za(Kc,t,{baseOptions:{modelAssetPath:e}})},Kc.createFromModelBuffer=function(t,e){return za(Kc,t,{baseOptions:{modelAssetBuffer:e}})},Kc.createFromOptions=function(t,e){return za(Kc,t,e)},Kc.POSE_CONNECTIONS=vc;export{Ia as DrawingUtils,Za as FaceDetector,uc as FaceLandmarker,lc as FaceStylizer,Uo as FilesetResolver,mc as GestureRecognizer,_c as HandLandmarker,Ac as HolisticLandmarker,bc as ImageClassifier,kc as ImageEmbedder,Rc as ImageSegmenter,Sc as ImageSegmenterResult,Vc as InteractiveSegmenter,Fc as InteractiveSegmenterResult,Ga as MPImage,Ea as MPMask,Xc as ObjectDetector,Kc as PoseLandmarker,Zo as TaskRunner,Ja as VisionTaskRunner};\n//# sourceMappingURL=vision_bundle_mjs.js.map\n","/**\n * Calculate the size of a face relative to the video frame\n */\nexport const calculateFaceSize = (landmarks: any): number => {\n if (!landmarks || landmarks.length === 0) return 0;\n\n const face = landmarks[0];\n\n if (!face || face.length === 0) return 0;\n\n // Get bounding box of face landmarks\n let minX = 1;\n let maxX = 0;\n let minY = 1;\n let maxY = 0;\n\n face.forEach((landmark: any) => {\n if (\n landmark &&\n typeof landmark.x === 'number' &&\n typeof landmark.y === 'number'\n ) {\n minX = Math.min(minX, landmark.x);\n maxX = Math.max(maxX, landmark.x);\n minY = Math.min(minY, landmark.y);\n maxY = Math.max(maxY, landmark.y);\n }\n });\n\n // Calculate face size as percentage of video area\n const faceWidth = maxX - minX;\n const faceHeight = maxY - minY;\n const faceSize = Math.max(faceWidth, faceHeight);\n\n return faceSize;\n};\n\n/**\n * Check if a face is positioned within the oval bounds\n */\nexport const isFaceInBounds = (\n landmarks: any,\n videoAspectRatio: number,\n): boolean => {\n if (!landmarks || landmarks.length === 0) return false;\n\n const face = landmarks[0];\n\n let minX = 1;\n let maxX = 0;\n let minY = 1;\n let maxY = 0;\n face.forEach((landmark: any) => {\n minX = Math.min(minX, landmark.x);\n maxX = Math.max(maxX, landmark.x);\n minY = Math.min(minY, landmark.y);\n maxY = Math.max(maxY, landmark.y);\n });\n\n const ovalCenterX = 0.5;\n const ovalCenterY = 0.6;\n\n const isLandscape = videoAspectRatio > 1;\n let ovalWidth;\n let ovalHeight;\n if (isLandscape) {\n ovalWidth = 0.4;\n ovalHeight = 0.3;\n } else {\n ovalWidth = 0.35;\n ovalHeight = 0.5;\n }\n\n const faceCenterX = (minX + maxX) / 2;\n const faceCenterY = (minY + maxY) / 2;\n\n const centerTolerance = 0.2;\n const centerOvalWidth = ovalWidth * (1 + centerTolerance);\n const centerOvalHeight = ovalHeight * (1 + centerTolerance);\n\n const checkPointInCenterOval = (x: number, y: number) => {\n const dx = (x - ovalCenterX) / centerOvalWidth;\n const dy = (y - ovalCenterY) / centerOvalHeight;\n return dx * dx + dy * dy <= 1;\n };\n const centerInBounds = checkPointInCenterOval(faceCenterX, faceCenterY);\n\n const toleranceX = 0.2;\n const toleranceY = 0.1;\n const adjustedOvalWidth = ovalWidth * (1 + toleranceX);\n const adjustedOvalHeight = ovalHeight * (1 + toleranceY);\n\n const checkPointInExpandedOval = (x: number, y: number) => {\n const dx = (x - ovalCenterX) / adjustedOvalWidth;\n const dy = (y - ovalCenterY) / adjustedOvalHeight;\n return dx * dx + dy * dy <= 1;\n };\n\n const topLeft = checkPointInExpandedOval(minX, minY);\n const topRight = checkPointInExpandedOval(maxX, minY);\n const bottomLeft = checkPointInExpandedOval(minX, maxY);\n const bottomRight = checkPointInExpandedOval(maxX, maxY);\n\n return centerInBounds && topLeft && topRight && bottomLeft && bottomRight;\n};\n\n/**\n * Calculate mouth opening using face landmarks\n */\nexport const calculateMouthOpening = (landmarks: any): number => {\n if (!landmarks || landmarks.length === 0) return 0;\n\n const face = landmarks[0];\n if (!face || face.length === 0) return 0;\n\n // MediaPipe face landmark indices for mouth\n const upperLipCenter = face[13]; // Upper lip center\n const lowerLipCenter = face[14]; // Lower lip center\n\n if (!upperLipCenter || !lowerLipCenter) return 0;\n\n const mouthHeight = Math.abs(lowerLipCenter.y - upperLipCenter.y);\n\n const faceTop = Math.min(...face.map((p: any) => p.y));\n const faceBottom = Math.max(...face.map((p: any) => p.y));\n const faceHeight = faceBottom - faceTop;\n\n return faceHeight > 0 ? mouthHeight / faceHeight : 0;\n};\n","import { DrawingUtils, FaceLandmarker } from '@mediapipe/tasks-vision';\n\n/**\n * Create a cropped square canvas from video for face detection\n */\nexport const createCroppedVideoFrame = (\n videoElement: HTMLVideoElement,\n): HTMLCanvasElement | null => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (!ctx) return null;\n\n const sourceWidth = videoElement.videoWidth;\n const sourceHeight = videoElement.videoHeight;\n\n const squareSize = Math.min(sourceWidth, sourceHeight);\n const cropX = (sourceWidth - squareSize) / 2;\n const cropY = (sourceHeight - squareSize) / 2;\n\n canvas.width = squareSize;\n canvas.height = squareSize;\n\n ctx.drawImage(\n videoElement,\n cropX,\n cropY,\n squareSize,\n squareSize,\n 0,\n 0,\n squareSize,\n squareSize,\n );\n\n return canvas;\n};\n\n/**\n * Draw face mesh overlay on canvas\n */\nexport const drawFaceMesh = (\n canvas: HTMLCanvasElement,\n landmarks: any[],\n capturesTaken: number,\n smileCheckpoint: number,\n): void => {\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const canvasWidth = canvas.width;\n const canvasHeight = canvas.height;\n\n ctx.clearRect(0, 0, canvasWidth, canvasHeight);\n const drawingUtils = new DrawingUtils(ctx);\n\n // use this if scaling is needed\n // const scaleFactor = Math.sqrt(canvasWidth * canvasHeight) / 500;\n\n landmarks.forEach((landmark) => {\n if (!landmark || landmark.length === 0) return;\n\n const outlineColor = 'rgba(162, 155, 254,0.4)';\n const lineWidth = 2; // Math.max(1, scaleFactor * 2);\n ctx.strokeStyle = 'rgba(255, 255, 255, 0.6)';\n ctx.lineWidth = lineWidth;\n ctx.lineCap = 'round';\n ctx.lineJoin = 'round';\n\n drawingUtils.drawLandmarks(landmark, {\n color: 'rgba(9, 132, 227,0.7)',\n lineWidth: 0.5,\n radius: 0.5,\n });\n drawingUtils.drawConnectors(\n landmark,\n FaceLandmarker.FACE_LANDMARKS_FACE_OVAL,\n {\n color: outlineColor,\n lineWidth,\n },\n );\n\n const isInSmileZone = capturesTaken > 0 && capturesTaken >= smileCheckpoint;\n if (isInSmileZone) {\n drawingUtils.drawConnectors(\n landmark,\n FaceLandmarker.FACE_LANDMARKS_LIPS,\n {\n color: outlineColor,\n lineWidth,\n },\n );\n }\n });\n};\n\n/**\n * Clear canvas completely\n */\nexport const clearCanvas = (canvas: HTMLCanvasElement): void => {\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n }\n};\n","import { JPEG_QUALITY } from '../../../../../domain/constants/src/Constants';\n\nexport const captureImageFromVideo = (\n videoElement: HTMLVideoElement,\n isReference: boolean = false,\n): string | null => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (!ctx) return null;\n\n const isPortrait = videoElement.videoHeight > videoElement.videoWidth;\n\n if (isReference) {\n if (isPortrait) {\n canvas.width = 480;\n canvas.height = Math.max(\n 640,\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\n );\n } else {\n canvas.width = 640;\n canvas.height = Math.max(\n 480,\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\n );\n }\n } else if (isPortrait) {\n canvas.width = 240;\n canvas.height = Math.max(\n 320,\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\n );\n } else {\n canvas.width = 320;\n canvas.height = Math.max(\n 240,\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\n );\n }\n\n // capture more of the user's head and avoid clipping\n const zoomOutFactor = 1;\n const sourceWidth = videoElement.videoWidth * zoomOutFactor;\n const sourceHeight = videoElement.videoHeight * zoomOutFactor;\n\n // center the zoomed out area\n const offsetX = (sourceWidth - videoElement.videoWidth) / 2;\n const offsetY = (sourceHeight - videoElement.videoHeight) / 2;\n\n // vertical offset to shift up and capture full head\n const verticalOffset = 0;\n\n ctx.drawImage(\n videoElement,\n -offsetX,\n -offsetY - verticalOffset,\n sourceWidth,\n sourceHeight,\n 0,\n 0,\n canvas.width,\n canvas.height,\n );\n\n return canvas.toDataURL('image/jpeg', JPEG_QUALITY);\n};\n","/**\n * The type of image submitted in the job request\n * @readonly\n * @enum {number}\n */\nexport const ImageType = {\n /** ID_CARD_BACK_IMAGE_BASE64 Base64 encoded back of ID card image (.jpg or .png) */\n ID_CARD_BACK_IMAGE_BASE64: 7,\n /** ID_CARD_BACK_IMAGE_FILE Back of ID card image in .png or .jpg file format */\n ID_CARD_BACK_IMAGE_FILE: 5,\n /** ID_CARD_IMAGE_BASE64 Base64 encoded ID card image (.png or .jpg) */\n ID_CARD_IMAGE_BASE64: 3,\n /** ID_CARD_IMAGE_FILE ID card image in .png or .jpg file format */\n ID_CARD_IMAGE_FILE: 1,\n /** LIVENESS_IMAGE_BASE64 Base64 encoded liveness image (.jpg or .png) */\n LIVENESS_IMAGE_BASE64: 6,\n /** LIVENESS_IMAGE_FILE Liveness image in .png or .jpg file format */\n LIVENESS_IMAGE_FILE: 4,\n /** SELFIE_IMAGE_BASE64 Base64 encoded selfie image (.png or .jpg) */\n SELFIE_IMAGE_BASE64: 2,\n /** SELFIE_IMAGE_FILE Selfie image in .png or .jpg file format */\n SELFIE_IMAGE_FILE: 0,\n};\n","import { t } from '../../../../../domain/localisation';\n\nexport const MESSAGES = {\n 'multiple-faces': () => t('selfie.smart.alert.multipleFaces'),\n 'no-face': () => t('selfie.smart.alert.noFace'),\n 'out-of-bounds': () => t('selfie.smart.alert.outOfBounds'),\n 'too-close': () => t('selfie.smart.alert.tooClose'),\n 'too-far': () => t('selfie.smart.alert.tooFar'),\n 'neutral-expression': () => t('selfie.smart.alert.neutralExpression'),\n 'smile-required': () => t('selfie.smart.alert.smileRequired'),\n 'open-mouth-smile': () => t('selfie.smart.alert.openMouthSmile'),\n initializing: () => t('selfie.smart.alert.initializing'),\n};\n\nexport type MessageKey = keyof typeof MESSAGES;\n","import { FaceLandmarker, FilesetResolver } from '@mediapipe/tasks-vision';\n\n// SM-S931 (for the standard S25), SM-S936 (for the S25+), and SM-S938 (for the S25 Ultra)\nconst EXCLUDED_DEVICES = ['sm-s936', 'sm-s931', 'sm-s938'];\n\ndeclare global {\n interface Window {\n __smileIdentityMediapipe?: {\n instance: FaceLandmarker | null;\n loading: Promise<FaceLandmarker> | null;\n loaded: boolean;\n };\n }\n}\n\n/**\n * @description Detects if the user is on an excluded device using the modern and more accurate\n * User-Agent Client Hints (UA-CH) API to get the device model.\n * @returns {Promise<boolean>} - True if the device model is in the exclusion list.\n */\nconst isExcludedDeviceUsingHints = async (): Promise<boolean> => {\n // Check for User-Agent Client Hints API support\n if (typeof navigator !== 'undefined' && navigator.userAgentData) {\n try {\n // Request the 'model' high-entropy value and destructure it directly\n const { model } = await navigator.userAgentData.getHighEntropyValues([\n 'model',\n ]);\n\n if (!model) {\n return false;\n }\n\n const lowerModel = model.toLowerCase();\n\n // Check if the extracted model string matches any of the excluded prefixes\n return EXCLUDED_DEVICES.some((prefix) => lowerModel.includes(prefix));\n } catch (error) {\n // Log the error but fail safe (return false)\n console.warn(\n 'UA-CH model fetch failed, falling back to UA string check.',\n error,\n );\n return false;\n }\n }\n // If API is not supported, return false (rely on synchronous isExcludedDevice)\n return false;\n};\n\n// this was added because devices (mostly older) that do not support FP16 will fail to load the model.\nconst hasFP16Support = () => {\n const canvas = document.createElement('canvas');\n const gl =\n canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\n if (!gl) return false;\n\n const hasHalfFloatExt = (gl as any).getExtension('OES_texture_half_float');\n const hasHalfFloatLinear = (gl as any).getExtension(\n 'OES_texture_half_float_linear',\n );\n const hasColorBufferHalfFloat = (gl as any).getExtension(\n 'EXT_color_buffer_half_float',\n );\n\n return !!(hasHalfFloatExt && hasColorBufferHalfFloat && hasHalfFloatLinear);\n};\n\nexport const getMediapipeInstance = async (): Promise<FaceLandmarker> => {\n if (!window.__smileIdentityMediapipe) {\n window.__smileIdentityMediapipe = {\n instance: null,\n loading: null,\n loaded: false,\n };\n }\n\n const mediapipeGlobal = window.__smileIdentityMediapipe;\n\n if (mediapipeGlobal.loaded && mediapipeGlobal.instance) {\n return mediapipeGlobal.instance;\n }\n\n if (mediapipeGlobal.loading) {\n return mediapipeGlobal.loading;\n }\n\n mediapipeGlobal.loading = (async () => {\n try {\n const vision = await FilesetResolver.forVisionTasks(\n 'https://web-models.smileidentity.com/mediapipe-tasks-vision-wasm',\n );\n\n const isExcluded = await isExcludedDeviceUsingHints();\n\n const faceLandmarker = await FaceLandmarker.createFromOptions(vision, {\n baseOptions: {\n modelAssetPath: `https://web-models.smileidentity.com/face_landmarker/face_landmarker.task`,\n delegate: isExcluded || !hasFP16Support() ? 'CPU' : 'GPU',\n },\n outputFaceBlendshapes: true,\n runningMode: 'VIDEO',\n numFaces: 2,\n });\n\n mediapipeGlobal.instance = faceLandmarker;\n mediapipeGlobal.loaded = true;\n mediapipeGlobal.loading = null;\n\n return faceLandmarker;\n } catch (error) {\n mediapipeGlobal.loading = null;\n throw error;\n }\n })();\n\n return mediapipeGlobal.loading;\n};\n","import { useRef } from 'preact/hooks';\nimport { useSignal, useComputed } from '@preact/signals';\nimport type { RefObject } from 'preact';\nimport { FaceLandmarker } from '@mediapipe/tasks-vision';\nimport throttle from 'lodash/throttle';\nimport {\n calculateFaceSize,\n isFaceInBounds,\n calculateMouthOpening,\n} from '../utils/faceDetection';\nimport {\n createCroppedVideoFrame,\n drawFaceMesh,\n clearCanvas,\n} from '../utils/canvas';\nimport { captureImageFromVideo } from '../utils/imageCapture';\nimport { ImageType } from '../constants';\nimport { MESSAGES, type MessageKey } from '../utils/alertMessages';\nimport { getMediapipeInstance } from '../utils/mediapipeManager';\nimport { t } from '../../../../../domain/localisation';\nimport packageJson from '../../../../../../package.json';\n\nconst COMPONENTS_VERSION = packageJson.version;\n\ninterface UseFaceCaptureProps {\n videoRef: RefObject<HTMLVideoElement>;\n canvasRef: RefObject<HTMLCanvasElement>;\n interval: number;\n duration: number;\n smileThreshold: number;\n mouthOpenThreshold: number;\n minFaceSize: number;\n maxFaceSize: number;\n smileCooldown: number;\n getFacingMode: () => CameraFacingMode;\n}\n\nexport const useFaceCapture = ({\n videoRef,\n canvasRef,\n interval,\n duration,\n smileThreshold,\n mouthOpenThreshold,\n minFaceSize,\n maxFaceSize,\n smileCooldown,\n getFacingMode,\n}: UseFaceCaptureProps) => {\n const faceLandmarkerRef = useRef<FaceLandmarker | null>(null);\n const animationFrameRef = useRef<number | null>(null);\n const captureTimerRef = useRef<NodeJS.Timeout | null>(null);\n const resumeCaptureRef = useRef<(() => void) | null>(null);\n\n const faceDetected = useSignal(false);\n const faceInBounds = useSignal(false);\n const faceProximity = useSignal<'too-close' | 'too-far' | 'good'>('good');\n const multipleFaces = useSignal(false);\n const videoAspectRatio = useSignal(16 / 9);\n const faceLandmarks = useSignal<any[]>([]);\n const currentSmileScore = useSignal(0);\n const currentFaceSize = useSignal(0);\n const currentMouthOpen = useSignal(0);\n const lastSmileTime = useSignal(0);\n const alertTitle = useSignal('');\n const isInitializing = useSignal(true);\n\n const isCapturing = useSignal(false);\n const isPaused = useSignal(false);\n const countdown = useSignal(0);\n const capturedImages = useSignal<string[]>([]);\n const referencePhoto = useSignal<string | null>(null);\n const totalCaptures = useSignal(1);\n const capturesTaken = useSignal(0);\n const hasFinishedCapture = useSignal(false);\n\n const smileCheckpoint = useComputed(() =>\n Math.floor(totalCaptures.value * 0.4),\n );\n const neutralZone = useComputed(() => Math.floor(totalCaptures.value * 0.2));\n\n const isReadyToCapture = useComputed(\n () =>\n faceDetected.value &&\n faceInBounds.value &&\n faceProximity.value === 'good' &&\n !multipleFaces.value,\n );\n\n const updateAlertImmediate = (messageKey: MessageKey | null) => {\n if (messageKey && MESSAGES[messageKey]) {\n alertTitle.value = MESSAGES[messageKey]?.();\n } else {\n alertTitle.value = '';\n }\n };\n\n const updateAlert = useRef(\n throttle((messageKey: MessageKey | null) => {\n updateAlertImmediate(messageKey);\n }, 600),\n ).current;\n\n const initializeFaceLandmarker = async () => {\n try {\n const isAlreadyLoaded =\n window.__smileIdentityMediapipe?.loaded &&\n window.__smileIdentityMediapipe?.instance;\n\n if (!isAlreadyLoaded) {\n isInitializing.value = true;\n updateAlertImmediate('initializing');\n }\n\n faceLandmarkerRef.current = await getMediapipeInstance();\n isInitializing.value = false;\n } catch (error) {\n console.error('Failed to initialize MediaPipe:', error);\n isInitializing.value = false;\n }\n };\n\n const setupCanvas = () => {\n if (videoRef.current && canvasRef.current) {\n const { videoWidth, videoHeight } = videoRef.current;\n\n videoAspectRatio.value = videoWidth / videoHeight;\n\n canvasRef.current.width = videoWidth;\n canvasRef.current.height = videoHeight;\n\n const container = videoRef.current.parentElement;\n if (container) {\n canvasRef.current.style.left = '50%';\n canvasRef.current.style.top = '50%';\n }\n }\n };\n\n const updateCaptureAlerts = () => {\n const isInNeutralZone = capturesTaken.value < neutralZone.value;\n const isInSmileZone = capturesTaken.value >= smileCheckpoint.value;\n\n if (isInNeutralZone) {\n alertTitle.value = t('selfie.smart.status.capturing');\n } else if (isInSmileZone) {\n const timeSinceSmile = Date.now() - lastSmileTime.value;\n if (timeSinceSmile > smileCooldown) {\n if (\n currentSmileScore.value >= smileThreshold &&\n currentMouthOpen.value < mouthOpenThreshold\n ) {\n updateAlert('open-mouth-smile');\n } else {\n updateAlert('smile-required');\n }\n } else {\n alertTitle.value = t('selfie.smart.status.keepSmiling');\n }\n } else {\n updateAlert(null);\n }\n };\n\n const updateAlerts = () => {\n if (isInitializing.value) {\n updateAlertImmediate('initializing');\n } else if (multipleFaces.value) {\n updateAlert('multiple-faces');\n } else if (!faceDetected.value) {\n updateAlert('no-face');\n } else if (faceProximity.value === 'too-close') {\n updateAlert('too-close');\n } else if (faceProximity.value === 'too-far') {\n updateAlert('too-far');\n } else if (!faceInBounds.value) {\n updateAlert('out-of-bounds');\n } else if (isCapturing.value) {\n updateCaptureAlerts();\n } else {\n alertTitle.value = t('selfie.smart.status.readyToCapture');\n }\n };\n\n const stopDetectionLoop = () => {\n if (animationFrameRef.current) {\n cancelAnimationFrame(animationFrameRef.current);\n animationFrameRef.current = null;\n }\n };\n\n const detectFace = async () => {\n if (!faceLandmarkerRef.current || !videoRef.current) {\n stopDetectionLoop();\n return;\n }\n\n // ensure video has valid dimensions before processing\n if (\n videoRef.current.videoWidth <= 0 ||\n videoRef.current.videoHeight <= 0 ||\n videoRef.current.readyState < 2\n ) {\n animationFrameRef.current = requestAnimationFrame(detectFace);\n return;\n }\n\n try {\n if (isInitializing.value) {\n isInitializing.value = false;\n }\n\n const croppedCanvas = createCroppedVideoFrame(videoRef.current);\n const detectionSource = croppedCanvas || videoRef.current;\n\n const results = faceLandmarkerRef.current.detectForVideo(\n detectionSource,\n performance.now(),\n );\n\n faceLandmarks.value = results.faceLandmarks || [];\n\n if (results.faceLandmarks && canvasRef.current && videoRef.current) {\n // we run detection on a cropped video frame\n // adjust landmark coordinates back to full video space\n if (croppedCanvas) {\n const sourceWidth = videoRef.current.videoWidth;\n const sourceHeight = videoRef.current.videoHeight;\n const squareSize = Math.min(sourceWidth, sourceHeight);\n const offsetX = (sourceWidth - squareSize) / (2 * sourceWidth);\n const offsetY = (sourceHeight - squareSize) / (2 * sourceHeight);\n const scaleFactor = squareSize / sourceWidth;\n const scaleFactorY = squareSize / sourceHeight;\n\n const adjustedLandmarks = results.faceLandmarks.map((face) =>\n face.map((landmark: any) => ({\n x: landmark.x * scaleFactor + offsetX,\n y: landmark.y * scaleFactorY + offsetY,\n z: landmark.z,\n })),\n );\n\n drawFaceMesh(\n canvasRef.current,\n adjustedLandmarks,\n capturesTaken.value,\n smileCheckpoint.value,\n );\n } else {\n drawFaceMesh(\n canvasRef.current,\n results.faceLandmarks,\n capturesTaken.value,\n smileCheckpoint.value,\n );\n }\n } else if (canvasRef.current) {\n clearCanvas(canvasRef.current);\n }\n\n // Check number of faces\n const numFaces = results.faceLandmarks ? results.faceLandmarks.length : 0;\n multipleFaces.value = numFaces > 1;\n\n // Check if face is detected\n const hasFace =\n results.faceBlendshapes &&\n results.faceBlendshapes.length > 0 &&\n numFaces === 1;\n faceDetected.value = hasFace;\n\n if (hasFace && results.faceLandmarks) {\n // Calculate face size and position\n const faceSize = calculateFaceSize(results.faceLandmarks);\n currentFaceSize.value = faceSize;\n\n // Check face proximity\n if (faceSize > maxFaceSize) {\n faceProximity.value = 'too-close';\n } else if (faceSize < minFaceSize) {\n faceProximity.value = 'too-far';\n } else {\n faceProximity.value = 'good';\n }\n\n // Check face position\n faceInBounds.value = isFaceInBounds(\n results.faceLandmarks,\n videoAspectRatio.value,\n );\n\n // Get smile and mouth open data\n const blendshapes = results.faceBlendshapes[0].categories;\n const smileLeft =\n blendshapes.find((b) => b.categoryName === 'mouthSmileLeft')?.score ||\n 0;\n const smileRight =\n blendshapes.find((b) => b.categoryName === 'mouthSmileRight')\n ?.score || 0;\n const mouthOpen = calculateMouthOpening(results.faceLandmarks);\n const smileScore = (smileLeft + smileRight) / 2;\n\n currentSmileScore.value = smileScore;\n currentMouthOpen.value = mouthOpen;\n\n if (smileScore >= smileThreshold && mouthOpen >= mouthOpenThreshold) {\n lastSmileTime.value = Date.now();\n\n if (isPaused.value && isCapturing.value && resumeCaptureRef.current) {\n // defer execution\n setTimeout(() => {\n const stillSmiling = Date.now() - lastSmileTime.value <= 100;\n if (\n stillSmiling &&\n isPaused.value &&\n isCapturing.value &&\n resumeCaptureRef.current\n ) {\n resumeCaptureRef.current();\n }\n }, 0);\n }\n }\n } else {\n // No face detected or multiple faces - reset values\n currentSmileScore.value = 0;\n currentFaceSize.value = 0;\n currentMouthOpen.value = 0;\n faceInBounds.value = false;\n faceProximity.value = 'good';\n }\n\n updateAlerts();\n } catch {\n faceDetected.value = false;\n faceInBounds.value = false;\n multipleFaces.value = false;\n faceProximity.value = 'good';\n currentMouthOpen.value = 0;\n\n if (isCapturing.value) {\n updateAlert('no-face');\n }\n }\n\n animationFrameRef.current = requestAnimationFrame(detectFace);\n };\n\n const startDetectionLoop = () => {\n if (animationFrameRef.current) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n animationFrameRef.current = requestAnimationFrame(detectFace);\n };\n\n const captureImage = () => {\n if (!videoRef.current) return;\n\n const isReference = capturesTaken.value === totalCaptures.value - 1;\n const imageData = captureImageFromVideo(videoRef.current, isReference);\n\n if (!imageData) return;\n\n if (isReference) {\n referencePhoto.value = imageData;\n } else {\n capturedImages.value = [...capturedImages.value, imageData];\n }\n\n capturesTaken.value++;\n countdown.value = totalCaptures.value - capturesTaken.value;\n };\n\n const stopCapture = () => {\n if (captureTimerRef.current) {\n clearInterval(captureTimerRef.current);\n captureTimerRef.current = null;\n }\n\n isCapturing.value = false;\n isPaused.value = false;\n\n if (capturesTaken.value >= totalCaptures.value && referencePhoto.value) {\n const livenessImages = capturedImages.value.map((img) => ({\n image: img.split(',')[1],\n image_type_id: ImageType.LIVENESS_IMAGE_BASE64,\n }));\n\n const referenceImage = {\n image: referencePhoto.value.split(',')[1],\n image_type_id: ImageType.SELFIE_IMAGE_BASE64,\n };\n\n const eventDetail = {\n images: [...livenessImages, referenceImage],\n referenceImage: referencePhoto.value,\n previewImage: referencePhoto.value,\n facingMode: getFacingMode(),\n meta: { libraryVersion: COMPONENTS_VERSION },\n };\n\n window.dispatchEvent(\n new CustomEvent('selfie-capture.publish', {\n detail: eventDetail,\n }),\n );\n\n hasFinishedCapture.value = true;\n }\n };\n\n const pauseCapture = () => {\n if (captureTimerRef.current) {\n clearInterval(captureTimerRef.current);\n captureTimerRef.current = null;\n }\n isPaused.value = true;\n\n if (\n !multipleFaces.value &&\n faceDetected.value &&\n faceInBounds.value &&\n faceProximity.value === 'good'\n ) {\n updateAlert('smile-required');\n }\n };\n\n const startCaptureInterval = () => {\n if (captureTimerRef.current) {\n clearInterval(captureTimerRef.current);\n }\n\n captureTimerRef.current = setInterval(() => {\n if (capturesTaken.value >= totalCaptures.value) {\n stopCapture();\n return;\n }\n\n if (multipleFaces.value) {\n pauseCapture();\n return;\n }\n\n if (!faceDetected.value) {\n return;\n }\n\n if (!faceInBounds.value) {\n pauseCapture();\n return;\n }\n\n if (faceProximity.value !== 'good') {\n pauseCapture();\n return;\n }\n\n const isInSmileZone = capturesTaken.value >= smileCheckpoint.value;\n\n if (isInSmileZone) {\n const timeSinceSmile = Date.now() - lastSmileTime.value;\n if (timeSinceSmile > smileCooldown) {\n pauseCapture();\n return;\n }\n }\n\n captureImage();\n }, interval);\n };\n\n const resumeCapture = () => {\n if (\n faceDetected.value &&\n faceProximity.value === 'good' &&\n faceInBounds.value &&\n !multipleFaces.value\n ) {\n const isInSmileZone = capturesTaken.value >= smileCheckpoint.value;\n if (isInSmileZone) {\n const timeSinceSmile = Date.now() - lastSmileTime.value;\n if (timeSinceSmile > smileCooldown) {\n return;\n }\n }\n\n isPaused.value = false;\n updateAlert(null);\n startCaptureInterval();\n }\n };\n\n resumeCaptureRef.current = resumeCapture;\n\n const startCapture = async () => {\n capturedImages.value = [];\n isCapturing.value = true;\n isPaused.value = false;\n totalCaptures.value = Math.ceil(duration / interval);\n capturesTaken.value = 0;\n countdown.value = totalCaptures.value;\n\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-capture-start'),\n );\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-origin', {\n detail: {\n imageOrigin: {\n environment: 'back_camera',\n user: 'front_camera',\n }[getFacingMode()],\n },\n }),\n );\n\n startCaptureInterval();\n };\n\n const handleCancel = () => {\n stopCapture();\n window.dispatchEvent(\n new CustomEvent('selfie-capture.cancelled', {\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\n }),\n );\n\n // TODO: remove - for backwards compatibility\n window.dispatchEvent(\n new CustomEvent('selfie-capture-screens.cancelled', {\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\n }),\n );\n };\n\n const handleClose = () => {\n stopCapture();\n\n window.dispatchEvent(\n new CustomEvent('selfie-capture.close', {\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\n }),\n );\n\n // TODO: remove - backwards compatibility\n window.dispatchEvent(\n new CustomEvent('selfie-capture-screens.close', {\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\n }),\n );\n };\n\n const cleanup = () => {\n if (captureTimerRef.current) {\n clearInterval(captureTimerRef.current);\n }\n stopDetectionLoop();\n updateAlert.cancel();\n };\n\n const resetFaceDetectionState = () => {\n faceDetected.value = false;\n faceInBounds.value = false;\n faceProximity.value = 'good';\n multipleFaces.value = false;\n faceLandmarks.value = [];\n currentSmileScore.value = 0;\n currentFaceSize.value = 0;\n currentMouthOpen.value = 0;\n lastSmileTime.value = 0;\n\n if (canvasRef.current) {\n clearCanvas(canvasRef.current);\n }\n };\n\n return {\n faceDetected,\n faceInBounds,\n faceProximity,\n multipleFaces,\n videoAspectRatio,\n faceLandmarks,\n currentSmileScore,\n currentFaceSize,\n currentMouthOpen,\n lastSmileTime,\n alertTitle,\n isInitializing,\n isReadyToCapture,\n\n isCapturing,\n isPaused,\n countdown,\n capturedImages,\n referencePhoto,\n totalCaptures,\n capturesTaken,\n hasFinishedCapture,\n smileCheckpoint,\n neutralZone,\n\n initializeFaceLandmarker,\n setupCanvas,\n startDetectionLoop,\n stopDetectionLoop,\n updateAlert,\n startCapture,\n stopCapture,\n pauseCapture,\n resumeCapture,\n handleCancel,\n handleClose,\n cleanup,\n resetFaceDetectionState,\n };\n};\n","import { useEffect, useRef } from 'preact/hooks';\n\ninterface OvalProgressProps {\n progress: number;\n duration?: number;\n themeColor?: string;\n}\n\nconst OvalProgress = ({\n progress,\n duration = 1000,\n themeColor = '#001096',\n}: OvalProgressProps) => {\n const pathRef = useRef<SVGPathElement>(null);\n const prevProgress = useRef(progress);\n\n useEffect(() => {\n const path = pathRef.current;\n if (!path) return;\n\n const pathLength = path.getTotalLength();\n path.style.opacity = progress > 0 ? '1' : '0';\n const fromOffset = pathLength * (1 - prevProgress.current);\n const toOffset = pathLength * (1 - progress);\n\n // If no change, skip\n if (fromOffset === toOffset) return;\n\n path.style.transition = 'none';\n path.style.strokeDasharray = `${pathLength} ${pathLength}`;\n path.style.strokeDashoffset = `${fromOffset}`;\n\n // Force style flush\n path.getBoundingClientRect();\n\n path.style.transition = `stroke-dashoffset ${duration}ms ease-out`;\n path.style.strokeDashoffset = `${toOffset}`;\n\n prevProgress.current = progress;\n }, [progress, duration]);\n\n return (\n <div\n style={{\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n }}\n >\n <svg\n viewBox=\"0 0 285 380\"\n preserveAspectRatio=\"xMidYMid meet\"\n style={{ width: '100%', height: '100%' }}\n >\n {/* id is referenced by parent */}\n <clipPath id=\"selfie-clip-path\" clipPathUnits=\"objectBoundingBox\">\n <path d=\"M0.085 0.382 C0.087 0.357 0.092 0.294 0.131 0.236 C0.200 0.133 0.340 0.063 0.501 0.063 C0.730 0.063 0.915 0.205 0.915 0.382 C0.915 0.424 0.899 0.513 0.891 0.549 C0.882 0.588 0.871 0.626 0.857 0.664 C0.792 0.825 0.639 0.937 0.501 0.937 C0.314 0.937 0.182 0.755 0.144 0.666 C0.126 0.624 0.110 0.557 0.107 0.547 C0.092 0.485 0.081 0.439 0.085 0.382 Z\" />\n </clipPath>\n <path\n d=\"M142.693 24C208.319 24 261 77.97 261 145.008C261 160.97 256.319 194.788 254.129 208.356C251.64 223.188 248.348 237.875 244.27 252.35C225.747 313.203 182.328 356 142.693 356C89.414 356 51.871 286.667 41.016 252.948C35.937 236.987 31.356 211.748 30.559 207.857C26.277 184.114 22.991 166.556 24.285 145.008C24.883 135.631 26.277 111.789 37.431 89.742C57.049 50.636 96.983 24 142.693 24Z\"\n stroke={themeColor}\n fill=\"none\"\n style={{ strokeWidth: '8' }}\n />\n <path\n ref={pathRef}\n d=\"M142.693 24C208.319 24 261 77.97 261 145.008C261 160.97 256.319 194.788 254.129 208.356C251.64 223.188 248.348 237.875 244.27 252.35C225.747 313.203 182.328 356 142.693 356C89.414 356 51.871 286.667 41.016 252.948C35.937 236.987 31.356 211.748 30.559 207.857C26.277 184.114 22.991 166.556 24.285 145.008C24.883 135.631 26.277 111.789 37.431 89.742C57.049 50.636 96.983 24 142.693 24Z\"\n stroke=\"#22c55e\"\n style={{ strokeWidth: '8' }}\n fill=\"none\"\n strokeLinecap=\"round\"\n />\n </svg>\n </div>\n );\n};\n\nexport default OvalProgress;\n","import type { FunctionComponent, Ref } from 'preact';\nimport OvalProgress from '../OvalProgress';\n\ninterface CameraPreviewProps {\n videoRef: Ref<HTMLVideoElement>;\n canvasRef: Ref<HTMLCanvasElement>;\n facingMode: 'user' | 'environment';\n multipleFaces: boolean;\n progress: number;\n interval: number;\n themeColor: string;\n}\n\nexport const CameraPreview: FunctionComponent<CameraPreviewProps> = ({\n videoRef,\n canvasRef,\n facingMode,\n multipleFaces,\n progress,\n interval,\n themeColor,\n}) => (\n <>\n <div className=\"camera-preview-container\">\n <div\n className=\"video-wrapper\"\n style={{\n clipPath: multipleFaces ? 'none' : 'url(#selfie-clip-path)',\n }}\n >\n <div className=\"video-container\">\n <video\n ref={videoRef}\n autoPlay\n playsInline\n muted\n className={`camera-video ${facingMode === 'user' ? 'mirror' : ''}`}\n />\n <canvas\n ref={canvasRef}\n className={`camera-canvas ${facingMode === 'user' ? 'mirror' : ''}`}\n />\n </div>\n </div>\n {!multipleFaces && (\n <OvalProgress\n progress={progress}\n duration={interval}\n themeColor={themeColor}\n />\n )}\n </div>\n\n <style>{`\n .camera-preview-container {\n position: relative;\n width: 100%;\n max-width: 300px;\n margin: 0 auto;\n }\n\n .video-wrapper {\n width: 100%;\n max-width: 300px;\n margin: 0 auto;\n position: relative;\n aspect-ratio: 3 / 4;\n overflow: hidden;\n }\n\n .video-container {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n .camera-video,\n .camera-canvas {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .camera-video.mirror,\n .camera-canvas.mirror {\n transform: translate(-50%, -50%) scaleX(-1);\n }\n\n .camera-canvas {\n pointer-events: none;\n }\n `}</style>\n </>\n);\n","import type { FunctionComponent } from 'preact';\n\ninterface AlertDisplayProps {\n alertTitle: string;\n}\n\nexport const AlertDisplay: FunctionComponent<AlertDisplayProps> = ({\n alertTitle,\n}) =>\n alertTitle ? (\n <>\n <div className=\"alert-message\">\n <div className=\"alert-title\">{alertTitle}</div>\n </div>\n\n <style>{`\n .alert-message {\n margin-top: 1.5rem;\n color: #000;\n color: #151F72;\n padding: 0.5rem 1.5rem;\n border-radius: 4px;\n text-align: start;\n width: 100%;\n }\n\n .alert-title {\n font-size: 16px;\n font-weight: bold;\n text-align: center;\n }\n `}</style>\n </>\n ) : null;\n","import type { FunctionComponent } from 'preact';\nimport { t } from '../../../../../domain/localisation';\n\ninterface CaptureControlsProps {\n isCapturing: boolean;\n hasFinishedCapture: boolean;\n isReadyToCapture: boolean;\n allowAgentMode: boolean;\n agentSupported: boolean;\n showAgentModeForTests: boolean;\n facingMode: 'user' | 'environment';\n themeColor?: string;\n onStartCapture: () => void;\n onSwitchCamera: () => void;\n}\n\nexport const CaptureControls: FunctionComponent<CaptureControlsProps> = ({\n isCapturing,\n hasFinishedCapture,\n isReadyToCapture,\n allowAgentMode,\n agentSupported,\n showAgentModeForTests,\n facingMode,\n themeColor = '#001096',\n onStartCapture,\n onSwitchCamera,\n}) => (\n <>\n <div className=\"controls\">\n <button\n id=\"start-image-capture\"\n class=\"btn-primary\"\n onClick={onStartCapture}\n disabled={isCapturing || hasFinishedCapture || !isReadyToCapture}\n >\n {t('selfie.capture.button.startCapture')}\n </button>\n\n {allowAgentMode && (agentSupported || showAgentModeForTests) && (\n <button\n id=\"switch-camera\"\n onClick={onSwitchCamera}\n className=\"agent-mode-btn\"\n disabled={isCapturing || hasFinishedCapture}\n >\n {facingMode === 'user'\n ? t('selfie.capture.agentMode.off')\n : t('selfie.capture.agentMode.on')}\n </button>\n )}\n </div>\n\n <style>{`\n .controls {\n margin: 1.5rem 0;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n justify-content: center;\n max-width: 356px;\n margin: 0 auto;\n }\n\n .agent-mode-btn {\n padding: 8px 16px;\n font-size: 14px;\n background: ${themeColor};\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n }\n\n .agent-mode-btn:disabled {\n background: #ccc;\n cursor: not-allowed;\n }\n `}</style>\n </>\n);\n","import { useRef, useEffect } from 'preact/hooks';\nimport { useSignal } from '@preact/signals';\nimport register from 'preact-custom-element';\nimport type { FunctionComponent } from 'preact';\nimport throttle from 'lodash/throttle';\n\nimport { getBoolProp } from '../../../../utils/props';\nimport { useFaceCapture, useCamera } from './hooks';\nimport { CameraPreview } from './components/CameraPreview';\nimport { AlertDisplay } from './components/AlertDisplay';\nimport { CaptureControls } from './components/CaptureControls';\n\nimport '../../../navigation/src';\nimport '../../../attribution/PoweredBySmileId';\n\ninterface Props {\n interval?: number;\n duration?: number;\n 'theme-color'?: string;\n 'show-navigation'?: string | boolean;\n 'allow-agent-mode'?: string | boolean;\n 'show-agent-mode-for-tests'?: string | boolean;\n 'hide-attribution'?: string | boolean;\n 'disable-image-tests'?: string | boolean;\n}\n\nconst SmartSelfieCapture: FunctionComponent<Props> = ({\n interval = 350,\n duration = 2800,\n 'theme-color': themeColor = '#001096',\n 'show-navigation': showNavigationProp = false,\n 'allow-agent-mode': allowAgentModeProp = false,\n 'show-agent-mode-for-tests': showAgentModeForTestsProp = false,\n 'hide-attribution': hideAttributionProp = false,\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const navigationRef = useRef<HTMLElement | null>(null);\n\n const showNavigation = getBoolProp(showNavigationProp);\n const allowAgentMode = getBoolProp(allowAgentModeProp);\n const showAgentModeForTests = getBoolProp(showAgentModeForTestsProp);\n const hideAttribution = getBoolProp(hideAttributionProp);\n\n const smileCooldown = 300;\n const smileThreshold = 0.25;\n const mouthOpenThreshold = 0.05;\n const minFaceSize = 0.35;\n const maxFaceSize = 0.5;\n\n const initialFacingMode = allowAgentMode ? 'environment' : 'user';\n const camera = useCamera(initialFacingMode);\n\n const throttledMultipleFaces = useSignal(false);\n const updateMultipleFacesUI = useRef(\n throttle((value: boolean) => {\n throttledMultipleFaces.value = value;\n }, 100),\n ).current;\n\n const faceCapture = useFaceCapture({\n videoRef: camera.videoRef,\n canvasRef,\n interval,\n duration,\n smileThreshold,\n mouthOpenThreshold,\n minFaceSize,\n maxFaceSize,\n smileCooldown,\n getFacingMode: () => camera.facingMode,\n });\n\n useEffect(() => {\n const initializeCamera = async () => {\n await camera.startCamera(initialFacingMode, (cameraName) => {\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.camera-name', {\n detail: { cameraName },\n }),\n );\n });\n await camera.checkAgentSupport();\n await faceCapture.initializeFaceLandmarker();\n\n setTimeout(() => {\n faceCapture.setupCanvas();\n faceCapture.startDetectionLoop();\n }, 500);\n };\n\n camera.registerCameraSwitchCallback(() => {\n try {\n faceCapture.resetFaceDetectionState();\n faceCapture.setupCanvas();\n faceCapture.stopDetectionLoop();\n faceCapture.startDetectionLoop();\n } catch (error) {\n console.error('Error during camera switch callback:', error);\n }\n });\n\n initializeCamera();\n\n return () => {\n faceCapture.stopDetectionLoop();\n camera.stopCamera();\n faceCapture.cleanup();\n updateMultipleFacesUI.cancel();\n };\n }, []);\n\n useEffect(() => {\n updateMultipleFacesUI(faceCapture.multipleFaces.value);\n }, [faceCapture.multipleFaces.value]);\n\n useEffect(() => {\n const navigation = navigationRef.current;\n\n if (navigation && showNavigation) {\n const handleNavigationBack = () => {\n faceCapture.handleCancel();\n };\n\n const handleNavigationClose = () => {\n faceCapture.handleClose();\n };\n\n navigation.addEventListener('navigation.back', handleNavigationBack);\n navigation.addEventListener('navigation.close', handleNavigationClose);\n\n return () => {\n navigation.removeEventListener('navigation.back', handleNavigationBack);\n navigation.removeEventListener(\n 'navigation.close',\n handleNavigationClose,\n );\n };\n }\n return undefined;\n }, [showNavigation]);\n\n useEffect(() => {\n if (faceCapture.hasFinishedCapture.value) {\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-capture-end'),\n );\n }\n }, [faceCapture.hasFinishedCapture.value]);\n\n return (\n <div className=\"smartselfie-capture\">\n {showNavigation && (\n // @ts-expect-error --- preact-custom-element doesn't have proper types for refs\n <smileid-navigation ref={navigationRef} theme-color={themeColor} />\n )}\n\n <CameraPreview\n videoRef={camera.videoRef}\n canvasRef={canvasRef}\n facingMode={camera.facingMode}\n multipleFaces={throttledMultipleFaces.value}\n progress={\n faceCapture.capturesTaken.value > 0\n ? faceCapture.capturesTaken.value / faceCapture.totalCaptures.value\n : 0\n }\n interval={interval}\n themeColor={themeColor}\n />\n\n <AlertDisplay alertTitle={faceCapture.alertTitle.value} />\n\n {!faceCapture.isCapturing.value &&\n !faceCapture.hasFinishedCapture.value && (\n <CaptureControls\n isCapturing={faceCapture.isCapturing.value}\n hasFinishedCapture={faceCapture.hasFinishedCapture.value}\n isReadyToCapture={faceCapture.isReadyToCapture.value}\n allowAgentMode={allowAgentMode}\n agentSupported={camera.agentSupported}\n showAgentModeForTests={showAgentModeForTests}\n facingMode={camera.facingMode}\n themeColor={themeColor}\n onStartCapture={faceCapture.startCapture}\n onSwitchCamera={camera.switchCamera}\n />\n )}\n\n {/* @ts-expect-error -- preact-custom-element doesn't have proper types for refs */}\n {!hideAttribution && <powered-by-smile-id />}\n\n <style>{`\n * {\n box-sizing: border-box;\n }\n\n button {\n padding: 10px 20px;\n background: ${themeColor || '#001096'};\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 16px;\n }\n\n button:disabled {\n background: #ccc;\n cursor: not-allowed;\n }\n\n button.btn-primary {\n background-color: ${themeColor || '#001096'};\n border-radius: 2.5rem;\n color: white;\n border: none;\n height: 3.125rem;\n display: inline-block;\n padding: 0.75rem 1.5rem;\n text-align: center;\n font-size: 1.125rem;\n font-weight: 600;\n font-family: \"DM Sans\", sans-serif;\n cursor: pointer;\n }\n \n button.btn-primary:hover {\n background-color: #2d2b2a;\n }\n \n button.btn-primary:disabled {\n background-color: #666;\n cursor: not-allowed;\n }\n\n .smartselfie-capture {\n padding: 1rem;\n font-family: sans-serif;\n }\n `}</style>\n </div>\n );\n};\n\nif (!customElements.get('smartselfie-capture')) {\n register(\n SmartSelfieCapture,\n 'smartselfie-capture',\n [\n 'interval',\n 'duration',\n 'theme-color',\n 'show-navigation',\n 'allow-agent-mode',\n 'show-agent-mode-for-tests',\n 'hide-attribution',\n 'disable-image-tests',\n ],\n { shadow: true },\n );\n}\n\nexport default SmartSelfieCapture;\n","import {\n IMAGE_TYPE,\n JPEG_QUALITY,\n} from '../../../../domain/constants/src/Constants';\nimport SmartCamera from '../../../../domain/camera/src/SmartCamera';\nimport styles from '../../../../styles/src/styles';\nimport packageJson from '../../../../../package.json';\nimport '../../../navigation/src';\nimport { t, tHtml, getDirection } from '../../../../domain/localisation';\n\nconst COMPONENTS_VERSION = packageJson.version;\n\nconst DEFAULT_NO_OF_LIVENESS_FRAMES = 8;\n\nfunction hasMoreThanNColors(data, n = 16) {\n const colors = new Set();\n for (let i = 0; i < Math.min(data.length, 10000); i += 4) {\n // eslint-disable-next-line no-bitwise\n colors.add((data[i] << 16) | (data[i + 1] << 8) | data[i + 2]);\n if (colors.size > n) {\n return true;\n }\n }\n return false;\n}\n\nfunction getLivenessFramesIndices(\n totalNoOfFrames,\n numberOfFramesRequired = DEFAULT_NO_OF_LIVENESS_FRAMES,\n) {\n const selectedFrames = [];\n\n if (totalNoOfFrames < numberOfFramesRequired) {\n throw new Error(\n tHtml('selfie.capture.error.minFrames', {\n count: numberOfFramesRequired,\n }),\n );\n }\n\n const frameDivisor = numberOfFramesRequired - 1;\n const frameInterval = Math.floor(totalNoOfFrames / frameDivisor);\n\n // NOTE: when we have satisfied our required 8 frames, but have good\n // candidates, we need to start replacing from the second frame\n let replacementFrameIndex = 1;\n\n for (let i = 0; i < totalNoOfFrames; i += frameInterval) {\n if (selectedFrames.length < 8) {\n selectedFrames.push(i);\n } else {\n // ACTION: replace frame, then sort selectedframes\n selectedFrames[replacementFrameIndex] = i;\n selectedFrames.sort((a, b) => a - b);\n\n // ACTION: update replacement frame index\n replacementFrameIndex += 1;\n }\n }\n\n // INFO: if we don't satisfy our requirement, we add the last index\n const lastFrameIndex = totalNoOfFrames - 1;\n\n if (selectedFrames.length < 8 && !selectedFrames.includes(lastFrameIndex)) {\n selectedFrames.push(lastFrameIndex);\n }\n\n return selectedFrames;\n}\n\nfunction templateString() {\n return `\n ${styles(this.themeColor)}\n <style>\n :host {\n --theme-color: ${this.themeColor || '#001096'};\n --color-active: #001096;\n --color-default: #2D2B2A;\n --color-disabled: #848282;\n }\n\n * {\n font-family: 'DM Sans', sans-serif;\n }\n\n [hidden] {\n display: none !important;\n }\n\n [disabled] {\n cursor: not-allowed !important;\n filter: grayscale(75%);\n }\n\n .visually-hidden {\n border: 0;\n clip: rect(1px 1px 1px 1px);\n clip: rect(1px, 1px, 1px, 1px);\n height: auto;\n margin: 0;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n img {\n height: auto;\n max-width: 100%;\n transform: scaleX(-1);\n }\n\n video {\n background-color: black;\n }\n\n a {\n color: currentColor;\n text-decoration: none;\n }\n\n svg {\n max-width: 100%;\n }\n\n .color-gray {\n color: #797979;\n }\n\n .color-red {\n color: red;\n }\n\n .color-richblue {\n color: #4E6577;\n }\n\n .color-richblue-shade {\n color: #0E1B42;\n }\n\n .color-digital-blue {\n color: #001096 !important;\n }\n\n .color-deep-blue {\n color: #001096;\n }\n\n .title-color {\n color: ${this.themeColor};\n }\n\n .theme-color {\n color: ${this.themeColor};\n }\n\n .center {\n text-align: center;\n margin-left: auto;\n margin-right: auto;\n }\n\n .font-size-small {\n font-size: .75rem;\n }\n\n .font-size-large {\n font-size: 1.5rem;\n }\n\n .text-transform-uppercase {\n text-transform: uppercase;\n }\n\n [id*=-\"screen\"] {\n min-block-size: 100%;\n }\n\n [data-variant~=\"full-width\"] {\n inline-size: 100%;\n }\n\n .flow > * + * {\n margin-top: 1rem;\n }\n\n .button {\n --button-color: ${this.themeColor};\n -webkit-appearance: none;\n appearance: none;\n border-radius: 2.5rem;\n border: 0;\n background-color: transparent;\n color: #fff;\n cursor: pointer;\n display: block;\n font-size: 18px;\n font-weight: 600;\n padding: .75rem 1.5rem;\n text-align: center;\n }\n\n .button:hover,\n .button:focus,\n .button:active {\n --button-color: var(--color-default);\n }\n\n .button:disabled {\n --button-color: var(--color-disabled);\n }\n\n .button[data-variant~='solid'] {\n background-color: var(--button-color);\n border: 2px solid var(--button-color);\n }\n\n .button[data-variant~='outline'] {\n color: var(--button-color);\n border: 2px solid var(--button-color);\n }\n\n .button[data-variant~='ghost'] {\n padding: 0px;\n color: var(--button-color);\n background-color: transparent;\n }\n\n .icon-btn {\n appearance: none;\n background: none;\n border: none;\n color: hsl(0deg 0% 94%);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px 8px;\n }\n .justify-right {\n justify-content: end !important;\n }\n .nav {\n display: flex;\n justify-content: space-between;\n }\n\n .back-wrapper {\n display: flex;\n align-items: center;\n }\n\n .back-button {\n display: block !important;\n }\n .back-button-text {\n font-size: 11px;\n line-height: 11px;\n color: rgb(21, 31, 114);\n }\n .section {\n border-radius: .5rem;\n margin-left: auto;\n margin-right: auto;\n max-width: 35ch;\n padding: 1rem;\n }\n\n .selfie-capture-review-image {\n overflow: hidden;\n aspect-ratio: 1/1;\n }\n\n #review-image {\n scale: 1.75;\n }\n\n @media (max-aspect-ratio: 1/1) {\n #review-image {\n transform: scaleX(-1) translateY(-10%);\n }\n }\n\n .tips,\n .powered-by {\n align-items: center;\n border-radius: .25rem;\n display: flex;\n justify-content: center;\n letter-spacing: .075em;\n }\n\n .powered-by {\n box-shadow: 0px 2.57415px 2.57415px rgba(0, 0, 0, 0.06);\n display: inline-flex;\n font-size: .5rem;\n }\n\n .tips {\n margin-left: auto;\n margin-right: auto;\n max-width: 17rem;\n font-size: 0.875rem;\n font-weight: 600;\n }\n\n .tips > * + *,\n .powered-by > * + * {\n display: inline-block;\n margin-left: .5em;\n }\n\n .powered-by .company {\n color: #18406D;\n font-weight: 700;\n letter-spacing: .15rem;\n }\n\n .logo-mark {\n background-color: #004071;\n display: inline-block;\n padding: .25em .5em;\n }\n\n .logo-mark svg {\n height: auto;\n justify-self: center;\n width: .75em;\n }\n\n .id-video-container.portrait {\n width: 100%;\n position: relative;\n height: calc(200px * 1.4);\n }\n\n .id-video-container.portrait video {\n width: calc(213px + 0.9rem);\n height: 100%;\n position: absolute;\n top: 239px;\n left: 161px;\n padding-bottom: calc((214px * 1.4) / 3);\n padding-top: calc((191px * 1.4) / 3);\n object-fit: cover;\n\n transform: translateX(-50%) translateY(-50%);\n z-index: 1;\n block-size: 100%;\n }\n\n .video-container,\n .id-video-container.landscape {\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n }\n\n .video-container video,\n .id-video-container.landscape video {\n left: 50%;\n min-width: auto;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(50%);\n }\n\n .video-container #smile-cta-box {\n color: #fff;\n width: 100%;\n position: absolute;\n top: 0;\n left: 0;\n padding: 2rem 0;\n opacity: 0;\n transition: opacity 0.5s ease-in-out;\n }\n\n .video-container #smile-cta {\n font-size: 1.2rem;\n font-weight: bold;\n margin-top: 0;\n margin-bottom: 0;\n }\n\n .video-container video {\n height: 150%;\n transform: scaleX(-1) translateX(50%) translateY(-50%);\n }\n\n .video-container video.agent-mode {\n min-height: 100%;\n transform: scaleX(1) translateX(-50%) translateY(-50%);\n }\n\n .video-container .video {\n background-color: black;\n position: absolute;\n left: 50%;\n height: calc(100% - 6px);\n clip-path: ellipse(101px 118px);\n }\n\n .id-video-container.landscape {\n min-height: calc((2 * 10rem) + 198px);\n height: auto;\n }\n\n .id-video-container.portrait .image-frame-portrait {\n border-width: 0.9rem;\n border-color: rgba(0, 0, 0, 0.7);\n border-style: solid;\n height: auto;\n position: absolute;\n top: 80px;\n left: 47px;\n z-index: 2;\n width: 200px;\n height: calc(200px * 1.4);\n }\n\n .id-video-container.landscape .image-frame {\n border-width: 10rem 1rem;\n border-color: rgba(0, 0, 0, 0.7);\n border-style: solid;\n height: auto;\n width: 90%;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n }\n\n .id-video-container.landscape video {\n width: 100%;\n transform: translateX(-50%) translateY(-50%);\n z-index: 1;\n height: 100%;\n block-size: 100%;\n }\n\n .id-video-container.landscape img {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n max-width: 90%;\n }\n\n .actions {\n background-color: rgba(0, 0, 0, .7);\n bottom: 0;\n display: flex;\n justify-content: space-between;\n padding: 1rem;\n position: absolute;\n width: 90%;\n z-index: 2;\n }\n\n #back-of-id-camera-screen .id-video-container.portrait .actions,\n #id-camera-screen .id-video-container.portrait .actions {\n top: 145%;\n width: calc(200px * 1.4);\n }\n\n #back-of-id-camera-screen .section.portrait, #id-camera-screen .section.portrait {\n min-height: calc((200px * 1.4) + 260px);\n }\n\n #selfie-capture-screen,\n #back-of-id-entry-screen {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n max-block-size: 100%;\n max-inline-size: 40ch;\n padding: 1rem;\n }\n\n #selfie-capture-screen header p {\n margin-block: 0 !important;\n }\n\n .document-tips {\n margin-block-start: 1.5rem;\n display: flex;\n align-items: center;\n text-align: initial;\n }\n\n .document-tips svg {\n flex-shrink: 0;\n margin-inline-end: 1rem;\n }\n\n .document-tips p {\n margin-block: 0;\n }\n\n .document-tips p:first-of-type {\n font-size; 1.875rem;\n font-weight: bold\n }\n\n [type='file'] {\n display: none;\n }\n\n .document-tips > * + * {\n margin-inline-start; 1em;\n }\n </style>\n <div id='selfie-capture-screen' class='flow center' dir='${this.direction}'>\n <smileid-navigation theme-color='${this.themeColor}' ${this.showNavigation ? 'show-navigation' : ''} ${this.hideBack ? 'hide-back' : ''}></smileid-navigation>\n\n <div class='tips'>${t('selfie.capture.tip.fitHead')}</div>\n\n <div className=\"error\">\n ${this.cameraError ? `<p class=\"color-red\">${this.cameraError}</p>` : ''}\n </div>\n <div class='section | flow' ${this.cameraError ? 'hidden' : ''}>\n <div class='video-container'>\n <div class='video'>\n </div>\n <svg id=\"image-outline\" width=\"215\" height=\"245\" viewBox=\"0 0 215 245\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"position: relative;\">\n <path d=\"M210.981 122.838C210.981 188.699 164.248 241.268 107.55 241.268C50.853 241.268 4.12018 188.699 4.12018 122.838C4.12018 56.9763 50.853 4.40771 107.55 4.40771C164.248 4.40771 210.981 56.9763 210.981 122.838Z\" stroke=\"${this.themeColor}\" stroke-width=\"7.13965\"/>\n </svg>\n <div id=\"smile-cta-box\">\n <div>\n <svg width=\"120\" height=\"120\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"70 70 360 360\" fill=\"currentColor\">\n <path d=\"M354.02,247.69c4.12-12.26,6.39-24.53,6.39-35.75,0-54.63-50.19-99.08-111.88-99.08s-111.95,44.45-111.95,99.08c0,11.22,2.28,23.49,6.39,35.75-6.6,4.66-10.94,12.33-10.94,21.04,0,13.45,10.36,24.4,23.46,25.51.52,26.93,12.56,53.51,35.04,71.64v.73c.07.03.14.05.21.08,3.66,1.63,6.74,4.28,9.92,6.66.08.06.17.12.25.17,0-.08-.01-.16-.01-.25,15.23,9.12,32.95,13.89,51.85,12.96h0c15.54-.72,30.01-5.37,42.59-12.99,2.91-2.85,7.01-4.93,10.42-6.71.25-.16.51-.28.77-.43v-.76c20.36-16.83,33.62-42.32,34.85-71.11,13.15-1.05,23.57-12.03,23.57-25.53,0-8.7-4.35-16.38-10.94-21.04ZM155.53,283.54c-7.18-1.09-12.71-7.31-12.71-14.85s5.53-13.75,12.71-14.85v29.7ZM330.53,289.9c0,45.26-33.98,83.65-78.48,85.72-47.29,2.31-86.52-35.65-86.52-83.18v-40.7c15.63-4.03,38.45-15.61,65.91-46.31.08.59.13,1.21.11,1.87-.13,4.43-3.09,9.32-8.58,14.14-1.79,1.57-2.32,4.13-1.31,6.28,1.01,2.14,3.29,3.35,5.68,3,2.19-.35,48.6-8.13,71.88-38.36,3.84,13.25,12.48,33.59,31.31,48.79v48.75ZM339.42,234.31c-27.83-21.03-32.1-56.22-32.15-56.57-.26-2.37-2.08-4.28-4.43-4.67-2.33-.39-4.68.83-5.69,2.99-11.08,23.62-39.34,35.42-56.72,40.63,1.35-2.97,2.08-6,2.16-9.06.26-9.11-5.24-14.81-5.88-15.43-1.06-1.05-2.53-1.59-3.99-1.53-1.48.07-2.87.75-3.83,1.88-32.09,37.93-57.18,47.4-69.28,49.67-.68.13-1.29.39-1.84.74-.11,0-.18-.03-.29-.03-1.65,0-3.26.19-4.82.49-3.58-10.9-5.56-21.72-5.56-31.57,0-48.78,45.46-88.46,101.33-88.46s101.26,39.68,101.26,88.46c0,9.84-1.98,20.67-5.56,31.57-.85-.16-1.73-.19-2.61-.27v-4.6c0-1.67-.78-3.25-2.12-4.26ZM341.53,283.54v-29.7c7.18,1.09,12.72,7.3,12.72,14.85s-5.53,13.76-12.72,14.85Z\"/>\n <path d=\"M259.05,305.3c2.08-2.08,2.08-5.46,0-7.55-2.09-2.08-5.47-2.07-7.54,0-1.75,1.75-4.79,1.75-6.54,0-2.08-2.08-5.45-2.09-7.54,0-2.08,2.08-2.08,5.46,0,7.55,5.98,5.98,15.65,5.98,21.63,0h0Z\"/>\n <path id=\"mouth\"\n d=\"m 213.88314,319.4551 c -1.58,0.97 -0.35309,9.33393 1.50671,9.30586 6.05679,-0.0914 16.11631,0.17227 34.57066,0.13346 18.45435,-0.0388 28.15778,-0.0418 31.09964,-0.79956 1.80122,-0.46394 2.75061,-7.48365 1.16061,-8.45365 -1.6,-1.74874 -2.96432,-0.94348 -6.77747,-1.56441 -12.83012,0.04 -36.52534,0.50197 -41.29469,0.43262 -2.51525,-0.0713 -18.41588,-0.61 -20.01588,0.35 z m 57.29363,1.36599 c -9.24417,-2.23757 -8.08363,-2.42362 -20.78363,-2.42362 -12.7,0 -17.77931,2.69528 -26.84042,5.36549 12.57883,3.28731 33.57775,-4.29887 49.70067,2.24964 z\">\n <animate\n id=\"mouthAnim\"\n attributeName=\"d\"\n begin=\"indefinite\"\n dur=\"1s\"\n fill=\"freeze\"\n to=\"m 211.72,312.36 c -1.58,0.97 -2.56,2.86 -2.56,4.72 0,21.54 17.40021,38.7239 38.94021,38.7239 21.54,0 39.18979,-17.1739 39.18979,-39.0439 0,-1.86 -0.97,-3.59 -2.56,-4.56 -1.6,-0.97 -3.57,-1.03 -5.22,-0.18 -21.07,10.85 -41.53,10.85 -62.58,0 -1.65,-0.85 -3.62,-0.61 -5.22,0.35 z m 63.61,13.22 c -3.62,11.52 -14.4,19.9 -27.1,19.9 -12.7,0 -23.49,-8.38 -27.1,-19.9 18.03,6.94 36.2,6.94 54.2,0 z\" />\n </path>\n <circle fill=\"none\" stroke=\"currentColor\" stroke-width=\"10px\" cx=\"287.3\" cy=\"263.68\" r=\"14\"/>\n <circle fill=\"none\" stroke=\"currentColor\" stroke-width=\"10px\" cx=\"209.16\" cy=\"263.68\" r=\"14\"/>\n </svg>\n </div>\n <div>\n <p id='smile-cta'>${t('selfie.capture.cta.smile')}</p>\n </div>\n </div>\n </div>\n\n ${this.allowAgentMode ? `<button data-variant='outline small' id='switch-camera' class='button | center' type='button'>${this.inAgentMode ? t('selfie.capture.agentMode.on') : t('selfie.capture.agentMode.off')}</button>` : ''}\n\n <button data-variant='solid' id='start-image-capture' class='button | center' type='button'>\n ${t('selfie.capture.button.takeSelfie')}\n </button>\n\n ${this.hideAttribution ? '' : '<powered-by-smile-id></powered-by-smile-id>'}\n </div>\n </div>\n `;\n}\n\nasync function getPermissions(\n captureScreen,\n constraints = { facingMode: 'user' },\n) {\n try {\n const stream = await SmartCamera.getMedia({\n audio: false,\n video: constraints,\n });\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevice = devices.find(\n (device) =>\n device.kind === 'videoinput' &&\n stream.getVideoTracks()[0].getSettings().deviceId === device.deviceId,\n );\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.camera-name', {\n detail: { cameraName: videoDevice?.label },\n }),\n );\n captureScreen?.removeAttribute('data-camera-error');\n captureScreen?.setAttribute('data-camera-ready', true);\n } catch (error) {\n captureScreen?.removeAttribute('data-camera-ready');\n captureScreen?.setAttribute(\n 'data-camera-error',\n SmartCamera.handleCameraError(error),\n );\n }\n}\n\nclass SelfieCaptureScreen extends HTMLElement {\n constructor() {\n super();\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n\n this.attachShadow({ mode: 'open' });\n this.facingMode = 'user';\n if (this.allowAgentMode) {\n this.facingMode = 'environment';\n }\n }\n\n connectedCallback() {\n const template = document.createElement('template');\n template.innerHTML = this.render();\n this.shadowRoot.innerHTML = '';\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n this.videoContainer = this.shadowRoot.querySelector(\n '.video-container > .video',\n );\n this.init();\n }\n\n init() {\n this._videoStreamDurationInMS = 7800;\n this._imageCaptureIntervalInMS = 200;\n\n this._data = {\n images: [],\n meta: {\n libraryVersion: COMPONENTS_VERSION,\n },\n };\n this._rawImages = [];\n\n this.setUpEventListeners();\n }\n\n reset() {\n this.disconnectedCallback();\n this.connectedCallback();\n }\n\n _startImageCapture() {\n this.startImageCapture.disabled = true;\n if (this.switchCamera) {\n this.switchCamera.disabled = true;\n }\n\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-capture-start'),\n );\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-origin', {\n detail: {\n imageOrigin: {\n environment: 'back_camera',\n user: 'front_camera',\n }[this.inAgentMode ? 'environment' : 'user'],\n },\n }),\n );\n\n /**\n * this was culled from https://jakearchibald.com/2013/animated-line-drawing-svg/\n */\n // NOTE: initialise image outline\n const imageOutlineLength = this.imageOutline.getTotalLength();\n // Clear any previous transition\n this.imageOutline.style.transition = 'none';\n // Set up the starting positions\n this.imageOutline.style.strokeDasharray = `${imageOutlineLength} ${imageOutlineLength}`;\n this.imageOutline.style.strokeDashoffset = imageOutlineLength;\n // Trigger a layout so styles are calculated & the browser\n // picks up the starting position before animating\n this.imageOutline.getBoundingClientRect();\n // Define our transition\n this.imageOutline.style.transition = `stroke-dashoffset ${this._videoStreamDurationInMS / 1000}s ease-in-out`;\n // Go!\n this.imageOutline.style.strokeDashoffset = '0';\n\n setTimeout(() => {\n this.smileCTABox.style.opacity = 1;\n this.mouthAnim.beginElement();\n }, 1500);\n\n setTimeout(() => {\n this.smileCTABox.style.opacity = 0;\n }, 3500);\n\n setTimeout(() => {\n this.smileCTABox.style.opacity = 1;\n this.smileCTA.textContent = t('selfie.capture.cta.widerSmile');\n this.mouth.setAttribute(\n 'd',\n 'm 213.88314,319.4551 c -1.58,0.97 -0.35309,9.33393 1.50671,9.30586 6.05679,-0.0914 16.11631,0.17227 34.57066,0.13346 18.45435,-0.0388 28.15778,-0.0418 31.09964,-0.79956 1.80122,-0.46394 2.75061,-7.48365 1.16061,-8.45365 -1.6,-1.74874 -2.96432,-0.94348 -6.77747,-1.56441 -12.83012,0.04 -36.52534,0.50197 -41.29469,0.43262 -2.51525,-0.0713 -18.41588,-0.61 -20.01588,0.35 z m 57.29363,1.36599 c -9.24417,-2.23757 -8.08363,-2.42362 -20.78363,-2.42362 -12.7,0 -17.77931,2.69528 -26.84042,5.36549 12.57883,3.28731 33.57775,-4.29887 49.70067,2.24964 z',\n );\n this.mouthAnim.beginElement();\n }, 4000);\n\n this._imageCaptureInterval = setInterval(() => {\n this._capturePOLPhoto();\n }, this._imageCaptureIntervalInMS);\n\n this._videoStreamTimeout = setTimeout(() => {\n this._stopVideoStream();\n }, this._videoStreamDurationInMS);\n }\n\n async _switchCamera() {\n this.facingMode = this.facingMode === 'user' ? 'environment' : 'user';\n if (this.facingMode === 'user') {\n this.shadowRoot.querySelector('video').classList.remove('agent-mode');\n } else {\n this.shadowRoot.querySelector('video').classList.add('agent-mode');\n }\n this.startImageCapture.disabled = true;\n this.switchCamera.disabled = true;\n SmartCamera.stopMedia();\n await getPermissions(this, { facingMode: this.facingMode });\n this.handleStream(SmartCamera.stream);\n }\n\n _stopVideoStream() {\n try {\n clearTimeout(this._videoStreamTimeout);\n clearInterval(this._imageCaptureInterval);\n clearInterval(this._drawingInterval);\n\n this._capturePOLPhoto(); // NOTE: capture the last photo\n this._captureReferencePhoto();\n SmartCamera.stopMedia();\n\n const totalNoOfFrames = this._rawImages.length;\n this._data.referenceImage = this._referenceImage;\n this._data.previewImage = this._referenceImage;\n\n const livenessFramesIndices = getLivenessFramesIndices(totalNoOfFrames);\n\n this._data.images = this._data.images.concat(\n livenessFramesIndices.map((imageIndex) => ({\n image: this._rawImages[imageIndex].split(',')[1],\n image_type_id: IMAGE_TYPE.LIVENESS_IMAGE_BASE64,\n })),\n );\n\n this._publishImages();\n } catch (error) {\n console.error(error);\n // Todo: handle error\n }\n }\n\n _capturePOLPhoto() {\n const canvas = document.createElement('canvas');\n // Determine orientation of the video\n const isPortrait = this._video.videoHeight > this._video.videoWidth;\n\n // Set dimensions based on orientation, ensuring minimums\n if (isPortrait) {\n // Portrait orientation (taller than wide)\n canvas.width = 240;\n canvas.height = Math.max(\n 320,\n (canvas.width * this._video.videoHeight) / this._video.videoWidth,\n );\n } else {\n // Landscape orientation (wider than tall)\n canvas.height = 240;\n canvas.width = Math.max(\n 320,\n (canvas.height * this._video.videoWidth) / this._video.videoHeight,\n );\n }\n\n // NOTE: we do not want to test POL images\n this._drawImage(canvas, false);\n\n this._rawImages.push(canvas.toDataURL('image/jpeg', JPEG_QUALITY));\n }\n\n _captureReferencePhoto() {\n const canvas = document.createElement('canvas');\n // Determine orientation of the video\n const isPortrait = this._video.videoHeight > this._video.videoWidth;\n\n // Set dimensions based on orientation, ensuring minimums\n if (isPortrait) {\n // Portrait orientation (taller than wide)\n canvas.width = 480;\n canvas.height = Math.max(\n 640,\n (canvas.width * this._video.videoHeight) / this._video.videoWidth,\n );\n } else {\n // Landscape orientation (wider than tall)\n canvas.height = 480;\n canvas.width = Math.max(\n 640,\n (canvas.height * this._video.videoWidth) / this._video.videoHeight,\n );\n }\n\n // NOTE: we want to test the image quality of the reference photo\n this._drawImage(canvas, !this.disableImageTests);\n\n const image = canvas.toDataURL('image/jpeg', JPEG_QUALITY);\n\n this._referenceImage = image;\n\n this._data.images.push({\n image: image.split(',')[1],\n image_type_id: IMAGE_TYPE.SELFIE_IMAGE_BASE64,\n });\n }\n\n _publishImages() {\n const eventDetail = {\n ...this._data,\n facingMode: this.facingMode,\n };\n\n this.dispatchEvent(\n new CustomEvent('selfie-capture.publish', {\n detail: eventDetail,\n }),\n );\n }\n\n resetErrorMessage() {\n this.errorMessage.textContent = '';\n }\n\n _drawImage(canvas, enableImageTests = true, video = this._video) {\n // this.resetErrorMessage();\n const context = canvas.getContext('2d');\n\n context.drawImage(\n video,\n 0,\n 0,\n video.videoWidth,\n video.videoHeight,\n 0,\n 0,\n canvas.width,\n canvas.height,\n );\n\n if (enableImageTests) {\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\n\n const hasEnoughColors = hasMoreThanNColors(imageData.data);\n\n if (hasEnoughColors) {\n return context;\n }\n throw new Error(t('selfie.capture.error.webcamCapture'));\n } else {\n return context;\n }\n }\n\n handleStream(stream) {\n try {\n const videoContainer = this.shadowRoot.querySelector('.video');\n if (!videoContainer) {\n return;\n }\n\n const videoExists = this.shadowRoot.querySelector('video');\n let video = null;\n if (videoExists) {\n video = this.shadowRoot.querySelector('video');\n } else {\n video = document.createElement('video');\n }\n\n video.autoplay = true;\n video.playsInline = true;\n video.muted = true;\n\n if ('srcObject' in video) {\n video.srcObject = stream;\n } else {\n video.src = window.URL.createObjectURL(stream);\n }\n\n video.onloadedmetadata = () => {\n video.play();\n };\n\n this._video = video;\n this._data.permissionGranted = true;\n\n if (!videoExists) {\n videoContainer.prepend(video);\n }\n } catch (error) {\n this.setAttribute(\n 'data-camera-error',\n SmartCamera.handleCameraError(error),\n );\n if (error.name !== 'AbortError') {\n console.error(error);\n }\n SmartCamera.stopMedia();\n }\n }\n\n setUpEventListeners() {\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\n\n this.startImageCapture = this.shadowRoot.querySelector(\n '#start-image-capture',\n );\n\n this.switchCamera = this.shadowRoot.querySelector('#switch-camera');\n this.imageOutline = this.shadowRoot.querySelector('#image-outline path');\n this.smileCTABox = this.shadowRoot.querySelector('#smile-cta-box');\n this.smileCTA = this.shadowRoot.querySelector('#smile-cta');\n this.mouth = this.shadowRoot.querySelector('#mouth');\n this.mouthAnim = this.shadowRoot.querySelector('#mouthAnim');\n\n this.startImageCapture.addEventListener('click', () => {\n this._startImageCapture();\n });\n\n this.switchCamera?.addEventListener('click', () => {\n this._switchCamera();\n });\n\n this.navigation.addEventListener('navigation.back', () => {\n this.handleBackEvents();\n });\n\n this.navigation.addEventListener('navigation.close', () => {\n this.closeWindow();\n });\n\n if (SmartCamera.stream) {\n this.handleStream(SmartCamera.stream);\n } else if (\n this.hasAttribute('data-camera-ready') ||\n !this.hasAttribute('data-camera-error')\n ) {\n getPermissions(this, { facingMode: this.facingMode });\n }\n\n this.setupAgentMode();\n }\n\n disconnectedCallback() {\n SmartCamera.stopMedia();\n clearTimeout(this._videoStreamTimeout);\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back');\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n async setupAgentMode() {\n if (!this.allowAgentMode) {\n return;\n }\n\n const supportAgentMode = await SmartCamera.supportsAgentMode();\n\n if (supportAgentMode || this.hasAttribute('show-agent-mode-for-tests')) {\n this.switchCamera.hidden = false;\n if (this.facingMode === 'user') {\n this.shadowRoot.querySelector('video')?.classList?.remove('agent-mode');\n } else {\n this.shadowRoot.querySelector('video')?.classList?.add('agent-mode');\n }\n } else {\n this.switchCamera.hidden = true;\n }\n }\n\n get hasAgentSupport() {\n return this.hasAttribute('has-agent-support');\n }\n\n get title() {\n return this.getAttribute('title') || t('selfie.instructions.title');\n }\n\n get direction() {\n return this.getAttribute('dir') || getDirection() || 'ltr';\n }\n\n get hidden() {\n return this.getAttribute('hidden');\n }\n\n get cameraError() {\n return this.getAttribute('data-camera-error');\n }\n\n get disableImageTests() {\n return this.hasAttribute('disable-image-tests');\n }\n\n get allowAgentMode() {\n return this.getAttribute('allow-agent-mode') === 'true';\n }\n\n get inAgentMode() {\n return this.facingMode === 'environment';\n }\n\n static get observedAttributes() {\n return [\n 'allow-agent-mode',\n 'data-camera-error',\n 'data-camera-ready',\n 'disable-image-tests',\n 'hidden',\n 'hide-back-to-host',\n 'show-navigation',\n 'title',\n ];\n }\n\n attributeChangedCallback(name) {\n switch (name) {\n case 'data-camera-error':\n case 'hidden':\n case 'title':\n this.shadowRoot.innerHTML = this.render();\n this.init();\n break;\n case 'allow-agent-mode':\n // only re-render if the shadowRoot is empty or not initialized\n if (!this.shadowRoot.innerHTML.trim()) {\n this.shadowRoot.innerHTML = this.render();\n this.init();\n } else {\n // update the setupAgentMode\n this.setupAgentMode();\n }\n break;\n case 'show-navigation':\n // update the navigation element if it exists\n if (this.shadowRoot.innerHTML.trim()) {\n const navigation =\n this.shadowRoot.querySelector('smileid-navigation');\n if (navigation) {\n if (this.showNavigation) {\n navigation.setAttribute('show-navigation', '');\n } else {\n navigation.removeAttribute('show-navigation');\n }\n }\n } else {\n this.shadowRoot.innerHTML = this.render();\n this.init();\n }\n break;\n case 'data-camera-ready':\n // don't re-render, just handle the stream\n if (this.hasAttribute('data-camera-ready') && SmartCamera.stream) {\n this.handleStream(SmartCamera.stream);\n }\n break;\n default:\n break;\n }\n }\n\n handleBackEvents() {\n this.stopMedia();\n this.dispatchEvent(new CustomEvent('selfie-capture.cancelled'));\n }\n\n closeWindow() {\n this.stopMedia();\n this.dispatchEvent(new CustomEvent('selfie-capture.close'));\n }\n\n stopMedia() {\n this.removeAttribute('data-camera-ready');\n SmartCamera.stopMedia();\n }\n}\n\nif ('customElements' in window && !customElements.get('selfie-capture')) {\n window.customElements.define('selfie-capture', SelfieCaptureScreen);\n}\n\nexport default SelfieCaptureScreen;\n","import { useState, useEffect } from 'preact/hooks';\nimport { IconLoader2 } from '@tabler/icons-preact';\nimport register from 'preact-custom-element';\nimport type { FunctionComponent } from 'preact';\n\nimport { getBoolProp } from '../../../../utils/props';\nimport SmartSelfieCapture from '../smartselfie-capture/SmartSelfieCapture';\n// Legacy web component fallback (used when Mediapipe isn't available)\nimport '../selfie-capture/SelfieCapture';\n// Mediapipe loader/manager used by SmartSelfieCapture\nimport { getMediapipeInstance } from '../smartselfie-capture/utils/mediapipeManager';\n\ninterface Props {\n timeout?: number;\n interval?: number;\n duration?: number;\n 'theme-color'?: string;\n 'show-navigation'?: string | boolean;\n 'allow-agent-mode'?: string | boolean;\n 'show-agent-mode-for-tests'?: string | boolean;\n 'hide-attribution'?: string | boolean;\n 'disable-image-tests'?: string | boolean;\n key?: string;\n 'start-countdown'?: string | boolean;\n hidden?: string | boolean;\n}\n\n// Wrapper component that decides whether to use the modern\n// SmartSelfieCapture (Mediapipe-based) or fallback to the legacy `selfie-capture`\n// web component after a timeout of 20 seconds.\nconst SelfieCaptureWrapper: FunctionComponent<Props> = ({\n timeout = 20000,\n 'start-countdown': startCountdownProp = false,\n hidden: hiddenProp = false,\n ...props\n}) => {\n // Detect if tests are running under Cypress/Electron (affects loading behavior)\n const isParentCypress = (() => {\n try {\n return (\n !!(window.parent as any).Cypress ||\n (window.parent.navigator.userAgent.includes('Electron') &&\n (window.parent as any).__Cypress)\n );\n } catch {\n return false;\n }\n })();\n const isCypress =\n isParentCypress ||\n !!(window as any).Cypress ||\n (window.navigator.userAgent.includes('Electron') &&\n (window as any).__Cypress);\n\n const hidden = getBoolProp(hiddenProp);\n const startCountdown = getBoolProp(startCountdownProp);\n // Component state:\n // - mediapipeReady: whether the mediapipe instance has successfully loaded\n // - loadingProgress: percentage used for the visible loading UI\n // - initialSessionCompleted: set when the legacy component emits publish/cancel/close\n // - mediapipeLoading: true while attempting to load mediapipe\n // - usingSelfieCapture: whether we've mounted the legacy `selfie-capture` element\n const [mediapipeReady, setMediapipeReady] = useState(false);\n const [loadingProgress, setLoadingProgress] = useState(isCypress ? 100 : 0);\n const [initialSessionCompleted, setInitialSessionCompleted] = useState(false);\n const [mediapipeLoading, setMediapipeLoading] = useState(false);\n const [usingSelfieCapture, setUsingSelfieCapture] = useState(false);\n\n // Attempt to load Mediapipe (once). If Mediapipe is already ready, loading,\n // or running under Cypress, skip the attempt. This side-effect flips\n // mediapipeReady/mediapipeLoading flags which control which component is used.\n useEffect(() => {\n if (mediapipeReady || mediapipeLoading || isCypress) return;\n\n const loadMediapipe = async () => {\n setMediapipeLoading(true);\n try {\n await getMediapipeInstance();\n setMediapipeReady(true);\n } catch (error) {\n // Loading failed; we'll fall back to the legacy selfie-capture component\n // after the loadingProgress reaches 100%.\n console.error('Failed to load Mediapipe:', error);\n }\n setMediapipeLoading(false);\n };\n\n loadMediapipe();\n }, [mediapipeReady, mediapipeLoading]);\n\n // When using the loading countdown (startCountdown), increment the\n // visible loading progress. This is only used while mediapipe hasn't\n // reported ready; once mediapipeReady becomes true we stop the timer.\n useEffect(() => {\n if (hidden || !startCountdown || mediapipeReady) return undefined;\n\n const timer = setInterval(() => {\n setLoadingProgress((prev: number) => Math.min(prev + 1, 100));\n }, timeout / 100);\n\n return () => {\n clearInterval(timer);\n };\n }, [hidden, startCountdown, timeout, mediapipeReady]);\n\n useEffect(() => {\n if (hidden || mediapipeReady || loadingProgress < 100) return undefined;\n\n const setupEventForwarding = () => {\n const selfieCapture = document.querySelector('selfie-capture');\n if (\n selfieCapture &&\n !selfieCapture.hasAttribute('data-backup-events-setup')\n ) {\n selfieCapture.setAttribute('data-backup-events-setup', 'true');\n\n const forwardEvent = (event: Event) => {\n const customEvent = event as CustomEvent;\n window.dispatchEvent(\n new CustomEvent(customEvent.type, {\n detail: customEvent.detail,\n bubbles: true,\n }),\n );\n };\n\n selfieCapture.addEventListener('selfie-capture.publish', forwardEvent);\n selfieCapture.addEventListener(\n 'selfie-capture.cancelled',\n forwardEvent,\n );\n selfieCapture.addEventListener('selfie-capture.close', forwardEvent);\n\n return () => {\n selfieCapture.removeEventListener(\n 'selfie-capture.publish',\n forwardEvent,\n );\n selfieCapture.removeEventListener(\n 'selfie-capture.cancelled',\n forwardEvent,\n );\n selfieCapture.removeEventListener(\n 'selfie-capture.close',\n forwardEvent,\n );\n };\n }\n return undefined;\n };\n\n const timeoutId = setTimeout(setupEventForwarding, 200);\n return () => {\n clearTimeout(timeoutId);\n };\n }, [hidden, mediapipeReady, loadingProgress]);\n\n // Announce to any `smart-camera-web` element which liveness version is active.\n // The old capture users 0.0.1, the new one 1.0.0.\n useEffect(() => {\n if (hidden || mediapipeLoading) return;\n\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.active-liveness-version', {\n detail: {\n version: usingSelfieCapture ? '0.0.1' : '1.0.0',\n },\n }),\n );\n }, [usingSelfieCapture, hidden, mediapipeLoading]);\n\n if (hidden) {\n return null;\n }\n\n // on retakes, prefer SmartSelfieCapture if Mediapipe is ready\n if (initialSessionCompleted && mediapipeReady && !usingSelfieCapture) {\n return <SmartSelfieCapture {...props} />;\n }\n\n // use SmartSelfieCapture if mediapipe loads\n if (!initialSessionCompleted && mediapipeReady && !usingSelfieCapture) {\n return <SmartSelfieCapture {...props} />;\n }\n\n if (loadingProgress >= 100) {\n // When loading completes without Mediapipe becoming ready, mount the legacy\n // `selfie-capture` web component. We also set `usingSelfieCapture` so other\n // effects can react (e.g. metadata dispatch).\n if (!usingSelfieCapture) {\n setUsingSelfieCapture(true);\n }\n\n const propsWithoutHidden = { ...props };\n delete (propsWithoutHidden as any).hidden;\n\n return (\n // @ts-expect-error --- preact-custom-element doesn't have proper types for refs\n <selfie-capture\n {...propsWithoutHidden}\n ref={(el: HTMLElement) => {\n if (el && !el.hasAttribute('data-events-setup')) {\n el.setAttribute('data-events-setup', 'true');\n\n const forwardEvent = (event: Event) => {\n const customEvent = event as CustomEvent;\n\n if (\n customEvent.type === 'selfie-capture.publish' ||\n customEvent.type === 'selfie-capture.cancelled' ||\n customEvent.type === 'selfie-capture.close'\n ) {\n setInitialSessionCompleted(true);\n }\n\n window.dispatchEvent(\n new CustomEvent(customEvent.type, {\n detail: customEvent.detail,\n bubbles: true,\n }),\n );\n };\n\n el.addEventListener('selfie-capture.publish', forwardEvent);\n el.addEventListener('selfie-capture.cancelled', forwardEvent);\n el.addEventListener('selfie-capture.close', forwardEvent);\n }\n }}\n />\n );\n }\n\n return (\n <div style={{ textAlign: 'center', marginTop: '20%' }}>\n <div\n style={{\n marginBottom: '16px',\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n <IconLoader2\n size={48}\n style={{ animation: 'spin 1s linear infinite' }}\n />\n </div>\n <p>Loading... {loadingProgress}%</p>\n <style>{`\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `}</style>\n </div>\n );\n};\n\nif (!customElements.get('selfie-capture-wrapper')) {\n register(\n SelfieCaptureWrapper,\n 'selfie-capture-wrapper',\n [\n 'timeout',\n 'interval',\n 'duration',\n 'theme-color',\n 'show-navigation',\n 'allow-agent-mode',\n 'show-agent-mode-for-tests',\n 'hide-attribution',\n 'disable-image-tests',\n 'key',\n 'start-countdown',\n 'hidden',\n ],\n { shadow: true },\n );\n}\n\nexport default SelfieCaptureWrapper;\n","import './selfie-capture-instructions';\nimport './selfie-capture-review';\nimport './selfie-capture-wrapper/index.ts';\nimport SmartCamera from '../../../domain/camera/src/SmartCamera';\nimport styles from '../../../styles/src/styles';\nimport packageJson from '../../../../package.json';\nimport { JPEG_QUALITY } from '../../../domain/constants/src/Constants';\n\nconst COMPONENTS_VERSION = packageJson.version;\n\nconst smartCameraWeb = document.querySelector('smart-camera-web');\n\nconst cropImageFromDataUri = (dataUri, cropPercentX = 0, cropPercentY = 0) =>\n new Promise((resolve, reject) => {\n if (!dataUri || typeof dataUri !== 'string') {\n reject(new Error('Invalid data URI provided'));\n return;\n }\n\n if (\n cropPercentX < 0 ||\n cropPercentX >= 99 ||\n cropPercentY < 0 ||\n cropPercentY >= 99\n ) {\n reject(new Error('Crop percentages must be between 0 and 99'));\n return;\n }\n\n const img = new Image();\n\n img.onload = () => {\n try {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n const originalWidth = img.width;\n const originalHeight = img.height;\n const cropAmountX = (originalWidth * cropPercentX) / 100;\n const cropAmountY = (originalHeight * cropPercentY) / 100;\n\n const newWidth = originalWidth - cropAmountX * 2;\n const newHeight = originalHeight - cropAmountY * 2;\n canvas.width = newWidth;\n canvas.height = newHeight;\n\n ctx.drawImage(\n img,\n cropAmountX,\n cropAmountY,\n newWidth,\n newHeight,\n 0,\n 0,\n newWidth,\n newHeight,\n );\n\n const croppedDataUri = canvas.toDataURL('image/jpeg', JPEG_QUALITY);\n resolve(croppedDataUri);\n } catch (error) {\n reject(new Error(`Failed to process image: ${error.message}`));\n }\n };\n\n img.onerror = () => {\n reject(new Error('Failed to load image from data URI'));\n };\n\n img.src = dataUri;\n });\n\nclass SelfieCaptureScreens extends HTMLElement {\n constructor() {\n super();\n this.activeScreen = null;\n this._remountKey = 0; // Counter for forcing wrapper remounts\n smartCameraWeb?.dispatchEvent(new CustomEvent('metadata.initialize'));\n }\n\n connectedCallback() {\n this.innerHTML = `\n ${styles(this.themeColor)}\n <div style=\"height: 100%;\">\n <selfie-capture-instructions theme-color='${this.themeColor}' ${this.showNavigation} ${this.hideAttribution} ${this.hideBack} hidden></selfie-capture-instructions>\n <selfie-capture-wrapper theme-color='${this.themeColor}' ${this.showNavigation} ${this.allowAgentMode} ${this.allowAgentModeTests} ${this.hideAttribution} ${this.disableImageTests} key=\"${this._remountKey}\" start-countdown=\"false\" hidden></selfie-capture-wrapper>\n <selfie-capture-review theme-color='${this.themeColor}' ${this.showNavigation} ${this.hideAttribution} hidden></selfie-capture-review>\n </div>\n `;\n\n this._data = {\n images: [],\n meta: {\n libraryVersion: COMPONENTS_VERSION,\n },\n };\n this.selfieInstruction = this.querySelector('selfie-capture-instructions');\n this.selfieCapture = this.querySelector('selfie-capture-wrapper');\n this.selfieReview = this.querySelector('selfie-capture-review');\n\n if (\n this.getAttribute('initial-screen') === 'selfie-capture' ||\n this.hideInstructions\n ) {\n this.setActiveScreen(this.selfieCapture);\n } else {\n this.setActiveScreen(this.selfieInstruction);\n }\n\n this.setUpEventListeners();\n }\n\n getAgentMode() {\n return this.inAgentMode ? 'environment' : 'user';\n }\n\n disconnectedCallback() {\n SmartCamera.stopMedia();\n smartCameraWeb?.dispatchEvent(new CustomEvent('metadata.cleanup'));\n\n if (this._selfieWrapperListeners) {\n this._selfieWrapperListeners.forEach(({ event, handler }) => {\n window.removeEventListener(event, handler);\n });\n this._selfieWrapperListeners = null;\n }\n\n if (this.activeScreen) {\n this.activeScreen.removeAttribute('hidden');\n }\n this.activeScreen = null;\n this.innerHTML = '';\n }\n\n setUpEventListeners() {\n this.selfieInstruction.addEventListener(\n 'selfie-capture-instructions.capture',\n async () => {\n this.setActiveScreen(this.selfieCapture);\n },\n );\n this.selfieInstruction.addEventListener(\n 'selfie-capture-instructions.cancelled',\n () => {\n this.handleBackEvents();\n },\n );\n this.setupSelfieWrapperEventListeners();\n\n this.selfieReview.addEventListener(\n 'selfie-capture-review.rejected',\n async () => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-capture-retry'),\n );\n this.selfieReview.removeAttribute('data-image');\n this.selfieReview.removeAttribute('mirror-image');\n this._data.images = [];\n\n await this.forceWrapperRemount();\n\n this.setActiveScreen(this.selfieCapture);\n },\n );\n\n this.selfieReview.addEventListener(\n 'selfie-capture-review.accepted',\n async () => {\n this._publishSelectedImages();\n },\n );\n\n [this.selfieInstruction, this.selfieCapture, this.selfieReview].forEach(\n (screen) => {\n screen.addEventListener(\n `${screen.nodeName.toLowerCase()}.close`,\n () => {\n this.handleCloseEvent();\n },\n );\n },\n );\n }\n\n // Force remount of selfie-capture-wrapper component for clean state\n async forceWrapperRemount() {\n SmartCamera.stopMedia();\n\n this._remountKey++;\n\n const container = this.querySelector('div');\n const oldWrapper = this.selfieCapture;\n\n if (oldWrapper && container) {\n // recreate wrapper element\n const newWrapper = document.createElement('selfie-capture-wrapper');\n\n // copy attributes from old wrapper, but skip key and start-countdown\n const attributesToCopy = Array.from(oldWrapper.attributes);\n\n attributesToCopy.forEach((attr) => {\n newWrapper.setAttribute(attr.name, attr.value);\n });\n oldWrapper.remove();\n await new Promise((resolve) => {\n setTimeout(resolve, 50);\n });\n\n newWrapper.setAttribute('key', this._remountKey.toString());\n newWrapper.setAttribute('start-countdown', 'false');\n newWrapper.setAttribute('hidden', '');\n\n const reviewElement = container.querySelector('selfie-capture-review');\n if (reviewElement) {\n container.insertBefore(newWrapper, reviewElement);\n } else {\n container.appendChild(newWrapper);\n }\n\n this.selfieCapture = newWrapper;\n\n this.setupSelfieWrapperEventListeners();\n }\n\n // give time for the new component to initialize\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve();\n }, 200);\n });\n }\n\n // Override setActiveScreen to enable countdown when selfie-capture is active\n setActiveScreen(screen) {\n if (this.activeScreen === screen) {\n return;\n }\n\n this.activeScreen?.setAttribute('hidden', '');\n screen.removeAttribute('hidden');\n this.activeScreen = screen;\n\n // If activating selfie-capture-wrapper, enable the countdown\n if (screen === this.selfieCapture) {\n screen.setAttribute('start-countdown', 'true');\n } else if (this.selfieCapture) {\n // Disable countdown when not on capture screen\n this.selfieCapture.setAttribute('start-countdown', 'false');\n }\n }\n\n setupSelfieWrapperEventListeners() {\n // Remove existing event listeners if they exist\n if (this._selfieWrapperListeners) {\n this._selfieWrapperListeners.forEach(({ event, handler }) => {\n window.removeEventListener(event, handler);\n });\n }\n\n // Create new event handlers\n const cancelledHandler = async () => {\n SmartCamera.stopMedia();\n\n // Force remount of selfie-capture-wrapper for clean state on next visit\n await this.forceWrapperRemount();\n\n if (this.hideInstructions) {\n this.handleBackEvents();\n return;\n }\n\n this.setActiveScreen(this.selfieInstruction);\n };\n\n const closeHandler = async () => {\n SmartCamera.stopMedia();\n\n // Force remount of selfie-capture-wrapper for clean state on next visit\n await this.forceWrapperRemount();\n\n this.handleCloseEvent();\n };\n\n const publishHandler = async (event) => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-capture-end'),\n );\n this.selfieReview.setAttribute(\n 'data-image',\n await cropImageFromDataUri(event.detail.referenceImage, 20, 20),\n );\n const shouldMirror = event.detail.facingMode === 'user';\n this.selfieReview.setAttribute(\n 'mirror-image',\n shouldMirror ? 'true' : 'false',\n );\n this._data.images = event.detail.images;\n SmartCamera.stopMedia();\n this.setActiveScreen(this.selfieReview);\n };\n\n // Store references to remove them later\n this._selfieWrapperListeners = [\n { event: 'selfie-capture.cancelled', handler: cancelledHandler },\n { event: 'selfie-capture.close', handler: closeHandler },\n { event: 'selfie-capture.publish', handler: publishHandler },\n ];\n\n // Add event listeners\n this._selfieWrapperListeners.forEach(({ event, handler }) => {\n window.addEventListener(event, handler);\n });\n\n // Also listen for the publish event on the parent SelfieCaptureScreens element\n // in case smartselfie-capture dispatches it there\n this.addEventListener('selfie-capture.publish', publishHandler);\n }\n\n _publishSelectedImages() {\n this.dispatchEvent(\n new CustomEvent('selfie-capture-screens.publish', { detail: this._data }),\n );\n }\n\n get hideInstructions() {\n return this.hasAttribute('hide-instructions');\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution') ? 'hide-attribution=\"\"' : '';\n }\n\n get hideBackOfId() {\n return this.hasAttribute('hide-back-of-id');\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation') ? 'show-navigation=\"\"' : '';\n }\n\n get inAgentMode() {\n return this.getAttribute('allow-agent-mode') === 'true';\n }\n\n get allowAgentMode() {\n return this.inAgentMode ? 'allow-agent-mode=\"true\"' : '';\n }\n\n get allowAgentModeTests() {\n return this.hasAttribute('show-agent-mode-for-tests')\n ? 'show-agent-mode-for-tests=\"\"'\n : '';\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back-to-host') ||\n this.hasAttribute('hide-back')\n ? 'hide-back=\"\"'\n : '';\n }\n\n get disableImageTests() {\n return this.hasAttribute('disable-image-tests')\n ? 'disable-image-tests=\"\"'\n : '';\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n handleBackEvents() {\n this.dispatchEvent(new CustomEvent('selfie-capture-screens.cancelled'));\n }\n\n handleCloseEvent() {\n this.dispatchEvent(new CustomEvent('selfie-capture-screens.close'));\n }\n\n static get observedAttributes() {\n return [\n 'title',\n 'hidden',\n 'show-navigation',\n 'hide-back-to-host',\n 'initial-screen',\n 'allow-agent-mode',\n 'show-agent-mode-for-tests',\n 'disable-image-tests',\n ];\n }\n\n attributeChangedCallback(name) {\n switch (name) {\n case 'title':\n case 'hidden':\n case 'initial-screen':\n case 'allow-agent-mode':\n case 'show-agent-mode-for-tests':\n case 'disable-image-tests':\n this.connectedCallback();\n break;\n default:\n break;\n }\n }\n}\n\nif (\n 'customElements' in window &&\n !customElements.get('selfie-capture-screens')\n) {\n customElements.define('selfie-capture-screens', SelfieCaptureScreens);\n}\n\nexport default SelfieCaptureScreens;\n"],"names":["templateString","styles","t","SelfieCaptureInstructions","template","getDirection","SelfieCaptureReview","name","n","l","u","i","o","r","e","f","c","s","a","p","v","y","d","w","g","_","m","k","x","S","C","M","$","O","N","I","h","b","P","B","A","L","D","H","T","j","F","E","V","z","q","G","J","K","defaultAttributes","createPreactComponent","type","iconName","iconNamePascal","iconNode","Component","color","size","stroke","title","children","className","classes","style","rest","tag","attrs","toChildArray","IconLoader2","register","getBoolProp","value","defaultValue","useSignal","useComputed","root","require$$0","now","now_1","reWhitespace","trimmedEndIndex","string","index","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","baseGetTag","isObjectLike","require$$1","symbolTag","isSymbol","isSymbol_1","isObject","require$$2","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","toNumber_1","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1","throttle","throttle_1","useCamera","initialFacingMode","videoRef","useRef","streamRef","facingMode","setFacingMode","useState","agentSupported","setAgentSupported","onCameraSwitchCallbackRef","isSwitchingCameraRef","timeoutIdsRef","registerCameraSwitchCallback","callback","useEffect","video","handleVideoReady","timeoutId","startCamera","targetFacingMode","track","stream","actualFacingMode","videoDevice","device","error","switchCamera","newFacingMode","previousFacingMode","restoreError","detectBrowserEngine","userAgent","isGecko","hasFirefoxFeatures","supportsMozCSS","userCameraId","environmentCameraId","userStream","envStream","R","U","X","W","Y","Z","Q","tt","et","nt","rt","it","st","ot","at","ct","ht","ut","lt","dt","ft","pt","gt","mt","yt","_t","vt","Et","wt","Tt","At","bt","St","Lt","Rt","kt","xt","Ft","It","Mt","Pt","Ct","Ot","Xt","Ut","Dt","Bt","Nt","Gt","jt","Vt","Ht","Wt","zt","Kt","Yt","$t","qt","Jt","Zt","Qt","te","ee","ne","re","ie","se","oe","ae","ce","he","ue","le","de","fe","pe","ge","me","ye","_e","ve","Ee","we","Te","Ae","be","Ce","ke","Se","je","xe","Le","Re","Fe","Ie","Me","Pe","Oe","Ue","De","Ne","Be","Ge","Ve","Xe","He","We","ze","Ke","Ye","$e","qe","pn","Je","Ze","gn","Qe","tn","en","nn","Ts","on","rn","sn","an","cn","hn","un","ln","dn","fn","mn","yn","_n","vn","En","wn","Tn","An","bn","kn","Sn","xn","Ln","Rn","Dn","Fn","In","Mn","Pn","Cn","On","Un","Nn","Bn","Gn","jn","Vn","Xn","Hn","Wn","zn","Kn","Yn","$n","_o","qn","Jn","Zn","Qn","tr","er","nr","rr","ir","sr","or","ar","cr","hr","ur","lr","dr","fr","pr","gr","mr","yr","_r","vr","Er","wr","Tr","Ar","br","Or","kr","Sr","xr","Lr","Rr","Fr","Ir","Mr","Pr","Cr","Ur","Dr","Nr","Br","Gr","jr","Vr","Xr","Hr","Wr","zr","Kr","Yr","$r","qr","Jr","Zr","Qr","ti","ei","ni","ri","ii","si","oi","ai","ci","hi","ui","li","di","fi","pi","gi","mi","yi","_i","vi","Ei","wi","Ti","Ai","bi","ki","Si","xi","Li","Ri","Fi","Ii","Mi","Pi","Ci","Oi","Ui","Di","Ni","Bi","Gi","ji","Vi","Xi","Hi","Wi","zi","Ki","Yi","$i","qi","Ji","Zi","Qi","ts","es","ns","rs","is","ss","os","as","cs","hs","us","ls","ds","fs","ps","gs","ms","ys","_s","vs","Es","ws","As","bs","ks","Ss","xs","Ls","Rs","Fs","Is","Ms","Ps","Cs","Os","Us","Ds","Ns","Bs","Gs","js","Vs","Xs","Hs","Ws","zs","Ks","Ys","$s","qs","Js","Zs","Qs","to","eo","no","ro","io","so","oo","ao","co","ho","uo","lo","fo","po","go","mo","yo","vo","Eo","wo","To","Ao","bo","ko","So","xo","Lo","Ro","Fo","Io","Mo","Po","Co","Oo","Uo","Do","No","Bo","Go","jo","Vo","Xo","Ho","Wo","zo","Ko","Yo","$o","qo","Jo","Zo","Qo","ta","ea","na","ra","ia","sa","oa","aa","ca","ha","ua","la","da","pa","ma","fa","ya","ga","_a","va","Ea","wa","Ta","Aa","ba","ka","Sa","xa","La","Ra","Fa","Ia","Ma","Pa","Oa","Ua","Ca","Da","Na","Ba","Ga","ja","Va","Xa","Ha","Wa","za","Ka","Ya","$a","qa","Ja","Za","Qa","tc","ec","nc","rc","ic","sc","oc","ac","cc","hc","uc","lc","dc","fc","pc","gc","mc","yc","_c","vc","Ec","wc","Tc","Ac","bc","kc","Sc","xc","Lc","Rc","Fc","Ic","Mc","Pc","Cc","Oc","Uc","Dc","Nc","Bc","Gc","jc","Vc","Xc","Hc","Wc","zc","Kc","calculateFaceSize","landmarks","face","minX","maxX","minY","maxY","landmark","faceWidth","faceHeight","isFaceInBounds","videoAspectRatio","ovalCenterX","ovalCenterY","isLandscape","ovalWidth","ovalHeight","faceCenterX","faceCenterY","centerTolerance","centerOvalWidth","centerOvalHeight","centerInBounds","dx","dy","toleranceX","toleranceY","adjustedOvalWidth","adjustedOvalHeight","checkPointInExpandedOval","topLeft","topRight","bottomLeft","bottomRight","calculateMouthOpening","upperLipCenter","lowerLipCenter","mouthHeight","faceTop","createCroppedVideoFrame","videoElement","canvas","ctx","sourceWidth","sourceHeight","squareSize","cropX","cropY","drawFaceMesh","capturesTaken","smileCheckpoint","canvasWidth","canvasHeight","drawingUtils","DrawingUtils","outlineColor","lineWidth","FaceLandmarker","clearCanvas","captureImageFromVideo","isReference","isPortrait","zoomOutFactor","offsetX","offsetY","JPEG_QUALITY","ImageType","MESSAGES","EXCLUDED_DEVICES","isExcludedDeviceUsingHints","model","lowerModel","prefix","hasFP16Support","gl","hasHalfFloatExt","hasHalfFloatLinear","hasColorBufferHalfFloat","getMediapipeInstance","mediapipeGlobal","vision","FilesetResolver","isExcluded","faceLandmarker","COMPONENTS_VERSION","packageJson","useFaceCapture","canvasRef","interval","duration","smileThreshold","mouthOpenThreshold","minFaceSize","maxFaceSize","smileCooldown","getFacingMode","faceLandmarkerRef","animationFrameRef","captureTimerRef","resumeCaptureRef","faceDetected","faceInBounds","faceProximity","multipleFaces","faceLandmarks","currentSmileScore","currentFaceSize","currentMouthOpen","lastSmileTime","alertTitle","isInitializing","isCapturing","isPaused","countdown","capturedImages","referencePhoto","totalCaptures","hasFinishedCapture","neutralZone","isReadyToCapture","updateAlertImmediate","messageKey","updateAlert","initializeFaceLandmarker","setupCanvas","videoWidth","videoHeight","updateCaptureAlerts","isInNeutralZone","isInSmileZone","updateAlerts","stopDetectionLoop","detectFace","croppedCanvas","detectionSource","results","scaleFactor","scaleFactorY","adjustedLandmarks","numFaces","hasFace","faceSize","blendshapes","smileLeft","smileRight","mouthOpen","smileScore","startDetectionLoop","captureImage","imageData","stopCapture","livenessImages","img","referenceImage","eventDetail","pauseCapture","startCaptureInterval","resumeCapture","smartCameraWeb","OvalProgress","progress","themeColor","pathRef","prevProgress","path","pathLength","fromOffset","toOffset","jsx","jsxs","CameraPreview","Fragment","AlertDisplay","CaptureControls","allowAgentMode","showAgentModeForTests","onStartCapture","onSwitchCamera","SmartSelfieCapture","showNavigationProp","allowAgentModeProp","showAgentModeForTestsProp","hideAttributionProp","navigationRef","showNavigation","hideAttribution","camera","throttledMultipleFaces","updateMultipleFacesUI","faceCapture","initializeCamera","cameraName","navigation","handleNavigationBack","handleNavigationClose","DEFAULT_NO_OF_LIVENESS_FRAMES","hasMoreThanNColors","data","colors","getLivenessFramesIndices","totalNoOfFrames","numberOfFramesRequired","selectedFrames","tHtml","frameDivisor","frameInterval","replacementFrameIndex","lastFrameIndex","getPermissions","captureScreen","constraints","SmartCamera","SelfieCaptureScreen","imageOutlineLength","livenessFramesIndices","imageIndex","IMAGE_TYPE","image","enableImageTests","context","videoContainer","videoExists","SelfieCaptureWrapper","timeout","startCountdownProp","hiddenProp","props","isCypress","hidden","startCountdown","mediapipeReady","setMediapipeReady","loadingProgress","setLoadingProgress","initialSessionCompleted","setInitialSessionCompleted","mediapipeLoading","setMediapipeLoading","usingSelfieCapture","setUsingSelfieCapture","timer","prev","selfieCapture","forwardEvent","event","customEvent","propsWithoutHidden","el","cropImageFromDataUri","dataUri","cropPercentX","cropPercentY","resolve","reject","originalWidth","originalHeight","cropAmountX","cropAmountY","newWidth","newHeight","croppedDataUri","SelfieCaptureScreens","handler","screen","container","oldWrapper","newWrapper","attr","reviewElement","cancelledHandler","closeHandler","publishHandler","shouldMirror"],"mappings":"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,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aA4EpC,KAAK,UAAU;AAAA;AAAA;AAAA;AAAA,aAIf,KAAK,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAkCN,KAAK,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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","x_google_ignoreList":[2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,20]}