@tmsoft/webphone 1.1.24 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +144 -165
- package/dist/favicon.ico +0 -0
- package/dist/index.d.ts +2 -68
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/types.d.ts +17 -0
- package/dist/src/components/WebPhone.vue.d.ts +155 -0
- package/dist/webphone.component.js +296 -0
- package/dist/webphone.es.js +18198 -12685
- package/dist/webphone.umd.js +283 -73
- package/package.json +88 -61
- package/dist/webphone-element.umd.js +0 -86
- package/dist/webphone.cjs.js +0 -79
package/dist/webphone.umd.js
CHANGED
|
@@ -1,79 +1,289 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode('@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Quicksand:wght@300..700&display=swap";@layer theme,base,components,utilities;@layer theme{@theme default{ --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-red-50: oklch(97.1% .013 17.38); --color-red-100: oklch(93.6% .032 17.717); --color-red-200: oklch(88.5% .062 18.334); --color-red-300: oklch(80.8% .114 19.571); --color-red-400: oklch(70.4% .191 22.216); --color-red-500: oklch(63.7% .237 25.331); --color-red-600: oklch(57.7% .245 27.325); --color-red-700: oklch(50.5% .213 27.518); --color-red-800: oklch(44.4% .177 26.899); --color-red-900: oklch(39.6% .141 25.723); --color-red-950: oklch(25.8% .092 26.042); --color-orange-50: oklch(98% .016 73.684); --color-orange-100: oklch(95.4% .038 75.164); --color-orange-200: oklch(90.1% .076 70.697); --color-orange-300: oklch(83.7% .128 66.29); --color-orange-400: oklch(75% .183 55.934); --color-orange-500: oklch(70.5% .213 47.604); --color-orange-600: oklch(64.6% .222 41.116); --color-orange-700: oklch(55.3% .195 38.402); --color-orange-800: oklch(47% .157 37.304); --color-orange-900: oklch(40.8% .123 38.172); --color-orange-950: oklch(26.6% .079 36.259); --color-amber-50: oklch(98.7% .022 95.277); --color-amber-100: oklch(96.2% .059 95.617); --color-amber-200: oklch(92.4% .12 95.746); --color-amber-300: oklch(87.9% .169 91.605); --color-amber-400: oklch(82.8% .189 84.429); --color-amber-500: oklch(76.9% .188 70.08); --color-amber-600: oklch(66.6% .179 58.318); --color-amber-700: oklch(55.5% .163 48.998); --color-amber-800: oklch(47.3% .137 46.201); --color-amber-900: oklch(41.4% .112 45.904); --color-amber-950: oklch(27.9% .077 45.635); --color-yellow-50: oklch(98.7% .026 102.212); --color-yellow-100: oklch(97.3% .071 103.193); --color-yellow-200: oklch(94.5% .129 101.54); --color-yellow-300: oklch(90.5% .182 98.111); --color-yellow-400: oklch(85.2% .199 91.936); --color-yellow-500: oklch(79.5% .184 86.047); --color-yellow-600: oklch(68.1% .162 75.834); --color-yellow-700: oklch(55.4% .135 66.442); --color-yellow-800: oklch(47.6% .114 61.907); --color-yellow-900: oklch(42.1% .095 57.708); --color-yellow-950: oklch(28.6% .066 53.813); --color-lime-50: oklch(98.6% .031 120.757); --color-lime-100: oklch(96.7% .067 122.328); --color-lime-200: oklch(93.8% .127 124.321); --color-lime-300: oklch(89.7% .196 126.665); --color-lime-400: oklch(84.1% .238 128.85); --color-lime-500: oklch(76.8% .233 130.85); --color-lime-600: oklch(64.8% .2 131.684); --color-lime-700: oklch(53.2% .157 131.589); --color-lime-800: oklch(45.3% .124 130.933); --color-lime-900: oklch(40.5% .101 131.063); --color-lime-950: oklch(27.4% .072 132.109); --color-green-50: oklch(98.2% .018 155.826); --color-green-100: oklch(96.2% .044 156.743); --color-green-200: oklch(92.5% .084 155.995); --color-green-300: oklch(87.1% .15 154.449); --color-green-400: oklch(79.2% .209 151.711); --color-green-500: oklch(72.3% .219 149.579); --color-green-600: oklch(62.7% .194 149.214); --color-green-700: oklch(52.7% .154 150.069); --color-green-800: oklch(44.8% .119 151.328); --color-green-900: oklch(39.3% .095 152.535); --color-green-950: oklch(26.6% .065 152.934); --color-emerald-50: oklch(97.9% .021 166.113); --color-emerald-100: oklch(95% .052 163.051); --color-emerald-200: oklch(90.5% .093 164.15); --color-emerald-300: oklch(84.5% .143 164.978); --color-emerald-400: oklch(76.5% .177 163.223); --color-emerald-500: oklch(69.6% .17 162.48); --color-emerald-600: oklch(59.6% .145 163.225); --color-emerald-700: oklch(50.8% .118 165.612); --color-emerald-800: oklch(43.2% .095 166.913); --color-emerald-900: oklch(37.8% .077 168.94); --color-emerald-950: oklch(26.2% .051 172.552); --color-teal-50: oklch(98.4% .014 180.72); --color-teal-100: oklch(95.3% .051 180.801); --color-teal-200: oklch(91% .096 180.426); --color-teal-300: oklch(85.5% .138 181.071); --color-teal-400: oklch(77.7% .152 181.912); --color-teal-500: oklch(70.4% .14 182.503); --color-teal-600: oklch(60% .118 184.704); --color-teal-700: oklch(51.1% .096 186.391); --color-teal-800: oklch(43.7% .078 188.216); --color-teal-900: oklch(38.6% .063 188.416); --color-teal-950: oklch(27.7% .046 192.524); --color-cyan-50: oklch(98.4% .019 200.873); --color-cyan-100: oklch(95.6% .045 203.388); --color-cyan-200: oklch(91.7% .08 205.041); --color-cyan-300: oklch(86.5% .127 207.078); --color-cyan-400: oklch(78.9% .154 211.53); --color-cyan-500: oklch(71.5% .143 215.221); --color-cyan-600: oklch(60.9% .126 221.723); --color-cyan-700: oklch(52% .105 223.128); --color-cyan-800: oklch(45% .085 224.283); --color-cyan-900: oklch(39.8% .07 227.392); --color-cyan-950: oklch(30.2% .056 229.695); --color-sky-50: oklch(97.7% .013 236.62); --color-sky-100: oklch(95.1% .026 236.824); --color-sky-200: oklch(90.1% .058 230.902); --color-sky-300: oklch(82.8% .111 230.318); --color-sky-400: oklch(74.6% .16 232.661); --color-sky-500: oklch(68.5% .169 237.323); --color-sky-600: oklch(58.8% .158 241.966); --color-sky-700: oklch(50% .134 242.749); --color-sky-800: oklch(44.3% .11 240.79); --color-sky-900: oklch(39.1% .09 240.876); --color-sky-950: oklch(29.3% .066 243.157); --color-blue-50: oklch(97% .014 254.604); --color-blue-100: oklch(93.2% .032 255.585); --color-blue-200: oklch(88.2% .059 254.128); --color-blue-300: oklch(80.9% .105 251.813); --color-blue-400: oklch(70.7% .165 254.624); --color-blue-500: oklch(62.3% .214 259.815); --color-blue-600: oklch(54.6% .245 262.881); --color-blue-700: oklch(48.8% .243 264.376); --color-blue-800: oklch(42.4% .199 265.638); --color-blue-900: oklch(37.9% .146 265.522); --color-blue-950: oklch(28.2% .091 267.935); --color-indigo-50: oklch(96.2% .018 272.314); --color-indigo-100: oklch(93% .034 272.788); --color-indigo-200: oklch(87% .065 274.039); --color-indigo-300: oklch(78.5% .115 274.713); --color-indigo-400: oklch(67.3% .182 276.935); --color-indigo-500: oklch(58.5% .233 277.117); --color-indigo-600: oklch(51.1% .262 276.966); --color-indigo-700: oklch(45.7% .24 277.023); --color-indigo-800: oklch(39.8% .195 277.366); --color-indigo-900: oklch(35.9% .144 278.697); --color-indigo-950: oklch(25.7% .09 281.288); --color-violet-50: oklch(96.9% .016 293.756); --color-violet-100: oklch(94.3% .029 294.588); --color-violet-200: oklch(89.4% .057 293.283); --color-violet-300: oklch(81.1% .111 293.571); --color-violet-400: oklch(70.2% .183 293.541); --color-violet-500: oklch(60.6% .25 292.717); --color-violet-600: oklch(54.1% .281 293.009); --color-violet-700: oklch(49.1% .27 292.581); --color-violet-800: oklch(43.2% .232 292.759); --color-violet-900: oklch(38% .189 293.745); --color-violet-950: oklch(28.3% .141 291.089); --color-purple-50: oklch(97.7% .014 308.299); --color-purple-100: oklch(94.6% .033 307.174); --color-purple-200: oklch(90.2% .063 306.703); --color-purple-300: oklch(82.7% .119 306.383); --color-purple-400: oklch(71.4% .203 305.504); --color-purple-500: oklch(62.7% .265 303.9); --color-purple-600: oklch(55.8% .288 302.321); --color-purple-700: oklch(49.6% .265 301.924); --color-purple-800: oklch(43.8% .218 303.724); --color-purple-900: oklch(38.1% .176 304.987); --color-purple-950: oklch(29.1% .149 302.717); --color-fuchsia-50: oklch(97.7% .017 320.058); --color-fuchsia-100: oklch(95.2% .037 318.852); --color-fuchsia-200: oklch(90.3% .076 319.62); --color-fuchsia-300: oklch(83.3% .145 321.434); --color-fuchsia-400: oklch(74% .238 322.16); --color-fuchsia-500: oklch(66.7% .295 322.15); --color-fuchsia-600: oklch(59.1% .293 322.896); --color-fuchsia-700: oklch(51.8% .253 323.949); --color-fuchsia-800: oklch(45.2% .211 324.591); --color-fuchsia-900: oklch(40.1% .17 325.612); --color-fuchsia-950: oklch(29.3% .136 325.661); --color-pink-50: oklch(97.1% .014 343.198); --color-pink-100: oklch(94.8% .028 342.258); --color-pink-200: oklch(89.9% .061 343.231); --color-pink-300: oklch(82.3% .12 346.018); --color-pink-400: oklch(71.8% .202 349.761); --color-pink-500: oklch(65.6% .241 354.308); --color-pink-600: oklch(59.2% .249 .584); --color-pink-700: oklch(52.5% .223 3.958); --color-pink-800: oklch(45.9% .187 3.815); --color-pink-900: oklch(40.8% .153 2.432); --color-pink-950: oklch(28.4% .109 3.907); --color-rose-50: oklch(96.9% .015 12.422); --color-rose-100: oklch(94.1% .03 12.58); --color-rose-200: oklch(89.2% .058 10.001); --color-rose-300: oklch(81% .117 11.638); --color-rose-400: oklch(71.2% .194 13.428); --color-rose-500: oklch(64.5% .246 16.439); --color-rose-600: oklch(58.6% .253 17.585); --color-rose-700: oklch(51.4% .222 16.935); --color-rose-800: oklch(45.5% .188 13.697); --color-rose-900: oklch(41% .159 10.272); --color-rose-950: oklch(27.1% .105 12.094); --color-slate-50: oklch(98.4% .003 247.858); --color-slate-100: oklch(96.8% .007 247.896); --color-slate-200: oklch(92.9% .013 255.508); --color-slate-300: oklch(86.9% .022 252.894); --color-slate-400: oklch(70.4% .04 256.788); --color-slate-500: oklch(55.4% .046 257.417); --color-slate-600: oklch(44.6% .043 257.281); --color-slate-700: oklch(37.2% .044 257.287); --color-slate-800: oklch(27.9% .041 260.031); --color-slate-900: oklch(20.8% .042 265.755); --color-slate-950: oklch(12.9% .042 264.695); --color-gray-50: oklch(98.5% .002 247.839); --color-gray-100: oklch(96.7% .003 264.542); --color-gray-200: oklch(92.8% .006 264.531); --color-gray-300: oklch(87.2% .01 258.338); --color-gray-400: oklch(70.7% .022 261.325); --color-gray-500: oklch(55.1% .027 264.364); --color-gray-600: oklch(44.6% .03 256.802); --color-gray-700: oklch(37.3% .034 259.733); --color-gray-800: oklch(27.8% .033 256.848); --color-gray-900: oklch(21% .034 264.665); --color-gray-950: oklch(13% .028 261.692); --color-zinc-50: oklch(98.5% 0 0); --color-zinc-100: oklch(96.7% .001 286.375); --color-zinc-200: oklch(92% .004 286.32); --color-zinc-300: oklch(87.1% .006 286.286); --color-zinc-400: oklch(70.5% .015 286.067); --color-zinc-500: oklch(55.2% .016 285.938); --color-zinc-600: oklch(44.2% .017 285.786); --color-zinc-700: oklch(37% .013 285.805); --color-zinc-800: oklch(27.4% .006 286.033); --color-zinc-900: oklch(21% .006 285.885); --color-zinc-950: oklch(14.1% .005 285.823); --color-neutral-50: oklch(98.5% 0 0); --color-neutral-100: oklch(97% 0 0); --color-neutral-200: oklch(92.2% 0 0); --color-neutral-300: oklch(87% 0 0); --color-neutral-400: oklch(70.8% 0 0); --color-neutral-500: oklch(55.6% 0 0); --color-neutral-600: oklch(43.9% 0 0); --color-neutral-700: oklch(37.1% 0 0); --color-neutral-800: oklch(26.9% 0 0); --color-neutral-900: oklch(20.5% 0 0); --color-neutral-950: oklch(14.5% 0 0); --color-stone-50: oklch(98.5% .001 106.423); --color-stone-100: oklch(97% .001 106.424); --color-stone-200: oklch(92.3% .003 48.717); --color-stone-300: oklch(86.9% .005 56.366); --color-stone-400: oklch(70.9% .01 56.259); --color-stone-500: oklch(55.3% .013 58.071); --color-stone-600: oklch(44.4% .011 73.639); --color-stone-700: oklch(37.4% .01 67.558); --color-stone-800: oklch(26.8% .007 34.298); --color-stone-900: oklch(21.6% .006 56.043); --color-stone-950: oklch(14.7% .004 49.25); --color-black: #000; --color-white: #fff; --spacing: .25rem; --breakpoint-sm: 40rem; --breakpoint-md: 48rem; --breakpoint-lg: 64rem; --breakpoint-xl: 80rem; --breakpoint-2xl: 96rem; --container-3xs: 16rem; --container-2xs: 18rem; --container-xs: 20rem; --container-sm: 24rem; --container-md: 28rem; --container-lg: 32rem; --container-xl: 36rem; --container-2xl: 42rem; --container-3xl: 48rem; --container-4xl: 56rem; --container-5xl: 64rem; --container-6xl: 72rem; --container-7xl: 80rem; --text-xs: .75rem; --text-xs--line-height: calc(1 / .75); --text-sm: .875rem; --text-sm--line-height: calc(1.25 / .875); --text-base: 1rem; --text-base--line-height: 1.5 ; --text-lg: 1.125rem; --text-lg--line-height: calc(1.75 / 1.125); --text-xl: 1.25rem; --text-xl--line-height: calc(1.75 / 1.25); --text-2xl: 1.5rem; --text-2xl--line-height: calc(2 / 1.5); --text-3xl: 1.875rem; --text-3xl--line-height: 1.2 ; --text-4xl: 2.25rem; --text-4xl--line-height: calc(2.5 / 2.25); --text-5xl: 3rem; --text-5xl--line-height: 1; --text-6xl: 3.75rem; --text-6xl--line-height: 1; --text-7xl: 4.5rem; --text-7xl--line-height: 1; --text-8xl: 6rem; --text-8xl--line-height: 1; --text-9xl: 8rem; --text-9xl--line-height: 1; --font-weight-thin: 100; --font-weight-extralight: 200; --font-weight-light: 300; --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --font-weight-extrabold: 800; --font-weight-black: 900; --tracking-tighter: -.05em; --tracking-tight: -.025em; --tracking-normal: 0em; --tracking-wide: .025em; --tracking-wider: .05em; --tracking-widest: .1em; --leading-tight: 1.25; --leading-snug: 1.375; --leading-normal: 1.5; --leading-relaxed: 1.625; --leading-loose: 2; --radius-xs: .125rem; --radius-sm: .25rem; --radius-md: .375rem; --radius-lg: .5rem; --radius-xl: .75rem; --radius-2xl: 1rem; --radius-3xl: 1.5rem; --radius-4xl: 2rem; --shadow-2xs: 0 1px rgb(0 0 0 / .05); --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05); --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1); --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1); --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25); --inset-shadow-2xs: inset 0 1px rgb(0 0 0 / .05); --inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / .05); --inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / .05); --drop-shadow-xs: 0 1px 1px rgb(0 0 0 / .05); --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / .15); --drop-shadow-md: 0 3px 3px rgb(0 0 0 / .12); --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / .15); --drop-shadow-xl: 0 9px 7px rgb(0 0 0 / .1); --drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / .15); --text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / .15); --text-shadow-xs: 0px 1px 1px rgb(0 0 0 / .2); --text-shadow-sm: 0px 1px 0px rgb(0 0 0 / .075), 0px 1px 1px rgb(0 0 0 / .075), 0px 2px 2px rgb(0 0 0 / .075); --text-shadow-md: 0px 1px 1px rgb(0 0 0 / .1), 0px 1px 2px rgb(0 0 0 / .1), 0px 2px 4px rgb(0 0 0 / .1); --text-shadow-lg: 0px 1px 2px rgb(0 0 0 / .1), 0px 3px 2px rgb(0 0 0 / .1), 0px 4px 8px rgb(0 0 0 / .1); --ease-in: cubic-bezier(.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, .2, 1); --ease-in-out: cubic-bezier(.4, 0, .2, 1); --animate-spin: spin 1s linear infinite; --animate-ping: ping 1s cubic-bezier(0, 0, .2, 1) infinite; --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite; --animate-bounce: bounce 1s infinite; @keyframes spin { to { transform: rotate(360deg); } } @keyframes ping { 75%, 100% { transform: scale(2); opacity: 0; } } @keyframes pulse { 50% { opacity: .5; } } @keyframes bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(.8, 0, 1, 1); } 50% { transform: none; animation-timing-function: cubic-bezier(0, 0, .2, 1); } } --blur-xs: 4px; --blur-sm: 8px; --blur-md: 12px; --blur-lg: 16px; --blur-xl: 24px; --blur-2xl: 40px; --blur-3xl: 64px; --perspective-dramatic: 100px; --perspective-near: 300px; --perspective-normal: 500px; --perspective-midrange: 800px; --perspective-distant: 1200px; --aspect-video: 16 / 9; --default-transition-duration: .15s; --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1); --default-font-family: --theme(--font-sans, initial); --default-font-feature-settings: --theme( --font-sans--font-feature-settings, initial ); --default-font-variation-settings: --theme( --font-sans--font-variation-settings, initial ); --default-mono-font-family: --theme(--font-mono, initial); --default-mono-font-feature-settings: --theme( --font-mono--font-feature-settings, initial ); --default-mono-font-variation-settings: --theme( --font-mono--font-variation-settings, initial ); }@theme default inline reference{ --blur: 8px; --shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1); --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / .05); --drop-shadow: 0 1px 2px rgb(0 0 0 / .1), 0 1px 1px rgb(0 0 0 / .06); --radius: .25rem; --max-width-prose: 65ch; }}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:--theme(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:--theme(--default-font-feature-settings,normal);font-variation-settings:--theme(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:--theme(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:--theme(--default-mono-font-feature-settings,normal);font-variation-settings:--theme(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{@tailwind utilities;}:root{--webphone-tooltip-padding: .2rem .75rem !important;--primary-color: var(--p-primary-color,#3b82f6);--success-color: #22c55e;--info-color: #60a5fa;--warning-color: #facc15;--danger-color: #ef4444;--powered-by-color: #789f29;--background-color: #ffffff;--foreground-color: #1f2937;--shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1)}@media (prefers-color-scheme: dark){:root{--primary-color: var(--p-primary-color,#60a5fa);--success-color: #4ade80;--info-color: #93c5fd;--warning-color: #fde047;--danger-color: #f87171;--powered-by-color: #8bc72c;--background-color: #262626;--foreground-color: #e5e5e5}}html.dark{--primary-color: var(--p-primary-color,#60a5fa);--success-color: #4ade80;--info-color: #93c5fd;--warning-color: #fde047;--danger-color: #f87171;--powered-by-color: #8bc72c;--background-color: #262626;--foreground-color: #e5e5e5}body{font-family:Quicksand!important}.p-tooltip-text{padding:.2rem .75rem!important;font-size:.75rem!important}.ui-button[data-v-b6b849e6]{--_pad-y: .5rem;--_pad-x: .75rem;--_fs: 1rem;--_lh: 1.5;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:12px;background:var(--primary-color);color:color-mix(in srgb,var(--background-color) 96%,var(--foreground-color));padding:var(--_pad-y) var(--_pad-x);font-size:var(--_fs);line-height:var(--_lh);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform 80ms ease}.ui-button[data-v-b6b849e6]:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.ui-button[data-v-b6b849e6]:active{transform:translateY(.5px)}.ui-button--small[data-v-b6b849e6]{--_pad-y: .375rem;--_pad-x: .625rem;--_fs: .875rem;--_lh: 1.35;border-radius:10px}.ui-button--large[data-v-b6b849e6]{--_pad-y: .625rem;--_pad-x: 1rem;--_fs: 1.125rem;--_lh: 1.55;border-radius:14px}.ui-button--rounded[data-v-b6b849e6]{border-radius:9999px}.ui-button--primary[data-v-b6b849e6]{background:var(--primary-color);color:color-mix(in srgb,var(--background-color) 96%,var(--foreground-color))}.ui-button--success[data-v-b6b849e6]{background:var(--success-color);color:color-mix(in srgb,var(--background-color) 96%,var(--foreground-color))}.ui-button--danger[data-v-b6b849e6]{background:var(--danger-color);color:color-mix(in srgb,var(--background-color) 96%,var(--foreground-color))}.ui-button--warn[data-v-b6b849e6]{background:var(--warning-color);color:#212121}.ui-button--contrast[data-v-b6b849e6]{background:color-mix(in srgb,var(--foreground-color) 88%,var(--background-color));color:color-mix(in srgb,var(--background-color) 96%,var(--foreground-color))}.ui-button--outlined[data-v-b6b849e6]{background:transparent;color:var(--primary-color);border-color:color-mix(in srgb,var(--primary-color) 65%,transparent)}.ui-button--outlined[data-v-b6b849e6]:hover{background:color-mix(in srgb,var(--primary-color) 12%,transparent)}.ui-button--outlined.ui-button--success[data-v-b6b849e6]{color:var(--success-color);border-color:color-mix(in srgb,var(--success-color) 65%,transparent)}.ui-button--outlined.ui-button--danger[data-v-b6b849e6]{color:var(--danger-color);border-color:color-mix(in srgb,var(--danger-color) 65%,transparent)}.ui-button--outlined.ui-button--warn[data-v-b6b849e6]{color:var(--warning-color);border-color:color-mix(in srgb,var(--warning-color) 65%,transparent)}.ui-button--outlined.ui-button--contrast[data-v-b6b849e6]{color:color-mix(in srgb,var(--foreground-color) 88%,var(--background-color));border-color:color-mix(in srgb,var(--foreground-color) 50%,var(--background-color))}.ui-button--text[data-v-b6b849e6]{background:transparent;border-color:transparent;color:var(--primary-color)}.ui-button--text[data-v-b6b849e6]:hover{background:color-mix(in srgb,var(--primary-color) 12%,transparent)}.ui-button--text.ui-button--success[data-v-b6b849e6]{color:var(--success-color)}.ui-button--text.ui-button--success[data-v-b6b849e6]:hover{background:color-mix(in srgb,var(--success-color) 12%,transparent)}.ui-button--text.ui-button--danger[data-v-b6b849e6]{color:var(--danger-color)}.ui-button--text.ui-button--danger[data-v-b6b849e6]:hover{background:color-mix(in srgb,var(--danger-color) 12%,transparent)}.ui-button--text.ui-button--warn[data-v-b6b849e6]{color:var(--warning-color)}.ui-button--text.ui-button--warn[data-v-b6b849e6]:hover{background:color-mix(in srgb,var(--warning-color) 12%,transparent)}.ui-button--text.ui-button--contrast[data-v-b6b849e6]{color:color-mix(in srgb,var(--foreground-color) 88%,var(--background-color))}.ui-button--text.ui-button--contrast[data-v-b6b849e6]:hover{background:color-mix(in srgb,var(--foreground-color) 12%,var(--background-color))}.ui-button--disabled[data-v-b6b849e6],.ui-button[data-v-b6b849e6]:disabled{opacity:.5;cursor:not-allowed}.ui-button--loading[data-v-b6b849e6]{pointer-events:none}.ui-button__icon[data-v-b6b849e6]{font-size:1em;line-height:1}.ui-button__label[data-v-b6b849e6]{line-height:1}.ui-button__spinner[data-v-b6b849e6]{width:1em;height:1em;border-radius:50%;border:2px solid color-mix(in srgb,var(--background-color) 75%,var(--foreground-color));border-top-color:currentColor;animation:ui-btn-spin-b6b849e6 .8s linear infinite}@keyframes ui-btn-spin-b6b849e6{to{transform:rotate(360deg)}}.ui-input__control[data-v-24a9df02]{display:block;width:100%;box-sizing:border-box;background-color:var(--background-color);color:var(--foreground-color);border:1px solid color-mix(in srgb,var(--foreground-color) 18%,var(--background-color));border-radius:8px;outline:none;font-size:1rem;line-height:1.5;padding:.5rem .75rem;transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease,color .14s ease}.ui-input__control[data-v-24a9df02]::placeholder{color:color-mix(in srgb,var(--foreground-color) 45%,var(--background-color))}.ui-input__control[data-v-24a9df02]:hover{border-color:color-mix(in srgb,var(--foreground-color) 26%,var(--background-color))}.ui-input__control[data-v-24a9df02]:focus{border-color:var(--primary-color);box-shadow:0 0 color-mix(in srgb,var(--primary-color) 20%,transparent)}.ui-input__control[data-v-24a9df02]:disabled{opacity:.5;cursor:not-allowed}@media (prefers-reduced-motion: reduce){.ui-input__control[data-v-24a9df02]{transition:none}}.ui-input--small>.ui-input__control[data-v-24a9df02]{font-size:.75rem;line-height:1.4;padding:.375rem .625rem}.ui-input--medium>.ui-input__control[data-v-24a9df02]{font-size:1rem;line-height:1.5;padding:.5rem .75rem}.ui-input--large>.ui-input__control[data-v-24a9df02]{font-size:1.125rem;line-height:1.55;padding:.625rem .875rem}.ui-input--invalid>.ui-input__control[data-v-24a9df02]{border-color:var(--danger-color)}.ui-input--invalid>.ui-input__control[data-v-24a9df02]:focus{border-color:var(--danger-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger-color) 22%,transparent)}.ui-dialog-fade-enter-active[data-v-3828feea],.ui-dialog-fade-leave-active[data-v-3828feea]{transition:opacity .15s ease}.ui-dialog-fade-enter-from[data-v-3828feea],.ui-dialog-fade-leave-to[data-v-3828feea]{opacity:0}@media (prefers-reduced-motion: reduce){.ui-dialog-fade-enter-active[data-v-3828feea],.ui-dialog-fade-leave-active[data-v-3828feea]{transition:none}}.ui-dialog__wrapper[data-v-3828feea]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:grid;place-items:center}.ui-dialog__overlay[data-v-3828feea]{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--foreground-color) 25%,transparent);-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}.ui-dialog__panel[data-v-3828feea]{position:relative;max-width:min(720px,92vw);max-height:88vh;overflow:auto;background:var(--background-color);color:var(--foreground-color);border:1px solid color-mix(in srgb,var(--foreground-color) 12%,var(--background-color));border-radius:12px;box-shadow:var(--shadow-md);outline:none;transform:translateY(0);transition:box-shadow .15s ease,transform .15s ease,background-color .15s ease,color .15s ease}.ui-dialog__close[data-v-3828feea]{margin-left:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;cursor:pointer;width:28px;height:28px;border-radius:9999px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1;color:color-mix(in srgb,var(--foreground-color) 70%,var(--background-color));transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.ui-dialog__close[data-v-3828feea]:hover{background-color:color-mix(in srgb,var(--primary-color) 18%,transparent);color:color-mix(in srgb,var(--foreground-color) 88%,var(--background-color))}.ui-dialog__close[data-v-3828feea]:active{background-color:color-mix(in srgb,var(--primary-color) 26%,transparent);transform:translateY(.5px)}.ui-dialog__close[data-v-3828feea]:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 28%,transparent)}.webphone__dialog-header[data-v-3828feea]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:none;background:transparent}.webphone__dialog-content[data-v-3828feea]{padding:1rem}.ui-dialog__footer[data-v-3828feea]{padding:.75rem 1rem;border-top:1px solid color-mix(in srgb,var(--foreground-color) 12%,var(--background-color));background:color-mix(in srgb,var(--background-color) 96%,var(--foreground-color))}.ui-select-fade-enter-active[data-v-466603ac],.ui-select-fade-leave-active[data-v-466603ac]{transition:opacity .12s ease}.ui-select-fade-enter-from[data-v-466603ac],.ui-select-fade-leave-to[data-v-466603ac]{opacity:0}.ui-select[data-v-466603ac]{display:inline-block;width:100%;position:relative}.ui-select--small[data-v-466603ac]{--_fs: .75rem;--_lh: 1.4;--_py: .375rem;--_px: .625rem}.ui-select--medium[data-v-466603ac]{--_fs: 1rem;--_lh: 1.5;--_py: .5rem;--_px: .75rem}.ui-select--large[data-v-466603ac]{--_fs: 1.125rem;--_lh: 1.55;--_py: .625rem;--_px: .875rem}.ui-select--disabled .ui-select__trigger[data-v-466603ac]{cursor:not-allowed;opacity:.5}.ui-select--invalid .ui-select__trigger[data-v-466603ac]{border-color:var(--danger-color)}.ui-select--invalid .ui-select__trigger[data-v-466603ac]:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger-color) 22%,transparent)}.ui-select__trigger[data-v-466603ac]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:var(--background-color);color:var(--foreground-color);border:1px solid color-mix(in srgb,var(--foreground-color) 18%,var(--background-color));border-radius:8px;outline:none;font-size:var(--_fs, 1rem);line-height:var(--_lh, 1.5);padding:var(--_py, .5rem) var(--_px, .75rem);transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease,color .14s ease}.ui-select__trigger[data-v-466603ac]:hover{border-color:color-mix(in srgb,var(--foreground-color) 26%,var(--background-color))}.ui-select__trigger[data-v-466603ac]:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 20%,transparent)}.ui-select__value[data-v-466603ac]{min-width:0;flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-select__value[data-placeholder=true][data-v-466603ac]{color:color-mix(in srgb,var(--foreground-color) 45%,var(--background-color))}.ui-select__icon[data-v-466603ac]{flex:0 0 auto;font-size:.9em;color:color-mix(in srgb,var(--foreground-color) 60%,var(--background-color));transition:transform .14s ease,color .14s ease}.ui-select--open .ui-select__icon[data-v-466603ac]{transform:rotate(180deg)}.ui-select__dropdown[data-v-466603ac]{margin-top:.25rem;max-height:240px;overflow:auto;list-style:none;padding:.25rem 0;background:var(--background-color);color:var(--foreground-color);border:1px solid color-mix(in srgb,var(--foreground-color) 18%,var(--background-color));border-radius:8px;box-shadow:var(--shadow-md)}.ui-select__option[data-v-466603ac]{padding:.5rem .75rem;cursor:pointer;transition:background-color .14s ease,color .14s ease}.ui-select__option[data-active=true][data-v-466603ac]{background:color-mix(in srgb,var(--foreground-color) 8%,var(--background-color))}.ui-select__option[data-selected=true][data-v-466603ac]{background:color-mix(in srgb,var(--primary-color) 15%,transparent);color:color-mix(in srgb,var(--foreground-color) 90%,var(--background-color))}.ui-slider[data-v-b2990b36]{width:100%}.ui-slider--small[data-v-b2990b36]{--slider-track-height: .25rem;--slider-thumb-size: .875rem}.ui-slider--medium[data-v-b2990b36]{--slider-track-height: .375rem;--slider-thumb-size: 1rem}.ui-slider--large[data-v-b2990b36]{--slider-track-height: .5rem;--slider-thumb-size: 1.25rem}.ui-slider--disabled[data-v-b2990b36]{opacity:.5;cursor:not-allowed}.ui-slider__control[data-v-b2990b36]{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;outline:none;height:var(--slider-thumb-size);cursor:pointer}.ui-slider__control[data-v-b2990b36]::-webkit-slider-runnable-track{height:var(--slider-track-height);border-radius:9999px;background:linear-gradient(to right,var(--primary-color) 0%,var(--primary-color) calc((var(--val, 0) - var(--min, 0)) / (var(--max, 100) - var(--min, 0)) * 100%),color-mix(in srgb,var(--foreground-color) 18%,var(--background-color)) calc((var(--val, 0) - var(--min, 0)) / (var(--max, 100) - var(--min, 0)) * 100%),color-mix(in srgb,var(--foreground-color) 18%,var(--background-color)) 100%)}.ui-slider__control[data-v-b2990b36]::-moz-range-track{height:var(--slider-track-height);border-radius:9999px;background:color-mix(in srgb,var(--foreground-color) 18%,var(--background-color))}.ui-slider__control[data-v-b2990b36]::-moz-range-progress{height:var(--slider-track-height);border-radius:9999px;background:var(--primary-color)}.ui-slider__control[data-v-b2990b36]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:var(--slider-thumb-size);height:var(--slider-thumb-size);border-radius:9999px;background:var(--primary-color);border:2px solid color-mix(in srgb,var(--foreground-color) 35%,var(--background-color));margin-top:calc((var(--slider-track-height) - var(--slider-thumb-size)) / 2);transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,border-color .12s ease}.ui-slider__control[data-v-b2990b36]:hover::-webkit-slider-thumb{transform:scale(1.06)}.ui-slider__control[data-v-b2990b36]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary-color) 25%,transparent)}.ui-slider__control[data-v-b2990b36]::-moz-range-thumb{width:var(--slider-thumb-size);height:var(--slider-thumb-size);border-radius:9999px;background:var(--primary-color);border:2px solid color-mix(in srgb,var(--foreground-color) 35%,var(--background-color));transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,border-color .12s ease}.ui-slider__control[data-v-b2990b36]:hover::-moz-range-thumb{transform:scale(1.06)}.ui-slider__control[data-v-b2990b36]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary-color) 25%,transparent)}.ui-slider--disabled .ui-slider__control[data-v-b2990b36]{cursor:not-allowed}.ui-slider--disabled .ui-slider__control[data-v-b2990b36]::-webkit-slider-thumb,.ui-slider--disabled .ui-slider__control[data-v-b2990b36]::-moz-range-thumb{cursor:not-allowed}@media (prefers-reduced-motion: reduce){.ui-slider__control[data-v-b2990b36]::-webkit-slider-thumb,.ui-slider__control[data-v-b2990b36]::-moz-range-thumb{transition:none}}.webphone-settings__icon[data-v-b3baf713]{width:1.25rem;height:1.25rem;cursor:pointer;color:var(--p-primary-color, var(--fallback-primary-color))!important}.webphone-settings__content[data-v-b3baf713]{max-width:20rem;width:100%;margin-top:.5rem;display:flex;flex-direction:column;gap:1rem}.webphone-settings__group[data-v-b3baf713]{display:flex;flex-direction:column;gap:.5rem}.webphone-settings__label[data-v-b3baf713]{display:block;font-size:.875rem;line-height:1.25rem;font-weight:500}.webphone-settings__select[data-v-b3baf713]{max-width:20rem;width:100%;color:#111827;font-size:.875rem;line-height:1.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.webphone-settings__select-value[data-v-b3baf713],.webphone-settings__select-option[data-v-b3baf713]{display:flex;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.webphone-settings__option-label[data-v-b3baf713]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.webphone-settings__version[data-v-b3baf713]{text-align:center}.webphone-settings__version-text[data-v-b3baf713]{font-size:.875rem;line-height:1.25rem}.webphone-settings__switch-group[data-v-b3baf713]{flex-direction:row;align-items:center;justify-content:space-between}.webphone-settings__switch-info[data-v-b3baf713]{display:flex;flex-direction:column;gap:.25rem}.webphone-settings__description[data-v-b3baf713]{font-size:.75rem;color:color-mix(in srgb,var(--foreground-color) 70%,transparent);line-height:1.2}.webphone-settings__switch-container[data-v-b3baf713]{position:relative;display:inline-block}.webphone-settings__switch[data-v-b3baf713]{opacity:0;width:0;height:0}.webphone-settings__switch:checked+.webphone-settings__switch-label .webphone-settings__switch-slider[data-v-b3baf713]{background-color:var(--primary-color, #2563eb)}.webphone-settings__switch:checked+.webphone-settings__switch-label .webphone-settings__switch-slider[data-v-b3baf713]:before{transform:translate(1.25rem)}.webphone-settings__switch-label[data-v-b3baf713]{position:relative;display:inline-block;width:2.5rem;height:1.25rem;cursor:pointer}.webphone-settings__switch-slider[data-v-b3baf713]{position:absolute;top:0;left:0;right:0;bottom:0;background-color:color-mix(in srgb,var(--foreground-color) 20%,transparent);border-radius:1.25rem;transition:all .2s ease}.webphone-settings__switch-slider[data-v-b3baf713]:before{content:"";position:absolute;height:1rem;width:1rem;left:.125rem;bottom:.125rem;background-color:#fff;border-radius:50%;transition:all .2s ease}.channel-tabs[data-v-5495654d]{margin-bottom:.5rem}.channel-tabs-header[data-v-5495654d]{display:flex;justify-content:center;gap:.25rem;padding:.25rem;background-color:color-mix(in srgb,var(--foreground-color) 8%,var(--background-color));border-radius:.5rem}.channel-tab[data-v-5495654d]{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:var(--background-color);color:var(--foreground-color);cursor:pointer;border-radius:.375rem;transition:all .2s cubic-bezier(.4,0,.2,1);font-size:.8rem;font-weight:600;min-width:3.5rem;justify-content:center;-webkit-backdrop-filter:none;backdrop-filter:none}.channel-tab[data-v-5495654d]:hover:not(.channel-tab--active){background:color-mix(in srgb,var(--primary-color) 10%,var(--background-color));color:var(--foreground-color);transform:translateY(-1px)}.channel-tab--active[data-v-5495654d]{background:var(--primary-color);color:#fff;font-weight:700}.channel-tab--active[data-v-5495654d]:hover{background:color-mix(in srgb,var(--primary-color) 85%,black);color:#fff;transform:translateY(-1px)}.channel-tab--in-use[data-v-5495654d]:not(.channel-tab--active){background:color-mix(in srgb,var(--success-color) 15%,var(--background-color));color:var(--success-color);font-weight:600}.channel-tab--in-use[data-v-5495654d]:not(.channel-tab--active):hover{background:color-mix(in srgb,var(--success-color) 18%,var(--background-color));color:var(--success-color);transform:translateY(-1px)}.channel-tab--on-hold[data-v-5495654d]:not(.channel-tab--active){background:color-mix(in srgb,var(--warning-color) 15%,var(--background-color));color:color-mix(in srgb,var(--warning-color) 85%,black);font-weight:600}.channel-tab--on-hold[data-v-5495654d]:not(.channel-tab--active):hover{background:color-mix(in srgb,var(--warning-color) 18%,var(--background-color));color:color-mix(in srgb,var(--warning-color) 80%,black);transform:translateY(-1px)}.channel-indicator[data-v-5495654d]{width:.5rem;height:.5rem;border-radius:50%;background-color:color-mix(in srgb,var(--foreground-color) 50%,transparent);transition:all .2s ease}.indicator--in-call[data-v-5495654d]{background-color:var(--success-color)}.indicator--on-hold[data-v-5495654d]{background-color:var(--warning-color)}.indicator--available[data-v-5495654d]{background-color:transparent}.indicator--unavailable[data-v-5495654d]{background-color:var(--danger-color)}.channel-label[data-v-5495654d]{font-size:.75rem;font-weight:600;line-height:1}.channel-content[data-v-5495654d]{display:block}.channel-panel[data-v-5495654d]{width:100%}@media (prefers-color-scheme: dark){.channel-tab--active[data-v-5495654d],.channel-tab--active[data-v-5495654d]:hover{color:#000}.channel-tab--on-hold[data-v-5495654d]:not(.channel-tab--active){color:var(--warning-color)}.channel-tab--on-hold[data-v-5495654d]:not(.channel-tab--active):hover{color:var(--warning-color)}}.dark{color:#000}.dark{color:var(--warning-color)}.video-call-overlay[data-v-a47d404d]{position:fixed;width:400px;background:#000;border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #0000004d;border:2px solid rgba(255,255,255,.1);-webkit-user-select:none;user-select:none;cursor:move;z-index:9999}.video-call-overlay__remote-container[data-v-a47d404d]{position:relative;width:100%;height:300px;background:#000}.video-call-overlay__remote-video[data-v-a47d404d]{width:100%;height:100%;object-fit:cover;background:#000}.video-call-overlay__remote-video--minimized[data-v-a47d404d]{height:100px}.video-call-overlay__controls[data-v-a47d404d]{position:absolute;top:8px;right:8px;display:flex;gap:4px}.video-call-overlay__control-btn[data-v-a47d404d]{width:32px;height:32px;border:none;border-radius:6px;background:#000000b3;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background-color .2s}.video-call-overlay__control-btn[data-v-a47d404d]:hover{background:#000000e6}.video-call-overlay__control-btn--close[data-v-a47d404d]{background:#dc2626cc}.video-call-overlay__control-btn--close[data-v-a47d404d]:hover{background:#dc2626}.video-call-overlay__local-container[data-v-a47d404d]{position:absolute;bottom:12px;right:12px;width:120px;height:90px;border-radius:8px;overflow:hidden;border:2px solid rgba(255,255,255,.3)}.video-call-overlay__local-video[data-v-a47d404d]{width:100%;height:100%;object-fit:cover;background:#000}.video-call-overlay__info[data-v-a47d404d]{position:absolute;bottom:12px;left:12px;background:#000000b3;color:#fff;padding:6px 12px;border-radius:6px;font-size:12px;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.video-call-overlay[data-v-a47d404d]{width:90vw;max-width:350px}.video-call-overlay__remote-container[data-v-a47d404d]{height:250px}.video-call-overlay__local-container[data-v-a47d404d]{width:80px;height:60px;bottom:8px;right:8px}}.webphone-container[data-v-b0d7e139]{position:relative;min-width:15rem;max-width:15rem;height:100%;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.25rem;border-radius:.75rem;background-color:var(--background-color);color:var(--foreground-color);box-shadow:var(--shadow-md)}[data-v-b0d7e139]:root{--background-color: #ffffff;--foreground-color: #333333;--primary-color: #007bff;--success-color: #28a745;--danger-color: #dc3545;--warning-color: #ffc107;--info-color: #17a2b8;--muted-color: #6c757d;--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06)}@media (prefers-color-scheme: dark){[data-v-b0d7e139]:root{--background-color: #1a1a1a;--foreground-color: #ffffff;--primary-color: #0d6efd;--success-color: #198754;--danger-color: #dc3545;--warning-color: #ffc107;--info-color: #0dcaf0;--muted-color: #adb5bd;--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -1px rgba(0, 0, 0, .2)}}.webphone__media--hidden[data-v-b0d7e139]{display:none}.webphone__header[data-v-b0d7e139]{width:100%;border-radius:.5rem;display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}.webphone__viewer[data-v-b0d7e139]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem}.webphone__webcall-header[data-v-b0d7e139]{display:flex;flex-direction:row;width:100%;justify-content:center;align-items:center}.webphone__webcall-title[data-v-b0d7e139]{border:1px solid var(--primary-color);border-radius:.5rem;width:100%;padding:.1rem;display:flex;justify-content:center;flex-direction:row;gap:.2rem;color:var(--primary-color)}.webphone__webcall-title-text[data-v-b0d7e139]{width:.9rem;height:.9rem}.webphone__logo-container[data-v-b0d7e139]{position:relative;display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem}.webphone__logo[data-v-b0d7e139]{width:3.5rem;height:auto;position:relative;z-index:10}.webphone__title[data-v-b0d7e139]{color:var(--primary-color);padding:.1rem;width:100%;text-align:center;font-size:.9rem;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:.2rem}.webphone__extension[data-v-b0d7e139],.webphone__call-duration-container[data-v-b0d7e139]{width:100%;padding:.1rem;display:flex;justify-content:center;align-items:center;flex-direction:row;gap:.2rem}.webphone__extension-icon[data-v-b0d7e139],.webphone__call-duration-icon[data-v-b0d7e139]{width:1.2rem;height:1.2rem}.webphone__extension-number[data-v-b0d7e139]{font-size:1.125rem;line-height:1.5rem}.webphone__call-duration[data-v-b0d7e139]{font-size:1.25rem;line-height:1.75rem}.webphone__status-message[data-v-b0d7e139]{font-size:.8rem;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.2rem}.webphone__transcript[data-v-b0d7e139]{margin-top:.25rem;width:100%;max-height:40vh;overflow:auto;font-size:.8rem;line-height:1.15rem;padding:.5rem;border:1px solid color-mix(in srgb,var(--primary-color) 28%,var(--background-color));border-radius:.5rem;white-space:pre-wrap;background:transparent}.webphone__transcript--list[data-v-b0d7e139]{display:flex;flex-direction:column;gap:.5rem}.webphone__transcript__item[data-v-b0d7e139]{display:flex}.webphone__transcript__bubble[data-v-b0d7e139]{max-width:100%;padding:.45rem .6rem;background:color-mix(in srgb,var(--primary-color) 12%,transparent);border:1px solid color-mix(in srgb,var(--primary-color) 28%,var(--background-color));border-radius:.6rem;box-shadow:none}.webphone__transcript__toolbar[data-v-b0d7e139]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;gap:.5rem}.webphone__transcript__toolbar--actions[data-v-b0d7e139]{justify-content:flex-end}.webphone__permission-denied[data-v-b0d7e139]{margin-top:.2rem}.webphone__permission-icon[data-v-b0d7e139]{width:.8rem;height:.8rem;margin-right:.2rem}.webphone__input-container[data-v-b0d7e139]{display:flex;flex-direction:row;gap:1rem;align-items:center;justify-content:space-between}.webphone__input[data-v-b0d7e139]{width:100%}.webphone__numpad[data-v-b0d7e139]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:.8rem;row-gap:.4rem;width:fit-content;justify-content:space-between;margin-top:.4rem;margin-bottom:.4rem}.webphone__numpad-button[data-v-b0d7e139]{border-radius:9999px;width:1.8rem;height:1.8rem;padding:0!important;margin-left:.2rem;margin-right:.2rem;color:var(--primary-color)!important;font-size:1.125rem!important;line-height:1.5rem!important}.webphone__controls[data-v-b0d7e139]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;width:fit-content;justify-content:space-between;margin-top:.4rem;margin-bottom:.4rem}.webphone__control-wrapper[data-v-b0d7e139]{display:flex;justify-content:center;align-items:center}.webphone__control-button[data-v-b0d7e139]{width:2.25rem!important;height:2.25rem!important;padding:0!important}.webphone__control-button--delete[data-v-b0d7e139]{width:2rem!important;height:2rem!important;padding:0!important}.webphone__icon--mute[data-v-b0d7e139]{color:var(--primary-color)!important}.webphone__icon--call[data-v-b0d7e139]{color:var(--success-color)}.webphone__icon--hangup[data-v-b0d7e139]{color:var(--danger-color)}.webphone__icon--sparkles[data-v-b0d7e139]{width:1rem;height:1rem;color:var(--primary-color)}.webphone__icon--sparkles.is-active[data-v-b0d7e139]{filter:drop-shadow(0 0 2px color-mix(in srgb,var(--primary-color) 40%,transparent))}.webphone__icon--settings[data-v-b0d7e139]{width:1rem;height:1rem;color:var(--primary-color)}.webphone__transcript-toggle[data-v-b0d7e139]{padding:0 .25rem!important;height:1.5rem!important;display:inline-flex;align-items:center;justify-content:center}.webphone__transcript-toggle--header[data-v-b0d7e139]{position:absolute;right:.3rem;top:50%;transform:translateY(-50%);z-index:1}.webphone__powered-by[data-v-b0d7e139]{color:var(--powered-by-color);display:flex;column-gap:.2rem;justify-content:center;align-items:center;text-decoration:none}.webphone__powered-by-icon[data-v-b0d7e139]{width:1rem;height:1rem}.webphone__powered-by-text[data-v-b0d7e139]{text-align:center;font-size:9px}.webphone__numpad-toggle-btn[data-v-b0d7e139]{width:2.5rem;height:2.5rem;display:inline-flex;align-items:center;justify-content:center}.webphone__numpad-toggle-icon[data-v-b0d7e139]{width:1.5rem;height:1.5rem}.webphone__numpad-toggle-icon--on[data-v-b0d7e139]{color:var(--primary-color)}.webphone__extension-icon.status-active[data-v-b0d7e139],.webphone__extension-number.status-active[data-v-b0d7e139],.webphone__call-duration-icon.status-active[data-v-b0d7e139],.webphone__call-duration.status-active[data-v-b0d7e139],.webphone__status-message.status-active[data-v-b0d7e139]{color:var(--success-color)}.webphone__extension-icon.status-ringing[data-v-b0d7e139],.webphone__extension-number.status-ringing[data-v-b0d7e139],.webphone__call-duration-icon.status-ringing[data-v-b0d7e139],.webphone__call-duration.status-ringing[data-v-b0d7e139],.webphone__status-message.status-ringing[data-v-b0d7e139]{color:var(--info-color)}.webphone__extension-icon.status-incoming[data-v-b0d7e139],.webphone__extension-number.status-incoming[data-v-b0d7e139],.webphone__call-duration-icon.status-incoming[data-v-b0d7e139],.webphone__call-duration.status-incoming[data-v-b0d7e139],.webphone__status-message.status-incoming[data-v-b0d7e139]{color:var(--warning-color)}.webphone__extension-icon.status-inactive[data-v-b0d7e139],.webphone__extension-number.status-inactive[data-v-b0d7e139],.webphone__call-duration-icon.status-inactive[data-v-b0d7e139],.webphone__call-duration.status-inactive[data-v-b0d7e139],.webphone__status-message.status-inactive[data-v-b0d7e139]{color:var(--danger-color)}.webphone__icon--camera[data-v-b0d7e139]{width:1.5rem;height:1.5rem}')),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
|
|
2
|
-
(function(KA,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["exports","vue","@vueuse/core"],s):(KA=typeof globalThis<"u"?globalThis:KA||self,s(KA.WebPhone={},KA.Vue,KA.VueUse))})(this,function(KA,s,he){"use strict";var Qo=Object.defineProperty;var Bo=(KA,s,he)=>s in KA?Qo(KA,s,{enumerable:!0,configurable:!0,writable:!0,value:he}):KA[s]=he;var BA=(KA,s,he)=>Bo(KA,typeof s!="symbol"?s+"":s,he);const jt={title:"JsSIP",version:"3.10.1"};var We,Ht;function UA(){if(Ht)return We;Ht=1;var k=jt;return We={USER_AGENT:"".concat(k.title," ").concat(k.version),SIP:"sip",SIPS:"sips",causes:{CONNECTION_ERROR:"Connection Error",REQUEST_TIMEOUT:"Request Timeout",SIP_FAILURE_CODE:"SIP Failure Code",INTERNAL_ERROR:"Internal Error",BUSY:"Busy",REJECTED:"Rejected",REDIRECTED:"Redirected",UNAVAILABLE:"Unavailable",NOT_FOUND:"Not Found",ADDRESS_INCOMPLETE:"Address Incomplete",INCOMPATIBLE_SDP:"Incompatible SDP",MISSING_SDP:"Missing SDP",AUTHENTICATION_ERROR:"Authentication Error",BYE:"Terminated",WEBRTC_ERROR:"WebRTC Error",CANCELED:"Canceled",NO_ANSWER:"No Answer",EXPIRES:"Expires",NO_ACK:"No ACK",DIALOG_ERROR:"Dialog Error",USER_DENIED_MEDIA_ACCESS:"User Denied Media Access",BAD_MEDIA_DESCRIPTION:"Bad Media Description",RTP_TIMEOUT:"RTP Timeout"},SIP_ERROR_CAUSES:{REDIRECTED:[300,301,302,305,380],BUSY:[486,600],REJECTED:[403,603],NOT_FOUND:[404,604],UNAVAILABLE:[480,410,408,430],ADDRESS_INCOMPLETE:[484,424],INCOMPATIBLE_SDP:[488,606],AUTHENTICATION_ERROR:[401,407]},ACK:"ACK",BYE:"BYE",CANCEL:"CANCEL",INFO:"INFO",INVITE:"INVITE",MESSAGE:"MESSAGE",NOTIFY:"NOTIFY",OPTIONS:"OPTIONS",REGISTER:"REGISTER",REFER:"REFER",UPDATE:"UPDATE",SUBSCRIBE:"SUBSCRIBE",DTMF_TRANSPORT:{INFO:"INFO",RFC2833:"RFC2833"},REASON_PHRASE:{100:"Trying",180:"Ringing",181:"Call Is Being Forwarded",182:"Queued",183:"Session Progress",199:"Early Dialog Terminated",200:"OK",202:"Accepted",204:"No Notification",300:"Multiple Choices",301:"Moved Permanently",302:"Moved Temporarily",305:"Use Proxy",380:"Alternative Service",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",410:"Gone",412:"Conditional Request Failed",413:"Request Entity Too Large",414:"Request-URI Too Long",415:"Unsupported Media Type",416:"Unsupported URI Scheme",417:"Unknown Resource-Priority",420:"Bad Extension",421:"Extension Required",422:"Session Interval Too Small",423:"Interval Too Brief",424:"Bad Location Information",428:"Use Identity Header",429:"Provide Referrer Identity",430:"Flow Failed",433:"Anonymity Disallowed",436:"Bad Identity-Info",437:"Unsupported Certificate",438:"Invalid Identity Header",439:"First Hop Lacks Outbound Support",440:"Max-Breadth Exceeded",469:"Bad Info Package",470:"Consent Needed",478:"Unresolvable Destination",480:"Temporarily Unavailable",481:"Call/Transaction Does Not Exist",482:"Loop Detected",483:"Too Many Hops",484:"Address Incomplete",485:"Ambiguous",486:"Busy Here",487:"Request Terminated",488:"Not Acceptable Here",489:"Bad Event",491:"Request Pending",493:"Undecipherable",494:"Security Agreement Required",500:"JsSIP Internal Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Server Time-out",505:"Version Not Supported",513:"Message Too Large",580:"Precondition Failure",600:"Busy Everywhere",603:"Decline",604:"Does Not Exist Anywhere",606:"Not Acceptable"},ALLOWED_METHODS:"INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY",ACCEPTED_BODY_TYPES:"application/sdp, application/dtmf-relay",MAX_FORWARDS:69,SESSION_EXPIRES:90,MIN_SESSION_EXPIRES:60,CONNECTION_RECOVERY_MAX_INTERVAL:30,CONNECTION_RECOVERY_MIN_INTERVAL:2},We}var je,Pt;function se(){if(Pt)return je;Pt=1;function k(D){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(G){return typeof G}:k=function(G){return G&&typeof Symbol=="function"&&G.constructor===Symbol&&G!==Symbol.prototype?"symbol":typeof G},k(D)}function p(D,m){if(!(D instanceof m))throw new TypeError("Cannot call a class as a function")}function h(D,m){if(typeof m!="function"&&m!==null)throw new TypeError("Super expression must either be null or a function");D.prototype=Object.create(m&&m.prototype,{constructor:{value:D,writable:!0,configurable:!0}}),m&&q(D,m)}function r(D){var m=T();return function(){var O=o(D),I;if(m){var C=o(this).constructor;I=Reflect.construct(O,arguments,C)}else I=O.apply(this,arguments);return M(this,I)}}function M(D,m){return m&&(k(m)==="object"||typeof m=="function")?m:Q(D)}function Q(D){if(D===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return D}function e(D){var m=typeof Map=="function"?new Map:void 0;return e=function(O){if(O===null||!l(O))return O;if(typeof O!="function")throw new TypeError("Super expression must either be null or a function");if(typeof m<"u"){if(m.has(O))return m.get(O);m.set(O,I)}function I(){return S(O,arguments,o(this).constructor)}return I.prototype=Object.create(O.prototype,{constructor:{value:I,enumerable:!1,writable:!0,configurable:!0}}),q(I,O)},e(D)}function S(D,m,G){return T()?S=Reflect.construct:S=function(I,C,B){var Y=[null];Y.push.apply(Y,C);var w=Function.bind.apply(I,Y),v=new w;return B&&q(v,B.prototype),v},S.apply(null,arguments)}function T(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function l(D){return Function.toString.call(D).indexOf("[native code]")!==-1}function q(D,m){return q=Object.setPrototypeOf||function(O,I){return O.__proto__=I,O},q(D,m)}function o(D){return o=Object.setPrototypeOf?Object.getPrototypeOf:function(G){return G.__proto__||Object.getPrototypeOf(G)},o(D)}var c=function(D){h(G,D);var m=r(G);function G(O,I){var C;return p(this,G),C=m.call(this),C.code=1,C.name="CONFIGURATION_ERROR",C.parameter=O,C.value=I,C.message=C.value?"Invalid value ".concat(JSON.stringify(C.value),' for parameter "').concat(C.parameter,'"'):"Missing parameter: ".concat(C.parameter),C}return G}(e(Error)),f=function(D){h(G,D);var m=r(G);function G(O){var I;return p(this,G),I=m.call(this),I.code=2,I.name="INVALID_STATE_ERROR",I.status=O,I.message="Invalid status: ".concat(O),I}return G}(e(Error)),W=function(D){h(G,D);var m=r(G);function G(O){var I;return p(this,G),I=m.call(this),I.code=3,I.name="NOT_SUPPORTED_ERROR",I.message=O,I}return G}(e(Error)),x=function(D){h(G,D);var m=r(G);function G(O){var I;return p(this,G),I=m.call(this),I.code=4,I.name="NOT_READY_ERROR",I.message=O,I}return G}(e(Error));return je={ConfigurationError:c,InvalidStateError:f,NotSupportedError:W,NotReadyError:x},je}var kA={},He,zt;function Pe(){if(zt)return He;zt=1;function k(Q,e){if(!(Q instanceof e))throw new TypeError("Cannot call a class as a function")}function p(Q,e){for(var S=0;S<e.length;S++){var T=e[S];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(Q,T.key,T)}}function h(Q,e,S){return e&&p(Q.prototype,e),S&&p(Q,S),Q}var r=oe(),M=zA();return He=function(){h(Q,null,[{key:"parse",value:function(S){if(S=M.parse(S,"Name_Addr_Header"),S!==-1)return S}}]);function Q(e,S,T){if(k(this,Q),!e||!(e instanceof r))throw new TypeError('missing or invalid "uri" parameter');this._uri=e,this._parameters={},this.display_name=S;for(var l in T)Object.prototype.hasOwnProperty.call(T,l)&&this.setParam(l,T[l])}return h(Q,[{key:"setParam",value:function(S,T){S&&(this._parameters[S.toLowerCase()]=typeof T>"u"||T===null?null:T.toString())}},{key:"getParam",value:function(S){if(S)return this._parameters[S.toLowerCase()]}},{key:"hasParam",value:function(S){if(S)return this._parameters.hasOwnProperty(S.toLowerCase())&&!0||!1}},{key:"deleteParam",value:function(S){if(S=S.toLowerCase(),this._parameters.hasOwnProperty(S)){var T=this._parameters[S];return delete this._parameters[S],T}}},{key:"clearParams",value:function(){this._parameters={}}},{key:"clone",value:function(){return new Q(this._uri.clone(),this._display_name,JSON.parse(JSON.stringify(this._parameters)))}},{key:"_quote",value:function(S){return S.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}},{key:"toString",value:function(){var S=this._display_name?'"'.concat(this._quote(this._display_name),'" '):"";S+="<".concat(this._uri.toString(),">");for(var T in this._parameters)Object.prototype.hasOwnProperty.call(this._parameters,T)&&(S+=";".concat(T),this._parameters[T]!==null&&(S+="=".concat(this._parameters[T])));return S}},{key:"uri",get:function(){return this._uri}},{key:"display_name",get:function(){return this._display_name},set:function(S){this._display_name=S===0?"0":S}}]),Q}(),He}var ze,Xt;function zA(){return Xt||(Xt=1,ze=function(){function k(h){return'"'+h.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\x08/g,"\\b").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\f/g,"\\f").replace(/\r/g,"\\r").replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape)+'"'}var p={parse:function(r,M){var Q={CRLF:q,DIGIT:o,ALPHA:c,HEXDIG:f,WSP:W,OCTET:x,DQUOTE:D,SP:m,HTAB:G,alphanum:O,reserved:I,unreserved:C,mark:B,escaped:Y,LWS:w,SWS:v,HCOLON:P,TEXT_UTF8_TRIM:F,TEXT_UTF8char:U,UTF8_NONASCII:L,UTF8_CONT:g,LHEX:d,token:b,token_nodot:R,separators:j,word:H,STAR:J,SLASH:u,EQUAL:E,LPAREN:K,RPAREN:Z,RAQUOT:X,LAQUOT:z,COMMA:$,SEMI:eA,COLON:nA,LDQUOT:lA,RDQUOT:rA,comment:hA,ctext:IA,quoted_string:EA,quoted_string_clean:sA,qdtext:qA,quoted_pair:cA,SIP_URI_noparams:gA,SIP_URI:pA,uri_scheme:yA,uri_scheme_sips:mA,uri_scheme_sip:FA,userinfo:wA,user:WA,user_unreserved:jA,password:SA,hostport:LA,host:JA,hostname:ae,domainlabel:ne,toplabel:XA,IPv6reference:re,IPv6address:_A,h16:iA,ls32:YA,IPv4address:le,dec_octet:HA,port:ue,uri_parameters:qe,uri_parameter:oA,transport_param:VA,user_param:TA,method_param:RA,ttl_param:dA,maddr_param:DA,lr_param:vA,other_param:NA,pname:Qe,pvalue:ge,paramchar:ce,param_unreserved:aA,headers:CA,header:PA,hname:xA,hvalue:pe,hnv_unreserved:me,Request_Response:js,Request_Line:Hn,Request_URI:Pn,absoluteURI:kt,hier_part:zn,net_path:Xn,abs_path:Be,opaque_part:_n,uric:Ee,uric_no_slash:$n,path_segments:Ar,segment:be,param:vt,pchar:Se,scheme:er,authority:tr,srvr:nr,reg_name:rr,query:lr,SIP_Version:Ut,INVITEm:ir,ACKm:sr,OPTIONSm:or,BYEm:ar,CANCELm:ur,REGISTERm:qr,SUBSCRIBEm:cr,NOTIFYm:Vr,REFERm:fr,Method:Ye,Status_Line:hr,Status_Code:gr,extension_code:dr,Reason_Phrase:Cr,Allow_Events:Hs,Call_ID:Ps,Contact:zs,contact_param:De,name_addr:Ve,display_name:Oe,contact_params:Qt,c_p_q:Ir,c_p_expires:pr,delta_seconds:fe,qvalue:mr,generic_param:QA,gen_value:Er,Content_Disposition:Xs,disp_type:Sr,disp_param:Bt,handling_param:yr,Content_Encoding:_s,Content_Length:$s,Content_Type:Ao,media_type:Tr,m_type:wr,discrete_type:Mr,composite_type:Rr,extension_token:Ge,x_token:kr,m_subtype:vr,m_parameter:bt,m_value:Ur,CSeq:eo,CSeq_value:Qr,Expires:to,Event:no,event_type:ye,From:ro,from_param:Yt,tag_param:Dt,Max_Forwards:lo,Min_Expires:io,Name_Addr_Header:so,Proxy_Authenticate:oo,challenge:Ot,other_challenge:Br,auth_param:Te,digest_cln:Je,realm:br,realm_value:Yr,domain:Dr,URI:xe,nonce:Or,nonce_value:Gr,opaque:Jr,stale:xr,algorithm:Kr,qop_options:Fr,qop_value:Ke,Proxy_Require:ao,Record_Route:uo,rec_route:Fe,Reason:qo,reason_param:Gt,reason_cause:Lr,Require:co,Route:Vo,route_param:Le,Subscription_State:fo,substate_value:Nr,subexp_params:Jt,event_reason_value:Zr,Subject:ho,Supported:go,To:Co,to_param:xt,Via:Io,via_param:Ne,via_params:Kt,via_ttl:Wr,via_maddr:jr,via_received:Hr,via_branch:Pr,response_port:zr,rport:Xr,sent_protocol:_r,protocol_name:$r,transport:Al,sent_by:el,via_host:tl,via_port:nl,ttl:Ft,WWW_Authenticate:po,Session_Expires:mo,s_e_expires:rl,s_e_params:Lt,s_e_refresher:ll,extension_header:Eo,header_value:il,message_body:So,uuid_URI:yo,uuid:sl,hex4:ie,hex8:ol,hex12:al,Refer_To:To,Replaces:wo,call_id:ul,replaces_param:Nt,to_tag:ql,from_tag:cl,early_flag:Vl};if(M!==void 0){if(Q[M]===void 0)throw new Error("Invalid rule name: "+k(M)+".")}else M="CRLF";var e=0,S=0,T=[];function l(A){e<S||(e>S&&(S=e,T=[]),T.push(A))}function q(){var A;return r.substr(e,2)===`\r
|
|
3
|
-
`?(A=`\r
|
|
4
|
-
`,e+=2):(A=null,l('"\\r\\n"')),A}function o(){var A;return/^[0-9]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[0-9]")),A}function c(){var A;return/^[a-zA-Z]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[a-zA-Z]")),A}function f(){var A;return/^[0-9a-fA-F]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[0-9a-fA-F]")),A}function W(){var A;return A=m(),A===null&&(A=G()),A}function x(){var A;return/^[\0-\xFF]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[\\0-\\xFF]")),A}function D(){var A;return/^["]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l('["]')),A}function m(){var A;return r.charCodeAt(e)===32?(A=" ",e++):(A=null,l('" "')),A}function G(){var A;return r.charCodeAt(e)===9?(A=" ",e++):(A=null,l('"\\t"')),A}function O(){var A;return/^[a-zA-Z0-9]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[a-zA-Z0-9]")),A}function I(){var A;return r.charCodeAt(e)===59?(A=";",e++):(A=null,l('";"')),A===null&&(r.charCodeAt(e)===47?(A="/",e++):(A=null,l('"/"')),A===null&&(r.charCodeAt(e)===63?(A="?",e++):(A=null,l('"?"')),A===null&&(r.charCodeAt(e)===58?(A=":",e++):(A=null,l('":"')),A===null&&(r.charCodeAt(e)===64?(A="@",e++):(A=null,l('"@"')),A===null&&(r.charCodeAt(e)===38?(A="&",e++):(A=null,l('"&"')),A===null&&(r.charCodeAt(e)===61?(A="=",e++):(A=null,l('"="')),A===null&&(r.charCodeAt(e)===43?(A="+",e++):(A=null,l('"+"')),A===null&&(r.charCodeAt(e)===36?(A="$",e++):(A=null,l('"$"')),A===null&&(r.charCodeAt(e)===44?(A=",",e++):(A=null,l('","'))))))))))),A}function C(){var A;return A=O(),A===null&&(A=B()),A}function B(){var A;return r.charCodeAt(e)===45?(A="-",e++):(A=null,l('"-"')),A===null&&(r.charCodeAt(e)===95?(A="_",e++):(A=null,l('"_"')),A===null&&(r.charCodeAt(e)===46?(A=".",e++):(A=null,l('"."')),A===null&&(r.charCodeAt(e)===33?(A="!",e++):(A=null,l('"!"')),A===null&&(r.charCodeAt(e)===126?(A="~",e++):(A=null,l('"~"')),A===null&&(r.charCodeAt(e)===42?(A="*",e++):(A=null,l('"*"')),A===null&&(r.charCodeAt(e)===39?(A="'",e++):(A=null,l(`"'"`)),A===null&&(r.charCodeAt(e)===40?(A="(",e++):(A=null,l('"("')),A===null&&(r.charCodeAt(e)===41?(A=")",e++):(A=null,l('")"')))))))))),A}function Y(){var A,t,n,i,a;return i=e,a=e,r.charCodeAt(e)===37?(A="%",e++):(A=null,l('"%"')),A!==null?(t=f(),t!==null?(n=f(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){return y.join("")}(i,A)),A===null&&(e=i),A}function w(){var A,t,n,i,a,V;for(i=e,a=e,V=e,A=[],t=W();t!==null;)A.push(t),t=W();if(A!==null?(t=q(),t!==null?A=[A,t]:(A=null,e=V)):(A=null,e=V),A=A!==null?A:"",A!==null){if(n=W(),n!==null)for(t=[];n!==null;)t.push(n),n=W();else t=null;t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A!==null&&(A=function(y){return" "}()),A===null&&(e=i),A}function v(){var A;return A=w(),A=A!==null?A:"",A}function P(){var A,t,n,i,a;for(i=e,a=e,A=[],t=m(),t===null&&(t=G());t!==null;)A.push(t),t=m(),t===null&&(t=G());return A!==null?(r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=v(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V){return":"}()),A===null&&(e=i),A}function F(){var A,t,n,i,a,V,y;if(a=e,V=e,t=U(),t!==null)for(A=[];t!==null;)A.push(t),t=U();else A=null;if(A!==null){for(t=[],y=e,n=[],i=w();i!==null;)n.push(i),i=w();for(n!==null?(i=U(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);n!==null;){for(t.push(n),y=e,n=[],i=w();i!==null;)n.push(i),i=w();n!==null?(i=U(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y)}t!==null?A=[A,t]:(A=null,e=V)}else A=null,e=V;return A!==null&&(A=function(_){return r.substring(e,_)}(a)),A===null&&(e=a),A}function U(){var A;return/^[!-~]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[!-~]")),A===null&&(A=L()),A}function L(){var A;return/^[\x80-\uFFFF]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[\\x80-\\uFFFF]")),A}function g(){var A;return/^[\x80-\xBF]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[\\x80-\\xBF]")),A}function d(){var A;return A=o(),A===null&&(/^[a-f]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[a-f]"))),A}function b(){var A,t,n;if(n=e,t=O(),t===null&&(r.charCodeAt(e)===45?(t="-",e++):(t=null,l('"-"')),t===null&&(r.charCodeAt(e)===46?(t=".",e++):(t=null,l('"."')),t===null&&(r.charCodeAt(e)===33?(t="!",e++):(t=null,l('"!"')),t===null&&(r.charCodeAt(e)===37?(t="%",e++):(t=null,l('"%"')),t===null&&(r.charCodeAt(e)===42?(t="*",e++):(t=null,l('"*"')),t===null&&(r.charCodeAt(e)===95?(t="_",e++):(t=null,l('"_"')),t===null&&(r.charCodeAt(e)===43?(t="+",e++):(t=null,l('"+"')),t===null&&(r.charCodeAt(e)===96?(t="`",e++):(t=null,l('"`"')),t===null&&(r.charCodeAt(e)===39?(t="'",e++):(t=null,l(`"'"`)),t===null&&(r.charCodeAt(e)===126?(t="~",e++):(t=null,l('"~"')))))))))))),t!==null)for(A=[];t!==null;)A.push(t),t=O(),t===null&&(r.charCodeAt(e)===45?(t="-",e++):(t=null,l('"-"')),t===null&&(r.charCodeAt(e)===46?(t=".",e++):(t=null,l('"."')),t===null&&(r.charCodeAt(e)===33?(t="!",e++):(t=null,l('"!"')),t===null&&(r.charCodeAt(e)===37?(t="%",e++):(t=null,l('"%"')),t===null&&(r.charCodeAt(e)===42?(t="*",e++):(t=null,l('"*"')),t===null&&(r.charCodeAt(e)===95?(t="_",e++):(t=null,l('"_"')),t===null&&(r.charCodeAt(e)===43?(t="+",e++):(t=null,l('"+"')),t===null&&(r.charCodeAt(e)===96?(t="`",e++):(t=null,l('"`"')),t===null&&(r.charCodeAt(e)===39?(t="'",e++):(t=null,l(`"'"`)),t===null&&(r.charCodeAt(e)===126?(t="~",e++):(t=null,l('"~"'))))))))))));else A=null;return A!==null&&(A=function(i){return r.substring(e,i)}(n)),A===null&&(e=n),A}function R(){var A,t,n;if(n=e,t=O(),t===null&&(r.charCodeAt(e)===45?(t="-",e++):(t=null,l('"-"')),t===null&&(r.charCodeAt(e)===33?(t="!",e++):(t=null,l('"!"')),t===null&&(r.charCodeAt(e)===37?(t="%",e++):(t=null,l('"%"')),t===null&&(r.charCodeAt(e)===42?(t="*",e++):(t=null,l('"*"')),t===null&&(r.charCodeAt(e)===95?(t="_",e++):(t=null,l('"_"')),t===null&&(r.charCodeAt(e)===43?(t="+",e++):(t=null,l('"+"')),t===null&&(r.charCodeAt(e)===96?(t="`",e++):(t=null,l('"`"')),t===null&&(r.charCodeAt(e)===39?(t="'",e++):(t=null,l(`"'"`)),t===null&&(r.charCodeAt(e)===126?(t="~",e++):(t=null,l('"~"'))))))))))),t!==null)for(A=[];t!==null;)A.push(t),t=O(),t===null&&(r.charCodeAt(e)===45?(t="-",e++):(t=null,l('"-"')),t===null&&(r.charCodeAt(e)===33?(t="!",e++):(t=null,l('"!"')),t===null&&(r.charCodeAt(e)===37?(t="%",e++):(t=null,l('"%"')),t===null&&(r.charCodeAt(e)===42?(t="*",e++):(t=null,l('"*"')),t===null&&(r.charCodeAt(e)===95?(t="_",e++):(t=null,l('"_"')),t===null&&(r.charCodeAt(e)===43?(t="+",e++):(t=null,l('"+"')),t===null&&(r.charCodeAt(e)===96?(t="`",e++):(t=null,l('"`"')),t===null&&(r.charCodeAt(e)===39?(t="'",e++):(t=null,l(`"'"`)),t===null&&(r.charCodeAt(e)===126?(t="~",e++):(t=null,l('"~"')))))))))));else A=null;return A!==null&&(A=function(i){return r.substring(e,i)}(n)),A===null&&(e=n),A}function j(){var A;return r.charCodeAt(e)===40?(A="(",e++):(A=null,l('"("')),A===null&&(r.charCodeAt(e)===41?(A=")",e++):(A=null,l('")"')),A===null&&(r.charCodeAt(e)===60?(A="<",e++):(A=null,l('"<"')),A===null&&(r.charCodeAt(e)===62?(A=">",e++):(A=null,l('">"')),A===null&&(r.charCodeAt(e)===64?(A="@",e++):(A=null,l('"@"')),A===null&&(r.charCodeAt(e)===44?(A=",",e++):(A=null,l('","')),A===null&&(r.charCodeAt(e)===59?(A=";",e++):(A=null,l('";"')),A===null&&(r.charCodeAt(e)===58?(A=":",e++):(A=null,l('":"')),A===null&&(r.charCodeAt(e)===92?(A="\\",e++):(A=null,l('"\\\\"')),A===null&&(A=D(),A===null&&(r.charCodeAt(e)===47?(A="/",e++):(A=null,l('"/"')),A===null&&(r.charCodeAt(e)===91?(A="[",e++):(A=null,l('"["')),A===null&&(r.charCodeAt(e)===93?(A="]",e++):(A=null,l('"]"')),A===null&&(r.charCodeAt(e)===63?(A="?",e++):(A=null,l('"?"')),A===null&&(r.charCodeAt(e)===61?(A="=",e++):(A=null,l('"="')),A===null&&(r.charCodeAt(e)===123?(A="{",e++):(A=null,l('"{"')),A===null&&(r.charCodeAt(e)===125?(A="}",e++):(A=null,l('"}"')),A===null&&(A=m(),A===null&&(A=G())))))))))))))))))),A}function H(){var A,t,n;if(n=e,t=O(),t===null&&(r.charCodeAt(e)===45?(t="-",e++):(t=null,l('"-"')),t===null&&(r.charCodeAt(e)===46?(t=".",e++):(t=null,l('"."')),t===null&&(r.charCodeAt(e)===33?(t="!",e++):(t=null,l('"!"')),t===null&&(r.charCodeAt(e)===37?(t="%",e++):(t=null,l('"%"')),t===null&&(r.charCodeAt(e)===42?(t="*",e++):(t=null,l('"*"')),t===null&&(r.charCodeAt(e)===95?(t="_",e++):(t=null,l('"_"')),t===null&&(r.charCodeAt(e)===43?(t="+",e++):(t=null,l('"+"')),t===null&&(r.charCodeAt(e)===96?(t="`",e++):(t=null,l('"`"')),t===null&&(r.charCodeAt(e)===39?(t="'",e++):(t=null,l(`"'"`)),t===null&&(r.charCodeAt(e)===126?(t="~",e++):(t=null,l('"~"')),t===null&&(r.charCodeAt(e)===40?(t="(",e++):(t=null,l('"("')),t===null&&(r.charCodeAt(e)===41?(t=")",e++):(t=null,l('")"')),t===null&&(r.charCodeAt(e)===60?(t="<",e++):(t=null,l('"<"')),t===null&&(r.charCodeAt(e)===62?(t=">",e++):(t=null,l('">"')),t===null&&(r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t===null&&(r.charCodeAt(e)===92?(t="\\",e++):(t=null,l('"\\\\"')),t===null&&(t=D(),t===null&&(r.charCodeAt(e)===47?(t="/",e++):(t=null,l('"/"')),t===null&&(r.charCodeAt(e)===91?(t="[",e++):(t=null,l('"["')),t===null&&(r.charCodeAt(e)===93?(t="]",e++):(t=null,l('"]"')),t===null&&(r.charCodeAt(e)===63?(t="?",e++):(t=null,l('"?"')),t===null&&(r.charCodeAt(e)===123?(t="{",e++):(t=null,l('"{"')),t===null&&(r.charCodeAt(e)===125?(t="}",e++):(t=null,l('"}"'))))))))))))))))))))))))),t!==null)for(A=[];t!==null;)A.push(t),t=O(),t===null&&(r.charCodeAt(e)===45?(t="-",e++):(t=null,l('"-"')),t===null&&(r.charCodeAt(e)===46?(t=".",e++):(t=null,l('"."')),t===null&&(r.charCodeAt(e)===33?(t="!",e++):(t=null,l('"!"')),t===null&&(r.charCodeAt(e)===37?(t="%",e++):(t=null,l('"%"')),t===null&&(r.charCodeAt(e)===42?(t="*",e++):(t=null,l('"*"')),t===null&&(r.charCodeAt(e)===95?(t="_",e++):(t=null,l('"_"')),t===null&&(r.charCodeAt(e)===43?(t="+",e++):(t=null,l('"+"')),t===null&&(r.charCodeAt(e)===96?(t="`",e++):(t=null,l('"`"')),t===null&&(r.charCodeAt(e)===39?(t="'",e++):(t=null,l(`"'"`)),t===null&&(r.charCodeAt(e)===126?(t="~",e++):(t=null,l('"~"')),t===null&&(r.charCodeAt(e)===40?(t="(",e++):(t=null,l('"("')),t===null&&(r.charCodeAt(e)===41?(t=")",e++):(t=null,l('")"')),t===null&&(r.charCodeAt(e)===60?(t="<",e++):(t=null,l('"<"')),t===null&&(r.charCodeAt(e)===62?(t=">",e++):(t=null,l('">"')),t===null&&(r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t===null&&(r.charCodeAt(e)===92?(t="\\",e++):(t=null,l('"\\\\"')),t===null&&(t=D(),t===null&&(r.charCodeAt(e)===47?(t="/",e++):(t=null,l('"/"')),t===null&&(r.charCodeAt(e)===91?(t="[",e++):(t=null,l('"["')),t===null&&(r.charCodeAt(e)===93?(t="]",e++):(t=null,l('"]"')),t===null&&(r.charCodeAt(e)===63?(t="?",e++):(t=null,l('"?"')),t===null&&(r.charCodeAt(e)===123?(t="{",e++):(t=null,l('"{"')),t===null&&(r.charCodeAt(e)===125?(t="}",e++):(t=null,l('"}"')))))))))))))))))))))))));else A=null;return A!==null&&(A=function(i){return r.substring(e,i)}(n)),A===null&&(e=n),A}function J(){var A,t,n,i,a;return i=e,a=e,A=v(),A!==null?(r.charCodeAt(e)===42?(t="*",e++):(t=null,l('"*"')),t!==null?(n=v(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V){return"*"}()),A===null&&(e=i),A}function u(){var A,t,n,i,a;return i=e,a=e,A=v(),A!==null?(r.charCodeAt(e)===47?(t="/",e++):(t=null,l('"/"')),t!==null?(n=v(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V){return"/"}()),A===null&&(e=i),A}function E(){var A,t,n,i,a;return i=e,a=e,A=v(),A!==null?(r.charCodeAt(e)===61?(t="=",e++):(t=null,l('"="')),t!==null?(n=v(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V){return"="}()),A===null&&(e=i),A}function K(){var A,t,n,i,a;return i=e,a=e,A=v(),A!==null?(r.charCodeAt(e)===40?(t="(",e++):(t=null,l('"("')),t!==null?(n=v(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V){return"("}()),A===null&&(e=i),A}function Z(){var A,t,n,i,a;return i=e,a=e,A=v(),A!==null?(r.charCodeAt(e)===41?(t=")",e++):(t=null,l('")"')),t!==null?(n=v(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V){return")"}()),A===null&&(e=i),A}function X(){var A,t,n,i;return n=e,i=e,r.charCodeAt(e)===62?(A=">",e++):(A=null,l('">"')),A!==null?(t=v(),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A!==null&&(A=function(a){return">"}()),A===null&&(e=n),A}function z(){var A,t,n,i;return n=e,i=e,A=v(),A!==null?(r.charCodeAt(e)===60?(t="<",e++):(t=null,l('"<"')),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A!==null&&(A=function(a){return"<"}()),A===null&&(e=n),A}function $(){var A,t,n,i,a;return i=e,a=e,A=v(),A!==null?(r.charCodeAt(e)===44?(t=",",e++):(t=null,l('","')),t!==null?(n=v(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V){return","}()),A===null&&(e=i),A}function eA(){var A,t,n,i,a;return i=e,a=e,A=v(),A!==null?(r.charCodeAt(e)===59?(t=";",e++):(t=null,l('";"')),t!==null?(n=v(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V){return";"}()),A===null&&(e=i),A}function nA(){var A,t,n,i,a;return i=e,a=e,A=v(),A!==null?(r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=v(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V){return":"}()),A===null&&(e=i),A}function lA(){var A,t,n,i;return n=e,i=e,A=v(),A!==null?(t=D(),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A!==null&&(A=function(a){return'"'}()),A===null&&(e=n),A}function rA(){var A,t,n,i;return n=e,i=e,A=D(),A!==null?(t=v(),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A!==null&&(A=function(a){return'"'}()),A===null&&(e=n),A}function hA(){var A,t,n,i;if(i=e,A=K(),A!==null){for(t=[],n=IA(),n===null&&(n=cA(),n===null&&(n=hA()));n!==null;)t.push(n),n=IA(),n===null&&(n=cA(),n===null&&(n=hA()));t!==null?(n=Z(),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)}else A=null,e=i;return A}function IA(){var A;return/^[!-']/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[!-']")),A===null&&(/^[*-[]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[*-[]")),A===null&&(/^[\]-~]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[\\]-~]")),A===null&&(A=L(),A===null&&(A=w())))),A}function EA(){var A,t,n,i,a,V;if(a=e,V=e,A=v(),A!==null)if(t=D(),t!==null){for(n=[],i=qA(),i===null&&(i=cA());i!==null;)n.push(i),i=qA(),i===null&&(i=cA());n!==null?(i=D(),i!==null?A=[A,t,n,i]:(A=null,e=V)):(A=null,e=V)}else A=null,e=V;else A=null,e=V;return A!==null&&(A=function(y){return r.substring(e,y)}(a)),A===null&&(e=a),A}function sA(){var A,t,n,i,a,V;if(a=e,V=e,A=v(),A!==null)if(t=D(),t!==null){for(n=[],i=qA(),i===null&&(i=cA());i!==null;)n.push(i),i=qA(),i===null&&(i=cA());n!==null?(i=D(),i!==null?A=[A,t,n,i]:(A=null,e=V)):(A=null,e=V)}else A=null,e=V;else A=null,e=V;return A!==null&&(A=function(y){var _=r.substring(e,y).trim();return _.substring(1,_.length-1).replace(/\\([\x00-\x09\x0b-\x0c\x0e-\x7f])/g,"$1")}(a)),A===null&&(e=a),A}function qA(){var A;return A=w(),A===null&&(r.charCodeAt(e)===33?(A="!",e++):(A=null,l('"!"')),A===null&&(/^[#-[]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[#-[]")),A===null&&(/^[\]-~]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[\\]-~]")),A===null&&(A=L())))),A}function cA(){var A,t,n;return n=e,r.charCodeAt(e)===92?(A="\\",e++):(A=null,l('"\\\\"')),A!==null?(/^[\0-\t]/.test(r.charAt(e))?(t=r.charAt(e),e++):(t=null,l("[\\0-\\t]")),t===null&&(/^[\x0B-\f]/.test(r.charAt(e))?(t=r.charAt(e),e++):(t=null,l("[\\x0B-\\f]")),t===null&&(/^[\x0E-]/.test(r.charAt(e))?(t=r.charAt(e),e++):(t=null,l("[\\x0E-]")))),t!==null?A=[A,t]:(A=null,e=n)):(A=null,e=n),A}function gA(){var A,t,n,i,a,V;return a=e,V=e,A=yA(),A!==null?(r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=wA(),n=n!==null?n:"",n!==null?(i=LA(),i!==null?A=[A,t,n,i]:(A=null,e=V)):(A=null,e=V)):(A=null,e=V)):(A=null,e=V),A!==null&&(A=function(y){try{N.uri=new fl(N.scheme,N.user,N.host,N.port),delete N.scheme,delete N.user,delete N.host,delete N.host_type,delete N.port}catch{N=-1}}()),A===null&&(e=a),A}function pA(){var A,t,n,i,a,V,y,_;return y=e,_=e,A=yA(),A!==null?(r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=wA(),n=n!==null?n:"",n!==null?(i=LA(),i!==null?(a=qe(),a!==null?(V=CA(),V=V!==null?V:"",V!==null?A=[A,t,n,i,a,V]:(A=null,e=_)):(A=null,e=_)):(A=null,e=_)):(A=null,e=_)):(A=null,e=_)):(A=null,e=_),A!==null&&(A=function(tA){try{N.uri=new fl(N.scheme,N.user,N.host,N.port,N.uri_params,N.uri_headers),delete N.scheme,delete N.user,delete N.host,delete N.host_type,delete N.port,delete N.uri_params,M==="SIP_URI"&&(N=N.uri)}catch{N=-1}}()),A===null&&(e=y),A}function yA(){var A;return A=mA(),A===null&&(A=FA()),A}function mA(){var A,t;return t=e,r.substr(e,4).toLowerCase()==="sips"?(A=r.substr(e,4),e+=4):(A=null,l('"sips"')),A!==null&&(A=function(n,i){N.scheme=i.toLowerCase()}(t,A)),A===null&&(e=t),A}function FA(){var A,t;return t=e,r.substr(e,3).toLowerCase()==="sip"?(A=r.substr(e,3),e+=3):(A=null,l('"sip"')),A!==null&&(A=function(n,i){N.scheme=i.toLowerCase()}(t,A)),A===null&&(e=t),A}function wA(){var A,t,n,i,a,V;return i=e,a=e,A=WA(),A!==null?(V=e,r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=SA(),n!==null?t=[t,n]:(t=null,e=V)):(t=null,e=V),t=t!==null?t:"",t!==null?(r.charCodeAt(e)===64?(n="@",e++):(n=null,l('"@"')),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(y){N.user=decodeURIComponent(r.substring(e-1,y))}(i)),A===null&&(e=i),A}function WA(){var A,t;if(t=C(),t===null&&(t=Y(),t===null&&(t=jA())),t!==null)for(A=[];t!==null;)A.push(t),t=C(),t===null&&(t=Y(),t===null&&(t=jA()));else A=null;return A}function jA(){var A;return r.charCodeAt(e)===38?(A="&",e++):(A=null,l('"&"')),A===null&&(r.charCodeAt(e)===61?(A="=",e++):(A=null,l('"="')),A===null&&(r.charCodeAt(e)===43?(A="+",e++):(A=null,l('"+"')),A===null&&(r.charCodeAt(e)===36?(A="$",e++):(A=null,l('"$"')),A===null&&(r.charCodeAt(e)===44?(A=",",e++):(A=null,l('","')),A===null&&(r.charCodeAt(e)===59?(A=";",e++):(A=null,l('";"')),A===null&&(r.charCodeAt(e)===63?(A="?",e++):(A=null,l('"?"')),A===null&&(r.charCodeAt(e)===47?(A="/",e++):(A=null,l('"/"'))))))))),A}function SA(){var A,t,n;for(n=e,A=[],t=C(),t===null&&(t=Y(),t===null&&(r.charCodeAt(e)===38?(t="&",e++):(t=null,l('"&"')),t===null&&(r.charCodeAt(e)===61?(t="=",e++):(t=null,l('"="')),t===null&&(r.charCodeAt(e)===43?(t="+",e++):(t=null,l('"+"')),t===null&&(r.charCodeAt(e)===36?(t="$",e++):(t=null,l('"$"')),t===null&&(r.charCodeAt(e)===44?(t=",",e++):(t=null,l('","'))))))));t!==null;)A.push(t),t=C(),t===null&&(t=Y(),t===null&&(r.charCodeAt(e)===38?(t="&",e++):(t=null,l('"&"')),t===null&&(r.charCodeAt(e)===61?(t="=",e++):(t=null,l('"="')),t===null&&(r.charCodeAt(e)===43?(t="+",e++):(t=null,l('"+"')),t===null&&(r.charCodeAt(e)===36?(t="$",e++):(t=null,l('"$"')),t===null&&(r.charCodeAt(e)===44?(t=",",e++):(t=null,l('","'))))))));return A!==null&&(A=function(i){N.password=r.substring(e,i)}(n)),A===null&&(e=n),A}function LA(){var A,t,n,i,a;return i=e,A=JA(),A!==null?(a=e,r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=ue(),n!==null?t=[t,n]:(t=null,e=a)):(t=null,e=a),t=t!==null?t:"",t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A}function JA(){var A,t;return t=e,A=ae(),A===null&&(A=le(),A===null&&(A=re())),A!==null&&(A=function(n){return N.host=r.substring(e,n).toLowerCase(),N.host}(t)),A===null&&(e=t),A}function ae(){var A,t,n,i,a,V;for(i=e,a=e,A=[],V=e,t=ne(),t!==null?(r.charCodeAt(e)===46?(n=".",e++):(n=null,l('"."')),n!==null?t=[t,n]:(t=null,e=V)):(t=null,e=V);t!==null;)A.push(t),V=e,t=ne(),t!==null?(r.charCodeAt(e)===46?(n=".",e++):(n=null,l('"."')),n!==null?t=[t,n]:(t=null,e=V)):(t=null,e=V);return A!==null?(t=XA(),t!==null?(r.charCodeAt(e)===46?(n=".",e++):(n=null,l('"."')),n=n!==null?n:"",n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(y){return N.host_type="domain",r.substring(e,y)}(i)),A===null&&(e=i),A}function ne(){var A,t,n,i;if(i=e,A=O(),A!==null){for(t=[],n=O(),n===null&&(r.charCodeAt(e)===45?(n="-",e++):(n=null,l('"-"')),n===null&&(r.charCodeAt(e)===95?(n="_",e++):(n=null,l('"_"'))));n!==null;)t.push(n),n=O(),n===null&&(r.charCodeAt(e)===45?(n="-",e++):(n=null,l('"-"')),n===null&&(r.charCodeAt(e)===95?(n="_",e++):(n=null,l('"_"'))));t!==null?A=[A,t]:(A=null,e=i)}else A=null,e=i;return A}function XA(){var A,t,n,i;if(i=e,A=c(),A!==null){for(t=[],n=O(),n===null&&(r.charCodeAt(e)===45?(n="-",e++):(n=null,l('"-"')),n===null&&(r.charCodeAt(e)===95?(n="_",e++):(n=null,l('"_"'))));n!==null;)t.push(n),n=O(),n===null&&(r.charCodeAt(e)===45?(n="-",e++):(n=null,l('"-"')),n===null&&(r.charCodeAt(e)===95?(n="_",e++):(n=null,l('"_"'))));t!==null?A=[A,t]:(A=null,e=i)}else A=null,e=i;return A}function re(){var A,t,n,i,a;return i=e,a=e,r.charCodeAt(e)===91?(A="[",e++):(A=null,l('"["')),A!==null?(t=_A(),t!==null?(r.charCodeAt(e)===93?(n="]",e++):(n=null,l('"]"')),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V){return N.host_type="IPv6",r.substring(e,V)}(i)),A===null&&(e=i),A}function _A(){var A,t,n,i,a,V,y,_,tA,fA,MA,$A,Ze,Wt,AA,uA;return Wt=e,AA=e,A=iA(),A!==null?(r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=iA(),n!==null?(r.charCodeAt(e)===58?(i=":",e++):(i=null,l('":"')),i!==null?(a=iA(),a!==null?(r.charCodeAt(e)===58?(V=":",e++):(V=null,l('":"')),V!==null?(y=iA(),y!==null?(r.charCodeAt(e)===58?(_=":",e++):(_=null,l('":"')),_!==null?(tA=iA(),tA!==null?(r.charCodeAt(e)===58?(fA=":",e++):(fA=null,l('":"')),fA!==null?(MA=iA(),MA!==null?(r.charCodeAt(e)===58?($A=":",e++):($A=null,l('":"')),$A!==null?(Ze=YA(),Ze!==null?A=[A,t,n,i,a,V,y,_,tA,fA,MA,$A,Ze]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,r.substr(e,2)==="::"?(A="::",e+=2):(A=null,l('"::"')),A!==null?(t=iA(),t!==null?(r.charCodeAt(e)===58?(n=":",e++):(n=null,l('":"')),n!==null?(i=iA(),i!==null?(r.charCodeAt(e)===58?(a=":",e++):(a=null,l('":"')),a!==null?(V=iA(),V!==null?(r.charCodeAt(e)===58?(y=":",e++):(y=null,l('":"')),y!==null?(_=iA(),_!==null?(r.charCodeAt(e)===58?(tA=":",e++):(tA=null,l('":"')),tA!==null?(fA=iA(),fA!==null?(r.charCodeAt(e)===58?(MA=":",e++):(MA=null,l('":"')),MA!==null?($A=YA(),$A!==null?A=[A,t,n,i,a,V,y,_,tA,fA,MA,$A]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,r.substr(e,2)==="::"?(A="::",e+=2):(A=null,l('"::"')),A!==null?(t=iA(),t!==null?(r.charCodeAt(e)===58?(n=":",e++):(n=null,l('":"')),n!==null?(i=iA(),i!==null?(r.charCodeAt(e)===58?(a=":",e++):(a=null,l('":"')),a!==null?(V=iA(),V!==null?(r.charCodeAt(e)===58?(y=":",e++):(y=null,l('":"')),y!==null?(_=iA(),_!==null?(r.charCodeAt(e)===58?(tA=":",e++):(tA=null,l('":"')),tA!==null?(fA=YA(),fA!==null?A=[A,t,n,i,a,V,y,_,tA,fA]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,r.substr(e,2)==="::"?(A="::",e+=2):(A=null,l('"::"')),A!==null?(t=iA(),t!==null?(r.charCodeAt(e)===58?(n=":",e++):(n=null,l('":"')),n!==null?(i=iA(),i!==null?(r.charCodeAt(e)===58?(a=":",e++):(a=null,l('":"')),a!==null?(V=iA(),V!==null?(r.charCodeAt(e)===58?(y=":",e++):(y=null,l('":"')),y!==null?(_=YA(),_!==null?A=[A,t,n,i,a,V,y,_]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,r.substr(e,2)==="::"?(A="::",e+=2):(A=null,l('"::"')),A!==null?(t=iA(),t!==null?(r.charCodeAt(e)===58?(n=":",e++):(n=null,l('":"')),n!==null?(i=iA(),i!==null?(r.charCodeAt(e)===58?(a=":",e++):(a=null,l('":"')),a!==null?(V=YA(),V!==null?A=[A,t,n,i,a,V]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,r.substr(e,2)==="::"?(A="::",e+=2):(A=null,l('"::"')),A!==null?(t=iA(),t!==null?(r.charCodeAt(e)===58?(n=":",e++):(n=null,l('":"')),n!==null?(i=YA(),i!==null?A=[A,t,n,i]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,r.substr(e,2)==="::"?(A="::",e+=2):(A=null,l('"::"')),A!==null?(t=YA(),t!==null?A=[A,t]:(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,r.substr(e,2)==="::"?(A="::",e+=2):(A=null,l('"::"')),A!==null?(t=iA(),t!==null?A=[A,t]:(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,A=iA(),A!==null?(r.substr(e,2)==="::"?(t="::",e+=2):(t=null,l('"::"')),t!==null?(n=iA(),n!==null?(r.charCodeAt(e)===58?(i=":",e++):(i=null,l('":"')),i!==null?(a=iA(),a!==null?(r.charCodeAt(e)===58?(V=":",e++):(V=null,l('":"')),V!==null?(y=iA(),y!==null?(r.charCodeAt(e)===58?(_=":",e++):(_=null,l('":"')),_!==null?(tA=iA(),tA!==null?(r.charCodeAt(e)===58?(fA=":",e++):(fA=null,l('":"')),fA!==null?(MA=YA(),MA!==null?A=[A,t,n,i,a,V,y,_,tA,fA,MA]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,A=iA(),A!==null?(uA=e,r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=iA(),n!==null?t=[t,n]:(t=null,e=uA)):(t=null,e=uA),t=t!==null?t:"",t!==null?(r.substr(e,2)==="::"?(n="::",e+=2):(n=null,l('"::"')),n!==null?(i=iA(),i!==null?(r.charCodeAt(e)===58?(a=":",e++):(a=null,l('":"')),a!==null?(V=iA(),V!==null?(r.charCodeAt(e)===58?(y=":",e++):(y=null,l('":"')),y!==null?(_=iA(),_!==null?(r.charCodeAt(e)===58?(tA=":",e++):(tA=null,l('":"')),tA!==null?(fA=YA(),fA!==null?A=[A,t,n,i,a,V,y,_,tA,fA]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,A=iA(),A!==null?(uA=e,r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=iA(),n!==null?t=[t,n]:(t=null,e=uA)):(t=null,e=uA),t=t!==null?t:"",t!==null?(uA=e,r.charCodeAt(e)===58?(n=":",e++):(n=null,l('":"')),n!==null?(i=iA(),i!==null?n=[n,i]:(n=null,e=uA)):(n=null,e=uA),n=n!==null?n:"",n!==null?(r.substr(e,2)==="::"?(i="::",e+=2):(i=null,l('"::"')),i!==null?(a=iA(),a!==null?(r.charCodeAt(e)===58?(V=":",e++):(V=null,l('":"')),V!==null?(y=iA(),y!==null?(r.charCodeAt(e)===58?(_=":",e++):(_=null,l('":"')),_!==null?(tA=YA(),tA!==null?A=[A,t,n,i,a,V,y,_,tA]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,A=iA(),A!==null?(uA=e,r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=iA(),n!==null?t=[t,n]:(t=null,e=uA)):(t=null,e=uA),t=t!==null?t:"",t!==null?(uA=e,r.charCodeAt(e)===58?(n=":",e++):(n=null,l('":"')),n!==null?(i=iA(),i!==null?n=[n,i]:(n=null,e=uA)):(n=null,e=uA),n=n!==null?n:"",n!==null?(uA=e,r.charCodeAt(e)===58?(i=":",e++):(i=null,l('":"')),i!==null?(a=iA(),a!==null?i=[i,a]:(i=null,e=uA)):(i=null,e=uA),i=i!==null?i:"",i!==null?(r.substr(e,2)==="::"?(a="::",e+=2):(a=null,l('"::"')),a!==null?(V=iA(),V!==null?(r.charCodeAt(e)===58?(y=":",e++):(y=null,l('":"')),y!==null?(_=YA(),_!==null?A=[A,t,n,i,a,V,y,_]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,A=iA(),A!==null?(uA=e,r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=iA(),n!==null?t=[t,n]:(t=null,e=uA)):(t=null,e=uA),t=t!==null?t:"",t!==null?(uA=e,r.charCodeAt(e)===58?(n=":",e++):(n=null,l('":"')),n!==null?(i=iA(),i!==null?n=[n,i]:(n=null,e=uA)):(n=null,e=uA),n=n!==null?n:"",n!==null?(uA=e,r.charCodeAt(e)===58?(i=":",e++):(i=null,l('":"')),i!==null?(a=iA(),a!==null?i=[i,a]:(i=null,e=uA)):(i=null,e=uA),i=i!==null?i:"",i!==null?(uA=e,r.charCodeAt(e)===58?(a=":",e++):(a=null,l('":"')),a!==null?(V=iA(),V!==null?a=[a,V]:(a=null,e=uA)):(a=null,e=uA),a=a!==null?a:"",a!==null?(r.substr(e,2)==="::"?(V="::",e+=2):(V=null,l('"::"')),V!==null?(y=YA(),y!==null?A=[A,t,n,i,a,V,y]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,A=iA(),A!==null?(uA=e,r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=iA(),n!==null?t=[t,n]:(t=null,e=uA)):(t=null,e=uA),t=t!==null?t:"",t!==null?(uA=e,r.charCodeAt(e)===58?(n=":",e++):(n=null,l('":"')),n!==null?(i=iA(),i!==null?n=[n,i]:(n=null,e=uA)):(n=null,e=uA),n=n!==null?n:"",n!==null?(uA=e,r.charCodeAt(e)===58?(i=":",e++):(i=null,l('":"')),i!==null?(a=iA(),a!==null?i=[i,a]:(i=null,e=uA)):(i=null,e=uA),i=i!==null?i:"",i!==null?(uA=e,r.charCodeAt(e)===58?(a=":",e++):(a=null,l('":"')),a!==null?(V=iA(),V!==null?a=[a,V]:(a=null,e=uA)):(a=null,e=uA),a=a!==null?a:"",a!==null?(uA=e,r.charCodeAt(e)===58?(V=":",e++):(V=null,l('":"')),V!==null?(y=iA(),y!==null?V=[V,y]:(V=null,e=uA)):(V=null,e=uA),V=V!==null?V:"",V!==null?(r.substr(e,2)==="::"?(y="::",e+=2):(y=null,l('"::"')),y!==null?(_=iA(),_!==null?A=[A,t,n,i,a,V,y,_]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA),A===null&&(AA=e,A=iA(),A!==null?(uA=e,r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=iA(),n!==null?t=[t,n]:(t=null,e=uA)):(t=null,e=uA),t=t!==null?t:"",t!==null?(uA=e,r.charCodeAt(e)===58?(n=":",e++):(n=null,l('":"')),n!==null?(i=iA(),i!==null?n=[n,i]:(n=null,e=uA)):(n=null,e=uA),n=n!==null?n:"",n!==null?(uA=e,r.charCodeAt(e)===58?(i=":",e++):(i=null,l('":"')),i!==null?(a=iA(),a!==null?i=[i,a]:(i=null,e=uA)):(i=null,e=uA),i=i!==null?i:"",i!==null?(uA=e,r.charCodeAt(e)===58?(a=":",e++):(a=null,l('":"')),a!==null?(V=iA(),V!==null?a=[a,V]:(a=null,e=uA)):(a=null,e=uA),a=a!==null?a:"",a!==null?(uA=e,r.charCodeAt(e)===58?(V=":",e++):(V=null,l('":"')),V!==null?(y=iA(),y!==null?V=[V,y]:(V=null,e=uA)):(V=null,e=uA),V=V!==null?V:"",V!==null?(uA=e,r.charCodeAt(e)===58?(y=":",e++):(y=null,l('":"')),y!==null?(_=iA(),_!==null?y=[y,_]:(y=null,e=uA)):(y=null,e=uA),y=y!==null?y:"",y!==null?(r.substr(e,2)==="::"?(_="::",e+=2):(_=null,l('"::"')),_!==null?A=[A,t,n,i,a,V,y,_]:(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA)):(A=null,e=AA))))))))))))))),A!==null&&(A=function(Uo){return N.host_type="IPv6",r.substring(e,Uo)}(Wt)),A===null&&(e=Wt),A}function iA(){var A,t,n,i,a;return a=e,A=f(),A!==null?(t=f(),t=t!==null?t:"",t!==null?(n=f(),n=n!==null?n:"",n!==null?(i=f(),i=i!==null?i:"",i!==null?A=[A,t,n,i]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A}function YA(){var A,t,n,i;return i=e,A=iA(),A!==null?(r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=iA(),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A===null&&(A=le()),A}function le(){var A,t,n,i,a,V,y,_,tA;return _=e,tA=e,A=HA(),A!==null?(r.charCodeAt(e)===46?(t=".",e++):(t=null,l('"."')),t!==null?(n=HA(),n!==null?(r.charCodeAt(e)===46?(i=".",e++):(i=null,l('"."')),i!==null?(a=HA(),a!==null?(r.charCodeAt(e)===46?(V=".",e++):(V=null,l('"."')),V!==null?(y=HA(),y!==null?A=[A,t,n,i,a,V,y]:(A=null,e=tA)):(A=null,e=tA)):(A=null,e=tA)):(A=null,e=tA)):(A=null,e=tA)):(A=null,e=tA)):(A=null,e=tA),A!==null&&(A=function(fA){return N.host_type="IPv4",r.substring(e,fA)}(_)),A===null&&(e=_),A}function HA(){var A,t,n,i;return i=e,r.substr(e,2)==="25"?(A="25",e+=2):(A=null,l('"25"')),A!==null?(/^[0-5]/.test(r.charAt(e))?(t=r.charAt(e),e++):(t=null,l("[0-5]")),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A===null&&(i=e,r.charCodeAt(e)===50?(A="2",e++):(A=null,l('"2"')),A!==null?(/^[0-4]/.test(r.charAt(e))?(t=r.charAt(e),e++):(t=null,l("[0-4]")),t!==null?(n=o(),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A===null&&(i=e,r.charCodeAt(e)===49?(A="1",e++):(A=null,l('"1"')),A!==null?(t=o(),t!==null?(n=o(),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A===null&&(i=e,/^[1-9]/.test(r.charAt(e))?(A=r.charAt(e),e++):(A=null,l("[1-9]")),A!==null?(t=o(),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A===null&&(A=o())))),A}function ue(){var A,t,n,i,a,V,y;return V=e,y=e,A=o(),A=A!==null?A:"",A!==null?(t=o(),t=t!==null?t:"",t!==null?(n=o(),n=n!==null?n:"",n!==null?(i=o(),i=i!==null?i:"",i!==null?(a=o(),a=a!==null?a:"",a!==null?A=[A,t,n,i,a]:(A=null,e=y)):(A=null,e=y)):(A=null,e=y)):(A=null,e=y)):(A=null,e=y),A!==null&&(A=function(_,tA){return tA=parseInt(tA.join("")),N.port=tA,tA}(V,A)),A===null&&(e=V),A}function qe(){var A,t,n,i;for(A=[],i=e,r.charCodeAt(e)===59?(t=";",e++):(t=null,l('";"')),t!==null?(n=oA(),n!==null?t=[t,n]:(t=null,e=i)):(t=null,e=i);t!==null;)A.push(t),i=e,r.charCodeAt(e)===59?(t=";",e++):(t=null,l('";"')),t!==null?(n=oA(),n!==null?t=[t,n]:(t=null,e=i)):(t=null,e=i);return A}function oA(){var A;return A=VA(),A===null&&(A=TA(),A===null&&(A=RA(),A===null&&(A=dA(),A===null&&(A=DA(),A===null&&(A=vA(),A===null&&(A=NA())))))),A}function VA(){var A,t,n,i;return n=e,i=e,r.substr(e,10).toLowerCase()==="transport="?(A=r.substr(e,10),e+=10):(A=null,l('"transport="')),A!==null?(r.substr(e,3).toLowerCase()==="udp"?(t=r.substr(e,3),e+=3):(t=null,l('"udp"')),t===null&&(r.substr(e,3).toLowerCase()==="tcp"?(t=r.substr(e,3),e+=3):(t=null,l('"tcp"')),t===null&&(r.substr(e,4).toLowerCase()==="sctp"?(t=r.substr(e,4),e+=4):(t=null,l('"sctp"')),t===null&&(r.substr(e,3).toLowerCase()==="tls"?(t=r.substr(e,3),e+=3):(t=null,l('"tls"')),t===null&&(t=b())))),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A!==null&&(A=function(a,V){N.uri_params||(N.uri_params={}),N.uri_params.transport=V.toLowerCase()}(n,A[1])),A===null&&(e=n),A}function TA(){var A,t,n,i;return n=e,i=e,r.substr(e,5).toLowerCase()==="user="?(A=r.substr(e,5),e+=5):(A=null,l('"user="')),A!==null?(r.substr(e,5).toLowerCase()==="phone"?(t=r.substr(e,5),e+=5):(t=null,l('"phone"')),t===null&&(r.substr(e,2).toLowerCase()==="ip"?(t=r.substr(e,2),e+=2):(t=null,l('"ip"')),t===null&&(t=b())),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A!==null&&(A=function(a,V){N.uri_params||(N.uri_params={}),N.uri_params.user=V.toLowerCase()}(n,A[1])),A===null&&(e=n),A}function RA(){var A,t,n,i;return n=e,i=e,r.substr(e,7).toLowerCase()==="method="?(A=r.substr(e,7),e+=7):(A=null,l('"method="')),A!==null?(t=Ye(),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A!==null&&(A=function(a,V){N.uri_params||(N.uri_params={}),N.uri_params.method=V}(n,A[1])),A===null&&(e=n),A}function dA(){var A,t,n,i;return n=e,i=e,r.substr(e,4).toLowerCase()==="ttl="?(A=r.substr(e,4),e+=4):(A=null,l('"ttl="')),A!==null?(t=Ft(),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A!==null&&(A=function(a,V){N.params||(N.params={}),N.params.ttl=V}(n,A[1])),A===null&&(e=n),A}function DA(){var A,t,n,i;return n=e,i=e,r.substr(e,6).toLowerCase()==="maddr="?(A=r.substr(e,6),e+=6):(A=null,l('"maddr="')),A!==null?(t=JA(),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A!==null&&(A=function(a,V){N.uri_params||(N.uri_params={}),N.uri_params.maddr=V}(n,A[1])),A===null&&(e=n),A}function vA(){var A,t,n,i,a,V;return i=e,a=e,r.substr(e,2).toLowerCase()==="lr"?(A=r.substr(e,2),e+=2):(A=null,l('"lr"')),A!==null?(V=e,r.charCodeAt(e)===61?(t="=",e++):(t=null,l('"="')),t!==null?(n=b(),n!==null?t=[t,n]:(t=null,e=V)):(t=null,e=V),t=t!==null?t:"",t!==null?A=[A,t]:(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(y){N.uri_params||(N.uri_params={}),N.uri_params.lr=void 0}()),A===null&&(e=i),A}function NA(){var A,t,n,i,a,V;return i=e,a=e,A=Qe(),A!==null?(V=e,r.charCodeAt(e)===61?(t="=",e++):(t=null,l('"="')),t!==null?(n=ge(),n!==null?t=[t,n]:(t=null,e=V)):(t=null,e=V),t=t!==null?t:"",t!==null?A=[A,t]:(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(y,_,tA){N.uri_params||(N.uri_params={}),typeof tA>"u"?tA=void 0:tA=tA[1],N.uri_params[_.toLowerCase()]=tA}(i,A[0],A[1])),A===null&&(e=i),A}function Qe(){var A,t,n;if(n=e,t=ce(),t!==null)for(A=[];t!==null;)A.push(t),t=ce();else A=null;return A!==null&&(A=function(i,a){return a.join("")}(n,A)),A===null&&(e=n),A}function ge(){var A,t,n;if(n=e,t=ce(),t!==null)for(A=[];t!==null;)A.push(t),t=ce();else A=null;return A!==null&&(A=function(i,a){return a.join("")}(n,A)),A===null&&(e=n),A}function ce(){var A;return A=aA(),A===null&&(A=C(),A===null&&(A=Y())),A}function aA(){var A;return r.charCodeAt(e)===91?(A="[",e++):(A=null,l('"["')),A===null&&(r.charCodeAt(e)===93?(A="]",e++):(A=null,l('"]"')),A===null&&(r.charCodeAt(e)===47?(A="/",e++):(A=null,l('"/"')),A===null&&(r.charCodeAt(e)===58?(A=":",e++):(A=null,l('":"')),A===null&&(r.charCodeAt(e)===38?(A="&",e++):(A=null,l('"&"')),A===null&&(r.charCodeAt(e)===43?(A="+",e++):(A=null,l('"+"')),A===null&&(r.charCodeAt(e)===36?(A="$",e++):(A=null,l('"$"')))))))),A}function CA(){var A,t,n,i,a,V,y;if(V=e,r.charCodeAt(e)===63?(A="?",e++):(A=null,l('"?"')),A!==null)if(t=PA(),t!==null){for(n=[],y=e,r.charCodeAt(e)===38?(i="&",e++):(i=null,l('"&"')),i!==null?(a=PA(),a!==null?i=[i,a]:(i=null,e=y)):(i=null,e=y);i!==null;)n.push(i),y=e,r.charCodeAt(e)===38?(i="&",e++):(i=null,l('"&"')),i!==null?(a=PA(),a!==null?i=[i,a]:(i=null,e=y)):(i=null,e=y);n!==null?A=[A,t,n]:(A=null,e=V)}else A=null,e=V;else A=null,e=V;return A}function PA(){var A,t,n,i,a;return i=e,a=e,A=xA(),A!==null?(r.charCodeAt(e)===61?(t="=",e++):(t=null,l('"="')),t!==null?(n=pe(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y,_){y=y.join("").toLowerCase(),_=_.join(""),N.uri_headers||(N.uri_headers={}),N.uri_headers[y]?N.uri_headers[y].push(_):N.uri_headers[y]=[_]}(i,A[0],A[2])),A===null&&(e=i),A}function xA(){var A,t;if(t=me(),t===null&&(t=C(),t===null&&(t=Y())),t!==null)for(A=[];t!==null;)A.push(t),t=me(),t===null&&(t=C(),t===null&&(t=Y()));else A=null;return A}function pe(){var A,t;for(A=[],t=me(),t===null&&(t=C(),t===null&&(t=Y()));t!==null;)A.push(t),t=me(),t===null&&(t=C(),t===null&&(t=Y()));return A}function me(){var A;return r.charCodeAt(e)===91?(A="[",e++):(A=null,l('"["')),A===null&&(r.charCodeAt(e)===93?(A="]",e++):(A=null,l('"]"')),A===null&&(r.charCodeAt(e)===47?(A="/",e++):(A=null,l('"/"')),A===null&&(r.charCodeAt(e)===63?(A="?",e++):(A=null,l('"?"')),A===null&&(r.charCodeAt(e)===58?(A=":",e++):(A=null,l('":"')),A===null&&(r.charCodeAt(e)===43?(A="+",e++):(A=null,l('"+"')),A===null&&(r.charCodeAt(e)===36?(A="$",e++):(A=null,l('"$"')))))))),A}function js(){var A;return A=hr(),A===null&&(A=Hn()),A}function Hn(){var A,t,n,i,a,V;return V=e,A=Ye(),A!==null?(t=m(),t!==null?(n=Pn(),n!==null?(i=m(),i!==null?(a=Ut(),a!==null?A=[A,t,n,i,a]:(A=null,e=V)):(A=null,e=V)):(A=null,e=V)):(A=null,e=V)):(A=null,e=V),A}function Pn(){var A;return A=pA(),A===null&&(A=kt()),A}function kt(){var A,t,n,i;return i=e,A=er(),A!==null?(r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t!==null?(n=zn(),n===null&&(n=_n()),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function zn(){var A,t,n,i,a;return i=e,A=Xn(),A===null&&(A=Be()),A!==null?(a=e,r.charCodeAt(e)===63?(t="?",e++):(t=null,l('"?"')),t!==null?(n=lr(),n!==null?t=[t,n]:(t=null,e=a)):(t=null,e=a),t=t!==null?t:"",t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A}function Xn(){var A,t,n,i;return i=e,r.substr(e,2)==="//"?(A="//",e+=2):(A=null,l('"//"')),A!==null?(t=tr(),t!==null?(n=Be(),n=n!==null?n:"",n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function Be(){var A,t,n;return n=e,r.charCodeAt(e)===47?(A="/",e++):(A=null,l('"/"')),A!==null?(t=Ar(),t!==null?A=[A,t]:(A=null,e=n)):(A=null,e=n),A}function _n(){var A,t,n,i;if(i=e,A=$n(),A!==null){for(t=[],n=Ee();n!==null;)t.push(n),n=Ee();t!==null?A=[A,t]:(A=null,e=i)}else A=null,e=i;return A}function Ee(){var A;return A=I(),A===null&&(A=C(),A===null&&(A=Y())),A}function $n(){var A;return A=C(),A===null&&(A=Y(),A===null&&(r.charCodeAt(e)===59?(A=";",e++):(A=null,l('";"')),A===null&&(r.charCodeAt(e)===63?(A="?",e++):(A=null,l('"?"')),A===null&&(r.charCodeAt(e)===58?(A=":",e++):(A=null,l('":"')),A===null&&(r.charCodeAt(e)===64?(A="@",e++):(A=null,l('"@"')),A===null&&(r.charCodeAt(e)===38?(A="&",e++):(A=null,l('"&"')),A===null&&(r.charCodeAt(e)===61?(A="=",e++):(A=null,l('"="')),A===null&&(r.charCodeAt(e)===43?(A="+",e++):(A=null,l('"+"')),A===null&&(r.charCodeAt(e)===36?(A="$",e++):(A=null,l('"$"')),A===null&&(r.charCodeAt(e)===44?(A=",",e++):(A=null,l('","')))))))))))),A}function Ar(){var A,t,n,i,a,V;if(a=e,A=be(),A!==null){for(t=[],V=e,r.charCodeAt(e)===47?(n="/",e++):(n=null,l('"/"')),n!==null?(i=be(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,r.charCodeAt(e)===47?(n="/",e++):(n=null,l('"/"')),n!==null?(i=be(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function be(){var A,t,n,i,a,V;for(a=e,A=[],t=Se();t!==null;)A.push(t),t=Se();if(A!==null){for(t=[],V=e,r.charCodeAt(e)===59?(n=";",e++):(n=null,l('";"')),n!==null?(i=vt(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,r.charCodeAt(e)===59?(n=";",e++):(n=null,l('";"')),n!==null?(i=vt(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function vt(){var A,t;for(A=[],t=Se();t!==null;)A.push(t),t=Se();return A}function Se(){var A;return A=C(),A===null&&(A=Y(),A===null&&(r.charCodeAt(e)===58?(A=":",e++):(A=null,l('":"')),A===null&&(r.charCodeAt(e)===64?(A="@",e++):(A=null,l('"@"')),A===null&&(r.charCodeAt(e)===38?(A="&",e++):(A=null,l('"&"')),A===null&&(r.charCodeAt(e)===61?(A="=",e++):(A=null,l('"="')),A===null&&(r.charCodeAt(e)===43?(A="+",e++):(A=null,l('"+"')),A===null&&(r.charCodeAt(e)===36?(A="$",e++):(A=null,l('"$"')),A===null&&(r.charCodeAt(e)===44?(A=",",e++):(A=null,l('","')))))))))),A}function er(){var A,t,n,i,a;if(i=e,a=e,A=c(),A!==null){for(t=[],n=c(),n===null&&(n=o(),n===null&&(r.charCodeAt(e)===43?(n="+",e++):(n=null,l('"+"')),n===null&&(r.charCodeAt(e)===45?(n="-",e++):(n=null,l('"-"')),n===null&&(r.charCodeAt(e)===46?(n=".",e++):(n=null,l('"."'))))));n!==null;)t.push(n),n=c(),n===null&&(n=o(),n===null&&(r.charCodeAt(e)===43?(n="+",e++):(n=null,l('"+"')),n===null&&(r.charCodeAt(e)===45?(n="-",e++):(n=null,l('"-"')),n===null&&(r.charCodeAt(e)===46?(n=".",e++):(n=null,l('"."'))))));t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A!==null&&(A=function(V){N.scheme=r.substring(e,V)}(i)),A===null&&(e=i),A}function tr(){var A;return A=nr(),A===null&&(A=rr()),A}function nr(){var A,t,n,i;return n=e,i=e,A=wA(),A!==null?(r.charCodeAt(e)===64?(t="@",e++):(t=null,l('"@"')),t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A=A!==null?A:"",A!==null?(t=LA(),t!==null?A=[A,t]:(A=null,e=n)):(A=null,e=n),A=A!==null?A:"",A}function rr(){var A,t;if(t=C(),t===null&&(t=Y(),t===null&&(r.charCodeAt(e)===36?(t="$",e++):(t=null,l('"$"')),t===null&&(r.charCodeAt(e)===44?(t=",",e++):(t=null,l('","')),t===null&&(r.charCodeAt(e)===59?(t=";",e++):(t=null,l('";"')),t===null&&(r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t===null&&(r.charCodeAt(e)===64?(t="@",e++):(t=null,l('"@"')),t===null&&(r.charCodeAt(e)===38?(t="&",e++):(t=null,l('"&"')),t===null&&(r.charCodeAt(e)===61?(t="=",e++):(t=null,l('"="')),t===null&&(r.charCodeAt(e)===43?(t="+",e++):(t=null,l('"+"'))))))))))),t!==null)for(A=[];t!==null;)A.push(t),t=C(),t===null&&(t=Y(),t===null&&(r.charCodeAt(e)===36?(t="$",e++):(t=null,l('"$"')),t===null&&(r.charCodeAt(e)===44?(t=",",e++):(t=null,l('","')),t===null&&(r.charCodeAt(e)===59?(t=";",e++):(t=null,l('";"')),t===null&&(r.charCodeAt(e)===58?(t=":",e++):(t=null,l('":"')),t===null&&(r.charCodeAt(e)===64?(t="@",e++):(t=null,l('"@"')),t===null&&(r.charCodeAt(e)===38?(t="&",e++):(t=null,l('"&"')),t===null&&(r.charCodeAt(e)===61?(t="=",e++):(t=null,l('"="')),t===null&&(r.charCodeAt(e)===43?(t="+",e++):(t=null,l('"+"')))))))))));else A=null;return A}function lr(){var A,t;for(A=[],t=Ee();t!==null;)A.push(t),t=Ee();return A}function Ut(){var A,t,n,i,a,V,y,_;if(y=e,_=e,r.substr(e,3).toLowerCase()==="sip"?(A=r.substr(e,3),e+=3):(A=null,l('"SIP"')),A!==null)if(r.charCodeAt(e)===47?(t="/",e++):(t=null,l('"/"')),t!==null){if(i=o(),i!==null)for(n=[];i!==null;)n.push(i),i=o();else n=null;if(n!==null)if(r.charCodeAt(e)===46?(i=".",e++):(i=null,l('"."')),i!==null){if(V=o(),V!==null)for(a=[];V!==null;)a.push(V),V=o();else a=null;a!==null?A=[A,t,n,i,a]:(A=null,e=_)}else A=null,e=_;else A=null,e=_}else A=null,e=_;else A=null,e=_;return A!==null&&(A=function(tA){N.sip_version=r.substring(e,tA)}(y)),A===null&&(e=y),A}function ir(){var A;return r.substr(e,6)==="INVITE"?(A="INVITE",e+=6):(A=null,l('"INVITE"')),A}function sr(){var A;return r.substr(e,3)==="ACK"?(A="ACK",e+=3):(A=null,l('"ACK"')),A}function or(){var A;return r.substr(e,7)==="OPTIONS"?(A="OPTIONS",e+=7):(A=null,l('"OPTIONS"')),A}function ar(){var A;return r.substr(e,3)==="BYE"?(A="BYE",e+=3):(A=null,l('"BYE"')),A}function ur(){var A;return r.substr(e,6)==="CANCEL"?(A="CANCEL",e+=6):(A=null,l('"CANCEL"')),A}function qr(){var A;return r.substr(e,8)==="REGISTER"?(A="REGISTER",e+=8):(A=null,l('"REGISTER"')),A}function cr(){var A;return r.substr(e,9)==="SUBSCRIBE"?(A="SUBSCRIBE",e+=9):(A=null,l('"SUBSCRIBE"')),A}function Vr(){var A;return r.substr(e,6)==="NOTIFY"?(A="NOTIFY",e+=6):(A=null,l('"NOTIFY"')),A}function fr(){var A;return r.substr(e,5)==="REFER"?(A="REFER",e+=5):(A=null,l('"REFER"')),A}function Ye(){var A,t;return t=e,A=ir(),A===null&&(A=sr(),A===null&&(A=or(),A===null&&(A=ar(),A===null&&(A=ur(),A===null&&(A=qr(),A===null&&(A=cr(),A===null&&(A=Vr(),A===null&&(A=fr(),A===null&&(A=b()))))))))),A!==null&&(A=function(n){return N.method=r.substring(e,n),N.method}(t)),A===null&&(e=t),A}function hr(){var A,t,n,i,a,V;return V=e,A=Ut(),A!==null?(t=m(),t!==null?(n=gr(),n!==null?(i=m(),i!==null?(a=Cr(),a!==null?A=[A,t,n,i,a]:(A=null,e=V)):(A=null,e=V)):(A=null,e=V)):(A=null,e=V)):(A=null,e=V),A}function gr(){var A,t;return t=e,A=dr(),A!==null&&(A=function(n,i){N.status_code=parseInt(i.join(""))}(t,A)),A===null&&(e=t),A}function dr(){var A,t,n,i;return i=e,A=o(),A!==null?(t=o(),t!==null?(n=o(),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function Cr(){var A,t,n;for(n=e,A=[],t=I(),t===null&&(t=C(),t===null&&(t=Y(),t===null&&(t=L(),t===null&&(t=g(),t===null&&(t=m(),t===null&&(t=G()))))));t!==null;)A.push(t),t=I(),t===null&&(t=C(),t===null&&(t=Y(),t===null&&(t=L(),t===null&&(t=g(),t===null&&(t=m(),t===null&&(t=G()))))));return A!==null&&(A=function(i){N.reason_phrase=r.substring(e,i)}(n)),A===null&&(e=n),A}function Hs(){var A,t,n,i,a,V;if(a=e,A=ye(),A!==null){for(t=[],V=e,n=$(),n!==null?(i=ye(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=$(),n!==null?(i=ye(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function Ps(){var A,t,n,i,a,V;return i=e,a=e,A=H(),A!==null?(V=e,r.charCodeAt(e)===64?(t="@",e++):(t=null,l('"@"')),t!==null?(n=H(),n!==null?t=[t,n]:(t=null,e=V)):(t=null,e=V),t=t!==null?t:"",t!==null?A=[A,t]:(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(y){N=r.substring(e,y)}(i)),A===null&&(e=i),A}function zs(){var A,t,n,i,a,V,y;if(a=e,A=J(),A===null)if(V=e,A=De(),A!==null){for(t=[],y=e,n=$(),n!==null?(i=De(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);n!==null;)t.push(n),y=e,n=$(),n!==null?(i=De(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);t!==null?A=[A,t]:(A=null,e=V)}else A=null,e=V;return A!==null&&(A=function(_){var tA,fA;for(fA=N.multi_header.length,tA=0;tA<fA;tA++)if(N.multi_header[tA].parsed===null){N=null;break}N!==null?N=N.multi_header:N=-1}()),A===null&&(e=a),A}function De(){var A,t,n,i,a,V,y;if(a=e,V=e,A=gA(),A===null&&(A=Ve()),A!==null){for(t=[],y=e,n=eA(),n!==null?(i=Qt(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);n!==null;)t.push(n),y=e,n=eA(),n!==null?(i=Qt(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);t!==null?A=[A,t]:(A=null,e=V)}else A=null,e=V;return A!==null&&(A=function(_){var tA;N.multi_header||(N.multi_header=[]);try{tA=new de(N.uri,N.display_name,N.params),delete N.uri,delete N.display_name,delete N.params}catch{tA=null}N.multi_header.push({possition:e,offset:_,parsed:tA})}(a)),A===null&&(e=a),A}function Ve(){var A,t,n,i,a;return a=e,A=Oe(),A=A!==null?A:"",A!==null?(t=z(),t!==null?(n=pA(),n!==null?(i=X(),i!==null?A=[A,t,n,i]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A}function Oe(){var A,t,n,i,a,V,y;if(a=e,V=e,A=b(),A!==null){for(t=[],y=e,n=w(),n!==null?(i=b(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);n!==null;)t.push(n),y=e,n=w(),n!==null?(i=b(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);t!==null?A=[A,t]:(A=null,e=V)}else A=null,e=V;return A===null&&(A=sA()),A!==null&&(A=function(_,tA){typeof tA=="string"?N.display_name=tA:N.display_name=tA[1].reduce(function(fA,MA){return fA+MA[0]+MA[1]},tA[0])}(a,A)),A===null&&(e=a),A}function Qt(){var A;return A=Ir(),A===null&&(A=pr(),A===null&&(A=QA())),A}function Ir(){var A,t,n,i,a;return i=e,a=e,r.substr(e,1).toLowerCase()==="q"?(A=r.substr(e,1),e++):(A=null,l('"q"')),A!==null?(t=E(),t!==null?(n=mr(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.params||(N.params={}),N.params.q=y}(i,A[2])),A===null&&(e=i),A}function pr(){var A,t,n,i,a;return i=e,a=e,r.substr(e,7).toLowerCase()==="expires"?(A=r.substr(e,7),e+=7):(A=null,l('"expires"')),A!==null?(t=E(),t!==null?(n=fe(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.params||(N.params={}),N.params.expires=y}(i,A[2])),A===null&&(e=i),A}function fe(){var A,t,n;if(n=e,t=o(),t!==null)for(A=[];t!==null;)A.push(t),t=o();else A=null;return A!==null&&(A=function(i,a){return parseInt(a.join(""))}(n,A)),A===null&&(e=n),A}function mr(){var A,t,n,i,a,V,y,_;return V=e,y=e,r.charCodeAt(e)===48?(A="0",e++):(A=null,l('"0"')),A!==null?(_=e,r.charCodeAt(e)===46?(t=".",e++):(t=null,l('"."')),t!==null?(n=o(),n=n!==null?n:"",n!==null?(i=o(),i=i!==null?i:"",i!==null?(a=o(),a=a!==null?a:"",a!==null?t=[t,n,i,a]:(t=null,e=_)):(t=null,e=_)):(t=null,e=_)):(t=null,e=_),t=t!==null?t:"",t!==null?A=[A,t]:(A=null,e=y)):(A=null,e=y),A!==null&&(A=function(tA){return parseFloat(r.substring(e,tA))}(V)),A===null&&(e=V),A}function QA(){var A,t,n,i,a,V;return i=e,a=e,A=b(),A!==null?(V=e,t=E(),t!==null?(n=Er(),n!==null?t=[t,n]:(t=null,e=V)):(t=null,e=V),t=t!==null?t:"",t!==null?A=[A,t]:(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(y,_,tA){N.params||(N.params={}),typeof tA>"u"?tA=void 0:tA=tA[1],N.params[_.toLowerCase()]=tA}(i,A[0],A[1])),A===null&&(e=i),A}function Er(){var A;return A=b(),A===null&&(A=JA(),A===null&&(A=EA())),A}function Xs(){var A,t,n,i,a,V;if(a=e,A=Sr(),A!==null){for(t=[],V=e,n=eA(),n!==null?(i=Bt(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=eA(),n!==null?(i=Bt(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function Sr(){var A;return r.substr(e,6).toLowerCase()==="render"?(A=r.substr(e,6),e+=6):(A=null,l('"render"')),A===null&&(r.substr(e,7).toLowerCase()==="session"?(A=r.substr(e,7),e+=7):(A=null,l('"session"')),A===null&&(r.substr(e,4).toLowerCase()==="icon"?(A=r.substr(e,4),e+=4):(A=null,l('"icon"')),A===null&&(r.substr(e,5).toLowerCase()==="alert"?(A=r.substr(e,5),e+=5):(A=null,l('"alert"')),A===null&&(A=b())))),A}function Bt(){var A;return A=yr(),A===null&&(A=QA()),A}function yr(){var A,t,n,i;return i=e,r.substr(e,8).toLowerCase()==="handling"?(A=r.substr(e,8),e+=8):(A=null,l('"handling"')),A!==null?(t=E(),t!==null?(r.substr(e,8).toLowerCase()==="optional"?(n=r.substr(e,8),e+=8):(n=null,l('"optional"')),n===null&&(r.substr(e,8).toLowerCase()==="required"?(n=r.substr(e,8),e+=8):(n=null,l('"required"')),n===null&&(n=b())),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function _s(){var A,t,n,i,a,V;if(a=e,A=b(),A!==null){for(t=[],V=e,n=$(),n!==null?(i=b(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=$(),n!==null?(i=b(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function $s(){var A,t,n;if(n=e,t=o(),t!==null)for(A=[];t!==null;)A.push(t),t=o();else A=null;return A!==null&&(A=function(i,a){N=parseInt(a.join(""))}(n,A)),A===null&&(e=n),A}function Ao(){var A,t;return t=e,A=Tr(),A!==null&&(A=function(n){N=r.substring(e,n)}(t)),A===null&&(e=t),A}function Tr(){var A,t,n,i,a,V,y,_;if(y=e,A=wr(),A!==null)if(t=u(),t!==null)if(n=vr(),n!==null){for(i=[],_=e,a=eA(),a!==null?(V=bt(),V!==null?a=[a,V]:(a=null,e=_)):(a=null,e=_);a!==null;)i.push(a),_=e,a=eA(),a!==null?(V=bt(),V!==null?a=[a,V]:(a=null,e=_)):(a=null,e=_);i!==null?A=[A,t,n,i]:(A=null,e=y)}else A=null,e=y;else A=null,e=y;else A=null,e=y;return A}function wr(){var A;return A=Mr(),A===null&&(A=Rr()),A}function Mr(){var A;return r.substr(e,4).toLowerCase()==="text"?(A=r.substr(e,4),e+=4):(A=null,l('"text"')),A===null&&(r.substr(e,5).toLowerCase()==="image"?(A=r.substr(e,5),e+=5):(A=null,l('"image"')),A===null&&(r.substr(e,5).toLowerCase()==="audio"?(A=r.substr(e,5),e+=5):(A=null,l('"audio"')),A===null&&(r.substr(e,5).toLowerCase()==="video"?(A=r.substr(e,5),e+=5):(A=null,l('"video"')),A===null&&(r.substr(e,11).toLowerCase()==="application"?(A=r.substr(e,11),e+=11):(A=null,l('"application"')),A===null&&(A=Ge()))))),A}function Rr(){var A;return r.substr(e,7).toLowerCase()==="message"?(A=r.substr(e,7),e+=7):(A=null,l('"message"')),A===null&&(r.substr(e,9).toLowerCase()==="multipart"?(A=r.substr(e,9),e+=9):(A=null,l('"multipart"')),A===null&&(A=Ge())),A}function Ge(){var A;return A=b(),A===null&&(A=kr()),A}function kr(){var A,t,n;return n=e,r.substr(e,2).toLowerCase()==="x-"?(A=r.substr(e,2),e+=2):(A=null,l('"x-"')),A!==null?(t=b(),t!==null?A=[A,t]:(A=null,e=n)):(A=null,e=n),A}function vr(){var A;return A=Ge(),A===null&&(A=b()),A}function bt(){var A,t,n,i;return i=e,A=b(),A!==null?(t=E(),t!==null?(n=Ur(),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function Ur(){var A;return A=b(),A===null&&(A=EA()),A}function eo(){var A,t,n,i;return i=e,A=Qr(),A!==null?(t=w(),t!==null?(n=Ye(),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function Qr(){var A,t,n;if(n=e,t=o(),t!==null)for(A=[];t!==null;)A.push(t),t=o();else A=null;return A!==null&&(A=function(i,a){N.value=parseInt(a.join(""))}(n,A)),A===null&&(e=n),A}function to(){var A,t;return t=e,A=fe(),A!==null&&(A=function(n,i){N=i}(t,A)),A===null&&(e=t),A}function no(){var A,t,n,i,a,V,y;if(a=e,V=e,A=ye(),A!==null){for(t=[],y=e,n=eA(),n!==null?(i=QA(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);n!==null;)t.push(n),y=e,n=eA(),n!==null?(i=QA(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);t!==null?A=[A,t]:(A=null,e=V)}else A=null,e=V;return A!==null&&(A=function(_,tA){N.event=tA.join("").toLowerCase()}(a,A[0])),A===null&&(e=a),A}function ye(){var A,t,n,i,a,V;if(a=e,A=R(),A!==null){for(t=[],V=e,r.charCodeAt(e)===46?(n=".",e++):(n=null,l('"."')),n!==null?(i=R(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,r.charCodeAt(e)===46?(n=".",e++):(n=null,l('"."')),n!==null?(i=R(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function ro(){var A,t,n,i,a,V,y;if(a=e,V=e,A=gA(),A===null&&(A=Ve()),A!==null){for(t=[],y=e,n=eA(),n!==null?(i=Yt(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);n!==null;)t.push(n),y=e,n=eA(),n!==null?(i=Yt(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);t!==null?A=[A,t]:(A=null,e=V)}else A=null,e=V;return A!==null&&(A=function(_){var tA=N.tag;try{N=new de(N.uri,N.display_name,N.params),tA&&N.setParam("tag",tA)}catch{N=-1}}()),A===null&&(e=a),A}function Yt(){var A;return A=Dt(),A===null&&(A=QA()),A}function Dt(){var A,t,n,i,a;return i=e,a=e,r.substr(e,3).toLowerCase()==="tag"?(A=r.substr(e,3),e+=3):(A=null,l('"tag"')),A!==null?(t=E(),t!==null?(n=b(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.tag=y}(i,A[2])),A===null&&(e=i),A}function lo(){var A,t,n;if(n=e,t=o(),t!==null)for(A=[];t!==null;)A.push(t),t=o();else A=null;return A!==null&&(A=function(i,a){N=parseInt(a.join(""))}(n,A)),A===null&&(e=n),A}function io(){var A,t;return t=e,A=fe(),A!==null&&(A=function(n,i){N=i}(t,A)),A===null&&(e=t),A}function so(){var A,t,n,i,a,V,y,_,tA,fA;for(_=e,tA=e,A=[],t=Oe();t!==null;)A.push(t),t=Oe();if(A!==null)if(t=z(),t!==null)if(n=pA(),n!==null)if(i=X(),i!==null){for(a=[],fA=e,V=eA(),V!==null?(y=QA(),y!==null?V=[V,y]:(V=null,e=fA)):(V=null,e=fA);V!==null;)a.push(V),fA=e,V=eA(),V!==null?(y=QA(),y!==null?V=[V,y]:(V=null,e=fA)):(V=null,e=fA);a!==null?A=[A,t,n,i,a]:(A=null,e=tA)}else A=null,e=tA;else A=null,e=tA;else A=null,e=tA;else A=null,e=tA;return A!==null&&(A=function(MA){try{N=new de(N.uri,N.display_name,N.params)}catch{N=-1}}()),A===null&&(e=_),A}function oo(){var A;return A=Ot(),A}function Ot(){var A,t,n,i,a,V,y,_;if(y=e,r.substr(e,6).toLowerCase()==="digest"?(A=r.substr(e,6),e+=6):(A=null,l('"Digest"')),A!==null)if(t=w(),t!==null)if(n=Je(),n!==null){for(i=[],_=e,a=$(),a!==null?(V=Je(),V!==null?a=[a,V]:(a=null,e=_)):(a=null,e=_);a!==null;)i.push(a),_=e,a=$(),a!==null?(V=Je(),V!==null?a=[a,V]:(a=null,e=_)):(a=null,e=_);i!==null?A=[A,t,n,i]:(A=null,e=y)}else A=null,e=y;else A=null,e=y;else A=null,e=y;return A===null&&(A=Br()),A}function Br(){var A,t,n,i,a,V,y,_;if(y=e,A=b(),A!==null)if(t=w(),t!==null)if(n=Te(),n!==null){for(i=[],_=e,a=$(),a!==null?(V=Te(),V!==null?a=[a,V]:(a=null,e=_)):(a=null,e=_);a!==null;)i.push(a),_=e,a=$(),a!==null?(V=Te(),V!==null?a=[a,V]:(a=null,e=_)):(a=null,e=_);i!==null?A=[A,t,n,i]:(A=null,e=y)}else A=null,e=y;else A=null,e=y;else A=null,e=y;return A}function Te(){var A,t,n,i;return i=e,A=b(),A!==null?(t=E(),t!==null?(n=b(),n===null&&(n=EA()),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function Je(){var A;return A=br(),A===null&&(A=Dr(),A===null&&(A=Or(),A===null&&(A=Jr(),A===null&&(A=xr(),A===null&&(A=Kr(),A===null&&(A=Fr(),A===null&&(A=Te()))))))),A}function br(){var A,t,n,i;return i=e,r.substr(e,5).toLowerCase()==="realm"?(A=r.substr(e,5),e+=5):(A=null,l('"realm"')),A!==null?(t=E(),t!==null?(n=Yr(),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function Yr(){var A,t;return t=e,A=sA(),A!==null&&(A=function(n,i){N.realm=i}(t,A)),A===null&&(e=t),A}function Dr(){var A,t,n,i,a,V,y,_,tA;if(_=e,r.substr(e,6).toLowerCase()==="domain"?(A=r.substr(e,6),e+=6):(A=null,l('"domain"')),A!==null)if(t=E(),t!==null)if(n=lA(),n!==null)if(i=xe(),i!==null){if(a=[],tA=e,y=m(),y!==null)for(V=[];y!==null;)V.push(y),y=m();else V=null;for(V!==null?(y=xe(),y!==null?V=[V,y]:(V=null,e=tA)):(V=null,e=tA);V!==null;){if(a.push(V),tA=e,y=m(),y!==null)for(V=[];y!==null;)V.push(y),y=m();else V=null;V!==null?(y=xe(),y!==null?V=[V,y]:(V=null,e=tA)):(V=null,e=tA)}a!==null?(V=rA(),V!==null?A=[A,t,n,i,a,V]:(A=null,e=_)):(A=null,e=_)}else A=null,e=_;else A=null,e=_;else A=null,e=_;else A=null,e=_;return A}function xe(){var A;return A=kt(),A===null&&(A=Be()),A}function Or(){var A,t,n,i;return i=e,r.substr(e,5).toLowerCase()==="nonce"?(A=r.substr(e,5),e+=5):(A=null,l('"nonce"')),A!==null?(t=E(),t!==null?(n=Gr(),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function Gr(){var A,t;return t=e,A=sA(),A!==null&&(A=function(n,i){N.nonce=i}(t,A)),A===null&&(e=t),A}function Jr(){var A,t,n,i,a;return i=e,a=e,r.substr(e,6).toLowerCase()==="opaque"?(A=r.substr(e,6),e+=6):(A=null,l('"opaque"')),A!==null?(t=E(),t!==null?(n=sA(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.opaque=y}(i,A[2])),A===null&&(e=i),A}function xr(){var A,t,n,i,a;return i=e,r.substr(e,5).toLowerCase()==="stale"?(A=r.substr(e,5),e+=5):(A=null,l('"stale"')),A!==null?(t=E(),t!==null?(a=e,r.substr(e,4).toLowerCase()==="true"?(n=r.substr(e,4),e+=4):(n=null,l('"true"')),n!==null&&(n=function(V){N.stale=!0}()),n===null&&(e=a),n===null&&(a=e,r.substr(e,5).toLowerCase()==="false"?(n=r.substr(e,5),e+=5):(n=null,l('"false"')),n!==null&&(n=function(V){N.stale=!1}()),n===null&&(e=a)),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function Kr(){var A,t,n,i,a;return i=e,a=e,r.substr(e,9).toLowerCase()==="algorithm"?(A=r.substr(e,9),e+=9):(A=null,l('"algorithm"')),A!==null?(t=E(),t!==null?(r.substr(e,3).toLowerCase()==="md5"?(n=r.substr(e,3),e+=3):(n=null,l('"MD5"')),n===null&&(r.substr(e,8).toLowerCase()==="md5-sess"?(n=r.substr(e,8),e+=8):(n=null,l('"MD5-sess"')),n===null&&(n=b())),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.algorithm=y.toUpperCase()}(i,A[2])),A===null&&(e=i),A}function Fr(){var A,t,n,i,a,V,y,_,tA,fA;if(_=e,r.substr(e,3).toLowerCase()==="qop"?(A=r.substr(e,3),e+=3):(A=null,l('"qop"')),A!==null)if(t=E(),t!==null)if(n=lA(),n!==null){if(tA=e,i=Ke(),i!==null){for(a=[],fA=e,r.charCodeAt(e)===44?(V=",",e++):(V=null,l('","')),V!==null?(y=Ke(),y!==null?V=[V,y]:(V=null,e=fA)):(V=null,e=fA);V!==null;)a.push(V),fA=e,r.charCodeAt(e)===44?(V=",",e++):(V=null,l('","')),V!==null?(y=Ke(),y!==null?V=[V,y]:(V=null,e=fA)):(V=null,e=fA);a!==null?i=[i,a]:(i=null,e=tA)}else i=null,e=tA;i!==null?(a=rA(),a!==null?A=[A,t,n,i,a]:(A=null,e=_)):(A=null,e=_)}else A=null,e=_;else A=null,e=_;else A=null,e=_;return A}function Ke(){var A,t;return t=e,r.substr(e,8).toLowerCase()==="auth-int"?(A=r.substr(e,8),e+=8):(A=null,l('"auth-int"')),A===null&&(r.substr(e,4).toLowerCase()==="auth"?(A=r.substr(e,4),e+=4):(A=null,l('"auth"')),A===null&&(A=b())),A!==null&&(A=function(n,i){N.qop||(N.qop=[]),N.qop.push(i.toLowerCase())}(t,A)),A===null&&(e=t),A}function ao(){var A,t,n,i,a,V;if(a=e,A=b(),A!==null){for(t=[],V=e,n=$(),n!==null?(i=b(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=$(),n!==null?(i=b(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function uo(){var A,t,n,i,a,V,y;if(a=e,V=e,A=Fe(),A!==null){for(t=[],y=e,n=$(),n!==null?(i=Fe(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);n!==null;)t.push(n),y=e,n=$(),n!==null?(i=Fe(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);t!==null?A=[A,t]:(A=null,e=V)}else A=null,e=V;return A!==null&&(A=function(_){var tA,fA;for(fA=N.multi_header.length,tA=0;tA<fA;tA++)if(N.multi_header[tA].parsed===null){N=null;break}N!==null?N=N.multi_header:N=-1}()),A===null&&(e=a),A}function Fe(){var A,t,n,i,a,V,y;if(a=e,V=e,A=Ve(),A!==null){for(t=[],y=e,n=eA(),n!==null?(i=QA(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);n!==null;)t.push(n),y=e,n=eA(),n!==null?(i=QA(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);t!==null?A=[A,t]:(A=null,e=V)}else A=null,e=V;return A!==null&&(A=function(_){var tA;N.multi_header||(N.multi_header=[]);try{tA=new de(N.uri,N.display_name,N.params),delete N.uri,delete N.display_name,delete N.params}catch{tA=null}N.multi_header.push({possition:e,offset:_,parsed:tA})}(a)),A===null&&(e=a),A}function qo(){var A,t,n,i,a,V,y;if(a=e,V=e,r.substr(e,3).toLowerCase()==="sip"?(A=r.substr(e,3),e+=3):(A=null,l('"SIP"')),A===null&&(A=b()),A!==null){for(t=[],y=e,n=eA(),n!==null?(i=Gt(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);n!==null;)t.push(n),y=e,n=eA(),n!==null?(i=Gt(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);t!==null?A=[A,t]:(A=null,e=V)}else A=null,e=V;return A!==null&&(A=function(_,tA){if(N.protocol=tA.toLowerCase(),N.params||(N.params={}),N.params.text&&N.params.text[0]==='"'){var fA=N.params.text;N.text=fA.substring(1,fA.length-1),delete N.params.text}}(a,A[0])),A===null&&(e=a),A}function Gt(){var A;return A=Lr(),A===null&&(A=QA()),A}function Lr(){var A,t,n,i,a,V;if(a=e,V=e,r.substr(e,5).toLowerCase()==="cause"?(A=r.substr(e,5),e+=5):(A=null,l('"cause"')),A!==null)if(t=E(),t!==null){if(i=o(),i!==null)for(n=[];i!==null;)n.push(i),i=o();else n=null;n!==null?A=[A,t,n]:(A=null,e=V)}else A=null,e=V;else A=null,e=V;return A!==null&&(A=function(y,_){N.cause=parseInt(_.join(""))}(a,A[2])),A===null&&(e=a),A}function co(){var A,t,n,i,a,V;if(a=e,A=b(),A!==null){for(t=[],V=e,n=$(),n!==null?(i=b(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=$(),n!==null?(i=b(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function Vo(){var A,t,n,i,a,V;if(a=e,A=Le(),A!==null){for(t=[],V=e,n=$(),n!==null?(i=Le(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=$(),n!==null?(i=Le(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function Le(){var A,t,n,i,a,V;if(a=e,A=Ve(),A!==null){for(t=[],V=e,n=eA(),n!==null?(i=QA(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=eA(),n!==null?(i=QA(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function fo(){var A,t,n,i,a,V;if(a=e,A=Nr(),A!==null){for(t=[],V=e,n=eA(),n!==null?(i=Jt(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=eA(),n!==null?(i=Jt(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function Nr(){var A,t;return t=e,r.substr(e,6).toLowerCase()==="active"?(A=r.substr(e,6),e+=6):(A=null,l('"active"')),A===null&&(r.substr(e,7).toLowerCase()==="pending"?(A=r.substr(e,7),e+=7):(A=null,l('"pending"')),A===null&&(r.substr(e,10).toLowerCase()==="terminated"?(A=r.substr(e,10),e+=10):(A=null,l('"terminated"')),A===null&&(A=b()))),A!==null&&(A=function(n){N.state=r.substring(e,n)}(t)),A===null&&(e=t),A}function Jt(){var A,t,n,i,a;return i=e,a=e,r.substr(e,6).toLowerCase()==="reason"?(A=r.substr(e,6),e+=6):(A=null,l('"reason"')),A!==null?(t=E(),t!==null?(n=Zr(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){typeof y<"u"&&(N.reason=y)}(i,A[2])),A===null&&(e=i),A===null&&(i=e,a=e,r.substr(e,7).toLowerCase()==="expires"?(A=r.substr(e,7),e+=7):(A=null,l('"expires"')),A!==null?(t=E(),t!==null?(n=fe(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){typeof y<"u"&&(N.expires=y)}(i,A[2])),A===null&&(e=i),A===null&&(i=e,a=e,r.substr(e,11).toLowerCase()==="retry_after"?(A=r.substr(e,11),e+=11):(A=null,l('"retry_after"')),A!==null?(t=E(),t!==null?(n=fe(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){typeof y<"u"&&(N.retry_after=y)}(i,A[2])),A===null&&(e=i),A===null&&(A=QA()))),A}function Zr(){var A;return r.substr(e,11).toLowerCase()==="deactivated"?(A=r.substr(e,11),e+=11):(A=null,l('"deactivated"')),A===null&&(r.substr(e,9).toLowerCase()==="probation"?(A=r.substr(e,9),e+=9):(A=null,l('"probation"')),A===null&&(r.substr(e,8).toLowerCase()==="rejected"?(A=r.substr(e,8),e+=8):(A=null,l('"rejected"')),A===null&&(r.substr(e,7).toLowerCase()==="timeout"?(A=r.substr(e,7),e+=7):(A=null,l('"timeout"')),A===null&&(r.substr(e,6).toLowerCase()==="giveup"?(A=r.substr(e,6),e+=6):(A=null,l('"giveup"')),A===null&&(r.substr(e,10).toLowerCase()==="noresource"?(A=r.substr(e,10),e+=10):(A=null,l('"noresource"')),A===null&&(r.substr(e,9).toLowerCase()==="invariant"?(A=r.substr(e,9),e+=9):(A=null,l('"invariant"')),A===null&&(A=b()))))))),A}function ho(){var A;return A=F(),A=A!==null?A:"",A}function go(){var A,t,n,i,a,V;if(a=e,A=b(),A!==null){for(t=[],V=e,n=$(),n!==null?(i=b(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=$(),n!==null?(i=b(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A=A!==null?A:"",A}function Co(){var A,t,n,i,a,V,y;if(a=e,V=e,A=gA(),A===null&&(A=Ve()),A!==null){for(t=[],y=e,n=eA(),n!==null?(i=xt(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);n!==null;)t.push(n),y=e,n=eA(),n!==null?(i=xt(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);t!==null?A=[A,t]:(A=null,e=V)}else A=null,e=V;return A!==null&&(A=function(_){var tA=N.tag;try{N=new de(N.uri,N.display_name,N.params),tA&&N.setParam("tag",tA)}catch{N=-1}}()),A===null&&(e=a),A}function xt(){var A;return A=Dt(),A===null&&(A=QA()),A}function Io(){var A,t,n,i,a,V;if(a=e,A=Ne(),A!==null){for(t=[],V=e,n=$(),n!==null?(i=Ne(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=$(),n!==null?(i=Ne(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function Ne(){var A,t,n,i,a,V,y,_;if(y=e,A=_r(),A!==null)if(t=w(),t!==null)if(n=el(),n!==null){for(i=[],_=e,a=eA(),a!==null?(V=Kt(),V!==null?a=[a,V]:(a=null,e=_)):(a=null,e=_);a!==null;)i.push(a),_=e,a=eA(),a!==null?(V=Kt(),V!==null?a=[a,V]:(a=null,e=_)):(a=null,e=_);i!==null?A=[A,t,n,i]:(A=null,e=y)}else A=null,e=y;else A=null,e=y;else A=null,e=y;return A}function Kt(){var A;return A=Wr(),A===null&&(A=jr(),A===null&&(A=Hr(),A===null&&(A=Pr(),A===null&&(A=zr(),A===null&&(A=QA()))))),A}function Wr(){var A,t,n,i,a;return i=e,a=e,r.substr(e,3).toLowerCase()==="ttl"?(A=r.substr(e,3),e+=3):(A=null,l('"ttl"')),A!==null?(t=E(),t!==null?(n=Ft(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.ttl=y}(i,A[2])),A===null&&(e=i),A}function jr(){var A,t,n,i,a;return i=e,a=e,r.substr(e,5).toLowerCase()==="maddr"?(A=r.substr(e,5),e+=5):(A=null,l('"maddr"')),A!==null?(t=E(),t!==null?(n=JA(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.maddr=y}(i,A[2])),A===null&&(e=i),A}function Hr(){var A,t,n,i,a;return i=e,a=e,r.substr(e,8).toLowerCase()==="received"?(A=r.substr(e,8),e+=8):(A=null,l('"received"')),A!==null?(t=E(),t!==null?(n=le(),n===null&&(n=_A()),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.received=y}(i,A[2])),A===null&&(e=i),A}function Pr(){var A,t,n,i,a;return i=e,a=e,r.substr(e,6).toLowerCase()==="branch"?(A=r.substr(e,6),e+=6):(A=null,l('"branch"')),A!==null?(t=E(),t!==null?(n=b(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.branch=y}(i,A[2])),A===null&&(e=i),A}function zr(){var A,t,n,i,a;return i=e,r.substr(e,5).toLowerCase()==="rport"?(A=r.substr(e,5),e+=5):(A=null,l('"rport"')),A!==null?(a=e,t=E(),t!==null?(n=Xr(),n!==null?t=[t,n]:(t=null,e=a)):(t=null,e=a),t=t!==null?t:"",t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A}function Xr(){var A,t,n,i,a,V,y;return V=e,y=e,A=o(),A=A!==null?A:"",A!==null?(t=o(),t=t!==null?t:"",t!==null?(n=o(),n=n!==null?n:"",n!==null?(i=o(),i=i!==null?i:"",i!==null?(a=o(),a=a!==null?a:"",a!==null?A=[A,t,n,i,a]:(A=null,e=y)):(A=null,e=y)):(A=null,e=y)):(A=null,e=y)):(A=null,e=y),A!==null&&(A=function(_,tA){N.rport=parseInt(tA.join(""))}(V,A)),A===null&&(e=V),A}function _r(){var A,t,n,i,a,V;return V=e,A=$r(),A!==null?(t=u(),t!==null?(n=b(),n!==null?(i=u(),i!==null?(a=Al(),a!==null?A=[A,t,n,i,a]:(A=null,e=V)):(A=null,e=V)):(A=null,e=V)):(A=null,e=V)):(A=null,e=V),A}function $r(){var A,t;return t=e,r.substr(e,3).toLowerCase()==="sip"?(A=r.substr(e,3),e+=3):(A=null,l('"SIP"')),A===null&&(A=b()),A!==null&&(A=function(n,i){N.protocol=i}(t,A)),A===null&&(e=t),A}function Al(){var A,t;return t=e,r.substr(e,3).toLowerCase()==="udp"?(A=r.substr(e,3),e+=3):(A=null,l('"UDP"')),A===null&&(r.substr(e,3).toLowerCase()==="tcp"?(A=r.substr(e,3),e+=3):(A=null,l('"TCP"')),A===null&&(r.substr(e,3).toLowerCase()==="tls"?(A=r.substr(e,3),e+=3):(A=null,l('"TLS"')),A===null&&(r.substr(e,4).toLowerCase()==="sctp"?(A=r.substr(e,4),e+=4):(A=null,l('"SCTP"')),A===null&&(A=b())))),A!==null&&(A=function(n,i){N.transport=i}(t,A)),A===null&&(e=t),A}function el(){var A,t,n,i,a;return i=e,A=tl(),A!==null?(a=e,t=nA(),t!==null?(n=nl(),n!==null?t=[t,n]:(t=null,e=a)):(t=null,e=a),t=t!==null?t:"",t!==null?A=[A,t]:(A=null,e=i)):(A=null,e=i),A}function tl(){var A,t;return t=e,A=le(),A===null&&(A=re(),A===null&&(A=ae())),A!==null&&(A=function(n){N.host=r.substring(e,n)}(t)),A===null&&(e=t),A}function nl(){var A,t,n,i,a,V,y;return V=e,y=e,A=o(),A=A!==null?A:"",A!==null?(t=o(),t=t!==null?t:"",t!==null?(n=o(),n=n!==null?n:"",n!==null?(i=o(),i=i!==null?i:"",i!==null?(a=o(),a=a!==null?a:"",a!==null?A=[A,t,n,i,a]:(A=null,e=y)):(A=null,e=y)):(A=null,e=y)):(A=null,e=y)):(A=null,e=y),A!==null&&(A=function(_,tA){N.port=parseInt(tA.join(""))}(V,A)),A===null&&(e=V),A}function Ft(){var A,t,n,i,a;return i=e,a=e,A=o(),A!==null?(t=o(),t=t!==null?t:"",t!==null?(n=o(),n=n!==null?n:"",n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){return parseInt(y.join(""))}(i,A)),A===null&&(e=i),A}function po(){var A;return A=Ot(),A}function mo(){var A,t,n,i,a,V;if(a=e,A=rl(),A!==null){for(t=[],V=e,n=eA(),n!==null?(i=Lt(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=eA(),n!==null?(i=Lt(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function rl(){var A,t;return t=e,A=fe(),A!==null&&(A=function(n,i){N.expires=i}(t,A)),A===null&&(e=t),A}function Lt(){var A;return A=ll(),A===null&&(A=QA()),A}function ll(){var A,t,n,i,a;return i=e,a=e,r.substr(e,9).toLowerCase()==="refresher"?(A=r.substr(e,9),e+=9):(A=null,l('"refresher"')),A!==null?(t=E(),t!==null?(r.substr(e,3).toLowerCase()==="uac"?(n=r.substr(e,3),e+=3):(n=null,l('"uac"')),n===null&&(r.substr(e,3).toLowerCase()==="uas"?(n=r.substr(e,3),e+=3):(n=null,l('"uas"'))),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.refresher=y.toLowerCase()}(i,A[2])),A===null&&(e=i),A}function Eo(){var A,t,n,i;return i=e,A=b(),A!==null?(t=P(),t!==null?(n=il(),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function il(){var A,t;for(A=[],t=U(),t===null&&(t=g(),t===null&&(t=w()));t!==null;)A.push(t),t=U(),t===null&&(t=g(),t===null&&(t=w()));return A}function So(){var A,t;for(A=[],t=x();t!==null;)A.push(t),t=x();return A}function yo(){var A,t,n;return n=e,r.substr(e,5)==="uuid:"?(A="uuid:",e+=5):(A=null,l('"uuid:"')),A!==null?(t=sl(),t!==null?A=[A,t]:(A=null,e=n)):(A=null,e=n),A}function sl(){var A,t,n,i,a,V,y,_,tA,fA,MA;return fA=e,MA=e,A=ol(),A!==null?(r.charCodeAt(e)===45?(t="-",e++):(t=null,l('"-"')),t!==null?(n=ie(),n!==null?(r.charCodeAt(e)===45?(i="-",e++):(i=null,l('"-"')),i!==null?(a=ie(),a!==null?(r.charCodeAt(e)===45?(V="-",e++):(V=null,l('"-"')),V!==null?(y=ie(),y!==null?(r.charCodeAt(e)===45?(_="-",e++):(_=null,l('"-"')),_!==null?(tA=al(),tA!==null?A=[A,t,n,i,a,V,y,_,tA]:(A=null,e=MA)):(A=null,e=MA)):(A=null,e=MA)):(A=null,e=MA)):(A=null,e=MA)):(A=null,e=MA)):(A=null,e=MA)):(A=null,e=MA)):(A=null,e=MA),A!==null&&(A=function($A,Ze){N=r.substring(e+5,$A)}(fA,A[0])),A===null&&(e=fA),A}function ie(){var A,t,n,i,a;return a=e,A=f(),A!==null?(t=f(),t!==null?(n=f(),n!==null?(i=f(),i!==null?A=[A,t,n,i]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A}function ol(){var A,t,n;return n=e,A=ie(),A!==null?(t=ie(),t!==null?A=[A,t]:(A=null,e=n)):(A=null,e=n),A}function al(){var A,t,n,i;return i=e,A=ie(),A!==null?(t=ie(),t!==null?(n=ie(),n!==null?A=[A,t,n]:(A=null,e=i)):(A=null,e=i)):(A=null,e=i),A}function To(){var A,t,n,i,a,V,y;if(a=e,V=e,A=gA(),A===null&&(A=Ve()),A!==null){for(t=[],y=e,n=eA(),n!==null?(i=QA(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);n!==null;)t.push(n),y=e,n=eA(),n!==null?(i=QA(),i!==null?n=[n,i]:(n=null,e=y)):(n=null,e=y);t!==null?A=[A,t]:(A=null,e=V)}else A=null,e=V;return A!==null&&(A=function(_){try{N=new de(N.uri,N.display_name,N.params)}catch{N=-1}}()),A===null&&(e=a),A}function wo(){var A,t,n,i,a,V;if(a=e,A=ul(),A!==null){for(t=[],V=e,n=eA(),n!==null?(i=Nt(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);n!==null;)t.push(n),V=e,n=eA(),n!==null?(i=Nt(),i!==null?n=[n,i]:(n=null,e=V)):(n=null,e=V);t!==null?A=[A,t]:(A=null,e=a)}else A=null,e=a;return A}function ul(){var A,t,n,i,a,V;return i=e,a=e,A=H(),A!==null?(V=e,r.charCodeAt(e)===64?(t="@",e++):(t=null,l('"@"')),t!==null?(n=H(),n!==null?t=[t,n]:(t=null,e=V)):(t=null,e=V),t=t!==null?t:"",t!==null?A=[A,t]:(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(y){N.call_id=r.substring(e,y)}(i)),A===null&&(e=i),A}function Nt(){var A;return A=ql(),A===null&&(A=cl(),A===null&&(A=Vl(),A===null&&(A=QA()))),A}function ql(){var A,t,n,i,a;return i=e,a=e,r.substr(e,6)==="to-tag"?(A="to-tag",e+=6):(A=null,l('"to-tag"')),A!==null?(t=E(),t!==null?(n=b(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.to_tag=y}(i,A[2])),A===null&&(e=i),A}function cl(){var A,t,n,i,a;return i=e,a=e,r.substr(e,8)==="from-tag"?(A="from-tag",e+=8):(A=null,l('"from-tag"')),A!==null?(t=E(),t!==null?(n=b(),n!==null?A=[A,t,n]:(A=null,e=a)):(A=null,e=a)):(A=null,e=a),A!==null&&(A=function(V,y){N.from_tag=y}(i,A[2])),A===null&&(e=i),A}function Vl(){var A,t;return t=e,r.substr(e,10)==="early-only"?(A="early-only",e+=10):(A=null,l('"early-only"')),A!==null&&(A=function(n){N.early_only=!0}()),A===null&&(e=t),A}function Mo(A){A.sort();for(var t=null,n=[],i=0;i<A.length;i++)A[i]!==t&&(n.push(A[i]),t=A[i]);return n}function Ro(){for(var A=1,t=1,n=!1,i=0;i<Math.max(e,S);i++){var a=r.charAt(i);a===`
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var x=!0,D=!1,m;return{s:function(){c=q[Symbol.iterator]()},n:function(){var O=c.next();return x=O.done,O},e:function(O){D=!0,m=O},f:function(){try{!x&&c.return!=null&&c.return()}finally{if(D)throw m}}}}function h(q,o){if(q){if(typeof q=="string")return r(q,o);var c=Object.prototype.toString.call(q).slice(8,-1);if(c==="Object"&&q.constructor&&(c=q.constructor.name),c==="Map"||c==="Set")return Array.from(q);if(c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return r(q,o)}}function r(q,o){(o==null||o>q.length)&&(o=q.length);for(var c=0,f=new Array(o);c<o;c++)f[c]=q[c];return f}var M=UA(),Q=oe(),e=zA();kA.str_utf8_length=function(q){return unescape(encodeURIComponent(q)).length};var S=kA.isFunction=function(q){return q!==void 0?Object.prototype.toString.call(q)==="[object Function]":!1};kA.isString=function(q){return q!==void 0?Object.prototype.toString.call(q)==="[object String]":!1},kA.isDecimal=function(q){return!isNaN(q)&&parseFloat(q)===parseInt(q,10)},kA.isEmpty=function(q){return q===null||q===""||q===void 0||Array.isArray(q)&&q.length===0||typeof q=="number"&&isNaN(q)},kA.hasMethods=function(q){for(var o=arguments.length,c=new Array(o>1?o-1:0),f=1;f<o;f++)c[f-1]=arguments[f];for(var W=0,x=c;W<x.length;W++){var D=x[W];if(S(q[D]))return!1}return!0};var T=kA.createRandomToken=function(q){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:32,c,f,W="";for(c=0;c<q;c++)f=Math.random()*o|0,W+=f.toString(o);return W};kA.newTag=function(){return T(10)},kA.newUUID=function(){var q="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(o){var c=Math.random()*16|0,f=o==="x"?c:c&3|8;return f.toString(16)});return q},kA.hostType=function(q){if(q){if(q=e.parse(q,"host"),q!==-1)return q.host_type}else return};var l=kA.escapeUser=function(q){return encodeURIComponent(decodeURIComponent(q)).replace(/%3A/ig,":").replace(/%2B/ig,"+").replace(/%3F/ig,"?").replace(/%2F/ig,"/")};return kA.normalizeTarget=function(q,o){if(q){if(q instanceof Q)return q;if(typeof q=="string"){var c=q.split("@"),f,W;switch(c.length){case 1:if(!o)return;f=q,W=o;break;case 2:f=c[0],W=c[1];break;default:f=c.slice(0,c.length-1).join("@"),W=c[c.length-1]}f=f.replace(/^(sips?|tel):/i,""),/^[-.()]*\+?[0-9\-.()]+$/.test(f)&&(f=f.replace(/[-.()]/g,"")),q="".concat(M.SIP,":").concat(l(f),"@").concat(W);var x;return(x=Q.parse(q))?x:void 0}else return}else return},kA.headerize=function(q){var o={"Call-Id":"Call-ID",Cseq:"CSeq","Www-Authenticate":"WWW-Authenticate"},c=q.toLowerCase().replace(/_/g,"-").split("-"),f="",W=c.length,x;for(x=0;x<W;x++)x!==0&&(f+="-"),f+=c[x].charAt(0).toUpperCase()+c[x].substring(1);return o[f]&&(f=o[f]),f},kA.sipErrorCause=function(q){for(var o in M.SIP_ERROR_CAUSES)if(M.SIP_ERROR_CAUSES[o].indexOf(q)!==-1)return M.causes[o];return M.causes.SIP_FAILURE_CODE},kA.getRandomTestNetIP=function(){function q(o,c){return Math.floor(Math.random()*(c-o+1)+o)}return"192.0.2.".concat(q(1,254))},kA.calculateMD5=function(q){function o(sA,qA){return sA<<qA|sA>>>32-qA}function c(sA,qA){var cA=sA&2147483648,gA=qA&2147483648,pA=sA&1073741824,yA=qA&1073741824,mA=(sA&1073741823)+(qA&1073741823);return pA&yA?mA^2147483648^cA^gA:pA|yA?mA&1073741824?mA^3221225472^cA^gA:mA^1073741824^cA^gA:mA^cA^gA}function f(sA,qA,cA){return sA&qA|~sA&cA}function W(sA,qA,cA){return sA&cA|qA&~cA}function x(sA,qA,cA){return sA^qA^cA}function D(sA,qA,cA){return qA^(sA|~cA)}function m(sA,qA,cA,gA,pA,yA,mA){return sA=c(sA,c(c(f(qA,cA,gA),pA),mA)),c(o(sA,yA),qA)}function G(sA,qA,cA,gA,pA,yA,mA){return sA=c(sA,c(c(W(qA,cA,gA),pA),mA)),c(o(sA,yA),qA)}function O(sA,qA,cA,gA,pA,yA,mA){return sA=c(sA,c(c(x(qA,cA,gA),pA),mA)),c(o(sA,yA),qA)}function I(sA,qA,cA,gA,pA,yA,mA){return sA=c(sA,c(c(D(qA,cA,gA),pA),mA)),c(o(sA,yA),qA)}function C(sA){for(var qA,cA=sA.length,gA=cA+8,pA=(gA-gA%64)/64,yA=(pA+1)*16,mA=new Array(yA-1),FA=0,wA=0;wA<cA;)qA=(wA-wA%4)/4,FA=wA%4*8,mA[qA]=mA[qA]|sA.charCodeAt(wA)<<FA,wA++;return qA=(wA-wA%4)/4,FA=wA%4*8,mA[qA]=mA[qA]|128<<FA,mA[yA-2]=cA<<3,mA[yA-1]=cA>>>29,mA}function B(sA){var qA="",cA="",gA,pA;for(pA=0;pA<=3;pA++)gA=sA>>>pA*8&255,cA="0".concat(gA.toString(16)),qA=qA+cA.substr(cA.length-2,2);return qA}function Y(sA){for(var qA="",cA=0;cA<sA.length;cA++){var gA=sA.charCodeAt(cA);gA<128?qA+=String.fromCharCode(gA):gA>127&&gA<2048?(qA+=String.fromCharCode(gA>>6|192),qA+=String.fromCharCode(gA&63|128)):(qA+=String.fromCharCode(gA>>12|224),qA+=String.fromCharCode(gA>>6&63|128),qA+=String.fromCharCode(gA&63|128))}return qA}var w=[],v,P,F,U,L,g,d,b,R,j=7,H=12,J=17,u=22,E=5,K=9,Z=14,X=20,z=4,$=11,eA=16,nA=23,lA=6,rA=10,hA=15,IA=21;for(q=Y(q),w=C(q),g=1732584193,d=4023233417,b=2562383102,R=271733878,v=0;v<w.length;v+=16)P=g,F=d,U=b,L=R,g=m(g,d,b,R,w[v+0],j,3614090360),R=m(R,g,d,b,w[v+1],H,3905402710),b=m(b,R,g,d,w[v+2],J,606105819),d=m(d,b,R,g,w[v+3],u,3250441966),g=m(g,d,b,R,w[v+4],j,4118548399),R=m(R,g,d,b,w[v+5],H,1200080426),b=m(b,R,g,d,w[v+6],J,2821735955),d=m(d,b,R,g,w[v+7],u,4249261313),g=m(g,d,b,R,w[v+8],j,1770035416),R=m(R,g,d,b,w[v+9],H,2336552879),b=m(b,R,g,d,w[v+10],J,4294925233),d=m(d,b,R,g,w[v+11],u,2304563134),g=m(g,d,b,R,w[v+12],j,1804603682),R=m(R,g,d,b,w[v+13],H,4254626195),b=m(b,R,g,d,w[v+14],J,2792965006),d=m(d,b,R,g,w[v+15],u,1236535329),g=G(g,d,b,R,w[v+1],E,4129170786),R=G(R,g,d,b,w[v+6],K,3225465664),b=G(b,R,g,d,w[v+11],Z,643717713),d=G(d,b,R,g,w[v+0],X,3921069994),g=G(g,d,b,R,w[v+5],E,3593408605),R=G(R,g,d,b,w[v+10],K,38016083),b=G(b,R,g,d,w[v+15],Z,3634488961),d=G(d,b,R,g,w[v+4],X,3889429448),g=G(g,d,b,R,w[v+9],E,568446438),R=G(R,g,d,b,w[v+14],K,3275163606),b=G(b,R,g,d,w[v+3],Z,4107603335),d=G(d,b,R,g,w[v+8],X,1163531501),g=G(g,d,b,R,w[v+13],E,2850285829),R=G(R,g,d,b,w[v+2],K,4243563512),b=G(b,R,g,d,w[v+7],Z,1735328473),d=G(d,b,R,g,w[v+12],X,2368359562),g=O(g,d,b,R,w[v+5],z,4294588738),R=O(R,g,d,b,w[v+8],$,2272392833),b=O(b,R,g,d,w[v+11],eA,1839030562),d=O(d,b,R,g,w[v+14],nA,4259657740),g=O(g,d,b,R,w[v+1],z,2763975236),R=O(R,g,d,b,w[v+4],$,1272893353),b=O(b,R,g,d,w[v+7],eA,4139469664),d=O(d,b,R,g,w[v+10],nA,3200236656),g=O(g,d,b,R,w[v+13],z,681279174),R=O(R,g,d,b,w[v+0],$,3936430074),b=O(b,R,g,d,w[v+3],eA,3572445317),d=O(d,b,R,g,w[v+6],nA,76029189),g=O(g,d,b,R,w[v+9],z,3654602809),R=O(R,g,d,b,w[v+12],$,3873151461),b=O(b,R,g,d,w[v+15],eA,530742520),d=O(d,b,R,g,w[v+2],nA,3299628645),g=I(g,d,b,R,w[v+0],lA,4096336452),R=I(R,g,d,b,w[v+7],rA,1126891415),b=I(b,R,g,d,w[v+14],hA,2878612391),d=I(d,b,R,g,w[v+5],IA,4237533241),g=I(g,d,b,R,w[v+12],lA,1700485571),R=I(R,g,d,b,w[v+3],rA,2399980690),b=I(b,R,g,d,w[v+10],hA,4293915773),d=I(d,b,R,g,w[v+1],IA,2240044497),g=I(g,d,b,R,w[v+8],lA,1873313359),R=I(R,g,d,b,w[v+15],rA,4264355552),b=I(b,R,g,d,w[v+6],hA,2734768916),d=I(d,b,R,g,w[v+13],IA,1309151649),g=I(g,d,b,R,w[v+4],lA,4149444226),R=I(R,g,d,b,w[v+11],rA,3174756917),b=I(b,R,g,d,w[v+2],hA,718787259),d=I(d,b,R,g,w[v+9],IA,3951481745),g=c(g,P),d=c(d,F),b=c(b,U),R=c(R,L);var EA=B(g)+B(d)+B(b)+B(R);return EA.toLowerCase()},kA.closeMediaStream=function(q){if(q)try{var o;if(q.getTracks){o=q.getTracks();var c=p(o),f;try{for(c.s();!(f=c.n()).done;){var W=f.value;W.stop()}}catch(C){c.e(C)}finally{c.f()}}else{o=q.getAudioTracks();var x=p(o),D;try{for(x.s();!(D=x.n()).done;){var m=D.value;m.stop()}}catch(C){x.e(C)}finally{x.f()}o=q.getVideoTracks();var G=p(o),O;try{for(G.s();!(O=G.n()).done;){var I=O.value;I.stop()}}catch(C){G.e(C)}finally{G.f()}}}catch{(typeof q.stop=="function"||k(q.stop)==="object")&&q.stop()}},kA.cloneArray=function(q){return q&&q.slice()||[]},kA.cloneObject=function(q){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return q&&Object.assign({},q)||o},kA}var we={exports:{}},An;function Ae(){if(An)return we.exports;An=1;var k=typeof Reflect=="object"?Reflect:null,p=k&&typeof k.apply=="function"?k.apply:function(C,B,Y){return Function.prototype.apply.call(C,B,Y)},h;k&&typeof k.ownKeys=="function"?h=k.ownKeys:Object.getOwnPropertySymbols?h=function(C){return Object.getOwnPropertyNames(C).concat(Object.getOwnPropertySymbols(C))}:h=function(C){return Object.getOwnPropertyNames(C)};function r(I){console&&console.warn&&console.warn(I)}var M=Number.isNaN||function(C){return C!==C};function Q(){Q.init.call(this)}we.exports=Q,we.exports.once=m,Q.EventEmitter=Q,Q.prototype._events=void 0,Q.prototype._eventsCount=0,Q.prototype._maxListeners=void 0;var e=10;function S(I){if(typeof I!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof I)}Object.defineProperty(Q,"defaultMaxListeners",{enumerable:!0,get:function(){return e},set:function(I){if(typeof I!="number"||I<0||M(I))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+I+".");e=I}}),Q.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Q.prototype.setMaxListeners=function(C){if(typeof C!="number"||C<0||M(C))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+C+".");return this._maxListeners=C,this};function T(I){return I._maxListeners===void 0?Q.defaultMaxListeners:I._maxListeners}Q.prototype.getMaxListeners=function(){return T(this)},Q.prototype.emit=function(C){for(var B=[],Y=1;Y<arguments.length;Y++)B.push(arguments[Y]);var w=C==="error",v=this._events;if(v!==void 0)w=w&&v.error===void 0;else if(!w)return!1;if(w){var P;if(B.length>0&&(P=B[0]),P instanceof Error)throw P;var F=new Error("Unhandled error."+(P?" ("+P.message+")":""));throw F.context=P,F}var U=v[C];if(U===void 0)return!1;if(typeof U=="function")p(U,this,B);else for(var L=U.length,g=W(U,L),Y=0;Y<L;++Y)p(g[Y],this,B);return!0};function l(I,C,B,Y){var w,v,P;if(S(B),v=I._events,v===void 0?(v=I._events=Object.create(null),I._eventsCount=0):(v.newListener!==void 0&&(I.emit("newListener",C,B.listener?B.listener:B),v=I._events),P=v[C]),P===void 0)P=v[C]=B,++I._eventsCount;else if(typeof P=="function"?P=v[C]=Y?[B,P]:[P,B]:Y?P.unshift(B):P.push(B),w=T(I),w>0&&P.length>w&&!P.warned){P.warned=!0;var F=new Error("Possible EventEmitter memory leak detected. "+P.length+" "+String(C)+" listeners added. Use emitter.setMaxListeners() to increase limit");F.name="MaxListenersExceededWarning",F.emitter=I,F.type=C,F.count=P.length,r(F)}return I}Q.prototype.addListener=function(C,B){return l(this,C,B,!1)},Q.prototype.on=Q.prototype.addListener,Q.prototype.prependListener=function(C,B){return l(this,C,B,!0)};function q(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function o(I,C,B){var Y={fired:!1,wrapFn:void 0,target:I,type:C,listener:B},w=q.bind(Y);return w.listener=B,Y.wrapFn=w,w}Q.prototype.once=function(C,B){return S(B),this.on(C,o(this,C,B)),this},Q.prototype.prependOnceListener=function(C,B){return S(B),this.prependListener(C,o(this,C,B)),this},Q.prototype.removeListener=function(C,B){var Y,w,v,P,F;if(S(B),w=this._events,w===void 0)return this;if(Y=w[C],Y===void 0)return this;if(Y===B||Y.listener===B)--this._eventsCount===0?this._events=Object.create(null):(delete w[C],w.removeListener&&this.emit("removeListener",C,Y.listener||B));else if(typeof Y!="function"){for(v=-1,P=Y.length-1;P>=0;P--)if(Y[P]===B||Y[P].listener===B){F=Y[P].listener,v=P;break}if(v<0)return this;v===0?Y.shift():x(Y,v),Y.length===1&&(w[C]=Y[0]),w.removeListener!==void 0&&this.emit("removeListener",C,F||B)}return this},Q.prototype.off=Q.prototype.removeListener,Q.prototype.removeAllListeners=function(C){var B,Y,w;if(Y=this._events,Y===void 0)return this;if(Y.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):Y[C]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete Y[C]),this;if(arguments.length===0){var v=Object.keys(Y),P;for(w=0;w<v.length;++w)P=v[w],P!=="removeListener"&&this.removeAllListeners(P);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(B=Y[C],typeof B=="function")this.removeListener(C,B);else if(B!==void 0)for(w=B.length-1;w>=0;w--)this.removeListener(C,B[w]);return this};function c(I,C,B){var Y=I._events;if(Y===void 0)return[];var w=Y[C];return w===void 0?[]:typeof w=="function"?B?[w.listener||w]:[w]:B?D(w):W(w,w.length)}Q.prototype.listeners=function(C){return c(this,C,!0)},Q.prototype.rawListeners=function(C){return c(this,C,!1)},Q.listenerCount=function(I,C){return typeof I.listenerCount=="function"?I.listenerCount(C):f.call(I,C)},Q.prototype.listenerCount=f;function f(I){var C=this._events;if(C!==void 0){var B=C[I];if(typeof B=="function")return 1;if(B!==void 0)return B.length}return 0}Q.prototype.eventNames=function(){return this._eventsCount>0?h(this._events):[]};function W(I,C){for(var B=new Array(C),Y=0;Y<C;++Y)B[Y]=I[Y];return B}function x(I,C){for(;C+1<I.length;C++)I[C]=I[C+1];I.pop()}function D(I){for(var C=new Array(I.length),B=0;B<C.length;++B)C[B]=I[B].listener||I[B];return C}function m(I,C){return new Promise(function(B,Y){function w(P){I.removeListener(C,v),Y(P)}function v(){typeof I.removeListener=="function"&&I.removeListener("error",w),B([].slice.call(arguments))}O(I,C,v,{once:!0}),C!=="error"&&G(I,w,{once:!0})})}function G(I,C,B){typeof I.on=="function"&&O(I,"error",C,B)}function O(I,C,B,Y){if(typeof I.on=="function")Y.once?I.once(C,B):I.on(C,B);else if(typeof I.addEventListener=="function")I.addEventListener(C,function w(v){Y.once&&I.removeEventListener(C,w),B(v)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof I)}return we.exports}var Me={exports:{}},_e,en;function gl(){if(en)return _e;en=1;var k=1e3,p=k*60,h=p*60,r=h*24,M=r*7,Q=r*365.25;_e=function(q,o){o=o||{};var c=typeof q;if(c==="string"&&q.length>0)return e(q);if(c==="number"&&isFinite(q))return o.long?T(q):S(q);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(q))};function e(q){if(q=String(q),!(q.length>100)){var o=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(q);if(o){var c=parseFloat(o[1]),f=(o[2]||"ms").toLowerCase();switch(f){case"years":case"year":case"yrs":case"yr":case"y":return c*Q;case"weeks":case"week":case"w":return c*M;case"days":case"day":case"d":return c*r;case"hours":case"hour":case"hrs":case"hr":case"h":return c*h;case"minutes":case"minute":case"mins":case"min":case"m":return c*p;case"seconds":case"second":case"secs":case"sec":case"s":return c*k;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return}}}}function S(q){var o=Math.abs(q);return o>=r?Math.round(q/r)+"d":o>=h?Math.round(q/h)+"h":o>=p?Math.round(q/p)+"m":o>=k?Math.round(q/k)+"s":q+"ms"}function T(q){var o=Math.abs(q);return o>=r?l(q,o,r,"day"):o>=h?l(q,o,h,"hour"):o>=p?l(q,o,p,"minute"):o>=k?l(q,o,k,"second"):q+" ms"}function l(q,o,c,f){var W=o>=c*1.5;return Math.round(q/c)+" "+f+(W?"s":"")}return _e}var $e,tn;function dl(){if(tn)return $e;tn=1;function k(p){r.debug=r,r.default=r,r.coerce=l,r.disable=S,r.enable=Q,r.enabled=T,r.humanize=gl(),r.destroy=q,Object.keys(p).forEach(o=>{r[o]=p[o]}),r.names=[],r.skips=[],r.formatters={};function h(o){let c=0;for(let f=0;f<o.length;f++)c=(c<<5)-c+o.charCodeAt(f),c|=0;return r.colors[Math.abs(c)%r.colors.length]}r.selectColor=h;function r(o){let c,f=null,W,x;function D(...m){if(!D.enabled)return;const G=D,O=Number(new Date),I=O-(c||O);G.diff=I,G.prev=c,G.curr=O,c=O,m[0]=r.coerce(m[0]),typeof m[0]!="string"&&m.unshift("%O");let C=0;m[0]=m[0].replace(/%([a-zA-Z%])/g,(Y,w)=>{if(Y==="%%")return"%";C++;const v=r.formatters[w];if(typeof v=="function"){const P=m[C];Y=v.call(G,P),m.splice(C,1),C--}return Y}),r.formatArgs.call(G,m),(G.log||r.log).apply(G,m)}return D.namespace=o,D.useColors=r.useColors(),D.color=r.selectColor(o),D.extend=M,D.destroy=r.destroy,Object.defineProperty(D,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(W!==r.namespaces&&(W=r.namespaces,x=r.enabled(o)),x),set:m=>{f=m}}),typeof r.init=="function"&&r.init(D),D}function M(o,c){const f=r(this.namespace+(typeof c>"u"?":":c)+o);return f.log=this.log,f}function Q(o){r.save(o),r.namespaces=o,r.names=[],r.skips=[];const c=(typeof o=="string"?o:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const f of c)f[0]==="-"?r.skips.push(f.slice(1)):r.names.push(f)}function e(o,c){let f=0,W=0,x=-1,D=0;for(;f<o.length;)if(W<c.length&&(c[W]===o[f]||c[W]==="*"))c[W]==="*"?(x=W,D=f,W++):(f++,W++);else if(x!==-1)W=x+1,D++,f=D;else return!1;for(;W<c.length&&c[W]==="*";)W++;return W===c.length}function S(){const o=[...r.names,...r.skips.map(c=>"-"+c)].join(",");return r.enable(""),o}function T(o){for(const c of r.skips)if(e(o,c))return!1;for(const c of r.names)if(e(o,c))return!0;return!1}function l(o){return o instanceof Error?o.stack||o.message:o}function q(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}return $e=k,$e}var nn;function At(){return nn||(nn=1,function(k,p){var h={};p.formatArgs=M,p.save=Q,p.load=e,p.useColors=r,p.storage=S(),p.destroy=(()=>{let l=!1;return()=>{l||(l=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),p.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function r(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let l;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(l=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(l[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function M(l){if(l[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+l[0]+(this.useColors?"%c ":" ")+"+"+k.exports.humanize(this.diff),!this.useColors)return;const q="color: "+this.color;l.splice(1,0,q,"color: inherit");let o=0,c=0;l[0].replace(/%[a-zA-Z%]/g,f=>{f!=="%%"&&(o++,f==="%c"&&(c=o))}),l.splice(c,0,q)}p.log=console.debug||console.log||(()=>{});function Q(l){try{l?p.storage.setItem("debug",l):p.storage.removeItem("debug")}catch{}}function e(){let l;try{l=p.storage.getItem("debug")||p.storage.getItem("DEBUG")}catch{}return!l&&typeof process<"u"&&"env"in process&&(l=h.DEBUG),l}function S(){try{return localStorage}catch{}}k.exports=dl()(p);const{formatters:T}=k.exports;T.j=function(l){try{return JSON.stringify(l)}catch(q){return"[UnexpectedJSONParseError]: "+q.message}}}(Me,Me.exports)),Me.exports}var et,rn;function bA(){if(rn)return et;rn=1;function k(Q,e){if(!(Q instanceof e))throw new TypeError("Cannot call a class as a function")}function p(Q,e){for(var S=0;S<e.length;S++){var T=e[S];T.enumerable=T.enumerable||!1,T.configurable=!0,"value"in T&&(T.writable=!0),Object.defineProperty(Q,T.key,T)}}function h(Q,e,S){return e&&p(Q.prototype,e),Q}var r=At(),M="JsSIP";return et=function(){function Q(e){k(this,Q),e?(this._debug=r.default("".concat(M,":").concat(e)),this._warn=r.default("".concat(M,":WARN:").concat(e)),this._error=r.default("".concat(M,":ERROR:").concat(e))):(this._debug=r.default(M),this._warn=r.default("".concat(M,":WARN")),this._error=r.default("".concat(M,":ERROR"))),this._debug.log=console.info.bind(console),this._warn.log=console.warn.bind(console),this._error.log=console.error.bind(console)}return h(Q,[{key:"debug",get:function(){return this._debug}},{key:"warn",get:function(){return this._warn}},{key:"error",get:function(){return this._error}}]),Q}(),et}var ZA={},tt={},nt={exports:{}},ln;function rt(){if(ln)return nt.exports;ln=1;var k=nt.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(p){return p.encoding?"rtpmap:%d %s/%s/%s":p.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(p){return p.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(p){return p.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(p){return"extmap:%d"+(p.direction?"/%s":"%v")+(p["encrypt-uri"]?" %s":"%v")+" %s"+(p.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(p){return p.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(p){var h="candidate:%s %d %s %d %s %d typ %s";return h+=p.raddr!=null?" raddr %s rport %d":"%v%v",h+=p.tcptype!=null?" tcptype %s":"%v",p.generation!=null&&(h+=" generation %d"),h+=p["network-id"]!=null?" network-id %d":"%v",h+=p["network-cost"]!=null?" network-cost %d":"%v",h}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(p){var h="ssrc:%d";return p.attribute!=null&&(h+=" %s",p.value!=null&&(h+=":%s")),h}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(p){return p.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(p){return p.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(p){return"imageattr:%s %s %s"+(p.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(p){return"simulcast:%s %s"+(p.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(p){return"ts-refclk:%s"+(p.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(p){var h="mediaclk:";return h+=p.id!=null?"id=%s %s":"%v%s",h+=p.mediaClockValue!=null?"=%s":"",h+=p.rateNumerator!=null?" rate=%s":"",h+=p.rateDenominator!=null?"/%s":"",h}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};return Object.keys(k).forEach(function(p){var h=k[p];h.forEach(function(r){r.reg||(r.reg=/(.*)/),r.format||(r.format="%s")})}),nt.exports}var sn;function Cl(){return sn||(sn=1,function(k){var p=function(S){return String(Number(S))===S?Number(S):S},h=function(S,T,l,q){if(q&&!l)T[q]=p(S[1]);else for(var o=0;o<l.length;o+=1)S[o+1]!=null&&(T[l[o]]=p(S[o+1]))},r=function(S,T,l){var q=S.name&&S.names;S.push&&!T[S.push]?T[S.push]=[]:q&&!T[S.name]&&(T[S.name]={});var o=S.push?{}:q?T[S.name]:T;h(l.match(S.reg),o,S.names,S.name),S.push&&T[S.push].push(o)},M=rt(),Q=RegExp.prototype.test.bind(/^([a-z])=(.*)/);k.parse=function(S){var T={},l=[],q=T;return S.split(/(\r\n|\r|\n)/).filter(Q).forEach(function(o){var c=o[0],f=o.slice(2);c==="m"&&(l.push({rtp:[],fmtp:[]}),q=l[l.length-1]);for(var W=0;W<(M[c]||[]).length;W+=1){var x=M[c][W];if(x.reg.test(f))return r(x,q,f)}}),T.media=l,T};var e=function(S,T){var l=T.split(/=(.+)/,2);return l.length===2?S[l[0]]=p(l[1]):l.length===1&&T.length>1&&(S[l[0]]=void 0),S};k.parseParams=function(S){return S.split(/;\s?/).reduce(e,{})},k.parseFmtpConfig=k.parseParams,k.parsePayloads=function(S){return S.toString().split(" ").map(Number)},k.parseRemoteCandidates=function(S){for(var T=[],l=S.split(" ").map(p),q=0;q<l.length;q+=3)T.push({component:l[q],ip:l[q+1],port:l[q+2]});return T},k.parseImageAttributes=function(S){return S.split(" ").map(function(T){return T.substring(1,T.length-1).split(",").reduce(e,{})})},k.parseSimulcastStreamList=function(S){return S.split(";").map(function(T){return T.split(",").map(function(l){var q,o=!1;return l[0]!=="~"?q=p(l):(q=p(l.substring(1,l.length)),o=!0),{scid:q,paused:o}})})}}(tt)),tt}var lt,on;function Il(){if(on)return lt;on=1;var k=rt(),p=/%[sdv%]/g,h=function(e){var S=1,T=arguments,l=T.length;return e.replace(p,function(q){if(S>=l)return q;var o=T[S];switch(S+=1,q){case"%%":return"%";case"%s":return String(o);case"%d":return Number(o);case"%v":return""}})},r=function(e,S,T){var l=S.format instanceof Function?S.format(S.push?T:T[S.name]):S.format,q=[e+"="+l];if(S.names)for(var o=0;o<S.names.length;o+=1){var c=S.names[o];S.name?q.push(T[S.name][c]):q.push(T[S.names[o]])}else q.push(T[S.name]);return h.apply(null,q)},M=["v","o","s","i","u","e","p","c","b","t","r","z","a"],Q=["i","c","b","a"];return lt=function(e,S){S=S||{},e.version==null&&(e.version=0),e.name==null&&(e.name=" "),e.media.forEach(function(o){o.payloads==null&&(o.payloads="")});var T=S.outerOrder||M,l=S.innerOrder||Q,q=[];return T.forEach(function(o){k[o].forEach(function(c){c.name in e&&e[c.name]!=null?q.push(r(o,c,e)):c.push in e&&e[c.push]!=null&&e[c.push].forEach(function(f){q.push(r(o,c,f))})})}),e.media.forEach(function(o){q.push(r("m",k.m[0],o)),l.forEach(function(c){k[c].forEach(function(f){f.name in o&&o[f.name]!=null?q.push(r(c,f,o)):f.push in o&&o[f.push]!=null&&o[f.push].forEach(function(W){q.push(r(c,f,W))})})})}),q.join(`\r
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var d=!0,b=!1,R;return{s:function(){U=P[Symbol.iterator]()},n:function(){var H=U.next();return d=H.done,H},e:function(H){b=!0,R=H},f:function(){try{!d&&U.return!=null&&U.return()}finally{if(b)throw R}}}}function l(P,F){if(P){if(typeof P=="string")return q(P,F);var U=Object.prototype.toString.call(P).slice(8,-1);if(U==="Object"&&P.constructor&&(U=P.constructor.name),U==="Map"||U==="Set")return Array.from(P);if(U==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(U))return q(P,F)}}function q(P,F){(F==null||F>P.length)&&(F=P.length);for(var U=0,L=new Array(F);U<F;U++)L[U]=P[U];return L}function o(P,F){if(!(P instanceof F))throw new TypeError("Cannot call a class as a function")}function c(P,F){for(var U=0;U<F.length;U++){var L=F[U];L.enumerable=L.enumerable||!1,L.configurable=!0,"value"in L&&(L.writable=!0),Object.defineProperty(P,L.key,L)}}function f(P,F,U){return F&&c(P.prototype,F),P}var W=un(),x=bA(),D=UA(),m=OA(),G=Pe(),O=zA(),I=new x("SIPMessage"),C=function(){function P(F,U,L,g,d,b){if(o(this,P),!F||!U||!L)return null;g=g||{},this.ua=L,this.headers={},this.method=F,this.ruri=U,this.body=b,this.extraHeaders=m.cloneArray(d),this.ua.configuration.extra_headers&&(this.extraHeaders=this.extraHeaders.concat(this.ua.configuration.extra_headers)),g.route_set?this.setHeader("route",g.route_set):L.configuration.use_preloaded_route&&this.setHeader("route","<".concat(L.transport.sip_uri,";lr>")),this.setHeader("via",""),this.setHeader("max-forwards",D.MAX_FORWARDS);var R=g.to_uri||U,j=g.to_tag?{tag:g.to_tag}:null,H=typeof g.to_display_name<"u"?g.to_display_name:null;this.to=new G(R,H,j),this.setHeader("to",this.to.toString());var J=g.from_uri||L.configuration.uri,u={tag:g.from_tag||m.newTag()},E;typeof g.from_display_name<"u"?E=g.from_display_name:L.configuration.display_name?E=L.configuration.display_name:E=null,this.from=new G(J,E,u),this.setHeader("from",this.from.toString());var K=g.call_id||L.configuration.jssip_id+m.createRandomToken(15);this.call_id=K,this.setHeader("call-id",K);var Z=g.cseq||Math.floor(Math.random()*1e4);this.cseq=Z,this.setHeader("cseq","".concat(Z," ").concat(F))}return f(P,[{key:"setHeader",value:function(U,L){for(var g=new RegExp("^\\s*".concat(U,"\\s*:"),"i"),d=0;d<this.extraHeaders.length;d++)g.test(this.extraHeaders[d])&&this.extraHeaders.splice(d,1);this.headers[m.headerize(U)]=Array.isArray(L)?L:[L]}},{key:"getHeader",value:function(U){var L=this.headers[m.headerize(U)];if(L){if(L[0])return L[0]}else{var g=new RegExp("^\\s*".concat(U,"\\s*:"),"i"),d=T(this.extraHeaders),b;try{for(d.s();!(b=d.n()).done;){var R=b.value;if(g.test(R))return R.substring(R.indexOf(":")+1).trim()}}catch(j){d.e(j)}finally{d.f()}}}},{key:"getHeaders",value:function(U){var L=this.headers[m.headerize(U)],g=[];if(L){var d=T(L),b;try{for(d.s();!(b=d.n()).done;){var R=b.value;g.push(R)}}catch(E){d.e(E)}finally{d.f()}return g}else{var j=new RegExp("^\\s*".concat(U,"\\s*:"),"i"),H=T(this.extraHeaders),J;try{for(H.s();!(J=H.n()).done;){var u=J.value;j.test(u)&&g.push(u.substring(u.indexOf(":")+1).trim())}}catch(E){H.e(E)}finally{H.f()}return g}}},{key:"hasHeader",value:function(U){if(this.headers[m.headerize(U)])return!0;var L=new RegExp("^\\s*".concat(U,"\\s*:"),"i"),g=T(this.extraHeaders),d;try{for(g.s();!(d=g.n()).done;){var b=d.value;if(L.test(b))return!0}}catch(R){g.e(R)}finally{g.f()}return!1}},{key:"parseSDP",value:function(U){return!U&&this.sdp?this.sdp:(this.sdp=W.parse(this.body||""),this.sdp)}},{key:"toString",value:function(){var U="".concat(this.method," ").concat(this.ruri,` SIP/2.0\r
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`),this.body){var E=m.str_utf8_length(this.body);U+="Content-Length: ".concat(E,`\r
|
|
1
|
+
(function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{@supports (color:lab(0% 0 0)){:root,:host{--color-red-500:lab(55.4814% 75.0732 48.8528);--color-amber-100:lab(95.916% -1.2165 23.111);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-500:lab(72.7183% 31.8671 97.9407);--color-amber-600:lab(60.3514% 40.5624 87.1228);--color-amber-900:lab(31.2288% 30.2627 40.0378);--color-green-500:lab(70.5521% -66.5147 45.8073);--color-emerald-100:lab(94.9004% -17.0769 5.63836);--color-emerald-400:lab(75.0771% -60.7313 19.4146);--color-emerald-600:lab(55.0481% -49.9245 15.93);--color-emerald-900:lab(28.8637% -26.9249 5.45986);--color-blue-100:lab(92.0301% -2.24757 -11.6453);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-600:lab(44.0605% 29.0279 -86.0352);--color-blue-900:lab(26.1542% 15.7545 -51.5504);--color-purple-100:lab(93.3333% 6.97437 -9.83434);--color-purple-400:lab(63.6946% 47.6127 -59.2066);--color-purple-600:lab(43.0295% 75.2101 -86.5669);--color-purple-900:lab(24.9401% 45.2703 -51.2728);--color-neutral-100:lab(96.52% -.0000298023 0);--color-neutral-200:lab(90.952% 0 -.0000119209);--color-neutral-400:lab(66.128% 0 0);--color-neutral-500:lab(48.496% 0 0);--color-neutral-700:lab(27.036% 0 0);--color-neutral-800:lab(15.204% 0 0);--color-neutral-900:lab(7.78201% -.0000149012 0)}}:root,:host{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:#fb2c36;--color-amber-100:#fef3c6;--color-amber-400:#fcbb00;--color-amber-500:#f99c00;--color-amber-600:#dd7400;--color-amber-900:#7b3306;--color-green-500:#00c758;--color-emerald-100:#d0fae5;--color-emerald-400:#00d294;--color-emerald-600:#009767;--color-emerald-900:#004e3b;--color-blue-100:#dbeafe;--color-blue-400:#54a2ff;--color-blue-500:#3080ff;--color-blue-600:#155dfc;--color-blue-900:#1c398e;--color-purple-100:#f3e8ff;--color-purple-400:#c07eff;--color-purple-600:#9810fa;--color-purple-900:#59168b;--color-neutral-100:#f5f5f5;--color-neutral-200:#e5e5e5;--color-neutral-400:#a1a1a1;--color-neutral-500:#737373;--color-neutral-700:#404040;--color-neutral-800:#262626;--color-neutral-900:#171717;--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-2xl:96rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--font-weight-light:300;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wider:.05em;--tracking-widest:.1em;--radius-xs:.125rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:"Montserrat",sans-serif;--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-500:lab(55.4814% 75.0732 48.8528);--color-amber-100:lab(95.916% -1.2165 23.111);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-500:lab(72.7183% 31.8671 97.9407);--color-amber-600:lab(60.3514% 40.5624 87.1228);--color-amber-900:lab(31.2288% 30.2627 40.0378);--color-green-500:lab(70.5521% -66.5147 45.8073);--color-emerald-100:lab(94.9004% -17.0769 5.63836);--color-emerald-400:lab(75.0771% -60.7313 19.4146);--color-emerald-600:lab(55.0481% -49.9245 15.93);--color-emerald-900:lab(28.8637% -26.9249 5.45986);--color-blue-100:lab(92.0301% -2.24757 -11.6453);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-600:lab(44.0605% 29.0279 -86.0352);--color-blue-900:lab(26.1542% 15.7545 -51.5504);--color-purple-100:lab(93.3333% 6.97437 -9.83434);--color-purple-400:lab(63.6946% 47.6127 -59.2066);--color-purple-600:lab(43.0295% 75.2101 -86.5669);--color-purple-900:lab(24.9401% 45.2703 -51.2728);--color-neutral-100:lab(96.52% -.0000298023 0);--color-neutral-200:lab(90.952% 0 -.0000119209);--color-neutral-400:lab(66.128% 0 0);--color-neutral-500:lab(48.496% 0 0);--color-neutral-700:lab(27.036% 0 0);--color-neutral-800:lab(15.204% 0 0);--color-neutral-900:lab(7.78201% -.0000149012 0)}}}@layer base{@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}@supports (color:color-mix(in lab, red, red)){.border-white\\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}@supports (color:color-mix(in lab, red, red)){.bg-background\\/95{background-color:color-mix(in oklab,var(--background)95%,transparent)}}@supports (color:color-mix(in lab, red, red)){.bg-black\\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}@supports (color:color-mix(in lab, red, red)){.ring-ring\\/50{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.selection\\:bg-primary ::selection,.selection\\:bg-primary::selection{background-color:var(--primary)}.selection\\:text-primary-foreground ::selection,.selection\\:text-primary-foreground::selection{color:var(--primary-foreground)}@media (hover:hover){.hover\\:bg-accent:hover,.hover\\:bg-accent\\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\\:bg-muted:hover{background-color:var(--muted)}.hover\\:bg-neutral-200:hover{background-color:var(--color-neutral-200)}.hover\\:bg-primary\\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\\:bg-secondary:hover,.hover\\:bg-secondary\\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-secondary\\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\\:bg-status-available\\/90:hover{background-color:var(--status-available)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-status-available\\/90:hover{background-color:color-mix(in oklab,var(--status-available)90%,transparent)}}.hover\\:bg-status-disconnected\\/90:hover{background-color:var(--status-disconnected)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-status-disconnected\\/90:hover{background-color:color-mix(in oklab,var(--status-disconnected)90%,transparent)}}.hover\\:bg-status-hold\\/90:hover{background-color:var(--status-hold)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-status-hold\\/90:hover{background-color:color-mix(in oklab,var(--status-hold)90%,transparent)}}.hover\\:bg-status-incall\\/90:hover{background-color:var(--status-incall)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-status-incall\\/90:hover{background-color:color-mix(in oklab,var(--status-incall)90%,transparent)}}.hover\\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\\:text-destructive:hover{color:var(--destructive)}.hover\\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\\:text-status-available:hover,.hover\\:text-status-available\\/80:hover{color:var(--status-available)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-status-available\\/80:hover{color:color-mix(in oklab,var(--status-available)80%,transparent)}}.hover\\:text-status-disconnected:hover,.hover\\:text-status-disconnected\\/80:hover{color:var(--status-disconnected)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-status-disconnected\\/80:hover{color:color-mix(in oklab,var(--status-disconnected)80%,transparent)}}.hover\\:text-status-hold:hover,.hover\\:text-status-hold\\/80:hover{color:var(--status-hold)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-status-hold\\/80:hover{color:color-mix(in oklab,var(--status-hold)80%,transparent)}}.hover\\:text-status-incall:hover,.hover\\:text-status-incall\\/80:hover{color:var(--status-incall)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-status-incall\\/80:hover{color:color-mix(in oklab,var(--status-incall)80%,transparent)}}.hover\\:text-status-incoming:hover,.hover\\:text-status-incoming\\/80:hover{color:var(--status-incoming)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-status-incoming\\/80:hover{color:color-mix(in oklab,var(--status-incoming)80%,transparent)}}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-100:hover{opacity:1}.hover\\:ring-4:hover{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}@media (forced-colors:active){.focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}@media (forced-colors:active){.focus-visible\\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}@supports (color:color-mix(in lab, red, red)){.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}@supports (color:color-mix(in lab, red, red)){.data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\\:bg-background\\/60{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.supports-backdrop-filter\\:bg-background\\/60{background-color:color-mix(in oklab,var(--background)60%,transparent)}}}@media (min-width:40rem){.sm\\:block{display:block}.sm\\:inline{display:inline}.sm\\:inline-block{display:inline-block}.sm\\:max-w-lg{max-width:var(--container-lg)}.sm\\:max-w-md{max-width:var(--container-md)}.sm\\:max-w-sm{max-width:var(--container-sm)}.sm\\:flex-row{flex-direction:row}.sm\\:justify-end{justify-content:flex-end}.sm\\:gap-0{gap:calc(var(--spacing)*0)}.sm\\:rounded-lg{border-radius:var(--radius)}.sm\\:text-left{text-align:left}}@media (min-width:48rem){.md\\:w-full{width:100%}.md\\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-amber-900\\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-900)30%,transparent)}}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-blue-900\\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-destructive\\/60:where(.dark,.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-emerald-900\\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-emerald-900)30%,transparent)}}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-input\\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-purple-900\\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-purple-900)30%,transparent)}}@media (hover:hover){.dark\\:hover\\:bg-accent\\/50:where(.dark,.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-accent\\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\\:hover\\:bg-input\\/50:where(.dark,.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-input\\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\\:hover\\:bg-neutral-700:where(.dark,.dark *):hover{background-color:var(--color-neutral-700)}.dark\\:hover\\:text-status-disconnected:where(.dark,.dark *):hover{color:var(--status-disconnected)}}@supports (color:color-mix(in lab, red, red)){.dark\\:focus-visible\\:ring-destructive\\/40:where(.dark,.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}@supports (color:color-mix(in lab, red, red)){.dark\\:aria-invalid\\:ring-destructive\\/40:where(.dark,.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}@supports (color:color-mix(in lab, red, red)){.dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:where(.dark,.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\\@container\\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\\/2{top:50%}.top-2\\.5{top:calc(var(--spacing)*2.5)}.top-4{top:calc(var(--spacing)*4)}.top-\\[50\\%\\]{top:50%}.top-full{top:100%}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.bottom-2{bottom:calc(var(--spacing)*2)}.left-0{left:calc(var(--spacing)*0)}.left-2{left:calc(var(--spacing)*2)}.left-\\[50\\%\\]{left:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-8{margin-block:calc(var(--spacing)*8)}.mt-1{margin-top:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-3\\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-12{width:calc(var(--spacing)*12);height:calc(var(--spacing)*12)}.size-full{width:100%;height:100%}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-12\\!{height:calc(var(--spacing)*12)!important}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-64{height:calc(var(--spacing)*64)}.h-80{height:calc(var(--spacing)*80)}.h-\\[60vh\\]{height:60vh}.h-\\[var\\(--reka-select-trigger-height\\)\\]{height:var(--reka-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.max-h-\\(--reka-dropdown-menu-content-available-height\\){max-height:var(--reka-dropdown-menu-content-available-height)}.max-h-\\(--reka-select-content-available-height\\){max-height:var(--reka-select-content-available-height)}.max-h-0{max-height:calc(var(--spacing)*0)}.max-h-\\[300px\\]{max-height:300px}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-10{min-height:calc(var(--spacing)*10)}.min-h-\\[calc\\(100vh-3\\.5rem\\)\\]{min-height:calc(100vh - 3.5rem)}.min-h-screen{min-height:100vh}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-12\\!{width:calc(var(--spacing)*12)!important}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-48{width:calc(var(--spacing)*48)}.w-72{width:calc(var(--spacing)*72)}.w-\\[300px\\]{width:300px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-60{max-width:calc(var(--spacing)*60)}.max-w-75{max-width:calc(var(--spacing)*75)}.max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-screen-2xl{max-width:var(--breakpoint-2xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-8{min-width:calc(var(--spacing)*8)}.min-w-9{min-width:calc(var(--spacing)*9)}.min-w-10{min-width:calc(var(--spacing)*10)}.min-w-\\[8rem\\]{min-width:8rem}.min-w-\\[var\\(--reka-select-trigger-width\\)\\]{min-width:var(--reka-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-\\(--reka-dropdown-menu-content-transform-origin\\){transform-origin:var(--reka-dropdown-menu-content-transform-origin)}.origin-\\(--reka-popover-content-transform-origin\\){transform-origin:var(--reka-popover-content-transform-origin)}.translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\\[-50\\%\\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.scroll-py-1{scroll-padding-block:calc(var(--spacing)*1)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-rows-\\[auto_auto\\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing)*0)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-\\[--spacing\\(var\\(--gap\\)\\)\\]{gap:calc(var(--spacing)*var(--gap))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing)*6)}.gap-y-2{row-gap:calc(var(--spacing)*2)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\\[inherit\\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-full\\!{border-radius:3.40282e38px!important}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-border{border-color:var(--border)}.border-destructive{border-color:var(--destructive)}.border-input{border-color:var(--input)}.border-neutral-200{border-color:var(--color-neutral-200)}.border-primary{border-color:var(--primary)}.border-white\\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-amber-100{background-color:var(--color-amber-100)}.bg-background,.bg-background\\/95{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\\/95{background-color:color-mix(in oklab,var(--background)95%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-current{background-color:currentColor}.bg-destructive{background-color:var(--destructive)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-muted{background-color:var(--muted)}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-secondary{background-color:var(--secondary)}.bg-status-available{background-color:var(--status-available)}.bg-status-disconnected{background-color:var(--status-disconnected)}.bg-status-hold{background-color:var(--status-hold)}.bg-status-incall{background-color:var(--status-incall)}.bg-status-incoming{background-color:var(--status-incoming)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-0\\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-px{padding:1px}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-8{padding-right:calc(var(--spacing)*8)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[10px\\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-emerald-600{color:var(--color-emerald-600)}.text-foreground{color:var(--foreground)}.text-green-500{color:var(--color-green-500)}.text-muted-foreground{color:var(--muted-foreground)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-800{color:var(--color-neutral-800)}.text-neutral-900{color:var(--color-neutral-900)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-600{color:var(--color-purple-600)}.text-red-500{color:var(--color-red-500)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-status-available{color:var(--status-available)}.text-status-disconnected{color:var(--status-disconnected)}.text-status-hold{color:var(--status-hold)}.text-status-incall{color:var(--status-incall)}.text-status-incoming{color:var(--status-incoming)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-\\[0_0_8px_currentColor\\]{--tw-shadow:0 0 8px var(--tw-shadow-color,currentColor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-ring\\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.ring-ring\\/50{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}.group-data-\\[disabled\\=true\\]\\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\\[disabled\\=true\\]\\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\\:bg-primary ::selection,.selection\\:bg-primary::selection{background-color:var(--primary)}.selection\\:text-primary-foreground ::selection,.selection\\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\\:inline-flex::file-selector-button{display:inline-flex}.file\\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\\:bg-transparent::file-selector-button{background-color:#0000}.file\\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media (hover:hover){.hover\\:bg-accent:hover,.hover\\:bg-accent\\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\\:bg-muted:hover{background-color:var(--muted)}.hover\\:bg-neutral-200:hover{background-color:var(--color-neutral-200)}.hover\\:bg-primary\\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\\:bg-secondary:hover,.hover\\:bg-secondary\\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-secondary\\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\\:bg-status-available\\/90:hover{background-color:var(--status-available)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-status-available\\/90:hover{background-color:color-mix(in oklab,var(--status-available)90%,transparent)}}.hover\\:bg-status-disconnected\\/90:hover{background-color:var(--status-disconnected)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-status-disconnected\\/90:hover{background-color:color-mix(in oklab,var(--status-disconnected)90%,transparent)}}.hover\\:bg-status-hold\\/90:hover{background-color:var(--status-hold)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-status-hold\\/90:hover{background-color:color-mix(in oklab,var(--status-hold)90%,transparent)}}.hover\\:bg-status-incall\\/90:hover{background-color:var(--status-incall)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-status-incall\\/90:hover{background-color:color-mix(in oklab,var(--status-incall)90%,transparent)}}.hover\\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\\:text-destructive:hover{color:var(--destructive)}.hover\\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\\:text-status-available:hover,.hover\\:text-status-available\\/80:hover{color:var(--status-available)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-status-available\\/80:hover{color:color-mix(in oklab,var(--status-available)80%,transparent)}}.hover\\:text-status-disconnected:hover,.hover\\:text-status-disconnected\\/80:hover{color:var(--status-disconnected)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-status-disconnected\\/80:hover{color:color-mix(in oklab,var(--status-disconnected)80%,transparent)}}.hover\\:text-status-hold:hover,.hover\\:text-status-hold\\/80:hover{color:var(--status-hold)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-status-hold\\/80:hover{color:color-mix(in oklab,var(--status-hold)80%,transparent)}}.hover\\:text-status-incall:hover,.hover\\:text-status-incall\\/80:hover{color:var(--status-incall)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-status-incall\\/80:hover{color:color-mix(in oklab,var(--status-incall)80%,transparent)}}.hover\\:text-status-incoming:hover,.hover\\:text-status-incoming\\/80:hover{color:var(--status-incoming)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-status-incoming\\/80:hover{color:color-mix(in oklab,var(--status-incoming)80%,transparent)}}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-100:hover{opacity:1}.hover\\:ring-4:hover{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\\:z-10:focus{z-index:10}.focus\\:bg-accent:focus{background-color:var(--accent)}.focus\\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\\:z-10:focus-visible{z-index:10}.focus-visible\\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus-visible\\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.focus-visible\\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-50:disabled{opacity:.5}.has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-disabled\\:pointer-events-none[data-disabled]{pointer-events:none}.data-disabled\\:opacity-50[data-disabled]{opacity:.5}.data-highlighted\\:bg-accent[data-highlighted]{background-color:var(--accent)}.data-highlighted\\:text-accent-foreground[data-highlighted]{color:var(--accent-foreground)}.data-placeholder\\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.data-\\[inset\\]\\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\\[orientation\\=horizontal\\]\\:h-1\\.5[data-orientation=horizontal]{height:calc(var(--spacing)*1.5)}.data-\\[orientation\\=horizontal\\]\\:h-full[data-orientation=horizontal]{height:100%}.data-\\[orientation\\=horizontal\\]\\:h-px[data-orientation=horizontal]{height:1px}.data-\\[orientation\\=horizontal\\]\\:w-full[data-orientation=horizontal]{width:100%}.data-\\[orientation\\=vertical\\]\\:h-full[data-orientation=vertical]{height:100%}.data-\\[orientation\\=vertical\\]\\:min-h-44[data-orientation=vertical]{min-height:calc(var(--spacing)*44)}.data-\\[orientation\\=vertical\\]\\:w-1\\.5[data-orientation=vertical]{width:calc(var(--spacing)*1.5)}.data-\\[orientation\\=vertical\\]\\:w-auto[data-orientation=vertical]{width:auto}.data-\\[orientation\\=vertical\\]\\:w-full[data-orientation=vertical]{width:100%}.data-\\[orientation\\=vertical\\]\\:w-px[data-orientation=vertical]{width:1px}.data-\\[orientation\\=vertical\\]\\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\\[size\\=default\\]\\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\\[size\\=sm\\]\\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\\*\\*\\:data-\\[slot\\=command-input-wrapper\\]\\:border-none *)[data-slot=command-input-wrapper]{--tw-border-style:none;border-style:none}:is(.\\*\\*\\:data-\\[slot\\=command-input-wrapper\\]\\:px-2 *)[data-slot=command-input-wrapper]{padding-inline:calc(var(--spacing)*2)}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex>*)[data-slot=select-value]{display:flex}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:max-w-70>*)[data-slot=select-value]{max-width:calc(var(--spacing)*70)}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:truncate>*)[data-slot=select-value]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:overflow-hidden>*)[data-slot=select-value]{overflow:hidden}:is(.\\*\\:data-\\[slot\\=select-value\\]\\:text-ellipsis>*)[data-slot=select-value]{text-overflow:ellipsis}.data-\\[spacing\\=0\\]\\:rounded-none[data-spacing="0"]{border-radius:0}.data-\\[spacing\\=0\\]\\:shadow-none[data-spacing="0"]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\\[spacing\\=0\\]\\:first\\:rounded-l-md[data-spacing="0"]:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.data-\\[spacing\\=0\\]\\:last\\:rounded-r-md[data-spacing="0"]:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\\[state\\=on\\]\\:bg-accent[data-state=on]{background-color:var(--accent)}.data-\\[state\\=on\\]\\:text-accent-foreground[data-state=on]{color:var(--accent-foreground)}.data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\\[state\\=open\\]\\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\\[variant\\=destructive\\]\\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\\[variant\\=destructive\\]\\:focus\\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:border-l-0[data-spacing="0"][data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.data-\\[spacing\\=0\\]\\:data-\\[variant\\=outline\\]\\:first\\:border-l[data-spacing="0"][data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\\[spacing\\=default\\]\\:data-\\[variant\\=outline\\]\\:shadow-xs[data-spacing=default][data-variant=outline]{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\\:bg-background\\/60{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.supports-backdrop-filter\\:bg-background\\/60{background-color:color-mix(in oklab,var(--background)60%,transparent)}}}@media (min-width:40rem){.sm\\:block{display:block}.sm\\:inline{display:inline}.sm\\:inline-block{display:inline-block}.sm\\:max-w-lg{max-width:var(--container-lg)}.sm\\:max-w-md{max-width:var(--container-md)}.sm\\:max-w-sm{max-width:var(--container-sm)}.sm\\:flex-row{flex-direction:row}.sm\\:justify-end{justify-content:flex-end}.sm\\:gap-0{gap:calc(var(--spacing)*0)}.sm\\:rounded-lg{border-radius:var(--radius)}.sm\\:text-left{text-align:left}}@media (min-width:48rem){.md\\:w-full{width:100%}.md\\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\\:border-input:where(.dark,.dark *){border-color:var(--input)}.dark\\:border-neutral-800:where(.dark,.dark *){border-color:var(--color-neutral-800)}.dark\\:bg-amber-900\\/30:where(.dark,.dark *){background-color:#7b33064d}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-amber-900\\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-amber-900)30%,transparent)}}.dark\\:bg-blue-900\\/30:where(.dark,.dark *){background-color:#1c398e4d}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-blue-900\\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}}.dark\\:bg-destructive\\/60:where(.dark,.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-destructive\\/60:where(.dark,.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\\:bg-emerald-900\\/30:where(.dark,.dark *){background-color:#004e3b4d}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-emerald-900\\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-emerald-900)30%,transparent)}}.dark\\:bg-input\\/30:where(.dark,.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-input\\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\\:bg-neutral-800:where(.dark,.dark *){background-color:var(--color-neutral-800)}.dark\\:bg-neutral-900:where(.dark,.dark *){background-color:var(--color-neutral-900)}.dark\\:bg-purple-900\\/30:where(.dark,.dark *){background-color:#59168b4d}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-purple-900\\/30:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-purple-900)30%,transparent)}}.dark\\:text-amber-400:where(.dark,.dark *){color:var(--color-amber-400)}.dark\\:text-blue-400:where(.dark,.dark *){color:var(--color-blue-400)}.dark\\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\\:text-neutral-500:where(.dark,.dark *){color:var(--color-neutral-500)}.dark\\:text-neutral-800:where(.dark,.dark *){color:var(--color-neutral-800)}.dark\\:text-purple-400:where(.dark,.dark *){color:var(--color-purple-400)}.dark\\:text-white:where(.dark,.dark *){color:var(--color-white)}@media (hover:hover){.dark\\:hover\\:bg-accent\\/50:where(.dark,.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-accent\\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\\:hover\\:bg-input\\/50:where(.dark,.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-input\\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\\:hover\\:bg-neutral-700:where(.dark,.dark *):hover{background-color:var(--color-neutral-700)}.dark\\:hover\\:text-status-disconnected:where(.dark,.dark *):hover{color:var(--status-disconnected)}}.dark\\:focus-visible\\:ring-destructive\\/40:where(.dark,.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:focus-visible\\:ring-destructive\\/40:where(.dark,.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\\:aria-invalid\\:ring-destructive\\/40:where(.dark,.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:aria-invalid\\:ring-destructive\\/40:where(.dark,.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:where(.dark,.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:where(.dark,.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\\[\\&_\\[data-slot\\=command-input-wrapper\\]_svg\\]\\:hidden [data-slot=command-input-wrapper] svg{display:none}.\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]),.\\[\\&_svg\\:not\\(\\[class\\*\\=\\\\\\'size-\\\\\\'\\]\\)\\]\\:size-4 svg:not([class*="'size-'"]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\\[\\&_svg\\:not\\(\\[class\\*\\=\\\\\\'text-\\\\\\'\\]\\)\\]\\:text-muted-foreground svg:not([class*="'text-'"]){color:var(--muted-foreground)}.\\[\\.border-b\\]\\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\\[\\.border-t\\]\\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\\*\\:\\[span\\]\\:last\\:flex>*):is(span):last-child{display:flex}:is(.\\*\\:\\[span\\]\\:last\\:items-center>*):is(span):last-child{align-items:center}:is(.\\*\\:\\[span\\]\\:last\\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@supports (color:lab(0% 0 0)){:root{--background:lab(100% 0 0);--foreground:lab(2.75381% 0 0);--card:lab(100% 0 0);--card-foreground:lab(2.75381% 0 0);--popover:lab(100% 0 0);--popover-foreground:lab(2.75381% 0 0);--primary:var(--p-primary-color,lab(7.78201% -.0000149012 0));--primary-foreground:lab(98.26% -.0000298023 0);--secondary:lab(96.52% -.0000298023 0);--secondary-foreground:lab(7.78201% -.0000149012 0);--muted:lab(96.52% -.0000298023 0);--muted-foreground:lab(48.496% 0 0);--accent:lab(96.52% -.0000298023 0);--accent-foreground:lab(7.78201% -.0000149012 0);--destructive:lab(48.4493% 77.4328 61.5452);--border:lab(90.952% 0 -.0000119209);--input:lab(90.952% 0 -.0000119209);--ring:lab(66.128% 0 0);--chart-1:lab(57.1026% 64.2584 89.8886);--chart-2:lab(55.0223% -41.0774 -3.90277);--chart-3:lab(30.372% -13.1853 -18.7887);--chart-4:lab(80.1641% 16.6016 99.2089);--chart-5:lab(72.7183% 31.8671 97.9407);--sidebar:lab(98.26% -.0000298023 0);--sidebar-foreground:lab(2.75381% 0 0);--sidebar-primary:lab(7.78201% -.0000149012 0);--sidebar-primary-foreground:lab(98.26% -.0000298023 0);--sidebar-accent:lab(96.52% -.0000298023 0);--sidebar-accent-foreground:lab(7.78201% -.0000149012 0);--sidebar-border:lab(90.952% 0 -.0000119209);--sidebar-ring:lab(66.128% 0 0);--status-available:lab(59.0978% -58.6621 41.2579);--status-incall:lab(54.1736% 13.3369 -74.6839);--status-hold:lab(82.2725% 7.53289 73.9282);--status-incoming:lab(52.0183% 66.11 -78.2316);--status-disconnected:lab(55.4814% 75.0732 48.8528)}}@supports (color:lab(0% 0 0)){.dark{--background:lab(2.75381% 0 0);--foreground:lab(98.26% -.0000298023 0);--card:lab(7.78201% -.0000149012 0);--card-foreground:lab(98.26% -.0000298023 0);--popover:lab(7.78201% -.0000149012 0);--popover-foreground:lab(98.26% -.0000298023 0);--primary:var(--p-primary-color,lab(90.952% 0 -.0000119209));--primary-foreground:lab(7.78201% -.0000149012 0);--secondary:lab(15.204% 0 0);--secondary-foreground:lab(98.26% -.0000298023 0);--muted:lab(15.204% 0 0);--muted-foreground:lab(66.128% 0 0);--accent:lab(15.204% 0 0);--accent-foreground:lab(98.26% -.0000298023 0);--destructive:lab(63.7053% 60.745 31.3109);--border:lab(100% 0 0/.1);--input:lab(100% 0 0/.15);--ring:lab(48.496% 0 0);--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8671 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532);--sidebar:lab(7.78201% -.0000149012 0);--sidebar-foreground:lab(98.26% -.0000298023 0);--sidebar-primary:lab(36.9089% 35.0961 -85.6872);--sidebar-primary-foreground:lab(98.26% -.0000298023 0);--sidebar-accent:lab(15.204% 0 0);--sidebar-accent-foreground:lab(98.26% -.0000298023 0);--sidebar-border:lab(100% 0 0/.1);--sidebar-ring:lab(48.496% 0 0);--status-available:lab(73.3941% -54.8093 37.6928);--status-incall:lab(65.0361% -1.42065 -56.9802);--status-hold:lab(85.1352% 6.1084 78.1641);--status-incoming:lab(60.4586% 54.1298 -67.8379);--status-disconnected:lab(63.7053% 60.745 31.3109)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}:root{--radius:.625rem;--background:#fff;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--popover:#fff;--popover-foreground:#0a0a0a;--primary:var(--p-primary-color,#171717);--primary-foreground:#fafafa;--secondary:#f5f5f5;--secondary-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#737373;--accent:#f5f5f5;--accent-foreground:#171717;--destructive:#e40014;--border:#e5e5e5;--input:#e5e5e5;--ring:#a1a1a1;--chart-1:#f05100;--chart-2:#009588;--chart-3:#104e64;--chart-4:#fcbb00;--chart-5:#f99c00;--sidebar:#fafafa;--sidebar-foreground:#0a0a0a;--sidebar-primary:#171717;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f5f5f5;--sidebar-accent-foreground:#171717;--sidebar-border:#e5e5e5;--sidebar-ring:#a1a1a1;--status-available:#00a544;--status-incall:#3080ff;--status-hold:#f5c632;--status-incoming:#ac4bff;--status-disconnected:#fb2c36;font-family:Montserrat,sans-serif}@supports (color:lab(0% 0 0)){:root{--background:lab(100% 0 0);--foreground:lab(2.75381% 0 0);--card:lab(100% 0 0);--card-foreground:lab(2.75381% 0 0);--popover:lab(100% 0 0);--popover-foreground:lab(2.75381% 0 0);--primary:var(--p-primary-color,lab(7.78201% -.0000149012 0));--primary-foreground:lab(98.26% -.0000298023 0);--secondary:lab(96.52% -.0000298023 0);--secondary-foreground:lab(7.78201% -.0000149012 0);--muted:lab(96.52% -.0000298023 0);--muted-foreground:lab(48.496% 0 0);--accent:lab(96.52% -.0000298023 0);--accent-foreground:lab(7.78201% -.0000149012 0);--destructive:lab(48.4493% 77.4328 61.5452);--border:lab(90.952% 0 -.0000119209);--input:lab(90.952% 0 -.0000119209);--ring:lab(66.128% 0 0);--chart-1:lab(57.1026% 64.2584 89.8886);--chart-2:lab(55.0223% -41.0774 -3.90277);--chart-3:lab(30.372% -13.1853 -18.7887);--chart-4:lab(80.1641% 16.6016 99.2089);--chart-5:lab(72.7183% 31.8671 97.9407);--sidebar:lab(98.26% -.0000298023 0);--sidebar-foreground:lab(2.75381% 0 0);--sidebar-primary:lab(7.78201% -.0000149012 0);--sidebar-primary-foreground:lab(98.26% -.0000298023 0);--sidebar-accent:lab(96.52% -.0000298023 0);--sidebar-accent-foreground:lab(7.78201% -.0000149012 0);--sidebar-border:lab(90.952% 0 -.0000119209);--sidebar-ring:lab(66.128% 0 0);--status-available:lab(59.0978% -58.6621 41.2579);--status-incall:lab(54.1736% 13.3369 -74.6839);--status-hold:lab(82.2725% 7.53289 73.9282);--status-incoming:lab(52.0183% 66.11 -78.2316);--status-disconnected:lab(55.4814% 75.0732 48.8528)}}.dark{--background:#0a0a0a;--foreground:#fafafa;--card:#171717;--card-foreground:#fafafa;--popover:#171717;--popover-foreground:#fafafa;--primary:var(--p-primary-color,#e5e5e5);--primary-foreground:#171717;--secondary:#262626;--secondary-foreground:#fafafa;--muted:#262626;--muted-foreground:#a1a1a1;--accent:#262626;--accent-foreground:#fafafa;--destructive:#ff6568;--border:#ffffff1a;--input:#ffffff26;--ring:#737373;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#171717;--sidebar-foreground:#fafafa;--sidebar-primary:#1447e6;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#262626;--sidebar-accent-foreground:#fafafa;--sidebar-border:#ffffff1a;--sidebar-ring:#737373;--status-available:#41cd6a;--status-incall:#54a2ff;--status-hold:#fccf2c;--status-incoming:#b971ff;--status-disconnected:#ff6568}@supports (color:lab(0% 0 0)){.dark{--background:lab(2.75381% 0 0);--foreground:lab(98.26% -.0000298023 0);--card:lab(7.78201% -.0000149012 0);--card-foreground:lab(98.26% -.0000298023 0);--popover:lab(7.78201% -.0000149012 0);--popover-foreground:lab(98.26% -.0000298023 0);--primary:var(--p-primary-color,lab(90.952% 0 -.0000119209));--primary-foreground:lab(7.78201% -.0000149012 0);--secondary:lab(15.204% 0 0);--secondary-foreground:lab(98.26% -.0000298023 0);--muted:lab(15.204% 0 0);--muted-foreground:lab(66.128% 0 0);--accent:lab(15.204% 0 0);--accent-foreground:lab(98.26% -.0000298023 0);--destructive:lab(63.7053% 60.745 31.3109);--border:lab(100% 0 0/.1);--input:lab(100% 0 0/.15);--ring:lab(48.496% 0 0);--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8671 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532);--sidebar:lab(7.78201% -.0000149012 0);--sidebar-foreground:lab(98.26% -.0000298023 0);--sidebar-primary:lab(36.9089% 35.0961 -85.6872);--sidebar-primary-foreground:lab(98.26% -.0000298023 0);--sidebar-accent:lab(15.204% 0 0);--sidebar-accent-foreground:lab(98.26% -.0000298023 0);--sidebar-border:lab(100% 0 0/.1);--sidebar-ring:lab(48.496% 0 0);--status-available:lab(73.3941% -54.8093 37.6928);--status-incall:lab(65.0361% -1.42065 -56.9802);--status-hold:lab(85.1352% 6.1084 78.1641);--status-incoming:lab(60.4586% 54.1298 -67.8379);--status-disconnected:lab(63.7053% 60.745 31.3109)}}
|
|
3
|
+
/*$vite$:1*/`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`),require(`@vueuse/core`)):typeof define==`function`&&define.amd?define([`exports`,`vue`,`@vueuse/core`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.WebPhone={},e.Vue,e.VueUse))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var r=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t)=>{let n={};for(var r in e)i(n,r,{get:e[r],enumerable:!0});return t&&i(n,Symbol.toStringTag,{value:`Module`}),n},u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var s=o(t),l=0,u=s.length,d;l<u;l++)d=s[l],!c.call(e,d)&&d!==n&&i(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=a(t,d))||r.enumerable});return e},d=(e,t,n,r)=>{r&&(i(e,Symbol.toStringTag,{value:`Module`}),n&&i(n,Symbol.toStringTag,{value:`Module`})),u(e,t,`default`),n&&u(n,t,`default`)};t=((e,t,n)=>(n=e==null?{}:r(s(e)),u(t||!e||!e.__esModule?i(n,`default`,{value:e,enumerable:!0}):n,e)))(t);var f=2;let p={CALL_HISTORY:`call_history`,CONTACTS:`contacts`,CONNECTIONS:`connections`},m=(e=`webphone_db`)=>{let n=(0,t.ref)(null),r=(0,t.ref)(!1);return{initDB:()=>new Promise((t,i)=>{if(n.value){t();return}let a=indexedDB.open(e,f);a.onerror=e=>{console.error(`IndexedDB error:`,e),i(e)},a.onsuccess=e=>{n.value=e.target.result,r.value=!0,t()},a.onupgradeneeded=e=>{let t=e.target.result;t.objectStoreNames.contains(p.CALL_HISTORY)||t.createObjectStore(p.CALL_HISTORY,{keyPath:`id`}),t.objectStoreNames.contains(p.CONTACTS)||t.createObjectStore(p.CONTACTS,{keyPath:`number`}),t.objectStoreNames.contains(p.CONNECTIONS)||t.createObjectStore(p.CONNECTIONS,{keyPath:`id`})}}),getAll:e=>new Promise((t,r)=>{if(!n.value)return r(`DB not initialized`);let i=n.value.transaction([e],`readonly`).objectStore(e).getAll();i.onsuccess=()=>t(i.result),i.onerror=()=>r(i.error)}),add:(e,t)=>new Promise((r,i)=>{if(!n.value)return i(`DB not initialized`);let a=n.value.transaction([e],`readwrite`).objectStore(e).add(t);a.onsuccess=()=>r(),a.onerror=()=>i(a.error)}),put:(e,t)=>new Promise((r,i)=>{if(!n.value)return i(`DB not initialized`);let a=n.value.transaction([e],`readwrite`).objectStore(e).put(t);a.onsuccess=()=>r(),a.onerror=()=>i(a.error)}),remove:(e,t)=>new Promise((r,i)=>{if(!n.value)return i(`DB not initialized`);let a=n.value.transaction([e],`readwrite`).objectStore(e).delete(t);a.onsuccess=()=>r(),a.onerror=()=>i(a.error)}),isReady:r}},h=e=>{let n=(0,t.ref)(!1),r=(0,t.ref)(0),i=(0,t.ref)([]),a=(0,t.ref)([]),{initDB:o,getAll:s,add:c}=m(e?.server&&e?.extension?`webphone_${e.server}_${e.extension}`.replace(/[^a-z0-9_]/gi,`_`):`webphone_db`);o().then(async()=>{try{i.value=(await s(p.CALL_HISTORY)).sort((e,t)=>t.startTime-e.startTime),a.value=await s(p.CONTACTS)}catch(e){console.error(`Error loading data from IndexedDB:`,e)}});let l=(0,t.ref)([{id:0,status:`idle`,remoteNumber:``,isMuted:!1,isHeld:!1,startTime:void 0,keypadValue:``,hasVideo:!1,hasEarlyMedia:!1},{id:1,status:`idle`,remoteNumber:``,isMuted:!1,isHeld:!1,startTime:void 0,keypadValue:``,hasVideo:!1,hasEarlyMedia:!1},{id:2,status:`idle`,remoteNumber:``,isMuted:!1,isHeld:!1,startTime:void 0,keypadValue:``,hasVideo:!1,hasEarlyMedia:!1}]),u=(0,t.ref)(!0),d=(0,t.ref)(``),f=(0,t.computed)(()=>l.value.find(e=>e.id===r.value)||l.value[0]),h=(0,t.computed)(()=>f.value?.status||`idle`),g=(0,t.computed)(()=>f.value?.remoteNumber||``),_=(0,t.computed)(()=>f.value?.isMuted||!1),v=(0,t.computed)(()=>f.value?.isHeld||!1),y=(0,t.computed)({get:()=>f.value?.keypadValue||``,set:e=>{f.value&&(f.value.keypadValue=e)}}),b=e=>{n.value=e},x=e=>{l.value.some(t=>t.id===e)&&(r.value=e)},S=(e,t)=>{let n=l.value.find(t=>t.id===e);n&&Object.assign(n,t)};return{isConnected:n,activeChannelId:r,channels:l,activeChannel:f,callStatus:h,remoteNumber:g,isMuted:_,isHeld:v,keypadValue:y,isKeypadVisible:u,lastDialedNumber:d,setConnected:b,setActiveChannelId:x,updateChannelState:S,setCallStatus:e=>{S(r.value,{status:e})},setIncomingCall:e=>{S(r.value,{remoteNumber:e})},resetCall:()=>{S(r.value,{status:`idle`,remoteNumber:``,isMuted:!1,isHeld:!1,startTime:void 0,keypadValue:``,hasVideo:!1,hasEarlyMedia:!1})},addCallLog:async e=>{let t={id:crypto.randomUUID(),...e};i.value.unshift(t);try{await c(p.CALL_HISTORY,t)}catch(e){console.error(`Error saving call log:`,e)}},callHistory:i,contacts:a,addContact:async e=>{try{await c(p.CONTACTS,e),a.value=await s(p.CONTACTS)}catch(e){console.error(`Error saving contact:`,e)}},setMuted:e=>{S(r.value,{isMuted:e})},setHeld:e=>{S(r.value,{isHeld:e})},appendKeypad:e=>{y.value+=e},clearKeypad:()=>{y.value=``},backspaceKeypad:()=>{y.value=y.value.slice(0,-1)},toggleKeypad:()=>{u.value=!u.value},setLastDialedNumber:e=>{d.value=e}}};var g=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}},_=class extends g{constructor(e){super(e||`Unsupported content type.`)}},v=class extends g{constructor(e){super(e||`Request pending.`)}},y=class extends g{constructor(e){super(e||`Unspecified session description handler error.`)}},b=class extends g{constructor(){super(`The session has terminated.`)}},x=class extends g{constructor(e){super(e||`An error occurred during state transition.`)}},S=class{constructor(e){this.incomingAckRequest=e}get request(){return this.incomingAckRequest.message}},C=class{constructor(e){this.incomingByeRequest=e}get request(){return this.incomingByeRequest.message}accept(e){return this.incomingByeRequest.accept(e),Promise.resolve()}reject(e){return this.incomingByeRequest.reject(e),Promise.resolve()}},w=class{constructor(e){this.incomingCancelRequest=e}get request(){return this.incomingCancelRequest}},T=class{constructor(){this.listeners=[]}addListener(e,t){let n=t=>{this.removeListener(n),e(t)};t?.once===!0?this.listeners.push(n):this.listeners.push(e)}emit(e){this.listeners.slice().forEach(t=>t(e))}removeAllListeners(){this.listeners=[]}removeListener(e){this.listeners=this.listeners.filter(t=>t!==e)}on(e){return this.addListener(e)}off(e){return this.removeListener(e)}once(e){return this.addListener(e,{once:!0})}},E=class{constructor(e){this.incomingInfoRequest=e}get request(){return this.incomingInfoRequest.message}accept(e){return this.incomingInfoRequest.accept(e),Promise.resolve()}reject(e){return this.incomingInfoRequest.reject(e),Promise.resolve()}},D=class{constructor(e){for(let t in this.parameters={},e)e.hasOwnProperty(t)&&this.setParam(t,e[t])}setParam(e,t){e&&(this.parameters[e.toLowerCase()]=t==null?null:t.toString())}getParam(e){if(e)return this.parameters[e.toLowerCase()]}hasParam(e){return!!(e&&this.parameters[e.toLowerCase()]!==void 0)}deleteParam(e){if(e=e.toLowerCase(),this.hasParam(e)){let t=this.parameters[e];return delete this.parameters[e],t}}clearParams(){this.parameters={}}},O=class e extends D{constructor(e,t,n){super(n),this.uri=e,this._displayName=t}get friendlyName(){return this.displayName||this.uri.aor}get displayName(){return this._displayName}set displayName(e){this._displayName=e}clone(){return new e(this.uri.clone(),this._displayName,JSON.parse(JSON.stringify(this.parameters)))}toString(){let e=this.displayName||this.displayName===`0`?`"`+this.displayName+`" `:``;for(let t in e+=`<`+this.uri.toString()+`>`,this.parameters)this.parameters.hasOwnProperty(t)&&(e+=`;`+t,this.parameters[t]!==null&&(e+=`=`+this.parameters[t]));return e}},ee=class e extends D{constructor(e=`sip`,t,n,r,i,a){if(super(i||{}),this.headers={},!n)throw TypeError(`missing or invalid "host" parameter`);for(let e in a)a.hasOwnProperty(e)&&this.setHeader(e,a[e]);this.raw={scheme:e,user:t,host:n,port:r},this.normal={scheme:e.toLowerCase(),user:t,host:n.toLowerCase(),port:r}}get scheme(){return this.normal.scheme}set scheme(e){this.raw.scheme=e,this.normal.scheme=e.toLowerCase()}get user(){return this.normal.user}set user(e){this.normal.user=this.raw.user=e}get host(){return this.normal.host}set host(e){this.raw.host=e,this.normal.host=e.toLowerCase()}get aor(){return this.normal.user+`@`+this.normal.host}get port(){return this.normal.port}set port(e){this.normal.port=this.raw.port=e}setHeader(e,t){this.headers[this.headerize(e)]=t instanceof Array?t:[t]}getHeader(e){if(e)return this.headers[this.headerize(e)]}hasHeader(e){return!!e&&!!this.headers.hasOwnProperty(this.headerize(e))}deleteHeader(e){if(e=this.headerize(e),this.headers.hasOwnProperty(e)){let t=this.headers[e];return delete this.headers[e],t}}clearHeaders(){this.headers={}}clone(){return new e(this._raw.scheme,this._raw.user||``,this._raw.host,this._raw.port,JSON.parse(JSON.stringify(this.parameters)),JSON.parse(JSON.stringify(this.headers)))}toRaw(){return this._toString(this._raw)}toString(){return this._toString(this._normal)}get _normal(){return this.normal}get _raw(){return this.raw}_toString(e){let t=e.scheme+`:`;for(let n in e.scheme.toLowerCase().match(`^sips?$`)||(t+=`//`),e.user&&(t+=this.escapeUser(e.user)+`@`),t+=e.host,(e.port||e.port===0)&&(t+=`:`+e.port),this.parameters)this.parameters.hasOwnProperty(n)&&(t+=`;`+n,this.parameters[n]!==null&&(t+=`=`+this.parameters[n]));let n=[];for(let e in this.headers)if(this.headers.hasOwnProperty(e))for(let t in this.headers[e])this.headers[e].hasOwnProperty(t)&&n.push(e+`=`+this.headers[e][t]);return n.length>0&&(t+=`?`+n.join(`&`)),t}escapeUser(e){let t;try{t=decodeURIComponent(e)}catch(e){throw e}return encodeURIComponent(t).replace(/%3A/gi,`:`).replace(/%2B/gi,`+`).replace(/%3F/gi,`?`).replace(/%2F/gi,`/`)}headerize(e){let t={"Call-Id":`Call-ID`,Cseq:`CSeq`,"Min-Se":`Min-SE`,Rack:`RAck`,Rseq:`RSeq`,"Www-Authenticate":`WWW-Authenticate`},n=e.toLowerCase().replace(/_/g,`-`).split(`-`),r=n.length,i=``;for(let e=0;e<r;e++)e!==0&&(i+=`-`),i+=n[e].charAt(0).toUpperCase()+n[e].substring(1);return t[i]&&(i=t[i]),i}};function k(e,t){if(e.scheme!==t.scheme||e.user!==t.user||e.host!==t.host||e.port!==t.port)return!1;function n(e,t){let n=Object.keys(e.parameters),r=Object.keys(t.parameters);return!(!n.filter(e=>r.includes(e)).every(n=>e.parameters[n]===t.parameters[n])||![`user`,`ttl`,`method`,`transport`].every(n=>e.hasParam(n)&&t.hasParam(n)||!e.hasParam(n)&&!t.hasParam(n))||![`maddr`].every(n=>e.hasParam(n)&&t.hasParam(n)||!e.hasParam(n)&&!t.hasParam(n)))}if(!n(e,t))return!1;let r=Object.keys(e.headers),i=Object.keys(t.headers);if(r.length!==0||i.length!==0){if(r.length!==i.length)return!1;let n=r.filter(e=>i.includes(e));if(n.length!==i.length||!n.every(n=>e.headers[n].length&&t.headers[n].length&&e.headers[n][0]===t.headers[n][0]))return!1}return!0}function te(e,t,n){return n||=` `,e.length>t?e:(t-=e.length,n+=n.repeat(t),e+n.slice(0,t))}var A=class e extends Error{constructor(t,n,r,i){super(),this.message=t,this.expected=n,this.found=r,this.location=i,this.name=`SyntaxError`,typeof Object.setPrototypeOf==`function`?Object.setPrototypeOf(this,e.prototype):this.__proto__=e.prototype,typeof Error.captureStackTrace==`function`&&Error.captureStackTrace(this,e)}static buildMessage(e,t){function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function r(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\0/g,`\\0`).replace(/\t/g,`\\t`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/[\x00-\x0F]/g,e=>`\\x0`+n(e)).replace(/[\x10-\x1F\x7F-\x9F]/g,e=>`\\x`+n(e))}function i(e){return e.replace(/\\/g,`\\\\`).replace(/\]/g,`\\]`).replace(/\^/g,`\\^`).replace(/-/g,`\\-`).replace(/\0/g,`\\0`).replace(/\t/g,`\\t`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/[\x00-\x0F]/g,e=>`\\x0`+n(e)).replace(/[\x10-\x1F\x7F-\x9F]/g,e=>`\\x`+n(e))}function a(e){switch(e.type){case`literal`:return`"`+r(e.text)+`"`;case`class`:let t=e.parts.map(e=>Array.isArray(e)?i(e[0])+`-`+i(e[1]):i(e));return`[`+(e.inverted?`^`:``)+t+`]`;case`any`:return`any character`;case`end`:return`end of input`;case`other`:return e.description}}function o(e){let t=e.map(a),n,r;if(t.sort(),t.length>0){for(n=1,r=1;n<t.length;n++)t[n-1]!==t[n]&&(t[r]=t[n],r++);t.length=r}switch(t.length){case 1:return t[0];case 2:return t[0]+` or `+t[1];default:return t.slice(0,-1).join(`, `)+`, or `+t[t.length-1]}}function s(e){return e?`"`+r(e)+`"`:`end of input`}return`Expected `+o(e)+` but `+s(t)+` found.`}format(e){let t=`Error: `+this.message;if(this.location){let n=null,r;for(r=0;r<e.length;r++)if(e[r].source===this.location.source){n=e[r].text.split(/\r\n|\n|\r/g);break}let i=this.location.start,a=this.location.source+`:`+i.line+`:`+i.column;if(n){let e=this.location.end,r=te(``,i.line.toString().length,` `),o=n[i.line-1],s=i.line===e.line?e.column:o.length+1;t+=`
|
|
4
|
+
--> `+a+`
|
|
5
|
+
`+r+` |
|
|
6
|
+
`+i.line+` | `+o+`
|
|
7
|
+
`+r+` | `+te(``,i.column-1,` `)+te(``,s-i.column,`^`)}else t+=`
|
|
8
|
+
at `+a}return t}};function j(e,t){t=t===void 0?{}:t;let n={},r=t.grammarSource,i={Contact:119,Name_Addr_Header:156,Record_Route:176,Request_Response:81,SIP_URI:45,Subscription_State:186,Supported:191,Require:182,Via:194,absoluteURI:84,Call_ID:118,Content_Disposition:130,Content_Length:135,Content_Type:136,CSeq:146,displayName:122,Event:149,From:151,host:52,Max_Forwards:154,Min_SE:213,Proxy_Authenticate:157,quoted_string:40,Refer_To:178,Replaces:179,Session_Expires:210,stun_URI:217,To:192,turn_URI:223,uuid:226,WWW_Authenticate:209,challenge:158,sipfrag:230,Referred_By:231},a=119,o=[`\r
|
|
9
|
+
`,_(`\r
|
|
10
|
+
`,!1),/^[0-9]/,v([[`0`,`9`]],!1,!1),/^[a-zA-Z]/,v([[`a`,`z`],[`A`,`Z`]],!1,!1),/^[0-9a-fA-F]/,v([[`0`,`9`],[`a`,`f`],[`A`,`F`]],!1,!1),/^[\0-\xFF]/,v([[`\0`,`ÿ`]],!1,!1),/^["]/,v([`"`],!1,!1),` `,_(` `,!1),` `,_(` `,!1),/^[a-zA-Z0-9]/,v([[`a`,`z`],[`A`,`Z`],[`0`,`9`]],!1,!1),`;`,_(`;`,!1),`/`,_(`/`,!1),`?`,_(`?`,!1),`:`,_(`:`,!1),`@`,_(`@`,!1),`&`,_(`&`,!1),`=`,_(`=`,!1),`+`,_(`+`,!1),`$`,_(`$`,!1),`,`,_(`,`,!1),`-`,_(`-`,!1),`_`,_(`_`,!1),`.`,_(`.`,!1),`!`,_(`!`,!1),`~`,_(`~`,!1),`*`,_(`*`,!1),`'`,_(`'`,!1),`(`,_(`(`,!1),`)`,_(`)`,!1),`%`,_(`%`,!1),function(){return` `},function(){return`:`},/^[!-~]/,v([[`!`,`~`]],!1,!1),/^[\x80-\uFFFF]/,v([[``,``]],!1,!1),/^[\x80-\xBF]/,v([[``,`¿`]],!1,!1),/^[a-f]/,v([[`a`,`f`]],!1,!1),"`",_("`",!1),`<`,_(`<`,!1),`>`,_(`>`,!1),`\\`,_(`\\`,!1),`[`,_(`[`,!1),`]`,_(`]`,!1),`{`,_(`{`,!1),`}`,_(`}`,!1),function(){return`*`},function(){return`/`},function(){return`=`},function(){return`(`},function(){return`)`},function(){return`>`},function(){return`<`},function(){return`,`},function(){return`;`},function(){return`:`},function(){return`"`},/^[!-']/,v([[`!`,`'`]],!1,!1),/^[*-[]/,v([[`*`,`[`]],!1,!1),/^[\]-~]/,v([[`]`,`~`]],!1,!1),function(e){return e},/^[#-[]/,v([[`#`,`[`]],!1,!1),/^[\0-\t]/,v([[`\0`,` `]],!1,!1),/^[\v-\f]/,v([[`\v`,`\f`]],!1,!1),/^[\x0E-\x7F]/,v([[``,``]],!1,!1),function(){t||={data:{}},t.data.uri=new ee(t.data.scheme,t.data.user,t.data.host,t.data.port),delete t.data.scheme,delete t.data.user,delete t.data.host,delete t.data.host_type,delete t.data.port},function(){t||={data:{}},t.data.uri=new ee(t.data.scheme,t.data.user,t.data.host,t.data.port,t.data.uri_params,t.data.uri_headers),delete t.data.scheme,delete t.data.user,delete t.data.host,delete t.data.host_type,delete t.data.port,delete t.data.uri_params,t.startRule===`SIP_URI`&&(t.data=t.data.uri)},`sips`,_(`sips`,!0),`sip`,_(`sip`,!0),function(e){t||={data:{}},t.data.scheme=e},function(){t||={data:{}},t.data.user=decodeURIComponent(h().slice(0,-1))},function(){t||={data:{}},t.data.password=h()},function(){return t||={data:{}},t.data.host=h(),t.data.host},function(){return t||={data:{}},t.data.host_type=`domain`,h()},/^[a-zA-Z0-9_\-]/,v([[`a`,`z`],[`A`,`Z`],[`0`,`9`],`_`,`-`],!1,!1),/^[a-zA-Z0-9\-]/,v([[`a`,`z`],[`A`,`Z`],[`0`,`9`],`-`],!1,!1),function(){return t||={data:{}},t.data.host_type=`IPv6`,h()},`::`,_(`::`,!1),function(){return t||={data:{}},t.data.host_type=`IPv6`,h()},function(){return t||={data:{}},t.data.host_type=`IPv4`,h()},`25`,_(`25`,!1),/^[0-5]/,v([[`0`,`5`]],!1,!1),`2`,_(`2`,!1),/^[0-4]/,v([[`0`,`4`]],!1,!1),`1`,_(`1`,!1),/^[1-9]/,v([[`1`,`9`]],!1,!1),function(e){return t||={data:{}},e=parseInt(e.join(``)),t.data.port=e,e},`transport=`,_(`transport=`,!0),`udp`,_(`udp`,!0),`tcp`,_(`tcp`,!0),`sctp`,_(`sctp`,!0),`tls`,_(`tls`,!0),function(e){t||={data:{}},t.data.uri_params||(t.data.uri_params={}),t.data.uri_params.transport=e.toLowerCase()},`user=`,_(`user=`,!0),`phone`,_(`phone`,!0),`ip`,_(`ip`,!0),function(e){t||={data:{}},t.data.uri_params||(t.data.uri_params={}),t.data.uri_params.user=e.toLowerCase()},`method=`,_(`method=`,!0),function(e){t||={data:{}},t.data.uri_params||(t.data.uri_params={}),t.data.uri_params.method=e},`ttl=`,_(`ttl=`,!0),function(e){t||={data:{}},t.data.params||(t.data.params={}),t.data.params.ttl=e},`maddr=`,_(`maddr=`,!0),function(e){t||={data:{}},t.data.uri_params||(t.data.uri_params={}),t.data.uri_params.maddr=e},`lr`,_(`lr`,!0),function(){t||={data:{}},t.data.uri_params||(t.data.uri_params={}),t.data.uri_params.lr=void 0},function(e,n){t||={data:{}},t.data.uri_params||(t.data.uri_params={}),n=n===null?void 0:n[1],t.data.uri_params[e.toLowerCase()]=n},function(e,n){e=e.join(``).toLowerCase(),n=n.join(``),t||={data:{}},t.data.uri_headers||(t.data.uri_headers={}),t.data.uri_headers[e]?t.data.uri_headers[e].push(n):t.data.uri_headers[e]=[n]},function(){t||={data:{}},t.startRule===`Refer_To`&&(t.data.uri=new ee(t.data.scheme,t.data.user,t.data.host,t.data.port,t.data.uri_params,t.data.uri_headers),delete t.data.scheme,delete t.data.user,delete t.data.host,delete t.data.host_type,delete t.data.port,delete t.data.uri_params)},`//`,_(`//`,!1),function(){t||={data:{}},t.data.scheme=h()},_(`SIP`,!0),function(){t||={data:{}},t.data.sip_version=h()},`INVITE`,_(`INVITE`,!1),`ACK`,_(`ACK`,!1),`VXACH`,_(`VXACH`,!1),`OPTIONS`,_(`OPTIONS`,!1),`BYE`,_(`BYE`,!1),`CANCEL`,_(`CANCEL`,!1),`REGISTER`,_(`REGISTER`,!1),`SUBSCRIBE`,_(`SUBSCRIBE`,!1),`NOTIFY`,_(`NOTIFY`,!1),`REFER`,_(`REFER`,!1),`PUBLISH`,_(`PUBLISH`,!1),function(){return t||={data:{}},t.data.method=h(),t.data.method},function(e){t||={data:{}},t.data.status_code=parseInt(e.join(``))},function(){t||={data:{}},t.data.reason_phrase=h()},function(){t||={data:{}},t.data=h()},function(){var e,n;for(t||={data:{}},n=t.data.multi_header.length,e=0;e<n;e++)if(t.data.multi_header[e].parsed===null){t.data=null;break}t.data===null?t.data=-1:t.data=t.data.multi_header},function(){var e;t||={data:{}},t.data.multi_header||(t.data.multi_header=[]);try{e=new O(t.data.uri,t.data.displayName,t.data.params),delete t.data.uri,delete t.data.displayName,delete t.data.params}catch{e=null}t.data.multi_header.push({position:c,offset:g().start.offset,parsed:e})},function(e){e=h().trim(),e[0]===`"`&&(e=e.substring(1,e.length-1)),t||={data:{}},t.data.displayName=e},`q`,_(`q`,!0),function(e){t||={data:{}},t.data.params||(t.data.params={}),t.data.params.q=e},`expires`,_(`expires`,!0),function(e){t||={data:{}},t.data.params||(t.data.params={}),t.data.params.expires=e},function(e){return parseInt(e.join(``))},`0`,_(`0`,!1),function(){return parseFloat(h())},function(e,n){t||={data:{}},t.data.params||(t.data.params={}),n=n===null?void 0:n[1],t.data.params[e.toLowerCase()]=n},`render`,_(`render`,!0),`session`,_(`session`,!0),`icon`,_(`icon`,!0),`alert`,_(`alert`,!0),function(){t||={data:{}},t.startRule===`Content_Disposition`&&(t.data.type=h().toLowerCase())},`handling`,_(`handling`,!0),`optional`,_(`optional`,!0),`required`,_(`required`,!0),function(e){t||={data:{}},t.data=parseInt(e.join(``))},function(){t||={data:{}},t.data=h()},`text`,_(`text`,!0),`image`,_(`image`,!0),`audio`,_(`audio`,!0),`video`,_(`video`,!0),`application`,_(`application`,!0),`message`,_(`message`,!0),`multipart`,_(`multipart`,!0),`x-`,_(`x-`,!0),function(e){t||={data:{}},t.data.value=parseInt(e.join(``))},function(e){t||={data:{}},t.data=e},function(e){t||={data:{}},t.data.event=e.toLowerCase()},function(){t||={data:{}};var e=t.data.tag;t.data=new O(t.data.uri,t.data.displayName,t.data.params),e&&t.data.setParam(`tag`,e)},`tag`,_(`tag`,!0),function(e){t||={data:{}},t.data.tag=e},function(e){t||={data:{}},t.data=parseInt(e.join(``))},function(e){t||={data:{}},t.data=e},function(){t||={data:{}},t.data=new O(t.data.uri,t.data.displayName,t.data.params)},`digest`,_(`Digest`,!0),`realm`,_(`realm`,!0),function(e){t||={data:{}},t.data.realm=e},`domain`,_(`domain`,!0),`nonce`,_(`nonce`,!0),function(e){t||={data:{}},t.data.nonce=e},`opaque`,_(`opaque`,!0),function(e){t||={data:{}},t.data.opaque=e},`stale`,_(`stale`,!0),`true`,_(`true`,!0),function(){t||={data:{}},t.data.stale=!0},`false`,_(`false`,!0),function(){t||={data:{}},t.data.stale=!1},`algorithm`,_(`algorithm`,!0),`md5`,_(`MD5`,!0),`md5-sess`,_(`MD5-sess`,!0),function(e){t||={data:{}},t.data.algorithm=e.toUpperCase()},`qop`,_(`qop`,!0),`auth-int`,_(`auth-int`,!0),`auth`,_(`auth`,!0),function(e){t||={data:{}},t.data.qop||(t.data.qop=[]),t.data.qop.push(e.toLowerCase())},function(e){t||={data:{}},t.data.value=parseInt(e.join(``))},function(){var e,n;for(t||={data:{}},n=t.data.multi_header.length,e=0;e<n;e++)if(t.data.multi_header[e].parsed===null){t.data=null;break}t.data===null?t.data=-1:t.data=t.data.multi_header},function(){var e;t||={data:{}},t.data.multi_header||(t.data.multi_header=[]);try{e=new O(t.data.uri,t.data.displayName,t.data.params),delete t.data.uri,delete t.data.displayName,delete t.data.params}catch{e=null}t.data.multi_header.push({position:c,offset:g().start.offset,parsed:e})},function(){t||={data:{}},t.data=new O(t.data.uri,t.data.displayName,t.data.params)},function(){t||={data:{}},t.data.replaces_from_tag&&t.data.replaces_to_tag||(t.data=-1)},function(){t||={data:{}},t.data={call_id:t.data}},`from-tag`,_(`from-tag`,!0),function(e){t||={data:{}},t.data.replaces_from_tag=e},`to-tag`,_(`to-tag`,!0),function(e){t||={data:{}},t.data.replaces_to_tag=e},`early-only`,_(`early-only`,!0),function(){t||={data:{}},t.data.early_only=!0},function(e,t){return t},function(e,t){return E(e,t)},function(e){t||={data:{}},t.startRule===`Require`&&(t.data=e||[])},function(e){t||={data:{}},t.data.value=parseInt(e.join(``))},`active`,_(`active`,!0),`pending`,_(`pending`,!0),`terminated`,_(`terminated`,!0),function(){t||={data:{}},t.data.state=h()},`reason`,_(`reason`,!0),function(e){t||={data:{}},e!==void 0&&(t.data.reason=e)},function(e){t||={data:{}},e!==void 0&&(t.data.expires=e)},`retry_after`,_(`retry_after`,!0),function(e){t||={data:{}},e!==void 0&&(t.data.retry_after=e)},`deactivated`,_(`deactivated`,!0),`probation`,_(`probation`,!0),`rejected`,_(`rejected`,!0),`timeout`,_(`timeout`,!0),`giveup`,_(`giveup`,!0),`noresource`,_(`noresource`,!0),`invariant`,_(`invariant`,!0),function(e){t||={data:{}},t.startRule===`Supported`&&(t.data=e||[])},function(){t||={data:{}};var e=t.data.tag;t.data=new O(t.data.uri,t.data.displayName,t.data.params),e&&t.data.setParam(`tag`,e)},`ttl`,_(`ttl`,!0),function(e){t||={data:{}},t.data.ttl=e},`maddr`,_(`maddr`,!0),function(e){t||={data:{}},t.data.maddr=e},`received`,_(`received`,!0),function(e){t||={data:{}},t.data.received=e},`branch`,_(`branch`,!0),function(e){t||={data:{}},t.data.branch=e},`rport`,_(`rport`,!0),function(e){t||={data:{}},e!==void 0&&(t.data.rport=e.join(``))},function(e){t||={data:{}},t.data.protocol=e},_(`UDP`,!0),_(`TCP`,!0),_(`TLS`,!0),_(`SCTP`,!0),function(e){t||={data:{}},t.data.transport=e},function(){t||={data:{}},t.data.host=h()},function(e){t||={data:{}},t.data.port=parseInt(e.join(``))},function(e){return parseInt(e.join(``))},function(e){t||={data:{}},t.startRule===`Session_Expires`&&(t.data.deltaSeconds=e)},`refresher`,_(`refresher`,!1),`uas`,_(`uas`,!1),`uac`,_(`uac`,!1),function(e){t||={data:{}},t.startRule===`Session_Expires`&&(t.data.refresher=e)},function(e){t||={data:{}},t.startRule===`Min_SE`&&(t.data=e)},`stuns`,_(`stuns`,!0),`stun`,_(`stun`,!0),function(e){t||={data:{}},t.data.scheme=e},function(e){t||={data:{}},t.data.host=e},`?transport=`,_(`?transport=`,!1),`turns`,_(`turns`,!0),`turn`,_(`turn`,!0),function(e){t||={data:{}},t.data.transport=e},function(){t||={data:{}},t.data=h()},`Referred-By`,_(`Referred-By`,!1),`b`,_(`b`,!1),`cid`,_(`cid`,!1)],s=[w(`2 ""6 7!`),w(`4"""5!7#`),w(`4$""5!7%`),w(`4&""5!7'`),w(`;'.# &;(`),w(`4(""5!7)`),w(`4*""5!7+`),w(`2,""6,7-`),w(`2.""6.7/`),w(`40""5!71`),w(`22""6273. &24""6475.} &26""6677.q &28""6879.e &2:""6:7;.Y &2<""6<7=.M &2>""6>7?.A &2@""6@7A.5 &2B""6B7C.) &2D""6D7E`),w(`;).# &;,`),w(`2F""6F7G.} &2H""6H7I.q &2J""6J7K.e &2L""6L7M.Y &2N""6N7O.M &2P""6P7Q.A &2R""6R7S.5 &2T""6T7U.) &2V""6V7W`),w(`%%2X""6X7Y/5#;#/,$;#/#$+#)(#'#("'#&'#/"!&,)`),w(`%%$;$0#*;$&/,#; /#$+")("'#&'#." &"/=#$;$/�#*;$&&&#/'$8":Z" )("'#&'#`),w(`;.." &"`),w(`%$;'.# &;(0)*;'.# &;(&/?#28""6879/0$;//'$8#:[# )(#'#("'#&'#`),w(`%%$;2/�#*;2&&&#/g#$%$;.0#*;.&/,#;2/#$+")("'#&'#0=*%$;.0#*;.&/,#;2/#$+")("'#&'#&/#$+")("'#&'#/"!&,)`),w(`4\\""5!7].# &;3`),w(`4^""5!7_`),w('4`""5!7a'),w(`;!.) &4b""5!7c`),w(`%$;). &2F""6F7G. &2J""6J7K.} &2L""6L7M.q &2X""6X7Y.e &2P""6P7Q.Y &2H""6H7I.M &2@""6@7A.A &2d""6d7e.5 &2R""6R7S.) &2N""6N7O/#0*;). &2F""6F7G. &2J""6J7K.} &2L""6L7M.q &2X""6X7Y.e &2P""6P7Q.Y &2H""6H7I.M &2@""6@7A.A &2d""6d7e.5 &2R""6R7S.) &2N""6N7O&&&#/"!&,)`),w(`%$;). &2F""6F7G.} &2L""6L7M.q &2X""6X7Y.e &2P""6P7Q.Y &2H""6H7I.M &2@""6@7A.A &2d""6d7e.5 &2R""6R7S.) &2N""6N7O/#0*;). &2F""6F7G.} &2L""6L7M.q &2X""6X7Y.e &2P""6P7Q.Y &2H""6H7I.M &2@""6@7A.A &2d""6d7e.5 &2R""6R7S.) &2N""6N7O&&&#/"!&,)`),w(`2T""6T7U.ã &2V""6V7W.× &2f""6f7g.Ë &2h""6h7i.¿ &2:""6:7;.³ &2D""6D7E.§ &22""6273. &28""6879. &2j""6j7k. &;&.} &24""6475.q &2l""6l7m.e &2n""6n7o.Y &26""6677.M &2>""6>7?.A &2p""6p7q.5 &2r""6r7s.) &;'.# &;(`),w(`%$;).ī &2F""6F7G.ğ &2J""6J7K.ē &2L""6L7M.ć &2X""6X7Y.û &2P""6P7Q.ï &2H""6H7I.ã &2@""6@7A.× &2d""6d7e.Ë &2R""6R7S.¿ &2N""6N7O.³ &2T""6T7U.§ &2V""6V7W. &2f""6f7g. &2h""6h7i. &28""6879.w &2j""6j7k.k &;&.e &24""6475.Y &2l""6l7m.M &2n""6n7o.A &26""6677.5 &2p""6p7q.) &2r""6r7s/Ĵ#0ı*;).ī &2F""6F7G.ğ &2J""6J7K.ē &2L""6L7M.ć &2X""6X7Y.û &2P""6P7Q.ï &2H""6H7I.ã &2@""6@7A.× &2d""6d7e.Ë &2R""6R7S.¿ &2N""6N7O.³ &2T""6T7U.§ &2V""6V7W. &2f""6f7g. &2h""6h7i. &28""6879.w &2j""6j7k.k &;&.e &24""6475.Y &2l""6l7m.M &2n""6n7o.A &26""6677.5 &2p""6p7q.) &2r""6r7s&&&#/"!&,)`),w(`%;//?#2P""6P7Q/0$;//'$8#:t# )(#'#("'#&'#`),w(`%;//?#24""6475/0$;//'$8#:u# )(#'#("'#&'#`),w(`%;//?#2>""6>7?/0$;//'$8#:v# )(#'#("'#&'#`),w(`%;//?#2T""6T7U/0$;//'$8#:w# )(#'#("'#&'#`),w(`%;//?#2V""6V7W/0$;//'$8#:x# )(#'#("'#&'#`),w(`%2h""6h7i/0#;//'$8":y" )("'#&'#`),w(`%;//6#2f""6f7g/'$8":z" )("'#&'#`),w(`%;//?#2D""6D7E/0$;//'$8#:{# )(#'#("'#&'#`),w(`%;//?#22""6273/0$;//'$8#:|# )(#'#("'#&'#`),w(`%;//?#28""6879/0$;//'$8#:}# )(#'#("'#&'#`),w(`%;//0#;&/'$8":~" )("'#&'#`),w(`%;&/0#;//'$8":~" )("'#&'#`),w(`%;=/T#$;G.) &;K.# &;F0/*;G.) &;K.# &;F&/,$;>/#$+#)(#'#("'#&'#`),w(`4""5!7.A &4""5!7.5 &4""5!7.) &;3.# &;.`),w(`%%;//Q#;&/H$$;J.# &;K0)*;J.# &;K&/,$;&/#$+$)($'#(#'#("'#&'#/"!&,)`),w(`%;//]#;&/T$%$;J.# &;K0)*;J.# &;K&/"!&,)/1$;&/($8$:
$!!)($'#(#'#("'#&'#`),w(`;..G &2L""6L7M.; &4""5!7./ &4""5!7.# &;3`),w(`%2j""6j7k/J#4""5!7.5 &4""5!7.) &4""5!7/#$+")("'#&'#`),w(`%;N/M#28""6879/>$;O." &"/0$;S/'$8$:$ )($'#(#'#("'#&'#`),w(`%;N/d#28""6879/U$;O." &"/G$;S/>$;_/5$;l." &"/'$8&:& )(&'#(%'#($'#(#'#("'#&'#`),w(`%3""5$7.) &3""5#7/' 8!:!! )`),w(`%;P/]#%28""6879/,#;R/#$+")("'#&'#." &"/6$2:""6:7;/'$8#:# )(#'#("'#&'#`),w(`$;+.) &;-.# &;Q/2#0/*;+.) &;-.# &;Q&&&#`),w(`2<""6<7=.q &2>""6>7?.e &2@""6@7A.Y &2B""6B7C.M &2D""6D7E.A &22""6273.5 &26""6677.) &24""6475`),w(`%$;+._ &;-.Y &2<""6<7=.M &2>""6>7?.A &2@""6@7A.5 &2B""6B7C.) &2D""6D7E0e*;+._ &;-.Y &2<""6<7=.M &2>""6>7?.A &2@""6@7A.5 &2B""6B7C.) &2D""6D7E&/& 8!:! )`),w(`%;T/J#%28""6879/,#;^/#$+")("'#&'#." &"/#$+")("'#&'#`),w(`%;U.) &;\\.# &;X/& 8!:! )`),w(`%$%;V/2#2J""6J7K/#$+")("'#&'#0<*%;V/2#2J""6J7K/#$+")("'#&'#&/D#;W/;$2J""6J7K." &"/'$8#:# )(#'#("'#&'#`),w(`$4""5!7/,#0)*4""5!7&&&#`),w(`%4$""5!7%/?#$4""5!70)*4""5!7&/#$+")("'#&'#`),w(`%2l""6l7m/?#;Y/6$2n""6n7o/'$8#:# )(#'#("'#&'#`),w(`%%;Z/³#28""6879/¤$;Z/$28""6879/$;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+-)(-'#(,'#(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#("'#&'#.ސ &%2""67/¤#;Z/$28""6879/$;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+,)(,'#(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#("'#&'#.۹ &%2""67/#;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+*)(*'#()'#(('#(''#(&'#(%'#($'#(#'#("'#&'#.ٺ &%2""67/t#;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+()(('#(''#(&'#(%'#($'#(#'#("'#&'#.ؓ &%2""67/\\#;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+&)(&'#(%'#($'#(#'#("'#&'#.ׄ &%2""67/D#;Z/;$28""6879/,$;[/#$+$)($'#(#'#("'#&'#.֍ &%2""67/,#;[/#$+")("'#&'#.ծ &%2""67/,#;Z/#$+")("'#&'#.Տ &%;Z/#2""67/$;Z/$28""6879/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$++)(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#("'#&'#.Ӈ &%;Z/ª#%28""6879/,#;Z/#$+")("'#&'#." &"/$2""67/t$;Z/k$28""6879/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+*)(*'#()'#(('#(''#(&'#(%'#($'#(#'#("'#&'#.а &%;Z/¹#%28""6879/,#;Z/#$+")("'#&'#." &"/$%28""6879/,#;Z/#$+")("'#&'#." &"/k$2""67/\\$;Z/S$28""6879/D$;Z/;$28""6879/,$;[/#$+))()'#(('#(''#(&'#(%'#($'#(#'#("'#&'#.Ί &%;Z/È#%28""6879/,#;Z/#$+")("'#&'#." &"/¡$%28""6879/,#;Z/#$+")("'#&'#." &"/z$%28""6879/,#;Z/#$+")("'#&'#." &"/S$2""67/D$;Z/;$28""6879/,$;[/#$+()(('#(''#(&'#(%'#($'#(#'#("'#&'#.˕ &%;Z/×#%28""6879/,#;Z/#$+")("'#&'#." &"/°$%28""6879/,#;Z/#$+")("'#&'#." &"/$%28""6879/,#;Z/#$+")("'#&'#." &"/b$%28""6879/,#;Z/#$+")("'#&'#." &"/;$2""67/,$;[/#$+')(''#(&'#(%'#($'#(#'#("'#&'#.ȑ &%;Z/þ#%28""6879/,#;Z/#$+")("'#&'#." &"/×$%28""6879/,#;Z/#$+")("'#&'#." &"/°$%28""6879/,#;Z/#$+")("'#&'#." &"/$%28""6879/,#;Z/#$+")("'#&'#." &"/b$%28""6879/,#;Z/#$+")("'#&'#." &"/;$2""67/,$;Z/#$+()(('#(''#(&'#(%'#($'#(#'#("'#&'#.Ħ &%;Z/Ĝ#%28""6879/,#;Z/#$+")("'#&'#." &"/õ$%28""6879/,#;Z/#$+")("'#&'#." &"/Î$%28""6879/,#;Z/#$+")("'#&'#." &"/§$%28""6879/,#;Z/#$+")("'#&'#." &"/$%28""6879/,#;Z/#$+")("'#&'#." &"/Y$%28""6879/,#;Z/#$+")("'#&'#." &"/2$2""67/#$+()(('#(''#(&'#(%'#($'#(#'#("'#&'#/& 8!:\xA0! )`),w(`%;#/M#;#." &"/?$;#." &"/1$;#." &"/#$+$)($'#(#'#("'#&'#`),w(`%;Z/;#28""6879/,$;Z/#$+#)(#'#("'#&'#.# &;\\`),w(`%;]/o#2J""6J7K/\`$;]/W$2J""6J7K/H$;]/?$2J""6J7K/0$;]/'$8':¡' )(''#(&'#(%'#($'#(#'#("'#&'#`),w(`%2¢""6¢7£/2#4¤""5!7¥/#$+")("'#&'#. &%2¦""6¦7§/;#4¨""5!7©/,$;!/#$+#)(#'#("'#&'#.j &%2ª""6ª7«/5#;!/,$;!/#$+#)(#'#("'#&'#.B &%4¬""5!7/,#;!/#$+")("'#&'#.# &;!`),w(`%%;!." &"/[#;!." &"/M$;!." &"/?$;!." &"/1$;!." &"/#$+%)(%'#($'#(#'#("'#&'#/' 8!:®!! )`),w(`$%22""6273/,#;\`/#$+")("'#&'#0<*%22""6273/,#;\`/#$+")("'#&'#&`),w(`;a.A &;b.; &;c.5 &;d./ &;e.) &;f.# &;g`),w(`%3¯""5*7°/a#3±""5#7².G &3³""5#7´.; &3µ""5$7¶./ &3·""5#7¸.# &;6/($8":¹"! )("'#&'#`),w(`%3º""5%7»/I#3¼""5%7½./ &3¾""5"7¿.# &;6/($8":À"! )("'#&'#`),w(`%3Á""5'7Â/1#;/($8":Ã"! )("'#&'#`),w(`%3Ä""5$7Å/1#;ð/($8":Æ"! )("'#&'#`),w(`%3Ç""5&7È/1#;T/($8":É"! )("'#&'#`),w(`%3Ê""5"7Ë/N#%2>""6>7?/,#;6/#$+")("'#&'#." &"/'$8":Ì" )("'#&'#`),w(`%;h/P#%2>""6>7?/,#;i/#$+")("'#&'#." &"/)$8":Í""! )("'#&'#`),w(`%$;j/�#*;j&&&#/"!&,)`),w(`%$;j/�#*;j&&&#/"!&,)`),w(`;k.) &;+.# &;-`),w(`2l""6l7m.e &2n""6n7o.Y &24""6475.M &28""6879.A &2<""6<7=.5 &2@""6@7A.) &2B""6B7C`),w(`%26""6677/n#;m/e$$%2<""6<7=/,#;m/#$+")("'#&'#0<*%2<""6<7=/,#;m/#$+")("'#&'#&/#$+#)(#'#("'#&'#`),w(`%;n/A#2>""6>7?/2$;o/)$8#:Î#"" )(#'#("'#&'#`),w(`$;p.) &;+.# &;-/2#0/*;p.) &;+.# &;-&&&#`),w(`$;p.) &;+.# &;-0/*;p.) &;+.# &;-&`),w(`2l""6l7m.e &2n""6n7o.Y &24""6475.M &26""6677.A &28""6879.5 &2@""6@7A.) &2B""6B7C`),w(`;.# &;r`),w(`%;/G#;'/>$;s/5$;'/,$;/#$+%)(%'#($'#(#'#("'#&'#`),w(`;M.# &;t`),w(`%;/E#28""6879/6$;u.# &;x/'$8#:Ï# )(#'#("'#&'#`),w(`%;v.# &;w/J#%26""6677/,#;/#$+")("'#&'#." &"/#$+")("'#&'#`),w(`%2Ð""6Ð7Ñ/:#;/1$;w." &"/#$+#)(#'#("'#&'#`),w(`%24""6475/,#;{/#$+")("'#&'#`),w(`%;z/3#$;y0#*;y&/#$+")("'#&'#`),w(`;*.) &;+.# &;-`),w(`;+. &;-. &22""6273.} &26""6677.q &28""6879.e &2:""6:7;.Y &2<""6<7=.M &2>""6>7?.A &2@""6@7A.5 &2B""6B7C.) &2D""6D7E`),w(`%;|/e#$%24""6475/,#;|/#$+")("'#&'#0<*%24""6475/,#;|/#$+")("'#&'#&/#$+")("'#&'#`),w(`%$;~0#*;~&/e#$%22""6273/,#;}/#$+")("'#&'#0<*%22""6273/,#;}/#$+")("'#&'#&/#$+")("'#&'#`),w(`$;~0#*;~&`),w(`;+.w &;-.q &28""6879.e &2:""6:7;.Y &2<""6<7=.M &2>""6>7?.A &2@""6@7A.5 &2B""6B7C.) &2D""6D7E`),w(`%%;"/#$;".G &;!.A &2@""6@7A.5 &2F""6F7G.) &2J""6J7K0M*;".G &;!.A &2@""6@7A.5 &2F""6F7G.) &2J""6J7K&/#$+")("'#&'#/& 8!:Ò! )`),w(`;.# &;`),w(`%%;O/2#2:""6:7;/#$+")("'#&'#." &"/,#;S/#$+")("'#&'#." &"`),w(`$;+. &;-.} &2B""6B7C.q &2D""6D7E.e &22""6273.Y &28""6879.M &2:""6:7;.A &2<""6<7=.5 &2>""6>7?.) &2@""6@7A/#0*;+. &;-.} &2B""6B7C.q &2D""6D7E.e &22""6273.Y &28""6879.M &2:""6:7;.A &2<""6<7=.5 &2>""6>7?.) &2@""6@7A&&&#`),w(`$;y0#*;y&`),w(`%3""5#7Ó/q#24""6475/b$$;!/�#*;!&&&#/L$2J""6J7K/=$$;!/�#*;!&&&#/'$8%:Ô% )(%'#($'#(#'#("'#&'#`),w(`2Õ""6Õ7Ö`),w(`2×""6×7Ø`),w(`2Ù""6Ù7Ú`),w(`2Û""6Û7Ü`),w(`2Ý""6Ý7Þ`),w(`2ß""6ß7à`),w(`2á""6á7â`),w(`2ã""6ã7ä`),w(`2å""6å7æ`),w(`2ç""6ç7è`),w(`2é""6é7ê`),w(`%;
.Y &;.S &;.M &;.G &;.A &;.; &;.5 &;./ &;.) &;.# &;6/& 8!:ë! )`),w(`%;/G#;'/>$;/5$;'/,$;/#$+%)(%'#($'#(#'#("'#&'#`),w(`%;/' 8!:ì!! )`),w(`%;!/5#;!/,$;!/#$+#)(#'#("'#&'#`),w(`%$;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(0G*;*.A &;+.; &;-.5 &;3./ &;4.) &;'.# &;(&/& 8!:í! )`),w(`%;¶/Y#$%;A/,#;¶/#$+")("'#&'#06*%;A/,#;¶/#$+")("'#&'#&/#$+")("'#&'#`),w(`%;9/N#%2:""6:7;/,#;9/#$+")("'#&'#." &"/'$8":î" )("'#&'#`),w(`%;:.c &%;/Y#$%;A/,#;/#$+")("'#&'#06*%;A/,#;/#$+")("'#&'#&/#$+")("'#&'#/& 8!:ï! )`),w(`%;L.# &;/]#$%;B/,#;/#$+")("'#&'#06*%;B/,#;/#$+")("'#&'#&/'$8":ð" )("'#&'#`),w(`%;." &"/>#;@/5$;M/,$;?/#$+$)($'#(#'#("'#&'#`),w(`%%;6/Y#$%;./,#;6/#$+")("'#&'#06*%;./,#;6/#$+")("'#&'#&/#$+")("'#&'#.# &;H/' 8!:ñ!! )`),w(`;.) &;.# &;\xA0`),w(`%3ò""5!7ó/:#;</1$;/($8#:ô#! )(#'#("'#&'#`),w(`%3õ""5'7ö/:#;</1$;/($8#:÷#! )(#'#("'#&'#`),w(`%$;!/�#*;!&&&#/' 8!:ø!! )`),w(`%2ù""6ù7ú/o#%2J""6J7K/M#;!." &"/?$;!." &"/1$;!." &"/#$+$)($'#(#'#("'#&'#." &"/'$8":û" )("'#&'#`),w(`%;6/J#%;</,#;¡/#$+")("'#&'#." &"/)$8":ü""! )("'#&'#`),w(`;6.) &;T.# &;H`),w(`%;£/Y#$%;B/,#;¤/#$+")("'#&'#06*%;B/,#;¤/#$+")("'#&'#&/#$+")("'#&'#`),w(`%3ý""5&7þ.G &3ÿ""5'7Ā.; &3ā""5$7Ă./ &3ă""5%7Ą.# &;6/& 8!:ą! )`),w(`;¥.# &;\xA0`),w(`%3Ć""5(7ć/M#;</D$3Ĉ""5(7ĉ./ &3Ċ""5(7ċ.# &;6/#$+#)(#'#("'#&'#`),w(`%;6/Y#$%;A/,#;6/#$+")("'#&'#06*%;A/,#;6/#$+")("'#&'#&/#$+")("'#&'#`),w(`%$;!/�#*;!&&&#/' 8!:Č!! )`),w(`%;©/& 8!:č! )`),w(`%;ª/k#;;/b$;¯/Y$$%;B/,#;°/#$+")("'#&'#06*%;B/,#;°/#$+")("'#&'#&/#$+$)($'#(#'#("'#&'#`),w(`;«.# &;¬`),w(`3Ď""5$7ď.S &3Đ""5%7đ.G &3Ē""5%7ē.; &3Ĕ""5%7ĕ./ &3Ė""5+7ė.# &;`),w(`3Ę""5'7ę./ &3Ě""5)7ě.# &;`),w(`;6.# &;®`),w(`%3Ĝ""5"7ĝ/,#;6/#$+")("'#&'#`),w(`;.# &;6`),w(`%;6/5#;</,$;±/#$+#)(#'#("'#&'#`),w(`;6.# &;H`),w(`%;³/5#;./,$;/#$+#)(#'#("'#&'#`),w(`%$;!/�#*;!&&&#/' 8!:Ğ!! )`),w(`%;/' 8!:ğ!! )`),w(`%;¶/^#$%;B/,#;\xA0/#$+")("'#&'#06*%;B/,#;\xA0/#$+")("'#&'#&/($8":Ġ"!!)("'#&'#`),w(`%%;7/e#$%2J""6J7K/,#;7/#$+")("'#&'#0<*%2J""6J7K/,#;7/#$+")("'#&'#&/#$+")("'#&'#/"!&,)`),w(`%;L.# &;/]#$%;B/,#;¸/#$+")("'#&'#06*%;B/,#;¸/#$+")("'#&'#&/'$8":ġ" )("'#&'#`),w(`;¹.# &;\xA0`),w(`%3Ģ""5#7ģ/:#;</1$;6/($8#:Ĥ#! )(#'#("'#&'#`),w(`%$;!/�#*;!&&&#/' 8!:ĥ!! )`),w(`%;/' 8!:Ħ!! )`),w(`%$;0#*;&/x#;@/o$;M/f$;?/]$$%;B/,#;\xA0/#$+")("'#&'#06*%;B/,#;\xA0/#$+")("'#&'#&/'$8%:ħ% )(%'#($'#(#'#("'#&'#`),w(`;¾`),w(`%3Ĩ""5&7ĩ/k#;./b$;Á/Y$$%;A/,#;Á/#$+")("'#&'#06*%;A/,#;Á/#$+")("'#&'#&/#$+$)($'#(#'#("'#&'#.# &;¿`),w(`%;6/k#;./b$;À/Y$$%;A/,#;À/#$+")("'#&'#06*%;A/,#;À/#$+")("'#&'#&/#$+$)($'#(#'#("'#&'#`),w(`%;6/;#;</2$;6.# &;H/#$+#)(#'#("'#&'#`),w(`;Â.G &;Ä.A &;Æ.; &;È.5 &;É./ &;Ê.) &;Ë.# &;À`),w(`%3Ī""5%7ī/5#;</,$;Ã/#$+#)(#'#("'#&'#`),w(`%;I/' 8!:Ĭ!! )`),w(`%3ĭ""5&7Į/#;</$;D/
$;Å/|$$%$;'/�#*;'&&&#/,#;Å/#$+")("'#&'#0C*%$;'/�#*;'&&&#/,#;Å/#$+")("'#&'#&/,$;E/#$+&)(&'#(%'#($'#(#'#("'#&'#`),w(`;t.# &;w`),w(`%3į""5%7İ/5#;</,$;Ç/#$+#)(#'#("'#&'#`),w(`%;I/' 8!:ı!! )`),w(`%3IJ""5&7ij/:#;</1$;I/($8#:Ĵ#! )(#'#("'#&'#`),w(`%3ĵ""5%7Ķ/]#;</T$%3ķ""5$7ĸ/& 8!:Ĺ! ).4 &%3ĺ""5%7Ļ/& 8!:ļ! )/#$+#)(#'#("'#&'#`),w(`%3Ľ""5)7ľ/R#;</I$3Ŀ""5#7ŀ./ &3Ł""5(7ł.# &;6/($8#:Ń#! )(#'#("'#&'#`),w(`%3ń""5#7Ņ/#;</$;D/$%;Ì/e#$%2D""6D7E/,#;Ì/#$+")("'#&'#0<*%2D""6D7E/,#;Ì/#$+")("'#&'#&/#$+")("'#&'#/,$;E/#$+%)(%'#($'#(#'#("'#&'#`),w(`%3ņ""5(7Ň./ &3ň""5$7ʼn.# &;6/' 8!:Ŋ!! )`),w(`%;6/Y#$%;A/,#;6/#$+")("'#&'#06*%;A/,#;6/#$+")("'#&'#&/#$+")("'#&'#`),w(`%;Ï/G#;./>$;Ï/5$;./,$;/#$+%)(%'#($'#(#'#("'#&'#`),w(`%$;!/�#*;!&&&#/' 8!:ŋ!! )`),w(`%;Ñ/]#$%;A/,#;Ñ/#$+")("'#&'#06*%;A/,#;Ñ/#$+")("'#&'#&/'$8":Ō" )("'#&'#`),w(`%;/]#$%;B/,#;\xA0/#$+")("'#&'#06*%;B/,#;\xA0/#$+")("'#&'#&/'$8":ō" )("'#&'#`),w(`%;L.O &;.I &%;@." &"/:#;t/1$;?." &"/#$+#)(#'#("'#&'#/]#$%;B/,#;\xA0/#$+")("'#&'#06*%;B/,#;\xA0/#$+")("'#&'#&/'$8":Ŏ" )("'#&'#`),w(`%;Ô/]#$%;B/,#;Õ/#$+")("'#&'#06*%;B/,#;Õ/#$+")("'#&'#&/'$8":ŏ" )("'#&'#`),w(`%;/& 8!:Ő! )`),w(`%3ő""5(7Œ/:#;</1$;6/($8#:œ#! )(#'#("'#&'#.g &%3Ŕ""5&7ŕ/:#;</1$;6/($8#:Ŗ#! )(#'#("'#&'#.: &%3ŗ""5*7Ř/& 8!:ř! ).# &;\xA0`),w(`%%;6/k#$%;A/2#;6/)$8":Ś""$ )("'#&'#0<*%;A/2#;6/)$8":Ś""$ )("'#&'#&/)$8":ś""! )("'#&'#." &"/' 8!:Ŝ!! )`),w(`%;Ø/Y#$%;A/,#;Ø/#$+")("'#&'#06*%;A/,#;Ø/#$+")("'#&'#&/#$+")("'#&'#`),w(`%;/Y#$%;B/,#;\xA0/#$+")("'#&'#06*%;B/,#;\xA0/#$+")("'#&'#&/#$+")("'#&'#`),w(`%$;!/�#*;!&&&#/' 8!:ŝ!! )`),w(`%;Û/Y#$%;B/,#;Ü/#$+")("'#&'#06*%;B/,#;Ü/#$+")("'#&'#&/#$+")("'#&'#`),w(`%3Ş""5&7ş.; &3Š""5'7š./ &3Ţ""5*7ţ.# &;6/& 8!:Ť! )`),w(`%3ť""5&7Ŧ/:#;</1$;Ý/($8#:ŧ#! )(#'#("'#&'#.} &%3õ""5'7ö/:#;</1$;/($8#:Ũ#! )(#'#("'#&'#.P &%3ũ""5+7Ū/:#;</1$;/($8#:ū#! )(#'#("'#&'#.# &;\xA0`),w(`3Ŭ""5+7ŭ.k &3Ů""5)7ů._ &3Ű""5(7ű.S &3Ų""5'7ų.G &3Ŵ""5&7ŵ.; &3Ŷ""5*7ŷ./ &3Ÿ""5)7Ź.# &;6`),w(`;1." &"`),w(`%%;6/k#$%;A/2#;6/)$8":Ś""$ )("'#&'#0<*%;A/2#;6/)$8":Ś""$ )("'#&'#&/)$8":ś""! )("'#&'#." &"/' 8!:ź!! )`),w(`%;L.# &;/]#$%;B/,#;á/#$+")("'#&'#06*%;B/,#;á/#$+")("'#&'#&/'$8":Ż" )("'#&'#`),w(`;¹.# &;\xA0`),w(`%;ã/Y#$%;A/,#;ã/#$+")("'#&'#06*%;A/,#;ã/#$+")("'#&'#&/#$+")("'#&'#`),w(`%;ê/k#;./b$;í/Y$$%;B/,#;ä/#$+")("'#&'#06*%;B/,#;ä/#$+")("'#&'#&/#$+$)($'#(#'#("'#&'#`),w(`;å.; &;æ.5 &;ç./ &;è.) &;é.# &;\xA0`),w(`%3ż""5#7Ž/:#;</1$;ð/($8#:ž#! )(#'#("'#&'#`),w(`%3ſ""5%7ƀ/:#;</1$;T/($8#:Ɓ#! )(#'#("'#&'#`),w(`%3Ƃ""5(7ƃ/F#;</=$;\\.) &;Y.# &;X/($8#:Ƅ#! )(#'#("'#&'#`),w(`%3ƅ""5&7Ɔ/:#;</1$;6/($8#:Ƈ#! )(#'#("'#&'#`),w(`%3ƈ""5%7Ɖ/A#;</8$$;!0#*;!&/($8#:Ɗ#! )(#'#("'#&'#`),w(`%;ë/G#;;/>$;6/5$;;/,$;ì/#$+%)(%'#($'#(#'#("'#&'#`),w(`%3""5#7Ó.# &;6/' 8!:Ƌ!! )`),w(`%3±""5#7ƌ.G &3³""5#7ƍ.; &3·""5#7Ǝ./ &3µ""5$7Ə.# &;6/' 8!:Ɛ!! )`),w(`%;î/D#%;C/,#;ï/#$+")("'#&'#." &"/#$+")("'#&'#`),w(`%;U.) &;\\.# &;X/& 8!:Ƒ! )`),w(`%%;!." &"/[#;!." &"/M$;!." &"/?$;!." &"/1$;!." &"/#$+%)(%'#($'#(#'#("'#&'#/' 8!:ƒ!! )`),w(`%%;!/?#;!." &"/1$;!." &"/#$+#)(#'#("'#&'#/' 8!:Ɠ!! )`),w(`;¾`),w(`%;/^#$%;B/,#;ó/#$+")("'#&'#06*%;B/,#;ó/#$+")("'#&'#&/($8":Ɣ"!!)("'#&'#`),w(`;ô.# &;\xA0`),w(`%2ƕ""6ƕ7Ɩ/L#;</C$2Ɨ""6Ɨ7Ƙ.) &2ƙ""6ƙ7ƚ/($8#:ƛ#! )(#'#("'#&'#`),w(`%;/^#$%;B/,#;\xA0/#$+")("'#&'#06*%;B/,#;\xA0/#$+")("'#&'#&/($8":Ɯ"!!)("'#&'#`),w(`%;6/5#;0/,$;÷/#$+#)(#'#("'#&'#`),w(`$;2.) &;4.# &;.0/*;2.) &;4.# &;.&`),w(`$;%0#*;%&`),w(`%;ú/;#28""6879/,$;û/#$+#)(#'#("'#&'#`),w(`%3Ɲ""5%7ƞ.) &3Ɵ""5$7Ơ/' 8!:ơ!! )`),w(`%;ü/J#%28""6879/,#;^/#$+")("'#&'#." &"/#$+")("'#&'#`),w(`%;\\.) &;X.# &;/' 8!:Ƣ!! )`),w(`;".S &;!.M &2F""6F7G.A &2J""6J7K.5 &2H""6H7I.) &2N""6N7O`),w(`2L""6L7M. &2B""6B7C. &2<""6<7=.} &2R""6R7S.q &2T""6T7U.e &2V""6V7W.Y &2P""6P7Q.M &2@""6@7A.A &2D""6D7E.5 &22""6273.) &2>""6>7?`),w(`%;Ā/b#28""6879/S$;û/J$%2ƣ""6ƣ7Ƥ/,#;ì/#$+")("'#&'#." &"/#$+$)($'#(#'#("'#&'#`),w(`%3ƥ""5%7Ʀ.) &3Ƨ""5$7ƨ/' 8!:ơ!! )`),w(`%3±""5#7².6 &3³""5#7´.* &$;+0#*;+&/' 8!:Ʃ!! )`),w(`%;Ą/#2F""6F7G/x$;ă/o$2F""6F7G/\`$;ă/W$2F""6F7G/H$;ă/?$2F""6F7G/0$;ą/'$8):ƪ) )()'#(('#(''#(&'#(%'#($'#(#'#("'#&'#`),w(`%;#/>#;#/5$;#/,$;#/#$+$)($'#(#'#("'#&'#`),w(`%;ă/,#;ă/#$+")("'#&'#`),w(`%;ă/5#;ă/,$;ă/#$+#)(#'#("'#&'#`),w(`%;q/T#$;m0#*;m&/D$%; /,#;ø/#$+")("'#&'#." &"/#$+#)(#'#("'#&'#`),w(`%2ƫ""6ƫ7Ƭ.) &2ƭ""6ƭ7Ʈ/w#;0/n$;Ĉ/e$$%;B/2#;ĉ.# &;\xA0/#$+")("'#&'#0<*%;B/2#;ĉ.# &;\xA0/#$+")("'#&'#&/#$+$)($'#(#'#("'#&'#`),w(`;.# &;L`),w(`%2Ư""6Ư7ư/5#;</,$;Ċ/#$+#)(#'#("'#&'#`),w(`%;D/S#;,/J$2:""6:7;/;$;,.# &;T/,$;E/#$+%)(%'#($'#(#'#("'#&'#`)],c=0,l=0,u=[{line:1,column:1}],d=0,f=[],p=0,m;if(t.startRule!==void 0){if(!(t.startRule in i))throw Error(`Can't start parsing from rule "`+t.startRule+`".`);a=i[t.startRule]}function h(){return e.substring(l,c)}function g(){return x(l,c)}function _(e,t){return{type:`literal`,text:e,ignoreCase:t}}function v(e,t,n){return{type:`class`,parts:e,inverted:t,ignoreCase:n}}function y(){return{type:`end`}}function b(t){let n=u[t],r;if(n)return n;for(r=t-1;!u[r];)r--;for(n=u[r],n={line:n.line,column:n.column};r<t;)e.charCodeAt(r)===10?(n.line++,n.column=1):n.column++,r++;return u[t]=n,n}function x(e,t){let n=b(e),i=b(t);return{source:r,start:{offset:e,line:n.line,column:n.column},end:{offset:t,line:i.line,column:i.column}}}function S(e){c<d||(c>d&&(d=c,f=[]),f.push(e))}function C(e,t,n){return new A(A.buildMessage(e,t),e,t,n)}function w(e){return e.split(``).map(e=>e.charCodeAt(0)-32)}function T(t){let r=s[t],i=0,a=[],u=r.length,d=[],f=[],m;for(;;){for(;i<u;)switch(r[i]){case 0:f.push(o[r[i+1]]),i+=2;break;case 1:f.push(void 0),i++;break;case 2:f.push(null),i++;break;case 3:f.push(n),i++;break;case 4:f.push([]),i++;break;case 5:f.push(c),i++;break;case 6:f.pop(),i++;break;case 7:c=f.pop(),i++;break;case 8:f.length-=r[i+1],i+=2;break;case 9:f.splice(-2,1),i++;break;case 10:f[f.length-2].push(f.pop()),i++;break;case 11:f.push(f.splice(f.length-r[i+1],r[i+1])),i+=2;break;case 12:f.push(e.substring(f.pop(),c)),i++;break;case 13:d.push(u),a.push(i+3+r[i+1]+r[i+2]),f[f.length-1]?(u=i+3+r[i+1],i+=3):(u=i+3+r[i+1]+r[i+2],i+=3+r[i+1]);break;case 14:d.push(u),a.push(i+3+r[i+1]+r[i+2]),f[f.length-1]===n?(u=i+3+r[i+1],i+=3):(u=i+3+r[i+1]+r[i+2],i+=3+r[i+1]);break;case 15:d.push(u),a.push(i+3+r[i+1]+r[i+2]),f[f.length-1]===n?(u=i+3+r[i+1]+r[i+2],i+=3+r[i+1]):(u=i+3+r[i+1],i+=3);break;case 16:f[f.length-1]===n?i+=2+r[i+1]:(d.push(u),a.push(i),u=i+2+r[i+1],i+=2);break;case 17:d.push(u),a.push(i+3+r[i+1]+r[i+2]),e.length>c?(u=i+3+r[i+1],i+=3):(u=i+3+r[i+1]+r[i+2],i+=3+r[i+1]);break;case 18:d.push(u),a.push(i+4+r[i+2]+r[i+3]),e.substr(c,o[r[i+1]].length)===o[r[i+1]]?(u=i+4+r[i+2],i+=4):(u=i+4+r[i+2]+r[i+3],i+=4+r[i+2]);break;case 19:d.push(u),a.push(i+4+r[i+2]+r[i+3]),e.substr(c,o[r[i+1]].length).toLowerCase()===o[r[i+1]]?(u=i+4+r[i+2],i+=4):(u=i+4+r[i+2]+r[i+3],i+=4+r[i+2]);break;case 20:d.push(u),a.push(i+4+r[i+2]+r[i+3]),o[r[i+1]].test(e.charAt(c))?(u=i+4+r[i+2],i+=4):(u=i+4+r[i+2]+r[i+3],i+=4+r[i+2]);break;case 21:f.push(e.substr(c,r[i+1])),c+=r[i+1],i+=2;break;case 22:f.push(o[r[i+1]]),c+=o[r[i+1]].length,i+=2;break;case 23:f.push(n),p===0&&S(o[r[i+1]]),i+=2;break;case 24:l=f[f.length-1-r[i+1]],i+=2;break;case 25:l=c,i++;break;case 26:m=r.slice(i+4,i+4+r[i+3]).map(function(e){return f[f.length-1-e]}),f.splice(f.length-r[i+2],r[i+2],o[r[i+1]].apply(null,m)),i+=4+r[i+3];break;case 27:f.push(T(r[i+1])),i+=2;break;case 28:p++,i++;break;case 29:p--,i++;break;default:throw Error(`Invalid opcode: `+r[i]+`.`)}if(d.length>0)u=d.pop(),i=a.pop();else break}return f[0]}t.data={};function E(e,t){return[e].concat(t)}if(m=T(a),m!==n&&c===e.length)return m;throw m!==n&&c<e.length&&S(y()),C(f,d<e.length?e.charAt(d):null,d<e.length?x(d,d+1):x(d,d))}let M=j;var N;(function(e){function t(e,t){let n={startRule:t};try{M(e,n)}catch{n.data=-1}return n.data}e.parse=t;function n(t){let n=e.parse(t,`Name_Addr_Header`);return n===-1?void 0:n}e.nameAddrHeaderParse=n;function r(t){let n=e.parse(t,`SIP_URI`);return n===-1?void 0:n}e.URIParse=r})(N=N||={});var ne={100:`Trying`,180:`Ringing`,181:`Call Is Being Forwarded`,182:`Queued`,183:`Session Progress`,199:`Early Dialog Terminated`,200:`OK`,202:`Accepted`,204:`No Notification`,300:`Multiple Choices`,301:`Moved Permanently`,302:`Moved Temporarily`,305:`Use Proxy`,380:`Alternative Service`,400:`Bad Request`,401:`Unauthorized`,402:`Payment Required`,403:`Forbidden`,404:`Not Found`,405:`Method Not Allowed`,406:`Not Acceptable`,407:`Proxy Authentication Required`,408:`Request Timeout`,410:`Gone`,412:`Conditional Request Failed`,413:`Request Entity Too Large`,414:`Request-URI Too Long`,415:`Unsupported Media Type`,416:`Unsupported URI Scheme`,417:`Unknown Resource-Priority`,420:`Bad Extension`,421:`Extension Required`,422:`Session Interval Too Small`,423:`Interval Too Brief`,428:`Use Identity Header`,429:`Provide Referrer Identity`,430:`Flow Failed`,433:`Anonymity Disallowed`,436:`Bad Identity-Info`,437:`Unsupported Certificate`,438:`Invalid Identity Header`,439:`First Hop Lacks Outbound Support`,440:`Max-Breadth Exceeded`,469:`Bad Info Package`,470:`Consent Needed`,478:`Unresolvable Destination`,480:`Temporarily Unavailable`,481:`Call/Transaction Does Not Exist`,482:`Loop Detected`,483:`Too Many Hops`,484:`Address Incomplete`,485:`Ambiguous`,486:`Busy Here`,487:`Request Terminated`,488:`Not Acceptable Here`,489:`Bad Event`,491:`Request Pending`,493:`Undecipherable`,494:`Security Agreement Required`,500:`Internal Server Error`,501:`Not Implemented`,502:`Bad Gateway`,503:`Service Unavailable`,504:`Server Time-out`,505:`Version Not Supported`,513:`Message Too Large`,580:`Precondition Failure`,600:`Busy Everywhere`,603:`Decline`,604:`Does Not Exist Anywhere`,606:`Not Acceptable`};function re(e,t=32){let n=``;for(let r=0;r<e;r++){let e=Math.floor(Math.random()*t);n+=e.toString(t)}return n}function ie(e){return ne[e]||``}function P(){return re(10)}function F(e){let t={"Call-Id":`Call-ID`,Cseq:`CSeq`,"Min-Se":`Min-SE`,Rack:`RAck`,Rseq:`RSeq`,"Www-Authenticate":`WWW-Authenticate`},n=e.toLowerCase().replace(/_/g,`-`).split(`-`),r=n.length,i=``;for(let e=0;e<r;e++)e!==0&&(i+=`-`),i+=n[e].charAt(0).toUpperCase()+n[e].substring(1);return t[i]&&(i=t[i]),i}function ae(e){return encodeURIComponent(e).replace(/%[A-F\d]{2}/g,`U`).length}var oe=class{constructor(){this.headers={}}addHeader(e,t){let n={raw:t};e=F(e),this.headers[e]?this.headers[e].push(n):this.headers[e]=[n]}getHeader(e){let t=this.headers[F(e)];if(t){if(t[0])return t[0].raw}else return}getHeaders(e){let t=this.headers[F(e)],n=[];if(!t)return[];for(let e of t)n.push(e.raw);return n}hasHeader(e){return!!this.headers[F(e)]}parseHeader(e,t=0){if(e=F(e),this.headers[e]){if(t>=this.headers[e].length)return}else return;let n=this.headers[e][t],r=n.raw;if(n.parsed)return n.parsed;let i=N.parse(r,e.replace(/-/g,`_`));if(i===-1){this.headers[e].splice(t,1);return}else return n.parsed=i,i}s(e,t=0){return this.parseHeader(e,t)}setHeader(e,t){this.headers[F(e)]=[{raw:t}]}toString(){return this.data}},I=class extends oe{constructor(){super()}},se=class extends oe{constructor(){super()}},ce=class e{constructor(t,n,r,i,a,o,s){this.headers={},this.extraHeaders=[],this.options=e.getDefaultOptions(),a&&(this.options=Object.assign(Object.assign({},this.options),a),this.options.optionTags&&this.options.optionTags.length&&(this.options.optionTags=this.options.optionTags.slice()),this.options.routeSet&&this.options.routeSet.length&&(this.options.routeSet=this.options.routeSet.slice())),o&&o.length&&(this.extraHeaders=o.slice()),s&&(this.body={body:s.content,contentType:s.contentType}),this.method=t,this.ruri=n.clone(),this.fromURI=r.clone(),this.fromTag=this.options.fromTag?this.options.fromTag:P(),this.from=e.makeNameAddrHeader(this.fromURI,this.options.fromDisplayName,this.fromTag),this.toURI=i.clone(),this.toTag=this.options.toTag,this.to=e.makeNameAddrHeader(this.toURI,this.options.toDisplayName,this.toTag),this.callId=this.options.callId?this.options.callId:this.options.callIdPrefix+re(15),this.cseq=this.options.cseq,this.setHeader(`route`,this.options.routeSet),this.setHeader(`via`,``),this.setHeader(`to`,this.to.toString()),this.setHeader(`from`,this.from.toString()),this.setHeader(`cseq`,this.cseq+` `+this.method),this.setHeader(`call-id`,this.callId),this.setHeader(`max-forwards`,`70`)}static getDefaultOptions(){return{callId:``,callIdPrefix:``,cseq:1,toDisplayName:``,toTag:``,fromDisplayName:``,fromTag:``,forceRport:!1,hackViaTcp:!1,optionTags:[`outbound`],routeSet:[],userAgentString:`sip.js`,viaHost:``}}static makeNameAddrHeader(e,t,n){let r={};return n&&(r.tag=n),new O(e,t,r)}getHeader(e){let t=this.headers[F(e)];if(t){if(t[0])return t[0]}else{let t=RegExp(`^\\s*`+e+`\\s*:`,`i`);for(let e of this.extraHeaders)if(t.test(e))return e.substring(e.indexOf(`:`)+1).trim()}}getHeaders(e){let t=[],n=this.headers[F(e)];if(n)for(let e of n)t.push(e);else{let n=RegExp(`^\\s*`+e+`\\s*:`,`i`);for(let e of this.extraHeaders)n.test(e)&&t.push(e.substring(e.indexOf(`:`)+1).trim())}return t}hasHeader(e){if(this.headers[F(e)])return!0;{let t=RegExp(`^\\s*`+e+`\\s*:`,`i`);for(let e of this.extraHeaders)if(t.test(e))return!0}return!1}setHeader(e,t){this.headers[F(e)]=t instanceof Array?t:[t]}setViaHeader(e,t){this.options.hackViaTcp&&(t=`TCP`);let n=`SIP/2.0/`+t;n+=` `+this.options.viaHost+`;branch=`+e,this.options.forceRport&&(n+=`;rport`),this.setHeader(`via`,n),this.branch=e}toString(){let e=``;for(let t in e+=this.method+` `+this.ruri.toRaw()+` SIP/2.0\r
|
|
11
|
+
`,this.headers)if(this.headers[t])for(let n of this.headers[t])e+=t+`: `+n+`\r
|
|
12
|
+
`;for(let t of this.extraHeaders)e+=t.trim()+`\r
|
|
13
|
+
`;return e+=`Supported: `+this.options.optionTags.join(`, `)+`\r
|
|
14
|
+
`,e+=`User-Agent: `+this.options.userAgentString+`\r
|
|
15
|
+
`,this.body?typeof this.body==`string`?(e+=`Content-Length: `+ae(this.body)+`\r
|
|
17
16
|
\r
|
|
18
|
-
|
|
17
|
+
`,e+=this.body):this.body.body&&this.body.contentType?(e+=`Content-Type: `+this.body.contentType+`\r
|
|
18
|
+
`,e+=`Content-Length: `+ae(this.body.body)+`\r
|
|
19
19
|
\r
|
|
20
|
-
|
|
21
|
-
`);if(this.method===D.INVITE&&g>100&&g<=200){var K=this.getHeaders("record-route"),Z=T(K),X;try{for(Z.s();!(X=Z.n()).done;){var z=X.value;E+="Record-Route: ".concat(z,`\r
|
|
22
|
-
`)}}catch(sA){Z.e(sA)}finally{Z.f()}}var $=this.getHeaders("via"),eA=T($),nA;try{for(eA.s();!(nA=eA.n()).done;){var lA=nA.value;E+="Via: ".concat(lA,`\r
|
|
23
|
-
`)}}catch(sA){eA.e(sA)}finally{eA.f()}!this.to_tag&&g>100?u+=";tag=".concat(m.newTag()):this.to_tag&&!this.s("to").hasParam("tag")&&(u+=";tag=".concat(this.to_tag)),E+="To: ".concat(u,`\r
|
|
24
|
-
`),E+="From: ".concat(this.getHeader("From"),`\r
|
|
25
|
-
`),E+="Call-ID: ".concat(this.call_id,`\r
|
|
26
|
-
`),E+="CSeq: ".concat(this.cseq," ").concat(this.method,`\r
|
|
27
|
-
`);var rA=T(b),hA;try{for(rA.s();!(hA=rA.n()).done;){var IA=hA.value;E+="".concat(IA.trim(),`\r
|
|
28
|
-
`)}}catch(sA){rA.e(sA)}finally{rA.f()}switch(this.method){case D.INVITE:this.ua.configuration.session_timers&&J.push("timer"),(this.ua.contact.pub_gruu||this.ua.contact.temp_gruu)&&J.push("gruu"),J.push("ice","replaces");break;case D.UPDATE:this.ua.configuration.session_timers&&J.push("timer"),R&&J.push("ice"),J.push("replaces")}if(J.push("outbound"),this.method===D.OPTIONS?(E+="Allow: ".concat(D.ALLOWED_METHODS,`\r
|
|
29
|
-
`),E+="Accept: ".concat(D.ACCEPTED_BODY_TYPES,`\r
|
|
30
|
-
`)):g===405?E+="Allow: ".concat(D.ALLOWED_METHODS,`\r
|
|
31
|
-
`):g===415&&(E+="Accept: ".concat(D.ACCEPTED_BODY_TYPES,`\r
|
|
32
|
-
`)),E+="Supported: ".concat(J,`\r
|
|
33
|
-
`),R){var EA=m.str_utf8_length(R);E+=`Content-Type: application/sdp\r
|
|
34
|
-
`,E+="Content-Length: ".concat(EA,`\r
|
|
20
|
+
`,e+=this.body.body):e+=`Content-Length: 0\r
|
|
35
21
|
\r
|
|
36
|
-
|
|
22
|
+
`:e+=`Content-Length: 0\r
|
|
37
23
|
\r
|
|
38
|
-
`);this.server_transaction.receiveResponse(g,E,j,H)}},{key:"reply_sl",value:function(){var g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,b=this.getHeaders("via");if(!g||g<100||g>699)throw new TypeError("Invalid status_code: ".concat(g));if(d&&typeof d!="string"&&!(d instanceof String))throw new TypeError("Invalid reason_phrase: ".concat(d));d=d||D.REASON_PHRASE[g]||"";var R="SIP/2.0 ".concat(g," ").concat(d,`\r
|
|
39
|
-
|
|
40
|
-
`)}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
`)
|
|
24
|
+
`,e}};function le(e){return e===`application/sdp`?`session`:`render`}function ue(e){let t=typeof e==`string`?e:e.body,n=typeof e==`string`?`application/sdp`:e.contentType;return{contentDisposition:le(n),contentType:n,content:t}}function de(e){return e&&typeof e.content==`string`&&typeof e.contentType==`string`&&e.contentDisposition===void 0?!0:typeof e.contentDisposition==`string`}function fe(e){let t,n,r;if(e instanceof I&&e.body){let i=e.parseHeader(`Content-Disposition`);t=i?i.type:void 0,n=e.parseHeader(`Content-Type`),r=e.body}if(e instanceof se&&e.body){let i=e.parseHeader(`Content-Disposition`);t=i?i.type:void 0,n=e.parseHeader(`Content-Type`),r=e.body}if(e instanceof ce&&e.body)if(t=e.getHeader(`Content-Disposition`),n=e.getHeader(`Content-Type`),typeof e.body==`string`){if(!n)throw Error(`Header content type header does not equal body content type.`);r=e.body}else{if(n&&n!==e.body.contentType)throw Error(`Header content type header does not equal body content type.`);n=e.body.contentType,r=e.body.body}if(de(e)&&(t=e.contentDisposition,n=e.contentType,r=e.content),r){if(n&&!t&&(t=le(n)),!t)throw Error(`Content disposition undefined.`);if(!n)throw Error(`Content type undefined.`);return{contentDisposition:t,contentType:n,content:r}}}var pe;(function(e){e.Initial=`Initial`,e.Early=`Early`,e.AckWait=`AckWait`,e.Confirmed=`Confirmed`,e.Terminated=`Terminated`})(pe=pe||={});var L;(function(e){e.Initial=`Initial`,e.HaveLocalOffer=`HaveLocalOffer`,e.HaveRemoteOffer=`HaveRemoteOffer`,e.Stable=`Stable`,e.Closed=`Closed`})(L=L||={});var me=500,he=4e3,ge=5e3;let _e={T1:me,T2:he,T4:ge,TIMER_B:64*me,TIMER_D:0*me,TIMER_F:64*me,TIMER_H:64*me,TIMER_I:0*ge,TIMER_J:0*me,TIMER_K:0*ge,TIMER_L:64*me,TIMER_M:64*me,TIMER_N:64*me,PROVISIONAL_RESPONSE_INTERVAL:6e4};var ve=class extends g{constructor(e){super(e||`Transaction state error.`)}},R;(function(e){e.ACK=`ACK`,e.BYE=`BYE`,e.CANCEL=`CANCEL`,e.INFO=`INFO`,e.INVITE=`INVITE`,e.MESSAGE=`MESSAGE`,e.NOTIFY=`NOTIFY`,e.OPTIONS=`OPTIONS`,e.REGISTER=`REGISTER`,e.UPDATE=`UPDATE`,e.SUBSCRIBE=`SUBSCRIBE`,e.PUBLISH=`PUBLISH`,e.REFER=`REFER`,e.PRACK=`PRACK`})(R=R||={});let ye=[R.ACK,R.BYE,R.CANCEL,R.INFO,R.INVITE,R.MESSAGE,R.NOTIFY,R.OPTIONS,R.PRACK,R.REFER,R.REGISTER,R.SUBSCRIBE];var be=class{constructor(e){this.incomingMessageRequest=e}get request(){return this.incomingMessageRequest.message}accept(e){return this.incomingMessageRequest.accept(e),Promise.resolve()}reject(e){return this.incomingMessageRequest.reject(e),Promise.resolve()}},xe=class{constructor(e){this.incomingNotifyRequest=e}get request(){return this.incomingNotifyRequest.message}accept(e){return this.incomingNotifyRequest.accept(e),Promise.resolve()}reject(e){return this.incomingNotifyRequest.reject(e),Promise.resolve()}},Se=class{constructor(e,t){this.incomingReferRequest=e,this.session=t}get referTo(){let e=this.incomingReferRequest.message.parseHeader(`refer-to`);if(!(e instanceof O))throw Error(`Failed to parse Refer-To header.`);return e}get referredBy(){return this.incomingReferRequest.message.getHeader(`referred-by`)}get replaces(){let e=this.referTo.uri.getHeader(`replaces`);return e instanceof Array?e[0]:e}get request(){return this.incomingReferRequest.message}accept(e={statusCode:202}){return this.incomingReferRequest.accept(e),Promise.resolve()}reject(e){return this.incomingReferRequest.reject(e),Promise.resolve()}makeInviter(e){if(this.inviter)return this.inviter;let t=this.referTo.uri.clone();t.clearHeaders(),e||={};let n=(e.extraHeaders||[]).slice(),r=this.replaces;r&&n.push(`Replaces: `+decodeURIComponent(r));let i=this.referredBy;return i&&n.push(`Referred-By: `+i),e.extraHeaders=n,this.inviter=this.session.userAgent._makeInviter(t,e),this.inviter._referred=this.session,this.session._referral=this.inviter,this.inviter}},z;(function(e){e.Initial=`Initial`,e.Establishing=`Establishing`,e.Established=`Established`,e.Terminating=`Terminating`,e.Terminated=`Terminated`})(z=z||={});var Ce=class e{constructor(e,t={}){this.pendingReinvite=!1,this.pendingReinviteAck=!1,this._state=z.Initial,this.delegate=t.delegate,this._stateEventEmitter=new T,this._userAgent=e}dispose(){switch(this.logger.log(`Session ${this.id} in state ${this._state} is being disposed`),delete this.userAgent._sessions[this.id],this._sessionDescriptionHandler&&this._sessionDescriptionHandler.close(),this.state){case z.Initial:break;case z.Establishing:break;case z.Established:return new Promise(e=>{this._bye({onAccept:()=>e(),onRedirect:()=>e(),onReject:()=>e()})});case z.Terminating:break;case z.Terminated:break;default:throw Error(`Unknown state.`)}return Promise.resolve()}get assertedIdentity(){return this._assertedIdentity}get dialog(){return this._dialog}get id(){return this._id}get replacee(){return this._replacee}get sessionDescriptionHandler(){return this._sessionDescriptionHandler}get sessionDescriptionHandlerFactory(){return this.userAgent.configuration.sessionDescriptionHandlerFactory}get sessionDescriptionHandlerModifiers(){return this._sessionDescriptionHandlerModifiers||[]}set sessionDescriptionHandlerModifiers(e){this._sessionDescriptionHandlerModifiers=e.slice()}get sessionDescriptionHandlerOptions(){return this._sessionDescriptionHandlerOptions||{}}set sessionDescriptionHandlerOptions(e){this._sessionDescriptionHandlerOptions=Object.assign({},e)}get sessionDescriptionHandlerModifiersReInvite(){return this._sessionDescriptionHandlerModifiersReInvite||[]}set sessionDescriptionHandlerModifiersReInvite(e){this._sessionDescriptionHandlerModifiersReInvite=e.slice()}get sessionDescriptionHandlerOptionsReInvite(){return this._sessionDescriptionHandlerOptionsReInvite||{}}set sessionDescriptionHandlerOptionsReInvite(e){this._sessionDescriptionHandlerOptionsReInvite=Object.assign({},e)}get state(){return this._state}get stateChange(){return this._stateEventEmitter}get userAgent(){return this._userAgent}bye(e={}){let t=`Session.bye() may only be called if established session.`;switch(this.state){case z.Initial:typeof this.cancel==`function`?(t+=` However Inviter.invite() has not yet been called.`,t+=` Perhaps you should have called Inviter.cancel()?`):typeof this.reject==`function`&&(t+=` However Invitation.accept() has not yet been called.`,t+=` Perhaps you should have called Invitation.reject()?`);break;case z.Establishing:typeof this.cancel==`function`?(t+=` However a dialog does not yet exist.`,t+=` Perhaps you should have called Inviter.cancel()?`):typeof this.reject==`function`&&(t+=` However Invitation.accept() has not yet been called (or not yet resolved).`,t+=` Perhaps you should have called Invitation.reject()?`);break;case z.Established:{let t=e.requestDelegate,n=this.copyRequestOptions(e.requestOptions);return this._bye(t,n)}case z.Terminating:t+=` However this session is already terminating.`,typeof this.cancel==`function`?t+=` Perhaps you have already called Inviter.cancel()?`:typeof this.reject==`function`&&(t+=` Perhaps you have already called Session.bye()?`);break;case z.Terminated:t+=` However this session is already terminated.`;break;default:throw Error(`Unknown state`)}return this.logger.error(t),Promise.reject(Error(`Invalid session state ${this.state}`))}info(e={}){if(this.state!==z.Established)return this.logger.error(`Session.info() may only be called if established session.`),Promise.reject(Error(`Invalid session state ${this.state}`));let t=e.requestDelegate,n=this.copyRequestOptions(e.requestOptions);return this._info(t,n)}invite(e={}){if(this.logger.log(`Session.invite`),this.state!==z.Established)return Promise.reject(Error(`Invalid session state ${this.state}`));if(this.pendingReinvite)return Promise.reject(new v(`Reinvite in progress. Please wait until complete, then try again.`));this.pendingReinvite=!0,e.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiersReInvite=e.sessionDescriptionHandlerModifiers),e.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptionsReInvite=e.sessionDescriptionHandlerOptions);let t={onAccept:t=>{let n=fe(t.message);if(!n){this.logger.error(`Received 2xx response to re-INVITE without a session description`),this.ackAndBye(t,400,`Missing session description`),this.stateTransition(z.Terminated),this.pendingReinvite=!1;return}if(e.withoutSdp){let r={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};this.setOfferAndGetAnswer(n,r).then(e=>{t.ack({body:e})}).catch(e=>{this.logger.error(`Failed to handle offer in 2xx response to re-INVITE`),this.logger.error(e.message),this.state===z.Terminated?t.ack():(this.ackAndBye(t,488,`Bad Media Description`),this.stateTransition(z.Terminated))}).then(()=>{this.pendingReinvite=!1,e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(t)})}else{let r={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};this.setAnswer(n,r).then(()=>{t.ack()}).catch(e=>{this.logger.error(`Failed to handle answer in 2xx response to re-INVITE`),this.logger.error(e.message),this.state===z.Terminated?t.ack():(this.ackAndBye(t,488,`Bad Media Description`),this.stateTransition(z.Terminated))}).then(()=>{this.pendingReinvite=!1,e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(t)})}},onProgress:e=>{},onRedirect:e=>{},onReject:t=>{this.logger.warn(`Received a non-2xx response to re-INVITE`),this.pendingReinvite=!1,e.withoutSdp?e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(t):this.rollbackOffer().catch(e=>{if(this.logger.error(`Failed to rollback offer on non-2xx response to re-INVITE`),this.logger.error(e.message),this.state!==z.Terminated){if(!this.dialog)throw Error(`Dialog undefined.`);let e=[];e.push(`Reason: `+this.getReasonHeaderValue(500,`Internal Server Error`)),this.dialog.bye(void 0,{extraHeaders:e}),this.stateTransition(z.Terminated)}}).then(()=>{e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(t)})},onTrying:e=>{}},n=e.requestOptions||{};if(n.extraHeaders=(n.extraHeaders||[]).slice(),n.extraHeaders.push(`Allow: `+ye.toString()),n.extraHeaders.push(`Contact: `+this._contact),e.withoutSdp){if(!this.dialog)throw this.pendingReinvite=!1,Error(`Dialog undefined.`);return Promise.resolve(this.dialog.invite(t,n))}let r={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};return this.getOffer(r).then(e=>{if(!this.dialog)throw this.pendingReinvite=!1,Error(`Dialog undefined.`);return n.body=e,this.dialog.invite(t,n)}).catch(e=>{throw this.logger.error(e.message),this.logger.error(`Failed to send re-INVITE`),this.pendingReinvite=!1,e})}message(e={}){if(this.state!==z.Established)return this.logger.error(`Session.message() may only be called if established session.`),Promise.reject(Error(`Invalid session state ${this.state}`));let t=e.requestDelegate,n=this.copyRequestOptions(e.requestOptions);return this._message(t,n)}refer(t,n={}){if(this.state!==z.Established)return this.logger.error(`Session.refer() may only be called if established session.`),Promise.reject(Error(`Invalid session state ${this.state}`));if(t instanceof e&&!t.dialog)return this.logger.error(`Session.refer() may only be called with session which is established. You are perhaps attempting to attended transfer to a target for which there is not dialog yet established. Perhaps you are attempting a 'semi-attended' tansfer? Regardless, this is not supported. The recommended approached is to check to see if the target Session is in the Established state before calling refer(); if the state is not Established you may proceed by falling back using a URI as the target (blind transfer).`),Promise.reject(Error(`Invalid session state ${this.state}`));let r=n.requestDelegate,i=this.copyRequestOptions(n.requestOptions);return i.extraHeaders=i.extraHeaders?i.extraHeaders.concat(this.referExtraHeaders(this.referToString(t))):this.referExtraHeaders(this.referToString(t)),this._refer(n.onNotify,r,i)}_bye(e,t){if(!this.dialog)return Promise.reject(Error(`Session dialog undefined.`));let n=this.dialog;switch(n.sessionState){case pe.Initial:throw Error(`Invalid dialog state ${n.sessionState}`);case pe.Early:throw Error(`Invalid dialog state ${n.sessionState}`);case pe.AckWait:return this.stateTransition(z.Terminating),new Promise(r=>{n.delegate={onAck:()=>{let i=n.bye(e,t);return this.stateTransition(z.Terminated),r(i),Promise.resolve()},onAckTimeout:()=>{let i=n.bye(e,t);this.stateTransition(z.Terminated),r(i)}}});case pe.Confirmed:{let r=n.bye(e,t);return this.stateTransition(z.Terminated),Promise.resolve(r)}case pe.Terminated:throw Error(`Invalid dialog state ${n.sessionState}`);default:throw Error(`Unrecognized state.`)}}_info(e,t){return this.dialog?Promise.resolve(this.dialog.info(e,t)):Promise.reject(Error(`Session dialog undefined.`))}_message(e,t){return this.dialog?Promise.resolve(this.dialog.message(e,t)):Promise.reject(Error(`Session dialog undefined.`))}_refer(e,t,n){return this.dialog?(this.onNotify=e,Promise.resolve(this.dialog.refer(t,n))):Promise.reject(Error(`Session dialog undefined.`))}ackAndBye(e,t,n){e.ack();let r=[];t&&r.push(`Reason: `+this.getReasonHeaderValue(t,n)),e.session.bye(void 0,{extraHeaders:r})}onAckRequest(e){if(this.logger.log(`Session.onAckRequest`),this.state!==z.Established&&this.state!==z.Terminating)return this.logger.error(`ACK received while in state ${this.state}, dropping request`),Promise.resolve();let t=this.dialog;if(!t)throw Error(`Dialog undefined.`);let n={sessionDescriptionHandlerOptions:this.pendingReinviteAck?this.sessionDescriptionHandlerOptionsReInvite:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.pendingReinviteAck?this._sessionDescriptionHandlerModifiersReInvite:this._sessionDescriptionHandlerModifiers};if(this.delegate&&this.delegate.onAck){let t=new S(e);this.delegate.onAck(t)}switch(this.pendingReinviteAck=!1,t.signalingState){case L.Initial:{this.logger.error(`Invalid signaling state ${t.signalingState}.`);let e=[`Reason: `+this.getReasonHeaderValue(488,`Bad Media Description`)];return t.bye(void 0,{extraHeaders:e}),this.stateTransition(z.Terminated),Promise.resolve()}case L.Stable:{let r=fe(e.message);return r?r.contentDisposition===`render`?(this._renderbody=r.content,this._rendertype=r.contentType,Promise.resolve()):r.contentDisposition===`session`?this.setAnswer(r,n).catch(e=>{this.logger.error(e.message);let n=[`Reason: `+this.getReasonHeaderValue(488,`Bad Media Description`)];t.bye(void 0,{extraHeaders:n}),this.stateTransition(z.Terminated)}):Promise.resolve():Promise.resolve()}case L.HaveLocalOffer:{this.logger.error(`Invalid signaling state ${t.signalingState}.`);let e=[`Reason: `+this.getReasonHeaderValue(488,`Bad Media Description`)];return t.bye(void 0,{extraHeaders:e}),this.stateTransition(z.Terminated),Promise.resolve()}case L.HaveRemoteOffer:{this.logger.error(`Invalid signaling state ${t.signalingState}.`);let e=[`Reason: `+this.getReasonHeaderValue(488,`Bad Media Description`)];return t.bye(void 0,{extraHeaders:e}),this.stateTransition(z.Terminated),Promise.resolve()}case L.Closed:throw Error(`Invalid signaling state ${t.signalingState}.`);default:throw Error(`Invalid signaling state ${t.signalingState}.`)}}onByeRequest(e){if(this.logger.log(`Session.onByeRequest`),this.state!==z.Established){this.logger.error(`BYE received while in state ${this.state}, dropping request`);return}if(this.delegate&&this.delegate.onBye){let t=new C(e);this.delegate.onBye(t)}else e.accept();this.stateTransition(z.Terminated)}onInfoRequest(e){if(this.logger.log(`Session.onInfoRequest`),this.state!==z.Established){this.logger.error(`INFO received while in state ${this.state}, dropping request`);return}if(this.delegate&&this.delegate.onInfo){let t=new E(e);this.delegate.onInfo(t)}else e.accept()}onInviteRequest(e){if(this.logger.log(`Session.onInviteRequest`),this.state!==z.Established){this.logger.error(`INVITE received while in state ${this.state}, dropping request`);return}this.pendingReinviteAck=!0;let t=[`Contact: `+this._contact];if(e.message.hasHeader(`P-Asserted-Identity`)){let t=e.message.getHeader(`P-Asserted-Identity`);if(!t)throw Error(`Header undefined.`);this._assertedIdentity=N.nameAddrHeaderParse(t)}let n={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptionsReInvite,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiersReInvite};this.generateResponseOfferAnswerInDialog(n).then(n=>{let r=e.accept({statusCode:200,extraHeaders:t,body:n});this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(e.message,r.message,200)}).catch(t=>{if(this.logger.error(t.message),this.logger.error(`Failed to handle to re-INVITE request`),!this.dialog)throw Error(`Dialog undefined.`);if(this.logger.error(this.dialog.signalingState),this.dialog.signalingState===L.Stable){let t=e.reject({statusCode:488});this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(e.message,t.message,488);return}this.rollbackOffer().then(()=>{let t=e.reject({statusCode:488});this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(e.message,t.message,488)}).catch(t=>{this.logger.error(t.message),this.logger.error(`Failed to rollback offer on re-INVITE request`);let n=e.reject({statusCode:488});if(this.state!==z.Terminated){if(!this.dialog)throw Error(`Dialog undefined.`);let e=[];e.push(`Reason: `+this.getReasonHeaderValue(500,`Internal Server Error`)),this.dialog.bye(void 0,{extraHeaders:e}),this.stateTransition(z.Terminated)}this.delegate&&this.delegate.onInvite&&this.delegate.onInvite(e.message,n.message,488)})})}onMessageRequest(e){if(this.logger.log(`Session.onMessageRequest`),this.state!==z.Established){this.logger.error(`MESSAGE received while in state ${this.state}, dropping request`);return}if(this.delegate&&this.delegate.onMessage){let t=new be(e);this.delegate.onMessage(t)}else e.accept()}onNotifyRequest(e){if(this.logger.log(`Session.onNotifyRequest`),this.state!==z.Established){this.logger.error(`NOTIFY received while in state ${this.state}, dropping request`);return}if(this.onNotify){let t=new xe(e);this.onNotify(t);return}if(this.delegate&&this.delegate.onNotify){let t=new xe(e);this.delegate.onNotify(t)}else e.accept()}onPrackRequest(e){if(this.logger.log(`Session.onPrackRequest`),this.state!==z.Established){this.logger.error(`PRACK received while in state ${this.state}, dropping request`);return}throw Error(`Unimplemented.`)}onReferRequest(e){if(this.logger.log(`Session.onReferRequest`),this.state!==z.Established){this.logger.error(`REFER received while in state ${this.state}, dropping request`);return}if(!e.message.hasHeader(`refer-to`)){this.logger.warn(`Invalid REFER packet. A refer-to header is required. Rejecting.`),e.reject();return}let t=new Se(e,this);this.delegate&&this.delegate.onRefer?this.delegate.onRefer(t):(this.logger.log(`No delegate available to handle REFER, automatically accepting and following.`),t.accept().then(()=>t.makeInviter(this._referralInviterOptions).invite()).catch(e=>{this.logger.error(e.message)}))}generateResponseOfferAnswer(e,t){if(this.dialog)return this.generateResponseOfferAnswerInDialog(t);let n=fe(e.message);return!n||n.contentDisposition!==`session`?this.getOffer(t):this.setOfferAndGetAnswer(n,t)}generateResponseOfferAnswerInDialog(e){if(!this.dialog)throw Error(`Dialog undefined.`);switch(this.dialog.signalingState){case L.Initial:return this.getOffer(e);case L.HaveLocalOffer:return Promise.resolve(void 0);case L.HaveRemoteOffer:if(!this.dialog.offer)throw Error(`Session offer undefined in signaling state ${this.dialog.signalingState}.`);return this.setOfferAndGetAnswer(this.dialog.offer,e);case L.Stable:return this.state===z.Established?this.getOffer(e):Promise.resolve(void 0);case L.Closed:throw Error(`Invalid signaling state ${this.dialog.signalingState}.`);default:throw Error(`Invalid signaling state ${this.dialog.signalingState}.`)}}getOffer(e){let t=this.setupSessionDescriptionHandler(),n=e.sessionDescriptionHandlerOptions,r=e.sessionDescriptionHandlerModifiers;try{return t.getDescription(n,r).then(e=>ue(e)).catch(e=>{this.logger.error(`Session.getOffer: SDH getDescription rejected...`);let t=e instanceof Error?e:Error(`Session.getOffer unknown error.`);throw this.logger.error(t.message),t})}catch(e){this.logger.error(`Session.getOffer: SDH getDescription threw...`);let t=e instanceof Error?e:Error(e);return this.logger.error(t.message),Promise.reject(t)}}rollbackOffer(){let e=this.setupSessionDescriptionHandler();if(e.rollbackDescription===void 0)return Promise.resolve();try{return e.rollbackDescription().catch(e=>{this.logger.error(`Session.rollbackOffer: SDH rollbackDescription rejected...`);let t=e instanceof Error?e:Error(`Session.rollbackOffer unknown error.`);throw this.logger.error(t.message),t})}catch(e){this.logger.error(`Session.rollbackOffer: SDH rollbackDescription threw...`);let t=e instanceof Error?e:Error(e);return this.logger.error(t.message),Promise.reject(t)}}setAnswer(e,t){let n=this.setupSessionDescriptionHandler(),r=t.sessionDescriptionHandlerOptions,i=t.sessionDescriptionHandlerModifiers;try{if(!n.hasDescription(e.contentType))return Promise.reject(new _)}catch(e){this.logger.error(`Session.setAnswer: SDH hasDescription threw...`);let t=e instanceof Error?e:Error(e);return this.logger.error(t.message),Promise.reject(t)}try{return n.setDescription(e.content,r,i).catch(e=>{this.logger.error(`Session.setAnswer: SDH setDescription rejected...`);let t=e instanceof Error?e:Error(`Session.setAnswer unknown error.`);throw this.logger.error(t.message),t})}catch(e){this.logger.error(`Session.setAnswer: SDH setDescription threw...`);let t=e instanceof Error?e:Error(e);return this.logger.error(t.message),Promise.reject(t)}}setOfferAndGetAnswer(e,t){let n=this.setupSessionDescriptionHandler(),r=t.sessionDescriptionHandlerOptions,i=t.sessionDescriptionHandlerModifiers;try{if(!n.hasDescription(e.contentType))return Promise.reject(new _)}catch(e){this.logger.error(`Session.setOfferAndGetAnswer: SDH hasDescription threw...`);let t=e instanceof Error?e:Error(e);return this.logger.error(t.message),Promise.reject(t)}try{return n.setDescription(e.content,r,i).then(()=>n.getDescription(r,i)).then(e=>ue(e)).catch(e=>{this.logger.error(`Session.setOfferAndGetAnswer: SDH setDescription or getDescription rejected...`);let t=e instanceof Error?e:Error(`Session.setOfferAndGetAnswer unknown error.`);throw this.logger.error(t.message),t})}catch(e){this.logger.error(`Session.setOfferAndGetAnswer: SDH setDescription or getDescription threw...`);let t=e instanceof Error?e:Error(e);return this.logger.error(t.message),Promise.reject(t)}}setSessionDescriptionHandler(e){if(this._sessionDescriptionHandler)throw Error(`Session description handler defined.`);this._sessionDescriptionHandler=e}setupSessionDescriptionHandler(){return this._sessionDescriptionHandler?this._sessionDescriptionHandler:(this._sessionDescriptionHandler=this.sessionDescriptionHandlerFactory(this,this.userAgent.configuration.sessionDescriptionHandlerFactoryOptions),this.delegate?.onSessionDescriptionHandler&&this.delegate.onSessionDescriptionHandler(this._sessionDescriptionHandler,!1),this._sessionDescriptionHandler)}stateTransition(e){let t=()=>{throw Error(`Invalid state transition from ${this._state} to ${e}`)};switch(this._state){case z.Initial:e!==z.Establishing&&e!==z.Established&&e!==z.Terminating&&e!==z.Terminated&&t();break;case z.Establishing:e!==z.Established&&e!==z.Terminating&&e!==z.Terminated&&t();break;case z.Established:e!==z.Terminating&&e!==z.Terminated&&t();break;case z.Terminating:e!==z.Terminated&&t();break;case z.Terminated:t();break;default:throw Error(`Unrecognized state.`)}this._state=e,this.logger.log(`Session ${this.id} transitioned to state ${this._state}`),this._stateEventEmitter.emit(this._state),e===z.Terminated&&this.dispose()}copyRequestOptions(e={}){return{extraHeaders:e.extraHeaders?e.extraHeaders.slice():void 0,body:e.body?{contentDisposition:e.body.contentDisposition||`render`,contentType:e.body.contentType||`text/plain`,content:e.body.content||``}:void 0}}getReasonHeaderValue(e,t){let n=e,r=ie(e);return!r&&t&&(r=t),`SIP;cause=`+n+`;text="`+r+`"`}referExtraHeaders(e){let t=[];return t.push(`Referred-By: <`+this.userAgent.configuration.uri+`>`),t.push(`Contact: `+this._contact),t.push(`Allow: `+[`ACK`,`CANCEL`,`INVITE`,`MESSAGE`,`BYE`,`OPTIONS`,`INFO`,`NOTIFY`,`REFER`].toString()),t.push(`Refer-To: `+e),t}referToString(e){let t;if(e instanceof ee)t=e.toString();else{if(!e.dialog)throw Error(`Dialog undefined.`);let n=e.remoteIdentity.friendlyName,r=e.dialog.remoteTarget.toString(),i=e.dialog.callId,a=e.dialog.remoteTag,o=e.dialog.localTag;t=`"${n}" <${r}?Replaces=${encodeURIComponent(`${i};to-tag=${a};from-tag=${o}`)}>`}return t}},we;(function(e){e.Required=`Required`,e.Supported=`Supported`,e.Unsupported=`Unsupported`})(we=we||={});let Te={"100rel":!0,199:!0,answermode:!0,"early-session":!0,eventlist:!0,explicitsub:!0,"from-change":!0,"geolocation-http":!0,"geolocation-sip":!0,gin:!0,gruu:!0,histinfo:!0,ice:!0,join:!0,"multiple-refer":!0,norefersub:!0,nosub:!0,outbound:!0,path:!0,policy:!0,precondition:!0,pref:!0,privacy:!0,"recipient-list-invite":!0,"recipient-list-message":!0,"recipient-list-subscribe":!0,replaces:!0,"resource-priority":!0,"sdp-anat":!0,"sec-agree":!0,tdialog:!0,timer:!0,uui:!0};var Ee=class extends Ce{constructor(e,t){super(e),this.incomingInviteRequest=t,this.disposed=!1,this.expiresTimer=void 0,this.isCanceled=!1,this.rel100=`none`,this.rseq=Math.floor(Math.random()*1e4),this.userNoAnswerTimer=void 0,this.waitingForPrack=!1,this.logger=e.getLogger(`sip.Invitation`);let n=this.incomingInviteRequest.message,r=n.getHeader(`require`);r&&r.toLowerCase().includes(`100rel`)&&(this.rel100=`required`);let i=n.getHeader(`supported`);if(i&&i.toLowerCase().includes(`100rel`)&&(this.rel100=`supported`),n.toTag=t.toTag,typeof n.toTag!=`string`)throw TypeError(`toTag should have been a string.`);if(this.userNoAnswerTimer=setTimeout(()=>{t.reject({statusCode:480}),this.stateTransition(z.Terminated)},this.userAgent.configuration.noAnswerTimeout?this.userAgent.configuration.noAnswerTimeout*1e3:6e4),n.hasHeader(`expires`)){let e=Number(n.getHeader(`expires`)||0)*1e3;this.expiresTimer=setTimeout(()=>{this.state===z.Initial&&(t.reject({statusCode:487}),this.stateTransition(z.Terminated))},e)}let a=this.request.getHeader(`P-Asserted-Identity`);a&&(this._assertedIdentity=N.nameAddrHeaderParse(a)),this._contact=this.userAgent.contact.toString();let o=n.parseHeader(`Content-Disposition`);o&&o.type===`render`&&(this._renderbody=n.body,this._rendertype=n.getHeader(`Content-Type`)),this._id=n.callId+n.fromTag,this.userAgent._sessions[this._id]=this}dispose(){if(this.disposed)return Promise.resolve();switch(this.disposed=!0,this.expiresTimer&&=(clearTimeout(this.expiresTimer),void 0),this.userNoAnswerTimer&&=(clearTimeout(this.userNoAnswerTimer),void 0),this.prackNeverArrived(),this.state){case z.Initial:return this.reject().then(()=>super.dispose());case z.Establishing:return this.reject().then(()=>super.dispose());case z.Established:return super.dispose();case z.Terminating:return super.dispose();case z.Terminated:return super.dispose();default:throw Error(`Unknown state.`)}}get autoSendAnInitialProvisionalResponse(){return this.rel100!==`required`&&this.userAgent.configuration.sendInitialProvisionalResponse}get body(){return this.incomingInviteRequest.message.body}get localIdentity(){return this.request.to}get remoteIdentity(){return this.request.from}get request(){return this.incomingInviteRequest.message}accept(e={}){if(this.logger.log(`Invitation.accept`),this.state!==z.Initial){let e=Error(`Invalid session state ${this.state}`);return this.logger.error(e.message),Promise.reject(e)}return e.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=e.sessionDescriptionHandlerModifiers),e.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=e.sessionDescriptionHandlerOptions),this.stateTransition(z.Establishing),this.sendAccept(e).then(({message:e,session:t})=>{t.delegate={onAck:e=>this.onAckRequest(e),onAckTimeout:()=>this.onAckTimeout(),onBye:e=>this.onByeRequest(e),onInfo:e=>this.onInfoRequest(e),onInvite:e=>this.onInviteRequest(e),onMessage:e=>this.onMessageRequest(e),onNotify:e=>this.onNotifyRequest(e),onPrack:e=>this.onPrackRequest(e),onRefer:e=>this.onReferRequest(e)},this._dialog=t,this.stateTransition(z.Established),this._replacee&&this._replacee._bye()}).catch(e=>this.handleResponseError(e))}progress(e={}){if(this.logger.log(`Invitation.progress`),this.state!==z.Initial){let e=Error(`Invalid session state ${this.state}`);return this.logger.error(e.message),Promise.reject(e)}let t=e.statusCode||180;if(t<100||t>199)throw TypeError(`Invalid statusCode: `+t);return e.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=e.sessionDescriptionHandlerModifiers),e.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=e.sessionDescriptionHandlerOptions),this.waitingForPrack?(this.logger.warn(`Unexpected call for progress while waiting for prack, ignoring`),Promise.resolve()):e.statusCode===100?this.sendProgressTrying().then(()=>{}).catch(e=>this.handleResponseError(e)):this.rel100!==`required`&&!(this.rel100===`supported`&&e.rel100)&&!(this.rel100===`supported`&&this.userAgent.configuration.sipExtension100rel===we.Required)?this.sendProgress(e).then(()=>{}).catch(e=>this.handleResponseError(e)):this.sendProgressReliableWaitForPrack(e).then(()=>{}).catch(e=>this.handleResponseError(e))}reject(e={}){if(this.logger.log(`Invitation.reject`),this.state!==z.Initial&&this.state!==z.Establishing){let e=Error(`Invalid session state ${this.state}`);return this.logger.error(e.message),Promise.reject(e)}let t=e.statusCode||480,n=e.reasonPhrase?e.reasonPhrase:ie(t),r=e.extraHeaders||[];if(t<300||t>699)throw TypeError(`Invalid statusCode: `+t);let i=e.body?ue(e.body):void 0;return t<400?this.incomingInviteRequest.redirect([],{statusCode:t,reasonPhrase:n,extraHeaders:r,body:i}):this.incomingInviteRequest.reject({statusCode:t,reasonPhrase:n,extraHeaders:r,body:i}),this.stateTransition(z.Terminated),Promise.resolve()}_onCancel(e){if(this.logger.log(`Invitation._onCancel`),this.state!==z.Initial&&this.state!==z.Establishing){this.logger.error(`CANCEL received while in state ${this.state}, dropping request`);return}if(this.delegate&&this.delegate.onCancel){let t=new w(e);this.delegate.onCancel(t)}this.isCanceled=!0,this.incomingInviteRequest.reject({statusCode:487}),this.stateTransition(z.Terminated)}handlePrackOfferAnswer(e){if(!this.dialog)throw Error(`Dialog undefined.`);let t=fe(e.message);if(!t||t.contentDisposition!==`session`)return Promise.resolve(void 0);let n={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers};switch(this.dialog.signalingState){case L.Initial:throw Error(`Invalid signaling state ${this.dialog.signalingState}.`);case L.Stable:return this.setAnswer(t,n).then(()=>void 0);case L.HaveLocalOffer:throw Error(`Invalid signaling state ${this.dialog.signalingState}.`);case L.HaveRemoteOffer:return this.setOfferAndGetAnswer(t,n);case L.Closed:throw Error(`Invalid signaling state ${this.dialog.signalingState}.`);default:throw Error(`Invalid signaling state ${this.dialog.signalingState}.`)}}handleResponseError(e){let t=480;if(e instanceof Error?this.logger.error(e.message):this.logger.error(e),e instanceof _?(this.logger.error(`A session description handler occurred while sending response (content type unsupported`),t=415):e instanceof y?this.logger.error(`A session description handler occurred while sending response`):e instanceof b?this.logger.error(`Session ended before response could be formulated and sent (while waiting for PRACK)`):e instanceof ve&&this.logger.error(`Session changed state before response could be formulated and sent`),this.state===z.Initial||this.state===z.Establishing)try{this.incomingInviteRequest.reject({statusCode:t}),this.stateTransition(z.Terminated)}catch(e){throw this.logger.error(`An error occurred attempting to reject the request while handling another error`),e}if(this.isCanceled){this.logger.warn(`An error occurred while attempting to formulate and send a response to an incoming INVITE. However a CANCEL was received and processed while doing so which can (and often does) result in errors occurring as the session terminates in the meantime. Said error is being ignored.`);return}throw e}onAckTimeout(){if(this.logger.log(`Invitation.onAckTimeout`),!this.dialog)throw Error(`Dialog undefined.`);this.logger.log(`No ACK received for an extended period of time, terminating session`),this.dialog.bye(),this.stateTransition(z.Terminated)}sendAccept(e={}){let t={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers},n=e.extraHeaders||[];return this.waitingForPrack?this.waitForArrivalOfPrack().then(()=>clearTimeout(this.userNoAnswerTimer)).then(()=>this.generateResponseOfferAnswer(this.incomingInviteRequest,t)).then(e=>this.incomingInviteRequest.accept({statusCode:200,body:e,extraHeaders:n})):(clearTimeout(this.userNoAnswerTimer),this.generateResponseOfferAnswer(this.incomingInviteRequest,t).then(e=>this.incomingInviteRequest.accept({statusCode:200,body:e,extraHeaders:n})))}sendProgress(e={}){let t=e.statusCode||180,n=e.reasonPhrase,r=(e.extraHeaders||[]).slice(),i=e.body?ue(e.body):void 0;if(t===183&&!i)return this.sendProgressWithSDP(e);try{let e=this.incomingInviteRequest.progress({statusCode:t,reasonPhrase:n,extraHeaders:r,body:i});return this._dialog=e.session,Promise.resolve(e)}catch(e){return Promise.reject(e)}}sendProgressWithSDP(e={}){let t={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers},n=e.statusCode||183,r=e.reasonPhrase,i=(e.extraHeaders||[]).slice();return this.generateResponseOfferAnswer(this.incomingInviteRequest,t).then(e=>this.incomingInviteRequest.progress({statusCode:n,reasonPhrase:r,extraHeaders:i,body:e})).then(e=>(this._dialog=e.session,e))}sendProgressReliable(e={}){return e.extraHeaders=(e.extraHeaders||[]).slice(),e.extraHeaders.push(`Require: 100rel`),e.extraHeaders.push(`RSeq: `+Math.floor(Math.random()*1e4)),this.sendProgressWithSDP(e)}sendProgressReliableWaitForPrack(e={}){let t={sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions,sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers},n=e.statusCode||183,r=e.reasonPhrase,i=(e.extraHeaders||[]).slice();i.push(`Require: 100rel`),i.push(`RSeq: `+ this.rseq++);let a;return new Promise((e,o)=>{this.waitingForPrack=!0,this.generateResponseOfferAnswer(this.incomingInviteRequest,t).then(e=>(a=e,this.incomingInviteRequest.progress({statusCode:n,reasonPhrase:r,extraHeaders:i,body:a}))).then(t=>{this._dialog=t.session;let s,c;t.session.delegate={onPrack:n=>{s=n,clearTimeout(l),clearTimeout(f),this.waitingForPrack&&(this.waitingForPrack=!1,this.handlePrackOfferAnswer(s).then(n=>{try{c=s.accept({statusCode:200,body:n}),this.prackArrived(),e({prackRequest:s,prackResponse:c,progressResponse:t})}catch(e){o(e)}}).catch(e=>o(e)))}};let l=setTimeout(()=>{this.waitingForPrack&&(this.waitingForPrack=!1,this.logger.warn(`No PRACK received, rejecting INVITE.`),clearTimeout(f),this.reject({statusCode:504}).then(()=>o(new b)).catch(e=>o(e)))},_e.T1*64),u=()=>{try{this.incomingInviteRequest.progress({statusCode:n,reasonPhrase:r,extraHeaders:i,body:a})}catch(e){this.waitingForPrack=!1,o(e);return}f=setTimeout(u,d*=2)},d=_e.T1,f=setTimeout(u,d)}).catch(e=>{this.waitingForPrack=!1,o(e)})})}sendProgressTrying(){try{let e=this.incomingInviteRequest.trying();return Promise.resolve(e)}catch(e){return Promise.reject(e)}}waitForArrivalOfPrack(){if(this.waitingForPrackPromise)throw Error(`Already waiting for PRACK`);return this.waitingForPrackPromise=new Promise((e,t)=>{this.waitingForPrackResolve=e,this.waitingForPrackReject=t}),this.waitingForPrackPromise}prackArrived(){this.waitingForPrackResolve&&this.waitingForPrackResolve(),this.waitingForPrackPromise=void 0,this.waitingForPrackResolve=void 0,this.waitingForPrackReject=void 0}prackNeverArrived(){this.waitingForPrackReject&&this.waitingForPrackReject(new b),this.waitingForPrackPromise=void 0,this.waitingForPrackResolve=void 0,this.waitingForPrackReject=void 0}},De=class extends Ce{constructor(e,t,n={}){super(e,n),this.disposed=!1,this.earlyMedia=!1,this.earlyMediaSessionDescriptionHandlers=new Map,this.isCanceled=!1,this.inviteWithoutSdp=!1,this.logger=e.getLogger(`sip.Inviter`),this.earlyMedia=n.earlyMedia===void 0?this.earlyMedia:n.earlyMedia,this.fromTag=P(),this.inviteWithoutSdp=n.inviteWithoutSdp===void 0?this.inviteWithoutSdp:n.inviteWithoutSdp;let r=Object.assign({},n);r.params=Object.assign({},n.params);let i=n.anonymous||!1,a=e.contact.toString({anonymous:i,outbound:i?!e.contact.tempGruu:!e.contact.pubGruu});i&&e.configuration.uri&&(r.params.fromDisplayName=`Anonymous`,r.params.fromUri=`sip:anonymous@anonymous.invalid`);let o=e.userAgentCore.configuration.aor;if(r.params.fromUri&&(o=typeof r.params.fromUri==`string`?N.URIParse(r.params.fromUri):r.params.fromUri),!o)throw TypeError(`Invalid from URI: `+r.params.fromUri);let s=t;if(r.params.toUri&&(s=typeof r.params.toUri==`string`?N.URIParse(r.params.toUri):r.params.toUri),!s)throw TypeError(`Invalid to URI: `+r.params.toUri);let c=Object.assign({},r.params);c.fromTag=this.fromTag;let l=(r.extraHeaders||[]).slice();i&&e.configuration.uri&&(l.push(`P-Preferred-Identity: `+e.configuration.uri.toString()),l.push(`Privacy: id`)),l.push(`Contact: `+a),l.push(`Allow: `+[`ACK`,`CANCEL`,`INVITE`,`MESSAGE`,`BYE`,`OPTIONS`,`INFO`,`NOTIFY`,`REFER`].toString()),e.configuration.sipExtension100rel===we.Required&&l.push(`Require: 100rel`),e.configuration.sipExtensionReplaces===we.Required&&l.push(`Require: replaces`),r.extraHeaders=l,this.outgoingRequestMessage=e.userAgentCore.makeOutgoingRequestMessage(R.INVITE,t,o,s,c,l,void 0),this._contact=a,this._referralInviterOptions=r,this._renderbody=n.renderbody,this._rendertype=n.rendertype,n.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=n.sessionDescriptionHandlerModifiers),n.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=n.sessionDescriptionHandlerOptions),n.sessionDescriptionHandlerModifiersReInvite&&(this.sessionDescriptionHandlerModifiersReInvite=n.sessionDescriptionHandlerModifiersReInvite),n.sessionDescriptionHandlerOptionsReInvite&&(this.sessionDescriptionHandlerOptionsReInvite=n.sessionDescriptionHandlerOptionsReInvite),this._id=this.outgoingRequestMessage.callId+this.fromTag,this.userAgent._sessions[this._id]=this}dispose(){if(this.disposed)return Promise.resolve();switch(this.disposed=!0,this.disposeEarlyMedia(),this.state){case z.Initial:return this.cancel().then(()=>super.dispose());case z.Establishing:return this.cancel().then(()=>super.dispose());case z.Established:return super.dispose();case z.Terminating:return super.dispose();case z.Terminated:return super.dispose();default:throw Error(`Unknown state.`)}}get body(){return this.outgoingRequestMessage.body}get localIdentity(){return this.outgoingRequestMessage.from}get remoteIdentity(){return this.outgoingRequestMessage.to}get request(){return this.outgoingRequestMessage}cancel(e={}){if(this.logger.log(`Inviter.cancel`),this.state!==z.Initial&&this.state!==z.Establishing){let e=Error(`Invalid session state ${this.state}`);return this.logger.error(e.message),Promise.reject(e)}this.isCanceled=!0,this.stateTransition(z.Terminating);function t(e,t){if(e&&e<200||e>699)throw TypeError(`Invalid statusCode: `+e);if(e){let n=e,r=ie(e)||t;return`SIP;cause=`+n+`;text="`+r+`"`}}if(this.outgoingInviteRequest){let n;e.statusCode&&e.reasonPhrase&&(n=t(e.statusCode,e.reasonPhrase)),this.outgoingInviteRequest.cancel(n,e)}else this.logger.warn(`Canceled session before INVITE was sent`),this.stateTransition(z.Terminated);return Promise.resolve()}invite(e={}){if(this.logger.log(`Inviter.invite`),this.state!==z.Initial)return super.invite(e);if(e.sessionDescriptionHandlerModifiers&&(this.sessionDescriptionHandlerModifiers=e.sessionDescriptionHandlerModifiers),e.sessionDescriptionHandlerOptions&&(this.sessionDescriptionHandlerOptions=e.sessionDescriptionHandlerOptions),e.withoutSdp||this.inviteWithoutSdp)return this._renderbody&&this._rendertype&&(this.outgoingRequestMessage.body={contentType:this._rendertype,body:this._renderbody}),this.stateTransition(z.Establishing),Promise.resolve(this.sendInvite(e));let t={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.getOffer(t).then(t=>(this.outgoingRequestMessage.body={body:t.content,contentType:t.contentType},this.stateTransition(z.Establishing),this.sendInvite(e))).catch(e=>{throw this.logger.log(e.message),this.state!==z.Terminated&&this.stateTransition(z.Terminated),e})}sendInvite(e={}){return this.outgoingInviteRequest=this.userAgent.userAgentCore.invite(this.outgoingRequestMessage,{onAccept:t=>{if(this.dialog){this.logger.log(`Additional confirmed dialog, sending ACK and BYE`),this.ackAndBye(t);return}if(this.isCanceled){this.logger.log(`Canceled session accepted, sending ACK and BYE`),this.ackAndBye(t),this.stateTransition(z.Terminated);return}this.notifyReferer(t),this.onAccept(t).then(()=>{this.disposeEarlyMedia()}).catch(()=>{this.disposeEarlyMedia()}).then(()=>{e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(t)})},onProgress:t=>{this.isCanceled||(this.notifyReferer(t),this.onProgress(t).catch(()=>{this.disposeEarlyMedia()}).then(()=>{e.requestDelegate&&e.requestDelegate.onProgress&&e.requestDelegate.onProgress(t)}))},onRedirect:t=>{this.notifyReferer(t),this.onRedirect(t),e.requestDelegate&&e.requestDelegate.onRedirect&&e.requestDelegate.onRedirect(t)},onReject:t=>{this.notifyReferer(t),this.onReject(t),e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(t)},onTrying:t=>{this.notifyReferer(t),this.onTrying(t),e.requestDelegate&&e.requestDelegate.onTrying&&e.requestDelegate.onTrying(t)}}),this.outgoingInviteRequest}disposeEarlyMedia(){this.earlyMediaSessionDescriptionHandlers.forEach(e=>{e.close()}),this.earlyMediaSessionDescriptionHandlers.clear()}notifyReferer(e){if(!this._referred)return;if(!(this._referred instanceof Ce))throw Error(`Referred session not instance of session`);if(!this._referred.dialog)return;if(!e.message.statusCode)throw Error(`Status code undefined.`);if(!e.message.reasonPhrase)throw Error(`Reason phrase undefined.`);let t=`SIP/2.0 ${e.message.statusCode} ${e.message.reasonPhrase}`.trim(),n=this._referred.dialog.notify(void 0,{extraHeaders:[`Event: refer`,`Subscription-State: terminated`],body:{contentDisposition:`render`,contentType:`message/sipfrag`,content:t}});n.delegate={onReject:()=>{this._referred=void 0}}}onAccept(e){if(this.logger.log(`Inviter.onAccept`),this.state!==z.Establishing)return this.logger.error(`Accept received while in state ${this.state}, dropping response`),Promise.reject(Error(`Invalid session state ${this.state}`));let t=e.message,n=e.session;switch(t.hasHeader(`P-Asserted-Identity`)&&(this._assertedIdentity=N.nameAddrHeaderParse(t.getHeader(`P-Asserted-Identity`))),n.delegate={onAck:e=>this.onAckRequest(e),onBye:e=>this.onByeRequest(e),onInfo:e=>this.onInfoRequest(e),onInvite:e=>this.onInviteRequest(e),onMessage:e=>this.onMessageRequest(e),onNotify:e=>this.onNotifyRequest(e),onPrack:e=>this.onPrackRequest(e),onRefer:e=>this.onReferRequest(e)},this._dialog=n,n.signalingState){case L.Initial:return this.logger.error(`Received 2xx response to INVITE without a session description`),this.ackAndBye(e,400,`Missing session description`),this.stateTransition(z.Terminated),Promise.reject(Error(`Bad Media Description`));case L.HaveLocalOffer:return this.logger.error(`Received 2xx response to INVITE without a session description`),this.ackAndBye(e,400,`Missing session description`),this.stateTransition(z.Terminated),Promise.reject(Error(`Bad Media Description`));case L.HaveRemoteOffer:{if(!this._dialog.offer)throw Error(`Session offer undefined in signaling state ${this._dialog.signalingState}.`);let t={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.setOfferAndGetAnswer(this._dialog.offer,t).then(t=>{e.ack({body:t}),this.stateTransition(z.Established)}).catch(t=>{throw this.ackAndBye(e,488,`Invalid session description`),this.stateTransition(z.Terminated),t})}case L.Stable:{if(this.earlyMediaSessionDescriptionHandlers.size>0){let t=this.earlyMediaSessionDescriptionHandlers.get(n.id);if(!t)throw Error(`Session description handler undefined.`);return this.setSessionDescriptionHandler(t),this.earlyMediaSessionDescriptionHandlers.delete(n.id),e.ack(),this.stateTransition(z.Established),Promise.resolve()}if(this.earlyMediaDialog){if(this.earlyMediaDialog!==n){this.earlyMedia&&this.logger.error(`You have set the 'earlyMedia' option to 'true' which requires that your INVITE requests do not fork and yet this INVITE request did in fact fork. Consequentially and not surprisingly the end point which accepted the INVITE (confirmed dialog) does not match the end point with which early media has been setup (early dialog) and thus this session is unable to proceed. In accordance with the SIP specifications, the SIP servers your end point is connected to determine if an INVITE forks and the forking behavior of those servers cannot be controlled by this library. If you wish to use early media with this library you must configure those servers accordingly. Alternatively you may set the 'earlyMedia' to 'false' which will allow this library to function with any INVITE requests which do fork.`);let t=Error(`Early media dialog does not equal confirmed dialog, terminating session`);return this.logger.error(t.message),this.ackAndBye(e,488,`Not Acceptable Here`),this.stateTransition(z.Terminated),Promise.reject(t)}return e.ack(),this.stateTransition(z.Established),Promise.resolve()}let t=n.answer;if(!t)throw Error(`Answer is undefined.`);let r={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.setAnswer(t,r).then(()=>{let t;this._renderbody&&this._rendertype&&(t={body:{contentDisposition:`render`,contentType:this._rendertype,content:this._renderbody}}),e.ack(t),this.stateTransition(z.Established)}).catch(t=>{throw this.logger.error(t.message),this.ackAndBye(e,488,`Not Acceptable Here`),this.stateTransition(z.Terminated),t})}case L.Closed:return Promise.reject(Error(`Terminated.`));default:throw Error(`Unknown session signaling state.`)}}onProgress(e){if(this.logger.log(`Inviter.onProgress`),this.state!==z.Establishing)return this.logger.error(`Progress received while in state ${this.state}, dropping response`),Promise.reject(Error(`Invalid session state ${this.state}`));if(!this.outgoingInviteRequest)throw Error(`Outgoing INVITE request undefined.`);let t=e.message,n=e.session;t.hasHeader(`P-Asserted-Identity`)&&(this._assertedIdentity=N.nameAddrHeaderParse(t.getHeader(`P-Asserted-Identity`)));let r=t.getHeader(`require`),i=t.getHeader(`rseq`),a=!!(r&&r.includes(`100rel`)&&i&&Number(i)),o=[];switch(a&&o.push(`RAck: `+t.getHeader(`rseq`)+` `+t.getHeader(`cseq`)),n.signalingState){case L.Initial:return a&&(this.logger.warn(`First reliable provisional response received MUST contain an offer when INVITE does not contain an offer.`),e.prack({extraHeaders:o})),Promise.resolve();case L.HaveLocalOffer:return a&&e.prack({extraHeaders:o}),Promise.resolve();case L.HaveRemoteOffer:if(!a)return this.logger.warn(`Non-reliable provisional response MUST NOT contain an initial offer, discarding response.`),Promise.resolve();{let r=this.sessionDescriptionHandlerFactory(this,this.userAgent.configuration.sessionDescriptionHandlerFactoryOptions||{});return this.delegate?.onSessionDescriptionHandler&&this.delegate.onSessionDescriptionHandler(r,!0),this.earlyMediaSessionDescriptionHandlers.set(n.id,r),r.setDescription(t.body,this.sessionDescriptionHandlerOptions,this.sessionDescriptionHandlerModifiers).then(()=>r.getDescription(this.sessionDescriptionHandlerOptions,this.sessionDescriptionHandlerModifiers)).then(t=>{let n={contentDisposition:`session`,contentType:t.contentType,content:t.body};e.prack({extraHeaders:o,body:n})}).catch(e=>{throw this.stateTransition(z.Terminated),e})}case L.Stable:if(a&&e.prack({extraHeaders:o}),this.earlyMedia&&!this.earlyMediaDialog){this.earlyMediaDialog=n;let e=n.answer;if(!e)throw Error(`Answer is undefined.`);let t={sessionDescriptionHandlerModifiers:this.sessionDescriptionHandlerModifiers,sessionDescriptionHandlerOptions:this.sessionDescriptionHandlerOptions};return this.setAnswer(e,t).catch(e=>{throw this.stateTransition(z.Terminated),e})}return Promise.resolve();case L.Closed:return Promise.reject(Error(`Terminated.`));default:throw Error(`Unknown session signaling state.`)}}onRedirect(e){if(this.logger.log(`Inviter.onRedirect`),this.state!==z.Establishing&&this.state!==z.Terminating){this.logger.error(`Redirect received while in state ${this.state}, dropping response`);return}this.stateTransition(z.Terminated)}onReject(e){if(this.logger.log(`Inviter.onReject`),this.state!==z.Establishing&&this.state!==z.Terminating){this.logger.error(`Reject received while in state ${this.state}, dropping response`);return}this.stateTransition(z.Terminated)}onTrying(e){if(this.logger.log(`Inviter.onTrying`),this.state!==z.Establishing){this.logger.error(`Trying received while in state ${this.state}, dropping response`);return}}},B;(function(e){e.Initial=`Initial`,e.Registered=`Registered`,e.Unregistered=`Unregistered`,e.Terminated=`Terminated`})(B=B||={});var Oe=class e{constructor(t,n={}){this.disposed=!1,this._contacts=[],this._retryAfter=void 0,this._state=B.Initial,this._waiting=!1,this._stateEventEmitter=new T,this._waitingEventEmitter=new T,this.userAgent=t;let r=t.configuration.uri.clone();if(r.user=void 0,this.options=Object.assign(Object.assign(Object.assign({},e.defaultOptions()),{registrar:r}),e.stripUndefinedProperties(n)),this.options.extraContactHeaderParams=(this.options.extraContactHeaderParams||[]).slice(),this.options.extraHeaders=(this.options.extraHeaders||[]).slice(),!this.options.registrar)throw Error(`Registrar undefined.`);if(this.options.registrar=this.options.registrar.clone(),this.options.regId&&!this.options.instanceId?this.options.instanceId=this.userAgent.instanceId:!this.options.regId&&this.options.instanceId&&(this.options.regId=1),this.options.instanceId&&N.parse(this.options.instanceId,`uuid`)===-1)throw Error(`Invalid instanceId.`);if(this.options.regId&&this.options.regId<0)throw Error(`Invalid regId.`);let i=this.options.registrar,a=this.options.params&&this.options.params.fromUri||t.userAgentCore.configuration.aor,o=this.options.params&&this.options.params.toUri||t.configuration.uri,s=this.options.params||{},c=(n.extraHeaders||[]).slice();if(this.request=t.userAgentCore.makeOutgoingRequestMessage(R.REGISTER,i,a,o,s,c,void 0),this.expires=this.options.expires||e.defaultExpires,this.expires<0)throw Error(`Invalid expires.`);if(this.refreshFrequency=this.options.refreshFrequency||e.defaultRefreshFrequency,this.refreshFrequency<50||this.refreshFrequency>99)throw Error(`Invalid refresh frequency. The value represents a percentage of the expiration time and should be between 50 and 99.`);this.logger=t.getLogger(`sip.Registerer`),this.options.logConfiguration&&(this.logger.log(`Configuration:`),Object.keys(this.options).forEach(e=>{let t=this.options[e];switch(e){case`registrar`:this.logger.log(`· `+e+`: `+t);break;default:this.logger.log(`· `+e+`: `+JSON.stringify(t))}})),this.id=this.request.callId+this.request.from.parameters.tag,this.userAgent._registerers[this.id]=this}static defaultOptions(){return{expires:e.defaultExpires,extraContactHeaderParams:[],extraHeaders:[],logConfiguration:!0,instanceId:``,params:{},regId:0,registrar:new ee(`sip`,`anonymous`,`anonymous.invalid`),refreshFrequency:e.defaultRefreshFrequency}}static stripUndefinedProperties(e){return Object.keys(e).reduce((t,n)=>(e[n]!==void 0&&(t[n]=e[n]),t),{})}get contacts(){return this._contacts.slice()}get retryAfter(){return this._retryAfter}get state(){return this._state}get stateChange(){return this._stateEventEmitter}dispose(){return this.disposed?Promise.resolve():(this.disposed=!0,this.logger.log(`Registerer ${this.id} in state ${this.state} is being disposed`),delete this.userAgent._registerers[this.id],new Promise(e=>{let t=()=>{if(!this.waiting&&this._state===B.Registered){this.stateChange.addListener(()=>{this.terminated(),e()},{once:!0}),this.unregister();return}this.terminated(),e()};this.waiting?this.waitingChange.addListener(()=>{t()},{once:!0}):t()}))}register(e={}){if(this.state===B.Terminated)throw this.stateError(),Error(`Registerer terminated. Unable to register.`);if(this.disposed)throw this.stateError(),Error(`Registerer disposed. Unable to register.`);if(this.waiting){this.waitingWarning();let e=new v(`REGISTER request already in progress, waiting for final response`);return Promise.reject(e)}e.requestOptions&&(this.options=Object.assign(Object.assign({},this.options),e.requestOptions));let t=(this.options.extraHeaders||[]).slice();t.push(`Contact: `+this.generateContactHeader(this.expires)),t.push(`Allow: `+[`ACK`,`CANCEL`,`INVITE`,`MESSAGE`,`BYE`,`OPTIONS`,`INFO`,`NOTIFY`,`REFER`].toString()),this.request.cseq++,this.request.setHeader(`cseq`,this.request.cseq+` REGISTER`),this.request.extraHeaders=t,this.waitingToggle(!0);let n=this.userAgent.userAgentCore.register(this.request,{onAccept:t=>{let n;t.message.hasHeader(`expires`)&&(n=Number(t.message.getHeader(`expires`))),this._contacts=t.message.getHeaders(`contact`);let r=this._contacts.length;if(!r){this.logger.error(`No Contact header in response to REGISTER, dropping response.`),this.unregistered();return}let i;for(;r--;){if(i=t.message.parseHeader(`contact`,r),!i)throw Error(`Contact undefined`);if(this.userAgent.contact.pubGruu&&k(i.uri,this.userAgent.contact.pubGruu)){n=Number(i.getParam(`expires`));break}if(this.userAgent.configuration.contactName===``){if(i.uri.user===this.userAgent.contact.uri.user){n=Number(i.getParam(`expires`));break}}else if(k(i.uri,this.userAgent.contact.uri)){n=Number(i.getParam(`expires`));break}i=void 0}if(i===void 0){this.logger.error(`No Contact header pointing to us, dropping response`),this.unregistered(),this.waitingToggle(!1);return}if(n===void 0){this.logger.error(`Contact pointing to us is missing expires parameter, dropping response`),this.unregistered(),this.waitingToggle(!1);return}if(i.hasParam(`temp-gruu`)){let e=i.getParam(`temp-gruu`);e&&(this.userAgent.contact.tempGruu=N.URIParse(e.replace(/"/g,``)))}if(i.hasParam(`pub-gruu`)){let e=i.getParam(`pub-gruu`);e&&(this.userAgent.contact.pubGruu=N.URIParse(e.replace(/"/g,``)))}this.registered(n),e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(t),this.waitingToggle(!1)},onProgress:t=>{e.requestDelegate&&e.requestDelegate.onProgress&&e.requestDelegate.onProgress(t)},onRedirect:t=>{this.logger.error(`Redirect received. Not supported.`),this.unregistered(),e.requestDelegate&&e.requestDelegate.onRedirect&&e.requestDelegate.onRedirect(t),this.waitingToggle(!1)},onReject:t=>{if(t.message.statusCode===423){if(!t.message.hasHeader(`min-expires`)){this.logger.error(`423 response received for REGISTER without Min-Expires, dropping response`),this.unregistered(),this.waitingToggle(!1);return}this.expires=Number(t.message.getHeader(`min-expires`)),this.waitingToggle(!1),this.register();return}this.logger.warn(`Failed to register, status code ${t.message.statusCode}`);let n=NaN;if(t.message.statusCode===500||t.message.statusCode===503){let e=t.message.getHeader(`retry-after`);e&&(n=Number.parseInt(e,void 0))}this._retryAfter=isNaN(n)?void 0:n,this.unregistered(),e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(t),this._retryAfter=void 0,this.waitingToggle(!1)},onTrying:t=>{e.requestDelegate&&e.requestDelegate.onTrying&&e.requestDelegate.onTrying(t)}});return Promise.resolve(n)}unregister(e={}){if(this.state===B.Terminated)throw this.stateError(),Error(`Registerer terminated. Unable to register.`);if(this.disposed&&this.state!==B.Registered)throw this.stateError(),Error(`Registerer disposed. Unable to register.`);if(this.waiting){this.waitingWarning();let e=new v(`REGISTER request already in progress, waiting for final response`);return Promise.reject(e)}this._state!==B.Registered&&!e.all&&this.logger.warn(`Not currently registered, but sending an unregister anyway.`);let t=(e.requestOptions&&e.requestOptions.extraHeaders||[]).slice();this.request.extraHeaders=t,e.all?(t.push(`Contact: *`),t.push(`Expires: 0`)):t.push(`Contact: `+this.generateContactHeader(0)),this.request.cseq++,this.request.setHeader(`cseq`,this.request.cseq+` REGISTER`),this.registrationTimer!==void 0&&(clearTimeout(this.registrationTimer),this.registrationTimer=void 0),this.waitingToggle(!0);let n=this.userAgent.userAgentCore.register(this.request,{onAccept:t=>{this._contacts=t.message.getHeaders(`contact`),this.unregistered(),e.requestDelegate&&e.requestDelegate.onAccept&&e.requestDelegate.onAccept(t),this.waitingToggle(!1)},onProgress:t=>{e.requestDelegate&&e.requestDelegate.onProgress&&e.requestDelegate.onProgress(t)},onRedirect:t=>{this.logger.error(`Unregister redirected. Not currently supported.`),this.unregistered(),e.requestDelegate&&e.requestDelegate.onRedirect&&e.requestDelegate.onRedirect(t),this.waitingToggle(!1)},onReject:t=>{this.logger.error(`Unregister rejected with status code ${t.message.statusCode}`),this.unregistered(),e.requestDelegate&&e.requestDelegate.onReject&&e.requestDelegate.onReject(t),this.waitingToggle(!1)},onTrying:t=>{e.requestDelegate&&e.requestDelegate.onTrying&&e.requestDelegate.onTrying(t)}});return Promise.resolve(n)}clearTimers(){this.registrationTimer!==void 0&&(clearTimeout(this.registrationTimer),this.registrationTimer=void 0),this.registrationExpiredTimer!==void 0&&(clearTimeout(this.registrationExpiredTimer),this.registrationExpiredTimer=void 0)}generateContactHeader(e){let t=this.userAgent.contact.toString({register:!0});return this.options.regId&&this.options.instanceId&&(t+=`;reg-id=`+this.options.regId,t+=`;+sip.instance="<urn:uuid:`+this.options.instanceId+`>"`),this.options.extraContactHeaderParams&&this.options.extraContactHeaderParams.forEach(e=>{t+=`;`+e}),t+=`;expires=`+e,t}registered(e){this.clearTimers(),this.registrationTimer=setTimeout(()=>{this.registrationTimer=void 0,this.register()},this.refreshFrequency/100*e*1e3),this.registrationExpiredTimer=setTimeout(()=>{this.logger.warn(`Registration expired`),this.unregistered()},e*1e3),this._state!==B.Registered&&this.stateTransition(B.Registered)}unregistered(){this.clearTimers(),this._state!==B.Unregistered&&this.stateTransition(B.Unregistered)}terminated(){this.clearTimers(),this._state!==B.Terminated&&this.stateTransition(B.Terminated)}stateTransition(e){let t=()=>{throw Error(`Invalid state transition from ${this._state} to ${e}`)};switch(this._state){case B.Initial:e!==B.Registered&&e!==B.Unregistered&&e!==B.Terminated&&t();break;case B.Registered:e!==B.Unregistered&&e!==B.Terminated&&t();break;case B.Unregistered:e!==B.Registered&&e!==B.Terminated&&t();break;case B.Terminated:t();break;default:throw Error(`Unrecognized state.`)}this._state=e,this.logger.log(`Registration transitioned to state ${this._state}`),this._stateEventEmitter.emit(this._state),e===B.Terminated&&this.dispose()}get waiting(){return this._waiting}get waitingChange(){return this._waitingEventEmitter}waitingToggle(e){if(this._waiting===e)throw Error(`Invalid waiting transition from ${this._waiting} to ${e}`);this._waiting=e,this.logger.log(`Waiting toggled to ${this._waiting}`),this._waitingEventEmitter.emit(this._waiting)}waitingWarning(){let e=`An attempt was made to send a REGISTER request while a prior one was still in progress.`;e+=` RFC 3261 requires UAs MUST NOT send a new registration until they have received a final response`,e+=` from the registrar for the previous one or the previous REGISTER request has timed out.`,e+=` Note that if the transport disconnects, you still must wait for the prior request to time out before`,e+=` sending a new REGISTER request or alternatively dispose of the current Registerer and create a new Registerer.`,this.logger.warn(e)}stateError(){let e=`An attempt was made to send a REGISTER request when the Registerer ${this.state===B.Terminated?`is in 'Terminated' state`:`has been disposed`}.`;e+=` The Registerer transitions to 'Terminated' when Registerer.dispose() is called.`,e+=` Perhaps you called UserAgent.stop() which dipsoses of all Registerers?`,this.logger.error(e)}};Oe.defaultExpires=600,Oe.defaultRefreshFrequency=99;var V;(function(e){e.Initial=`Initial`,e.NotifyWait=`NotifyWait`,e.Pending=`Pending`,e.Active=`Active`,e.Terminated=`Terminated`})(V=V||={});var H;(function(e){e.Connecting=`Connecting`,e.Connected=`Connected`,e.Disconnecting=`Disconnecting`,e.Disconnected=`Disconnected`})(H=H||={});var ke;(function(e){e.Started=`Started`,e.Stopped=`Stopped`})(ke=ke||={});var Ae=class e{constructor(){this._dataLength=0,this._bufferLength=0,this._state=new Int32Array(4),this._buffer=new ArrayBuffer(68),this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}static hashStr(e,t=!1){return this.onePassHasher.start().appendStr(e).end(t)}static hashAsciiStr(e,t=!1){return this.onePassHasher.start().appendAsciiStr(e).end(t)}static _hex(t){let n=e.hexChars,r=e.hexOut,i,a,o,s;for(s=0;s<4;s+=1)for(a=s*8,i=t[s],o=0;o<8;o+=2)r[a+1+o]=n.charAt(i&15),i>>>=4,r[a+0+o]=n.charAt(i&15),i>>>=4;return r.join(``)}static _md5cycle(e,t){let n=e[0],r=e[1],i=e[2],a=e[3];n+=(r&i|~r&a)+t[0]-680876936|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+t[1]-389564586|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+t[2]+606105819|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+t[3]-1044525330|0,r=(r<<22|r>>>10)+i|0,n+=(r&i|~r&a)+t[4]-176418897|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+t[5]+1200080426|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+t[6]-1473231341|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+t[7]-45705983|0,r=(r<<22|r>>>10)+i|0,n+=(r&i|~r&a)+t[8]+1770035416|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+t[9]-1958414417|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+t[10]-42063|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+t[11]-1990404162|0,r=(r<<22|r>>>10)+i|0,n+=(r&i|~r&a)+t[12]+1804603682|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+t[13]-40341101|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+t[14]-1502002290|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+t[15]+1236535329|0,r=(r<<22|r>>>10)+i|0,n+=(r&a|i&~a)+t[1]-165796510|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+t[6]-1069501632|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+t[11]+643717713|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+t[0]-373897302|0,r=(r<<20|r>>>12)+i|0,n+=(r&a|i&~a)+t[5]-701558691|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+t[10]+38016083|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+t[15]-660478335|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+t[4]-405537848|0,r=(r<<20|r>>>12)+i|0,n+=(r&a|i&~a)+t[9]+568446438|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+t[14]-1019803690|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+t[3]-187363961|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+t[8]+1163531501|0,r=(r<<20|r>>>12)+i|0,n+=(r&a|i&~a)+t[13]-1444681467|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+t[2]-51403784|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+t[7]+1735328473|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+t[12]-1926607734|0,r=(r<<20|r>>>12)+i|0,n+=(r^i^a)+t[5]-378558|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+t[8]-2022574463|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+t[11]+1839030562|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+t[14]-35309556|0,r=(r<<23|r>>>9)+i|0,n+=(r^i^a)+t[1]-1530992060|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+t[4]+1272893353|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+t[7]-155497632|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+t[10]-1094730640|0,r=(r<<23|r>>>9)+i|0,n+=(r^i^a)+t[13]+681279174|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+t[0]-358537222|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+t[3]-722521979|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+t[6]+76029189|0,r=(r<<23|r>>>9)+i|0,n+=(r^i^a)+t[9]-640364487|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+t[12]-421815835|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+t[15]+530742520|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+t[2]-995338651|0,r=(r<<23|r>>>9)+i|0,n+=(i^(r|~a))+t[0]-198630844|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+t[7]+1126891415|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+t[14]-1416354905|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+t[5]-57434055|0,r=(r<<21|r>>>11)+i|0,n+=(i^(r|~a))+t[12]+1700485571|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+t[3]-1894986606|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+t[10]-1051523|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+t[1]-2054922799|0,r=(r<<21|r>>>11)+i|0,n+=(i^(r|~a))+t[8]+1873313359|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+t[15]-30611744|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+t[6]-1560198380|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+t[13]+1309151649|0,r=(r<<21|r>>>11)+i|0,n+=(i^(r|~a))+t[4]-145523070|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+t[11]-1120210379|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+t[2]+718787259|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+t[9]-343485551|0,r=(r<<21|r>>>11)+i|0,e[0]=n+e[0]|0,e[1]=r+e[1]|0,e[2]=i+e[2]|0,e[3]=a+e[3]|0}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(e.stateIdentity),this}appendStr(t){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,a,o;for(o=0;o<t.length;o+=1){if(a=t.charCodeAt(o),a<128)n[i++]=a;else if(a<2048)n[i++]=(a>>>6)+192,n[i++]=a&63|128;else if(a<55296||a>56319)n[i++]=(a>>>12)+224,n[i++]=a>>>6&63|128,n[i++]=a&63|128;else{if(a=(a-55296)*1024+(t.charCodeAt(++o)-56320)+65536,a>1114111)throw Error(`Unicode standard supports code points up to U+10FFFF`);n[i++]=(a>>>18)+240,n[i++]=a>>>12&63|128,n[i++]=a>>>6&63|128,n[i++]=a&63|128}i>=64&&(this._dataLength+=64,e._md5cycle(this._state,r),i-=64,r[0]=r[16])}return this._bufferLength=i,this}appendAsciiStr(t){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,a,o=0;for(;;){for(a=Math.min(t.length-o,64-i);a--;)n[i++]=t.charCodeAt(o++);if(i<64)break;this._dataLength+=64,e._md5cycle(this._state,r),i=0}return this._bufferLength=i,this}appendByteArray(t){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,a,o=0;for(;;){for(a=Math.min(t.length-o,64-i);a--;)n[i++]=t[o++];if(i<64)break;this._dataLength+=64,e._md5cycle(this._state,r),i=0}return this._bufferLength=i,this}getState(){let e=this,t=e._state;return{buffer:String.fromCharCode.apply(null,e._buffer8),buflen:e._bufferLength,length:e._dataLength,state:[t[0],t[1],t[2],t[3]]}}setState(e){let t=e.buffer,n=e.state,r=this._state,i;for(this._dataLength=e.length,this._bufferLength=e.buflen,r[0]=n[0],r[1]=n[1],r[2]=n[2],r[3]=n[3],i=0;i<t.length;i+=1)this._buffer8[i]=t.charCodeAt(i)}end(t=!1){let n=this._bufferLength,r=this._buffer8,i=this._buffer32,a=(n>>2)+1,o;if(this._dataLength+=n,r[n]=128,r[n+1]=r[n+2]=r[n+3]=0,i.set(e.buffer32Identity.subarray(a),a),n>55&&(e._md5cycle(this._state,i),i.set(e.buffer32Identity)),o=this._dataLength*8,o<=4294967295)i[14]=o;else{let e=o.toString(16).match(/(.*?)(.{0,8})$/);if(e===null)return;let t=parseInt(e[2],16),n=parseInt(e[1],16)||0;i[14]=t,i[15]=n}return e._md5cycle(this._state,i),t?this._state:e._hex(this._state)}};Ae.stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]),Ae.buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Ae.hexChars=`0123456789abcdef`,Ae.hexOut=[],Ae.onePassHasher=new Ae,Ae.hashStr(`hello`)!==`5d41402abc4b2a76b9719d911017c592`&&console.error(`Md5 self test failed.`);function je(e){return Ae.hashStr(e)}var Me=class{constructor(e,t,n,r){this.logger=e.getLogger(`sipjs.digestauthentication`),this.username=n,this.password=r,this.ha1=t,this.nc=0,this.ncHex=`00000000`}authenticate(e,t,n){if(this.algorithm=t.algorithm,this.realm=t.realm,this.nonce=t.nonce,this.opaque=t.opaque,this.stale=t.stale,this.algorithm){if(this.algorithm!==`MD5`)return this.logger.warn(`challenge with Digest algorithm different than 'MD5', authentication aborted`),!1}else this.algorithm=`MD5`;if(!this.realm)return this.logger.warn(`challenge without Digest realm, authentication aborted`),!1;if(!this.nonce)return this.logger.warn(`challenge without Digest nonce, authentication aborted`),!1;if(t.qop)if(t.qop.indexOf(`auth`)>-1)this.qop=`auth`;else if(t.qop.indexOf(`auth-int`)>-1)this.qop=`auth-int`;else return this.logger.warn(`challenge without Digest qop different than 'auth' or 'auth-int', authentication aborted`),!1;else this.qop=void 0;return this.method=e.method,this.uri=e.ruri,this.cnonce=re(12),this.nc+=1,this.updateNcHex(),this.nc===4294967296&&(this.nc=1,this.ncHex=`00000001`),this.calculateResponse(n),!0}toString(){let e=[];if(!this.response)throw Error(`response field does not exist, cannot generate Authorization header`);return e.push(`algorithm=`+this.algorithm),e.push(`username="`+this.username+`"`),e.push(`realm="`+this.realm+`"`),e.push(`nonce="`+this.nonce+`"`),e.push(`uri="`+this.uri+`"`),e.push(`response="`+this.response+`"`),this.opaque&&e.push(`opaque="`+this.opaque+`"`),this.qop&&(e.push(`qop=`+this.qop),e.push(`cnonce="`+this.cnonce+`"`),e.push(`nc=`+this.ncHex)),`Digest `+e.join(`, `)}updateNcHex(){let e=Number(this.nc).toString(16);this.ncHex=`00000000`.substr(0,8-e.length)+e}calculateResponse(e){let t,n;t=this.ha1,(t===``||t===void 0)&&(t=je(this.username+`:`+this.realm+`:`+this.password)),this.qop===`auth`?(n=je(this.method+`:`+this.uri),this.response=je(t+`:`+this.nonce+`:`+this.ncHex+`:`+this.cnonce+`:auth:`+n)):this.qop===`auth-int`?(n=je(this.method+`:`+this.uri+`:`+je(e||``)),this.response=je(t+`:`+this.nonce+`:`+this.ncHex+`:`+this.cnonce+`:auth-int:`+n)):this.qop===void 0&&(n=je(this.method+`:`+this.uri),this.response=je(t+`:`+this.nonce+`:`+n))}},Ne;(function(e){e[e.error=0]=`error`,e[e.warn=1]=`warn`,e[e.log=2]=`log`,e[e.debug=3]=`debug`})(Ne=Ne||={});var Pe=class{constructor(e,t,n){this.logger=e,this.category=t,this.label=n}error(e){this.genericLog(Ne.error,e)}warn(e){this.genericLog(Ne.warn,e)}log(e){this.genericLog(Ne.log,e)}debug(e){this.genericLog(Ne.debug,e)}genericLog(e,t){this.logger.genericLog(e,this.category,this.label,t)}get level(){return this.logger.level}set level(e){this.logger.level=e}},Fe=class{constructor(){this.builtinEnabled=!0,this._level=Ne.log,this.loggers={},this.logger=this.getLogger(`sip:loggerfactory`)}get level(){return this._level}set level(e){e>=0&&e<=3?this._level=e:e>3?this._level=3:Ne.hasOwnProperty(e)?this._level=e:this.logger.error(`invalid 'level' parameter value: `+JSON.stringify(e))}get connector(){return this._connector}set connector(e){e?typeof e==`function`?this._connector=e:this.logger.error(`invalid 'connector' parameter value: `+JSON.stringify(e)):this._connector=void 0}getLogger(e,t){if(t&&this.level===3)return new Pe(this,e,t);if(this.loggers[e])return this.loggers[e];{let t=new Pe(this,e);return this.loggers[e]=t,t}}genericLog(e,t,n,r){this.level>=e&&this.builtinEnabled&&this.print(e,t,n,r),this.connector&&this.connector(Ne[e],t,n,r)}print(e,t,n,r){if(typeof r==`string`){let e=[new Date,t];n&&e.push(n),r=e.concat(r).join(` | `)}switch(e){case Ne.error:console.error(r);break;case Ne.warn:console.warn(r);break;case Ne.log:console.log(r);break;case Ne.debug:console.debug(r);break;default:break}}},Ie;(function(e){function t(e,t){let n=t,r=0,i=0;if(e.substring(n,n+2).match(/(^\r\n)/))return-2;for(;r===0;){if(i=e.indexOf(`\r
|
|
25
|
+
`,n),i===-1)return i;!e.substring(i+2,i+4).match(/(^\r\n)/)&&e.charAt(i+2).match(/(^\s+)/)?n=i+2:r=i}return r}e.getHeader=t;function n(e,t,n,r){let i=t.indexOf(`:`,n),a=t.substring(n,i).trim(),o=t.substring(i+1,r).trim(),s;switch(a.toLowerCase()){case`via`:case`v`:e.addHeader(`via`,o),e.getHeaders(`via`).length===1?(s=e.parseHeader(`Via`),s&&(e.via=s,e.viaBranch=s.branch)):s=0;break;case`from`:case`f`:e.setHeader(`from`,o),s=e.parseHeader(`from`),s&&(e.from=s,e.fromTag=s.getParam(`tag`));break;case`to`:case`t`:e.setHeader(`to`,o),s=e.parseHeader(`to`),s&&(e.to=s,e.toTag=s.getParam(`tag`));break;case`record-route`:if(s=N.parse(o,`Record_Route`),s===-1){s=void 0;break}if(!(s instanceof Array)){s=void 0;break}s.forEach(t=>{e.addHeader(`record-route`,o.substring(t.position,t.offset)),e.headers[`Record-Route`][e.getHeaders(`record-route`).length-1].parsed=t.parsed});break;case`call-id`:case`i`:e.setHeader(`call-id`,o),s=e.parseHeader(`call-id`),s&&(e.callId=o);break;case`contact`:case`m`:if(s=N.parse(o,`Contact`),s===-1){s=void 0;break}if(!(s instanceof Array)){s=void 0;break}s.forEach(t=>{e.addHeader(`contact`,o.substring(t.position,t.offset)),e.headers.Contact[e.getHeaders(`contact`).length-1].parsed=t.parsed});break;case`content-length`:case`l`:e.setHeader(`content-length`,o),s=e.parseHeader(`content-length`);break;case`content-type`:case`c`:e.setHeader(`content-type`,o),s=e.parseHeader(`content-type`);break;case`cseq`:e.setHeader(`cseq`,o),s=e.parseHeader(`cseq`),s&&(e.cseq=s.value),e instanceof se&&(e.method=s.method);break;case`max-forwards`:e.setHeader(`max-forwards`,o),s=e.parseHeader(`max-forwards`);break;case`www-authenticate`:e.setHeader(`www-authenticate`,o),s=e.parseHeader(`www-authenticate`);break;case`proxy-authenticate`:e.setHeader(`proxy-authenticate`,o),s=e.parseHeader(`proxy-authenticate`);break;case`refer-to`:case`r`:e.setHeader(`refer-to`,o),s=e.parseHeader(`refer-to`),s&&(e.referTo=s);break;default:e.addHeader(a.toLowerCase(),o),s=0}return s===void 0?{error:`error parsing header '`+a+`'`}:!0}e.parseHeader=n;function r(e,r){let i=0,a=e.indexOf(`\r
|
|
26
|
+
`);if(a===-1){r.warn(`no CRLF found, not a SIP message, discarded`);return}let o=e.substring(0,a),s=N.parse(o,`Request_Response`),c;if(s===-1){r.warn(`error parsing first line of SIP message: "`+o+`"`);return}else s.status_code?(c=new se,c.statusCode=s.status_code,c.reasonPhrase=s.reason_phrase):(c=new I,c.method=s.method,c.ruri=s.uri);c.data=e,i=a+2;let l;for(;;){if(a=t(e,i),a===-2){l=i+2;break}else if(a===-1){r.error(`malformed message`);return}let o=n(c,e,i,a);if(o&&o!==!0){r.error(o.error);return}i=a+2}return c.hasHeader(`content-length`)?c.body=e.substr(l,Number(c.getHeader(`content-length`))):c.body=e.substring(l),c}e.parseMessage=r})(Ie=Ie||={});function Le(e,t){if(t.statusCode<100||t.statusCode>699)throw TypeError(`Invalid statusCode: `+t.statusCode);let n=t.reasonPhrase?t.reasonPhrase:ie(t.statusCode),r=`SIP/2.0 `+t.statusCode+` `+n+`\r
|
|
27
|
+
`;t.statusCode>=100&&t.statusCode,t.statusCode;let i=`From: `+e.getHeader(`From`)+`\r
|
|
28
|
+
`,a=`Call-ID: `+e.callId+`\r
|
|
29
|
+
`,o=`CSeq: `+e.cseq+` `+e.method+`\r
|
|
30
|
+
`,s=e.getHeaders(`via`).reduce((e,t)=>e+`Via: `+t+`\r
|
|
31
|
+
`,``),c=`To: `+e.getHeader(`to`);if(t.statusCode>100&&!e.parseHeader(`to`).hasParam(`tag`)){let e=t.toTag;e||=P(),c+=`;tag=`+e}c+=`\r
|
|
32
|
+
`;let l=``;t.supported&&(l=`Supported: `+t.supported.join(`, `)+`\r
|
|
33
|
+
`);let u=``;t.userAgent&&(u=`User-Agent: `+t.userAgent+`\r
|
|
34
|
+
`);let d=``;return t.extraHeaders&&(d=t.extraHeaders.reduce((e,t)=>e+t.trim()+`\r
|
|
35
|
+
`,``)),r+=s,r+=i,r+=c,r+=o,r+=a,r+=l,r+=u,r+=d,t.body?(r+=`Content-Type: `+t.body.contentType+`\r
|
|
36
|
+
`,r+=`Content-Length: `+ae(t.body.content)+`\r
|
|
46
37
|
\r
|
|
47
|
-
`),this.transport.send(R)}}]),U}(Y),v=function(P){p(U,P);var F=r(U);function U(){var L;return o(this,U),L=F.call(this),L.headers={},L.status_code=null,L.reason_phrase=null,L}return U}(Y);return it={OutgoingRequest:C,InitialOutgoingInviteRequest:B,IncomingRequest:w,IncomingResponse:v},it}var st,cn;function pl(){if(cn)return st;cn=1;function k(e,S){if(!(e instanceof S))throw new TypeError("Cannot call a class as a function")}function p(e,S){for(var T=0;T<S.length;T++){var l=S[T];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(e,l.key,l)}}function h(e,S,T){return S&&p(e.prototype,S),e}var r=bA(),M=OA(),Q=new r("DigestAuthentication");return st=function(){function e(S){k(this,e),this._credentials=S,this._cnonce=null,this._nc=0,this._ncHex="00000000",this._algorithm=null,this._realm=null,this._nonce=null,this._opaque=null,this._stale=null,this._qop=null,this._method=null,this._uri=null,this._ha1=null,this._response=null}return h(e,[{key:"get",value:function(T){switch(T){case"realm":return this._realm;case"ha1":return this._ha1;default:Q.warn('get() | cannot get "%s" parameter',T);return}}},{key:"authenticate",value:function(T,l){var q=T.method,o=T.ruri,c=T.body,f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;if(this._algorithm=l.algorithm,this._realm=l.realm,this._nonce=l.nonce,this._opaque=l.opaque,this._stale=l.stale,this._algorithm){if(this._algorithm!=="MD5")return Q.warn('authenticate() | challenge with Digest algorithm different than "MD5", authentication aborted'),!1}else this._algorithm="MD5";if(!this._nonce)return Q.warn("authenticate() | challenge without Digest nonce, authentication aborted"),!1;if(!this._realm)return Q.warn("authenticate() | challenge without Digest realm, authentication aborted"),!1;if(!this._credentials.password){if(!this._credentials.ha1)return Q.warn("authenticate() | no plain SIP password nor ha1 provided, authentication aborted"),!1;if(this._credentials.realm!==this._realm)return Q.warn('authenticate() | no plain SIP password, and stored `realm` does not match the given `realm`, cannot authenticate [stored:"%s", given:"%s"]',this._credentials.realm,this._realm),!1}if(l.qop)if(l.qop.indexOf("auth-int")>-1)this._qop="auth-int";else if(l.qop.indexOf("auth")>-1)this._qop="auth";else return Q.warn('authenticate() | challenge without Digest qop different than "auth" or "auth-int", authentication aborted'),!1;else this._qop=null;this._method=q,this._uri=o,this._cnonce=f||M.createRandomToken(12),this._nc+=1;var W=Number(this._nc).toString(16);this._ncHex="00000000".substr(0,8-W.length)+W,this._nc===4294967296&&(this._nc=1,this._ncHex="00000001"),this._credentials.password?this._ha1=M.calculateMD5("".concat(this._credentials.username,":").concat(this._realm,":").concat(this._credentials.password)):this._ha1=this._credentials.ha1;var x,D;return this._qop==="auth"?(x="".concat(this._method,":").concat(this._uri),D=M.calculateMD5(x),Q.debug('authenticate() | using qop=auth [a2:"%s"]',x),this._response=M.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(this._ncHex,":").concat(this._cnonce,":auth:").concat(D))):this._qop==="auth-int"?(x="".concat(this._method,":").concat(this._uri,":").concat(M.calculateMD5(c||"")),D=M.calculateMD5(x),Q.debug('authenticate() | using qop=auth-int [a2:"%s"]',x),this._response=M.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(this._ncHex,":").concat(this._cnonce,":auth-int:").concat(D))):this._qop===null&&(x="".concat(this._method,":").concat(this._uri),D=M.calculateMD5(x),Q.debug('authenticate() | using qop=null [a2:"%s"]',x),this._response=M.calculateMD5("".concat(this._ha1,":").concat(this._nonce,":").concat(D))),Q.debug("authenticate() | response generated"),!0}},{key:"toString",value:function(){var T=[];if(!this._response)throw new Error("response field does not exist, cannot generate Authorization header");return T.push("algorithm=".concat(this._algorithm)),T.push('username="'.concat(this._credentials.username,'"')),T.push('realm="'.concat(this._realm,'"')),T.push('nonce="'.concat(this._nonce,'"')),T.push('uri="'.concat(this._uri,'"')),T.push('response="'.concat(this._response,'"')),this._opaque&&T.push('opaque="'.concat(this._opaque,'"')),this._qop&&(T.push("qop=".concat(this._qop)),T.push('cnonce="'.concat(this._cnonce,'"')),T.push("nc=".concat(this._ncHex))),"Digest ".concat(T.join(", "))}}]),e}(),st}var ot,Vn;function fn(){if(Vn)return ot;Vn=1;var k=500,p=4e3,h=5e3;return ot={T1:k,T2:p,T4:h,TIMER_B:64*k,TIMER_D:0*k,TIMER_F:64*k,TIMER_H:64*k,TIMER_I:0*k,TIMER_J:0*k,TIMER_K:0*h,TIMER_L:64*k,TIMER_M:64*k,PROVISIONAL_RESPONSE_INTERVAL:6e4},ot}var at,hn;function Ce(){if(hn)return at;hn=1;function k(U){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(g){return typeof g}:k=function(g){return g&&typeof Symbol=="function"&&g.constructor===Symbol&&g!==Symbol.prototype?"symbol":typeof g},k(U)}function p(U,L){if(!(U instanceof L))throw new TypeError("Cannot call a class as a function")}function h(U,L){for(var g=0;g<L.length;g++){var d=L[g];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(U,d.key,d)}}function r(U,L,g){return L&&h(U.prototype,L),U}function M(U,L){if(typeof L!="function"&&L!==null)throw new TypeError("Super expression must either be null or a function");U.prototype=Object.create(L&&L.prototype,{constructor:{value:U,writable:!0,configurable:!0}}),L&&Q(U,L)}function Q(U,L){return Q=Object.setPrototypeOf||function(d,b){return d.__proto__=b,d},Q(U,L)}function e(U){var L=l();return function(){var d=q(U),b;if(L){var R=q(this).constructor;b=Reflect.construct(d,arguments,R)}else b=d.apply(this,arguments);return S(this,b)}}function S(U,L){return L&&(k(L)==="object"||typeof L=="function")?L:T(U)}function T(U){if(U===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return U}function l(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function q(U){return q=Object.setPrototypeOf?Object.getPrototypeOf:function(g){return g.__proto__||Object.getPrototypeOf(g)},q(U)}var o=Ae().EventEmitter,c=bA(),f=UA(),W=ee(),x=fn(),D=new c("NonInviteClientTransaction"),m=new c("InviteClientTransaction"),G=new c("AckClientTransaction"),O=new c("NonInviteServerTransaction"),I=new c("InviteServerTransaction"),C={STATUS_TRYING:1,STATUS_PROCEEDING:2,STATUS_CALLING:3,STATUS_ACCEPTED:4,STATUS_COMPLETED:5,STATUS_TERMINATED:6,STATUS_CONFIRMED:7,NON_INVITE_CLIENT:"nict",NON_INVITE_SERVER:"nist",INVITE_CLIENT:"ict",INVITE_SERVER:"ist"},B=function(U){M(g,U);var L=e(g);function g(d,b,R,j){var H;p(this,g),H=L.call(this),H.type=C.NON_INVITE_CLIENT,H.id="z9hG4bK".concat(Math.floor(Math.random()*1e7)),H.ua=d,H.transport=b,H.request=R,H.eventHandlers=j;var J="SIP/2.0/".concat(b.via_transport);return J+=" ".concat(d.configuration.via_host,";branch=").concat(H.id),H.request.setHeader("via",J),H.ua.newTransaction(T(H)),H}return r(g,[{key:"stateChanged",value:function(b){this.state=b,this.emit("stateChanged")}},{key:"send",value:function(){var b=this;this.stateChanged(C.STATUS_TRYING),this.F=setTimeout(function(){b.timer_F()},x.TIMER_F),this.transport.send(this.request)||this.onTransportError()}},{key:"onTransportError",value:function(){D.debug("transport error occurred, deleting transaction ".concat(this.id)),clearTimeout(this.F),clearTimeout(this.K),this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this),this.eventHandlers.onTransportError()}},{key:"timer_F",value:function(){D.debug("Timer F expired for transaction ".concat(this.id)),this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this),this.eventHandlers.onRequestTimeout()}},{key:"timer_K",value:function(){this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"receiveResponse",value:function(b){var R=this,j=b.status_code;if(j<200)switch(this.state){case C.STATUS_TRYING:case C.STATUS_PROCEEDING:this.stateChanged(C.STATUS_PROCEEDING),this.eventHandlers.onReceiveResponse(b);break}else switch(this.state){case C.STATUS_TRYING:case C.STATUS_PROCEEDING:this.stateChanged(C.STATUS_COMPLETED),clearTimeout(this.F),j===408?this.eventHandlers.onRequestTimeout():this.eventHandlers.onReceiveResponse(b),this.K=setTimeout(function(){R.timer_K()},x.TIMER_K);break;case C.STATUS_COMPLETED:break}}},{key:"C",get:function(){return C}}]),g}(o),Y=function(U){M(g,U);var L=e(g);function g(d,b,R,j){var H;p(this,g),H=L.call(this),H.type=C.INVITE_CLIENT,H.id="z9hG4bK".concat(Math.floor(Math.random()*1e7)),H.ua=d,H.transport=b,H.request=R,H.eventHandlers=j,R.transaction=T(H);var J="SIP/2.0/".concat(b.via_transport);return J+=" ".concat(d.configuration.via_host,";branch=").concat(H.id),H.request.setHeader("via",J),H.ua.newTransaction(T(H)),H}return r(g,[{key:"stateChanged",value:function(b){this.state=b,this.emit("stateChanged")}},{key:"send",value:function(){var b=this;this.stateChanged(C.STATUS_CALLING),this.B=setTimeout(function(){b.timer_B()},x.TIMER_B),this.transport.send(this.request)||this.onTransportError()}},{key:"onTransportError",value:function(){clearTimeout(this.B),clearTimeout(this.D),clearTimeout(this.M),this.state!==C.STATUS_ACCEPTED&&(m.debug("transport error occurred, deleting transaction ".concat(this.id)),this.eventHandlers.onTransportError()),this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"timer_M",value:function(){m.debug("Timer M expired for transaction ".concat(this.id)),this.state===C.STATUS_ACCEPTED&&(clearTimeout(this.B),this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"timer_B",value:function(){m.debug("Timer B expired for transaction ".concat(this.id)),this.state===C.STATUS_CALLING&&(this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this),this.eventHandlers.onRequestTimeout())}},{key:"timer_D",value:function(){m.debug("Timer D expired for transaction ".concat(this.id)),clearTimeout(this.B),this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"sendACK",value:function(b){var R=this,j=new W.OutgoingRequest(f.ACK,this.request.ruri,this.ua,{route_set:this.request.getHeaders("route"),call_id:this.request.getHeader("call-id"),cseq:this.request.cseq});j.setHeader("from",this.request.getHeader("from")),j.setHeader("via",this.request.getHeader("via")),j.setHeader("to",b.getHeader("to")),this.D=setTimeout(function(){R.timer_D()},x.TIMER_D),this.transport.send(j)}},{key:"cancel",value:function(b){if(this.state===C.STATUS_PROCEEDING){var R=new W.OutgoingRequest(f.CANCEL,this.request.ruri,this.ua,{route_set:this.request.getHeaders("route"),call_id:this.request.getHeader("call-id"),cseq:this.request.cseq});R.setHeader("from",this.request.getHeader("from")),R.setHeader("via",this.request.getHeader("via")),R.setHeader("to",this.request.getHeader("to")),b&&R.setHeader("reason",b),this.transport.send(R)}}},{key:"receiveResponse",value:function(b){var R=this,j=b.status_code;if(j>=100&&j<=199)switch(this.state){case C.STATUS_CALLING:this.stateChanged(C.STATUS_PROCEEDING),this.eventHandlers.onReceiveResponse(b);break;case C.STATUS_PROCEEDING:this.eventHandlers.onReceiveResponse(b);break}else if(j>=200&&j<=299)switch(this.state){case C.STATUS_CALLING:case C.STATUS_PROCEEDING:this.stateChanged(C.STATUS_ACCEPTED),this.M=setTimeout(function(){R.timer_M()},x.TIMER_M),this.eventHandlers.onReceiveResponse(b);break;case C.STATUS_ACCEPTED:this.eventHandlers.onReceiveResponse(b);break}else if(j>=300&&j<=699)switch(this.state){case C.STATUS_CALLING:case C.STATUS_PROCEEDING:this.stateChanged(C.STATUS_COMPLETED),this.sendACK(b),this.eventHandlers.onReceiveResponse(b);break;case C.STATUS_COMPLETED:this.sendACK(b);break}}},{key:"C",get:function(){return C}}]),g}(o),w=function(U){M(g,U);var L=e(g);function g(d,b,R,j){var H;p(this,g),H=L.call(this),H.id="z9hG4bK".concat(Math.floor(Math.random()*1e7)),H.transport=b,H.request=R,H.eventHandlers=j;var J="SIP/2.0/".concat(b.via_transport);return J+=" ".concat(d.configuration.via_host,";branch=").concat(H.id),H.request.setHeader("via",J),H}return r(g,[{key:"send",value:function(){this.transport.send(this.request)||this.onTransportError()}},{key:"onTransportError",value:function(){G.debug("transport error occurred for transaction ".concat(this.id)),this.eventHandlers.onTransportError()}},{key:"C",get:function(){return C}}]),g}(o),v=function(U){M(g,U);var L=e(g);function g(d,b,R){var j;return p(this,g),j=L.call(this),j.type=C.NON_INVITE_SERVER,j.id=R.via_branch,j.ua=d,j.transport=b,j.request=R,j.last_response="",R.server_transaction=T(j),j.state=C.STATUS_TRYING,d.newTransaction(T(j)),j}return r(g,[{key:"stateChanged",value:function(b){this.state=b,this.emit("stateChanged")}},{key:"timer_J",value:function(){O.debug("Timer J expired for transaction ".concat(this.id)),this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"onTransportError",value:function(){this.transportError||(this.transportError=!0,O.debug("transport error occurred, deleting transaction ".concat(this.id)),clearTimeout(this.J),this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"receiveResponse",value:function(b,R,j,H){var J=this;if(b===100)switch(this.state){case C.STATUS_TRYING:this.stateChanged(C.STATUS_PROCEEDING),this.transport.send(R)||this.onTransportError();break;case C.STATUS_PROCEEDING:this.last_response=R,this.transport.send(R)?j&&j():(this.onTransportError(),H&&H());break}else if(b>=200&&b<=699)switch(this.state){case C.STATUS_TRYING:case C.STATUS_PROCEEDING:this.stateChanged(C.STATUS_COMPLETED),this.last_response=R,this.J=setTimeout(function(){J.timer_J()},x.TIMER_J),this.transport.send(R)?j&&j():(this.onTransportError(),H&&H());break;case C.STATUS_COMPLETED:break}}},{key:"C",get:function(){return C}}]),g}(o),P=function(U){M(g,U);var L=e(g);function g(d,b,R){var j;return p(this,g),j=L.call(this),j.type=C.INVITE_SERVER,j.id=R.via_branch,j.ua=d,j.transport=b,j.request=R,j.last_response="",R.server_transaction=T(j),j.state=C.STATUS_PROCEEDING,d.newTransaction(T(j)),j.resendProvisionalTimer=null,R.reply(100),j}return r(g,[{key:"stateChanged",value:function(b){this.state=b,this.emit("stateChanged")}},{key:"timer_H",value:function(){I.debug("Timer H expired for transaction ".concat(this.id)),this.state===C.STATUS_COMPLETED&&I.debug("ACK not received, dialog will be terminated"),this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"timer_I",value:function(){this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this)}},{key:"timer_L",value:function(){I.debug("Timer L expired for transaction ".concat(this.id)),this.state===C.STATUS_ACCEPTED&&(this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"onTransportError",value:function(){this.transportError||(this.transportError=!0,I.debug("transport error occurred, deleting transaction ".concat(this.id)),this.resendProvisionalTimer!==null&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),clearTimeout(this.L),clearTimeout(this.H),clearTimeout(this.I),this.stateChanged(C.STATUS_TERMINATED),this.ua.destroyTransaction(this))}},{key:"resend_provisional",value:function(){this.transport.send(this.last_response)||this.onTransportError()}},{key:"receiveResponse",value:function(b,R,j,H){var J=this;if(b>=100&&b<=199)switch(this.state){case C.STATUS_PROCEEDING:this.transport.send(R)||this.onTransportError(),this.last_response=R;break}if(b>100&&b<=199&&this.state===C.STATUS_PROCEEDING)this.resendProvisionalTimer===null&&(this.resendProvisionalTimer=setInterval(function(){J.resend_provisional()},x.PROVISIONAL_RESPONSE_INTERVAL));else if(b>=200&&b<=299)switch(this.state){case C.STATUS_PROCEEDING:this.stateChanged(C.STATUS_ACCEPTED),this.last_response=R,this.L=setTimeout(function(){J.timer_L()},x.TIMER_L),this.resendProvisionalTimer!==null&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null);case C.STATUS_ACCEPTED:this.transport.send(R)?j&&j():(this.onTransportError(),H&&H());break}else if(b>=300&&b<=699)switch(this.state){case C.STATUS_PROCEEDING:this.resendProvisionalTimer!==null&&(clearInterval(this.resendProvisionalTimer),this.resendProvisionalTimer=null),this.transport.send(R)?(this.stateChanged(C.STATUS_COMPLETED),this.H=setTimeout(function(){J.timer_H()},x.TIMER_H),j&&j()):(this.onTransportError(),H&&H());break}}},{key:"C",get:function(){return C}}]),g}(o);function F(U,L){var g=U._transactions,d;switch(L.method){case f.INVITE:if(d=g.ist[L.via_branch],d){switch(d.state){case C.STATUS_PROCEEDING:d.transport.send(d.last_response);break;case C.STATUS_ACCEPTED:break}return!0}break;case f.ACK:if(d=g.ist[L.via_branch],d){if(d.state===C.STATUS_ACCEPTED)return!1;if(d.state===C.STATUS_COMPLETED)return d.state=C.STATUS_CONFIRMED,d.I=setTimeout(function(){d.timer_I()},x.TIMER_I),!0}else return!1;break;case f.CANCEL:return d=g.ist[L.via_branch],d?(L.reply_sl(200),d.state!==C.STATUS_PROCEEDING):(L.reply_sl(481),!0);default:if(d=g.nist[L.via_branch],d){switch(d.state){case C.STATUS_TRYING:break;case C.STATUS_PROCEEDING:case C.STATUS_COMPLETED:d.transport.send(d.last_response);break}return!0}break}}return at={C,NonInviteClientTransaction:B,InviteClientTransaction:Y,AckClientTransaction:w,NonInviteServerTransaction:v,InviteServerTransaction:P,checkTransaction:F},at}var ut,gn;function Ie(){if(gn)return ut;gn=1;function k(l,q){if(!(l instanceof q))throw new TypeError("Cannot call a class as a function")}function p(l,q){for(var o=0;o<q.length;o++){var c=q[o];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(l,c.key,c)}}function h(l,q,o){return q&&p(l.prototype,q),l}var r=bA(),M=UA(),Q=pl(),e=Ce(),S=new r("RequestSender"),T={onRequestTimeout:function(){},onTransportError:function(){},onReceiveResponse:function(){},onAuthenticated:function(){}};return ut=function(){function l(q,o,c){k(this,l),this._ua=q,this._eventHandlers=c,this._method=o.method,this._request=o,this._auth=null,this._challenged=!1,this._staled=!1;for(var f in T)Object.prototype.hasOwnProperty.call(T,f)&&(this._eventHandlers[f]||(this._eventHandlers[f]=T[f]));q.status===q.C.STATUS_USER_CLOSED&&(this._method!==M.BYE||this._method!==M.ACK)&&this._eventHandlers.onTransportError()}return h(l,[{key:"send",value:function(){var o=this,c={onRequestTimeout:function(){o._eventHandlers.onRequestTimeout()},onTransportError:function(){o._eventHandlers.onTransportError()},onReceiveResponse:function(W){o._receiveResponse(W)}};switch(this._method){case"INVITE":this.clientTransaction=new e.InviteClientTransaction(this._ua,this._ua.transport,this._request,c);break;case"ACK":this.clientTransaction=new e.AckClientTransaction(this._ua,this._ua.transport,this._request,c);break;default:this.clientTransaction=new e.NonInviteClientTransaction(this._ua,this._ua.transport,this._request,c)}this._ua._configuration.authorization_jwt&&this._request.setHeader("Authorization",this._ua._configuration.authorization_jwt),this.clientTransaction.send()}},{key:"_receiveResponse",value:function(o){var c,f,W=o.status_code;if((W===401||W===407)&&(this._ua.configuration.password!==null||this._ua.configuration.ha1!==null)){if(o.status_code===401?(c=o.parseHeader("www-authenticate"),f="authorization"):(c=o.parseHeader("proxy-authenticate"),f="proxy-authorization"),!c){S.debug("".concat(o.status_code," with wrong or missing challenge, cannot authenticate")),this._eventHandlers.onReceiveResponse(o);return}if(!this._challenged||!this._staled&&c.stale===!0){if(this._auth||(this._auth=new Q({username:this._ua.configuration.authorization_user,password:this._ua.configuration.password,realm:this._ua.configuration.realm,ha1:this._ua.configuration.ha1})),!this._auth.authenticate(this._request,c)){this._eventHandlers.onReceiveResponse(o);return}this._challenged=!0,this._ua.set("realm",this._auth.get("realm")),this._ua.set("ha1",this._auth.get("ha1")),c.stale&&(this._staled=!0),this._request=this._request.clone(),this._request.cseq+=1,this._request.setHeader("cseq","".concat(this._request.cseq," ").concat(this._method)),this._request.setHeader(f,this._auth.toString()),this._eventHandlers.onAuthenticated(this._request),this.send()}else this._eventHandlers.onReceiveResponse(o)}else this._eventHandlers.onReceiveResponse(o)}}]),l}(),ut}var qt,dn;function ml(){if(dn)return qt;dn=1;function k(q,o){if(!(q instanceof o))throw new TypeError("Cannot call a class as a function")}function p(q,o){for(var c=0;c<o.length;c++){var f=o[c];f.enumerable=f.enumerable||!1,f.configurable=!0,"value"in f&&(f.writable=!0),Object.defineProperty(q,f.key,f)}}function h(q,o,c){return o&&p(q.prototype,o),q}var r=bA(),M=OA(),Q=UA(),e=ee(),S=Ie(),T=new r("Registrator"),l=10;return qt=function(){function q(o,c){k(this,q),this._reg_id=1,this._ua=o,this._transport=c,this._registrar=o.configuration.registrar_server,this._expires=o.configuration.register_expires,this._call_id=M.createRandomToken(22),this._cseq=0,this._to_uri=o.configuration.uri,this._registrationTimer=null,this._registering=!1,this._registered=!1,this._contact=this._ua.contact.toString(),this._contact+=";+sip.ice",this._extraHeaders=[],this._extraContactParams="",this._sipInstance='"<urn:uuid:'.concat(this._ua.configuration.instance_id,'>"'),this._contact+=";reg-id=".concat(this._reg_id),this._contact+=";+sip.instance=".concat(this._sipInstance)}return h(q,[{key:"setExtraHeaders",value:function(c){Array.isArray(c)||(c=[]),this._extraHeaders=c.slice()}},{key:"setExtraContactParams",value:function(c){c instanceof Object||(c={}),this._extraContactParams="";for(var f in c)if(Object.prototype.hasOwnProperty.call(c,f)){var W=c[f];this._extraContactParams+=";".concat(f),W&&(this._extraContactParams+="=".concat(W))}}},{key:"register",value:function(){var c=this;if(this._registering){T.debug("Register request in progress...");return}var f=this._extraHeaders.slice();f.push("Contact: ".concat(this._contact,";expires=").concat(this._expires).concat(this._extraContactParams)),f.push("Expires: ".concat(this._expires));var W=new e.OutgoingRequest(Q.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1},f),x=new S(this._ua,W,{onRequestTimeout:function(){c._registrationFailure(null,Q.causes.REQUEST_TIMEOUT)},onTransportError:function(){c._registrationFailure(null,Q.causes.CONNECTION_ERROR)},onAuthenticated:function(){c._cseq+=1},onReceiveResponse:function(m){if(m.cseq===c._cseq)switch(c._registrationTimer!==null&&(clearTimeout(c._registrationTimer),c._registrationTimer=null),!0){case/^1[0-9]{2}$/.test(m.status_code):break;case/^2[0-9]{2}$/.test(m.status_code):{if(c._registering=!1,!m.hasHeader("Contact")){T.debug("no Contact header in response to REGISTER, response ignored");break}var G=m.headers.Contact.reduce(function(Y,w){return Y.concat(w.parsed)},[]),O=G.find(function(Y){return c._sipInstance===Y.getParam("+sip.instance")&&c._reg_id===parseInt(Y.getParam("reg-id"))});if(O||(O=G.find(function(Y){return Y.uri.user===c._ua.contact.uri.user})),!O){T.debug("no Contact header pointing to us, response ignored");break}var I=O.getParam("expires");!I&&m.hasHeader("expires")&&(I=m.getHeader("expires")),I||(I=c._expires),I=Number(I),I<l&&(I=l);var C=I>64?I*1e3/2+Math.floor((I/2-32)*1e3*Math.random()):I*1e3-5e3;c._registrationTimer=setTimeout(function(){c._registrationTimer=null,c._ua.listeners("registrationExpiring").length===0?c.register():c._ua.emit("registrationExpiring")},C),O.hasParam("temp-gruu")&&(c._ua.contact.temp_gruu=O.getParam("temp-gruu").replace(/"/g,"")),O.hasParam("pub-gruu")&&(c._ua.contact.pub_gruu=O.getParam("pub-gruu").replace(/"/g,"")),c._registered||(c._registered=!0,c._ua.registered({response:m}));break}case/^423$/.test(m.status_code):{m.hasHeader("min-expires")?(c._expires=Number(m.getHeader("min-expires")),c._expires<l&&(c._expires=l),c.register()):(T.debug("423 response received for REGISTER without Min-Expires"),c._registrationFailure(m,Q.causes.SIP_FAILURE_CODE));break}default:{var B=M.sipErrorCause(m.status_code);c._registrationFailure(m,B)}}}});this._registering=!0,x.send()}},{key:"unregister",value:function(){var c=this,f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this._registered){T.debug("already unregistered");return}this._registered=!1,this._registrationTimer!==null&&(clearTimeout(this._registrationTimer),this._registrationTimer=null);var W=this._extraHeaders.slice();f.all?W.push("Contact: *".concat(this._extraContactParams)):W.push("Contact: ".concat(this._contact,";expires=0").concat(this._extraContactParams)),W.push("Expires: 0");var x=new e.OutgoingRequest(Q.REGISTER,this._registrar,this._ua,{to_uri:this._to_uri,call_id:this._call_id,cseq:this._cseq+=1},W),D=new S(this._ua,x,{onRequestTimeout:function(){c._unregistered(null,Q.causes.REQUEST_TIMEOUT)},onTransportError:function(){c._unregistered(null,Q.causes.CONNECTION_ERROR)},onAuthenticated:function(){c._cseq+=1},onReceiveResponse:function(G){switch(!0){case/^1[0-9]{2}$/.test(G.status_code):break;case/^2[0-9]{2}$/.test(G.status_code):c._unregistered(G);break;default:{var O=M.sipErrorCause(G.status_code);c._unregistered(G,O)}}}});D.send()}},{key:"close",value:function(){this._registered&&this.unregister()}},{key:"onTransportClosed",value:function(){this._registering=!1,this._registrationTimer!==null&&(clearTimeout(this._registrationTimer),this._registrationTimer=null),this._registered&&(this._registered=!1,this._ua.unregistered({}))}},{key:"_registrationFailure",value:function(c,f){this._registering=!1,this._ua.registrationFailed({response:c||null,cause:f}),this._registered&&(this._registered=!1,this._ua.unregistered({response:c||null,cause:f}))}},{key:"_unregistered",value:function(c,f){this._registering=!1,this._registered=!1,this._ua.unregistered({response:c||null,cause:f||null})}},{key:"registered",get:function(){return this._registered}}]),q}(),qt}var ct,Cn;function El(){if(Cn)return ct;Cn=1;function k(S,T){if(!(S instanceof T))throw new TypeError("Cannot call a class as a function")}function p(S,T){for(var l=0;l<T.length;l++){var q=T[l];q.enumerable=q.enumerable||!1,q.configurable=!0,"value"in q&&(q.writable=!0),Object.defineProperty(S,q.key,q)}}function h(S,T,l){return T&&p(S.prototype,T),S}var r=UA(),M=Ce(),Q=Ie(),e={onRequestTimeout:function(){},onTransportError:function(){},onSuccessResponse:function(){},onErrorResponse:function(){},onAuthenticated:function(){},onDialogError:function(){}};return ct=function(){function S(T,l,q){k(this,S),this._dialog=T,this._ua=T._ua,this._request=l,this._eventHandlers=q,this._reattempt=!1,this._reattemptTimer=null;for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(this._eventHandlers[o]||(this._eventHandlers[o]=e[o]))}return h(S,[{key:"send",value:function(){var l=this,q=new Q(this._ua,this._request,{onRequestTimeout:function(){l._eventHandlers.onRequestTimeout()},onTransportError:function(){l._eventHandlers.onTransportError()},onAuthenticated:function(f){l._eventHandlers.onAuthenticated(f)},onReceiveResponse:function(f){l._receiveResponse(f)}});if(q.send(),(this._request.method===r.INVITE||this._request.method===r.UPDATE&&this._request.body)&&q.clientTransaction.state!==M.C.STATUS_TERMINATED){this._dialog.uac_pending_reply=!0;var o=function c(){(q.clientTransaction.state===M.C.STATUS_ACCEPTED||q.clientTransaction.state===M.C.STATUS_COMPLETED||q.clientTransaction.state===M.C.STATUS_TERMINATED)&&(q.clientTransaction.removeListener("stateChanged",c),l._dialog.uac_pending_reply=!1)};q.clientTransaction.on("stateChanged",o)}}},{key:"_receiveResponse",value:function(l){var q=this;l.status_code===408||l.status_code===481?this._eventHandlers.onDialogError(l):l.method===r.INVITE&&l.status_code===491?this._reattempt?l.status_code>=200&&l.status_code<300?this._eventHandlers.onSuccessResponse(l):l.status_code>=300&&this._eventHandlers.onErrorResponse(l):(this._request.cseq=this._dialog.local_seqnum+=1,this._reattemptTimer=setTimeout(function(){q._dialog.isTerminated()||(q._reattempt=!0,q.send())},1e3)):l.status_code>=200&&l.status_code<300?this._eventHandlers.onSuccessResponse(l):l.status_code>=300&&this._eventHandlers.onErrorResponse(l)}},{key:"request",get:function(){return this._request}}]),S}(),ct}var Vt,In;function Sl(){if(In)return Vt;In=1;function k(o,c){if(!(o instanceof c))throw new TypeError("Cannot call a class as a function")}function p(o,c){for(var f=0;f<c.length;f++){var W=c[f];W.enumerable=W.enumerable||!1,W.configurable=!0,"value"in W&&(W.writable=!0),Object.defineProperty(o,W.key,W)}}function h(o,c,f){return c&&p(o.prototype,c),f&&p(o,f),o}var r=bA(),M=ee(),Q=UA(),e=Ce(),S=El(),T=OA(),l=new r("Dialog"),q={STATUS_EARLY:1,STATUS_CONFIRMED:2,STATUS_TERMINATED:3};return Vt=function(){h(o,null,[{key:"C",get:function(){return q}}]);function o(c,f,W){var x=arguments.length>3&&arguments[3]!==void 0?arguments[3]:q.STATUS_CONFIRMED;if(k(this,o),this._owner=c,this._ua=c._ua,this._uac_pending_reply=!1,this._uas_pending_reply=!1,!f.hasHeader("contact"))return{error:"unable to create a Dialog without Contact header field"};f instanceof M.IncomingResponse&&(x=f.status_code<200?q.STATUS_EARLY:q.STATUS_CONFIRMED);var D=f.parseHeader("contact");W==="UAS"?(this._id={call_id:f.call_id,local_tag:f.to_tag,remote_tag:f.from_tag,toString:function(){return this.call_id+this.local_tag+this.remote_tag}},this._state=x,this._remote_seqnum=f.cseq,this._local_uri=f.parseHeader("to").uri,this._remote_uri=f.parseHeader("from").uri,this._remote_target=D.uri,this._route_set=f.getHeaders("record-route"),this._ack_seqnum=this._remote_seqnum):W==="UAC"&&(this._id={call_id:f.call_id,local_tag:f.from_tag,remote_tag:f.to_tag,toString:function(){return this.call_id+this.local_tag+this.remote_tag}},this._state=x,this._local_seqnum=f.cseq,this._local_uri=f.parseHeader("from").uri,this._remote_uri=f.parseHeader("to").uri,this._remote_target=D.uri,this._route_set=f.getHeaders("record-route").reverse(),this._ack_seqnum=null),this._ua.newDialog(this),l.debug("new ".concat(W," dialog created with status ").concat(this._state===q.STATUS_EARLY?"EARLY":"CONFIRMED"))}return h(o,[{key:"isTerminated",value:function(){return this._status===q.STATUS_TERMINATED}},{key:"update",value:function(f,W){this._state=q.STATUS_CONFIRMED,l.debug("dialog ".concat(this._id.toString()," changed to CONFIRMED state")),W==="UAC"&&(this._route_set=f.getHeaders("record-route").reverse())}},{key:"terminate",value:function(){l.debug("dialog ".concat(this._id.toString()," deleted")),this._ua.destroyDialog(this),this._state=q.STATUS_TERMINATED}},{key:"sendRequest",value:function(f){var W=this,x=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},D=T.cloneArray(x.extraHeaders),m=T.cloneObject(x.eventHandlers),G=x.body||null,O=this._createRequest(f,D,G);m.onAuthenticated=function(){W._local_seqnum+=1};var I=new S(this,O,m);return I.send(),O}},{key:"receiveRequest",value:function(f){this._checkInDialogRequest(f)&&(f.method===Q.ACK&&this._ack_seqnum!==null?this._ack_seqnum=null:f.method===Q.INVITE&&(this._ack_seqnum=f.cseq),this._owner.receiveRequest(f))}},{key:"_createRequest",value:function(f,W,x){W=T.cloneArray(W),this._local_seqnum||(this._local_seqnum=Math.floor(Math.random()*1e4));var D=f===Q.CANCEL||f===Q.ACK?this._local_seqnum:this._local_seqnum+=1,m=new M.OutgoingRequest(f,this._remote_target,this._ua,{cseq:D,call_id:this._id.call_id,from_uri:this._local_uri,from_tag:this._id.local_tag,to_uri:this._remote_uri,to_tag:this._id.remote_tag,route_set:this._route_set},W,x);return m}},{key:"_checkInDialogRequest",value:function(f){var W=this;if(!this._remote_seqnum)this._remote_seqnum=f.cseq;else if(f.cseq<this._remote_seqnum)if(f.method===Q.ACK){if(this._ack_seqnum===null||f.cseq!==this._ack_seqnum)return!1}else return f.reply(500),!1;else f.cseq>this._remote_seqnum&&(this._remote_seqnum=f.cseq);if(f.method===Q.INVITE||f.method===Q.UPDATE&&f.body){if(this._uac_pending_reply===!0)f.reply(491);else if(this._uas_pending_reply===!0){var x=(Math.random()*10|0)+1;return f.reply(500,null,["Retry-After:".concat(x)]),!1}else{this._uas_pending_reply=!0;var D=function m(){(f.server_transaction.state===e.C.STATUS_ACCEPTED||f.server_transaction.state===e.C.STATUS_COMPLETED||f.server_transaction.state===e.C.STATUS_TERMINATED)&&(f.server_transaction.removeListener("stateChanged",m),W._uas_pending_reply=!1)};f.server_transaction.on("stateChanged",D)}f.hasHeader("contact")&&f.server_transaction.on("stateChanged",function(){f.server_transaction.state===e.C.STATUS_ACCEPTED&&(W._remote_target=f.parseHeader("contact").uri)})}else f.method===Q.NOTIFY&&f.hasHeader("contact")&&f.server_transaction.on("stateChanged",function(){f.server_transaction.state===e.C.STATUS_COMPLETED&&(W._remote_target=f.parseHeader("contact").uri)});return!0}},{key:"id",get:function(){return this._id}},{key:"local_seqnum",get:function(){return this._local_seqnum},set:function(f){this._local_seqnum=f}},{key:"owner",get:function(){return this._owner}},{key:"uac_pending_reply",get:function(){return this._uac_pending_reply},set:function(f){this._uac_pending_reply=f}},{key:"uas_pending_reply",get:function(){return this._uas_pending_reply}}]),o}(),Vt}var Re={exports:{}},pn;function yl(){if(pn)return Re.exports;pn=1;function k(G){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(I){return typeof I}:k=function(I){return I&&typeof Symbol=="function"&&I.constructor===Symbol&&I!==Symbol.prototype?"symbol":typeof I},k(G)}function p(G,O){if(!(G instanceof O))throw new TypeError("Cannot call a class as a function")}function h(G,O){for(var I=0;I<O.length;I++){var C=O[I];C.enumerable=C.enumerable||!1,C.configurable=!0,"value"in C&&(C.writable=!0),Object.defineProperty(G,C.key,C)}}function r(G,O,I){return O&&h(G.prototype,O),G}function M(G,O){if(typeof O!="function"&&O!==null)throw new TypeError("Super expression must either be null or a function");G.prototype=Object.create(O&&O.prototype,{constructor:{value:G,writable:!0,configurable:!0}}),O&&Q(G,O)}function Q(G,O){return Q=Object.setPrototypeOf||function(C,B){return C.__proto__=B,C},Q(G,O)}function e(G){var O=l();return function(){var C=q(G),B;if(O){var Y=q(this).constructor;B=Reflect.construct(C,arguments,Y)}else B=C.apply(this,arguments);return S(this,B)}}function S(G,O){return O&&(k(O)==="object"||typeof O=="function")?O:T(G)}function T(G){if(G===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return G}function l(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function q(G){return q=Object.setPrototypeOf?Object.getPrototypeOf:function(I){return I.__proto__||Object.getPrototypeOf(I)},q(G)}var o=Ae().EventEmitter,c=bA(),f=UA(),W=se(),x=OA(),D=new c("RTCSession:DTMF"),m={MIN_DURATION:70,MAX_DURATION:6e3,DEFAULT_DURATION:100,MIN_INTER_TONE_GAP:50,DEFAULT_INTER_TONE_GAP:500};return Re.exports=function(G){M(I,G);var O=e(I);function I(C){var B;return p(this,I),B=O.call(this),B._session=C,B._direction=null,B._tone=null,B._duration=null,B._request=null,B}return r(I,[{key:"send",value:function(B){var Y=this,w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(B===void 0)throw new TypeError("Not enough arguments");if(this._direction="outgoing",this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK)throw new W.InvalidStateError(this._session.status);var v=x.cloneArray(w.extraHeaders);if(this.eventHandlers=x.cloneObject(w.eventHandlers),typeof B=="string")B=B.toUpperCase();else if(typeof B=="number")B=B.toString();else throw new TypeError("Invalid tone: ".concat(B));if(B.match(/^[0-9A-DR#*]$/))this._tone=B;else throw new TypeError("Invalid tone: ".concat(B));this._duration=w.duration,v.push("Content-Type: application/dtmf-relay");var P="Signal=".concat(this._tone,`\r
|
|
48
|
-
`);P+="Duration=".concat(this._duration),this._session.newDTMF({originator:"local",dtmf:this,request:this._request}),this._session.sendRequest(f.INFO,{extraHeaders:v,eventHandlers:{onSuccessResponse:function(U){Y.emit("succeeded",{originator:"remote",response:U})},onErrorResponse:function(U){Y.eventHandlers.onFailed&&Y.eventHandlers.onFailed(),Y.emit("failed",{originator:"remote",response:U})},onRequestTimeout:function(){Y._session.onRequestTimeout()},onTransportError:function(){Y._session.onTransportError()},onDialogError:function(){Y._session.onDialogError()}},body:P})}},{key:"init_incoming",value:function(B){var Y=/^(Signal\s*?=\s*?)([0-9A-D#*]{1})(\s)?.*/,w=/^(Duration\s?=\s?)([0-9]{1,4})(\s)?.*/;if(this._direction="incoming",this._request=B,B.reply(200),B.body){var v=B.body.split(`
|
|
49
|
-
`);v.length>=1&&Y.test(v[0])&&(this._tone=v[0].replace(Y,"$2")),v.length>=2&&w.test(v[1])&&(this._duration=parseInt(v[1].replace(w,"$2"),10))}this._duration||(this._duration=m.DEFAULT_DURATION),this._tone?this._session.newDTMF({originator:"remote",dtmf:this,request:B}):D.debug("invalid INFO DTMF received, discarded")}},{key:"tone",get:function(){return this._tone}},{key:"duration",get:function(){return this._duration}}]),I}(o),Re.exports.C=m,Re.exports}var ft,mn;function Tl(){if(mn)return ft;mn=1;function k(x){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(m){return typeof m}:k=function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m},k(x)}function p(x,D){if(!(x instanceof D))throw new TypeError("Cannot call a class as a function")}function h(x,D){for(var m=0;m<D.length;m++){var G=D[m];G.enumerable=G.enumerable||!1,G.configurable=!0,"value"in G&&(G.writable=!0),Object.defineProperty(x,G.key,G)}}function r(x,D,m){return D&&h(x.prototype,D),x}function M(x,D){if(typeof D!="function"&&D!==null)throw new TypeError("Super expression must either be null or a function");x.prototype=Object.create(D&&D.prototype,{constructor:{value:x,writable:!0,configurable:!0}}),D&&Q(x,D)}function Q(x,D){return Q=Object.setPrototypeOf||function(G,O){return G.__proto__=O,G},Q(x,D)}function e(x){var D=l();return function(){var G=q(x),O;if(D){var I=q(this).constructor;O=Reflect.construct(G,arguments,I)}else O=G.apply(this,arguments);return S(this,O)}}function S(x,D){return D&&(k(D)==="object"||typeof D=="function")?D:T(x)}function T(x){if(x===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return x}function l(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function q(x){return q=Object.setPrototypeOf?Object.getPrototypeOf:function(m){return m.__proto__||Object.getPrototypeOf(m)},q(x)}var o=Ae().EventEmitter,c=UA(),f=se(),W=OA();return ft=function(x){M(m,x);var D=e(m);function m(G){var O;return p(this,m),O=D.call(this),O._session=G,O._direction=null,O._contentType=null,O._body=null,O}return r(m,[{key:"send",value:function(O,I){var C=this,B=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(this._direction="outgoing",O===void 0)throw new TypeError("Not enough arguments");if(this._session.status!==this._session.C.STATUS_CONFIRMED&&this._session.status!==this._session.C.STATUS_WAITING_FOR_ACK)throw new f.InvalidStateError(this._session.status);this._contentType=O,this._body=I;var Y=W.cloneArray(B.extraHeaders);Y.push("Content-Type: ".concat(O)),this._session.newInfo({originator:"local",info:this,request:this.request}),this._session.sendRequest(c.INFO,{extraHeaders:Y,eventHandlers:{onSuccessResponse:function(v){C.emit("succeeded",{originator:"remote",response:v})},onErrorResponse:function(v){C.emit("failed",{originator:"remote",response:v})},onTransportError:function(){C._session.onTransportError()},onRequestTimeout:function(){C._session.onRequestTimeout()},onDialogError:function(){C._session.onDialogError()}},body:I})}},{key:"init_incoming",value:function(O){this._direction="incoming",this.request=O,O.reply(200),this._contentType=O.hasHeader("Content-Type")?O.getHeader("Content-Type").toLowerCase():void 0,this._body=O.body,this._session.newInfo({originator:"remote",info:this,request:O})}},{key:"contentType",get:function(){return this._contentType}},{key:"body",get:function(){return this._body}}]),m}(o),ft}var ht,En;function wl(){if(En)return ht;En=1;function k(S,T){if(!(S instanceof T))throw new TypeError("Cannot call a class as a function")}function p(S,T){for(var l=0;l<T.length;l++){var q=T[l];q.enumerable=q.enumerable||!1,q.configurable=!0,"value"in q&&(q.writable=!0),Object.defineProperty(S,q.key,q)}}function h(S,T,l){return T&&p(S.prototype,T),S}var r=bA(),M=UA(),Q=new r("RTCSession:ReferNotifier"),e={event_type:"refer",body_type:"message/sipfrag;version=2.0",expires:300};return ht=function(){function S(T,l,q){k(this,S),this._session=T,this._id=l,this._expires=q||e.expires,this._active=!0,this.notify(100)}return h(S,[{key:"notify",value:function(l,q){if(Q.debug("notify()"),this._active!==!1){q=q||M.REASON_PHRASE[l]||"";var o;l>=200?o="terminated;reason=noresource":o="active;expires=".concat(this._expires),this._session.sendRequest(M.NOTIFY,{extraHeaders:["Event: ".concat(e.event_type,";id=").concat(this._id),"Subscription-State: ".concat(o),"Content-Type: ".concat(e.body_type)],body:"SIP/2.0 ".concat(l," ").concat(q),eventHandlers:{onErrorResponse:function(){this._active=!1}}})}}}]),S}(),ht}var gt,Sn;function Ml(){if(Sn)return gt;Sn=1;function k(m){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(O){return typeof O}:k=function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},k(m)}function p(m,G){if(!(m instanceof G))throw new TypeError("Cannot call a class as a function")}function h(m,G){for(var O=0;O<G.length;O++){var I=G[O];I.enumerable=I.enumerable||!1,I.configurable=!0,"value"in I&&(I.writable=!0),Object.defineProperty(m,I.key,I)}}function r(m,G,O){return G&&h(m.prototype,G),m}function M(m,G){if(typeof G!="function"&&G!==null)throw new TypeError("Super expression must either be null or a function");m.prototype=Object.create(G&&G.prototype,{constructor:{value:m,writable:!0,configurable:!0}}),G&&Q(m,G)}function Q(m,G){return Q=Object.setPrototypeOf||function(I,C){return I.__proto__=C,I},Q(m,G)}function e(m){var G=l();return function(){var I=q(m),C;if(G){var B=q(this).constructor;C=Reflect.construct(I,arguments,B)}else C=I.apply(this,arguments);return S(this,C)}}function S(m,G){return G&&(k(G)==="object"||typeof G=="function")?G:T(m)}function T(m){if(m===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return m}function l(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function q(m){return q=Object.setPrototypeOf?Object.getPrototypeOf:function(O){return O.__proto__||Object.getPrototypeOf(O)},q(m)}var o=Ae().EventEmitter,c=bA(),f=UA(),W=zA(),x=OA(),D=new c("RTCSession:ReferSubscriber");return gt=function(m){M(O,m);var G=e(O);function O(I){var C;return p(this,O),C=G.call(this),C._id=null,C._session=I,C}return r(O,[{key:"sendRefer",value:function(C){var B=this,Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};D.debug("sendRefer()");var w=x.cloneArray(Y.extraHeaders),v=x.cloneObject(Y.eventHandlers);for(var P in v)Object.prototype.hasOwnProperty.call(v,P)&&this.on(P,v[P]);var F=null;Y.replaces&&(F=Y.replaces._request.call_id,F+=";to-tag=".concat(Y.replaces._to_tag),F+=";from-tag=".concat(Y.replaces._from_tag),F=encodeURIComponent(F));var U="Refer-To: <".concat(C).concat(F?"?Replaces=".concat(F):"",">");if(w.push(U),!w.some(function(d){return d.toLowerCase().startsWith("referred-by:")})){var L="Referred-By: <".concat(this._session._ua._configuration.uri._scheme,":").concat(this._session._ua._configuration.uri._user,"@").concat(this._session._ua._configuration.uri._host,">");w.push(L)}w.push("Contact: ".concat(this._session.contact));var g=this._session.sendRequest(f.REFER,{extraHeaders:w,eventHandlers:{onSuccessResponse:function(b){B._requestSucceeded(b)},onErrorResponse:function(b){B._requestFailed(b,f.causes.REJECTED)},onTransportError:function(){B._requestFailed(null,f.causes.CONNECTION_ERROR)},onRequestTimeout:function(){B._requestFailed(null,f.causes.REQUEST_TIMEOUT)},onDialogError:function(){B._requestFailed(null,f.causes.DIALOG_ERROR)}}});this._id=g.cseq}},{key:"receiveNotify",value:function(C){if(D.debug("receiveNotify()"),!!C.body){var B=W.parse(C.body.trim().split(`\r
|
|
50
|
-
`,1)[0],"Status_Line");if(B===-1){D.debug('receiveNotify() | error parsing NOTIFY body: "'.concat(C.body,'"'));return}switch(!0){case/^100$/.test(B.status_code):this.emit("trying",{request:C,status_line:B});break;case/^1[0-9]{2}$/.test(B.status_code):this.emit("progress",{request:C,status_line:B});break;case/^2[0-9]{2}$/.test(B.status_code):this.emit("accepted",{request:C,status_line:B});break;default:this.emit("failed",{request:C,status_line:B});break}}}},{key:"_requestSucceeded",value:function(C){D.debug("REFER succeeded"),D.debug('emit "requestSucceeded"'),this.emit("requestSucceeded",{response:C})}},{key:"_requestFailed",value:function(C,B){D.debug("REFER failed"),D.debug('emit "requestFailed"'),this.emit("requestFailed",{response:C||null,cause:B})}},{key:"id",get:function(){return this._id}}]),O}(o),gt}var dt,yn;function Rl(){if(yn)return dt;yn=1;function k(R){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(H){return typeof H}:k=function(H){return H&&typeof Symbol=="function"&&H.constructor===Symbol&&H!==Symbol.prototype?"symbol":typeof H},k(R)}function p(R,j){var H;if(typeof Symbol>"u"||R[Symbol.iterator]==null){if(Array.isArray(R)||(H=h(R))||j){H&&(R=H);var J=0,u=function(){};return{s:u,n:function(){return J>=R.length?{done:!0}:{done:!1,value:R[J++]}},e:function(z){throw z},f:u}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
51
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var E=!0,K=!1,Z;return{s:function(){H=R[Symbol.iterator]()},n:function(){var z=H.next();return E=z.done,z},e:function(z){K=!0,Z=z},f:function(){try{!E&&H.return!=null&&H.return()}finally{if(K)throw Z}}}}function h(R,j){if(R){if(typeof R=="string")return r(R,j);var H=Object.prototype.toString.call(R).slice(8,-1);if(H==="Object"&&R.constructor&&(H=R.constructor.name),H==="Map"||H==="Set")return Array.from(R);if(H==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(H))return r(R,j)}}function r(R,j){(j==null||j>R.length)&&(j=R.length);for(var H=0,J=new Array(j);H<j;H++)J[H]=R[H];return J}function M(R,j){if(!(R instanceof j))throw new TypeError("Cannot call a class as a function")}function Q(R,j){for(var H=0;H<j.length;H++){var J=j[H];J.enumerable=J.enumerable||!1,J.configurable=!0,"value"in J&&(J.writable=!0),Object.defineProperty(R,J.key,J)}}function e(R,j,H){return j&&Q(R.prototype,j),H&&Q(R,H),R}function S(R,j){if(typeof j!="function"&&j!==null)throw new TypeError("Super expression must either be null or a function");R.prototype=Object.create(j&&j.prototype,{constructor:{value:R,writable:!0,configurable:!0}}),j&&T(R,j)}function T(R,j){return T=Object.setPrototypeOf||function(J,u){return J.__proto__=u,J},T(R,j)}function l(R){var j=c();return function(){var J=f(R),u;if(j){var E=f(this).constructor;u=Reflect.construct(J,arguments,E)}else u=J.apply(this,arguments);return q(this,u)}}function q(R,j){return j&&(k(j)==="object"||typeof j=="function")?j:o(R)}function o(R){if(R===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return R}function c(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function f(R){return f=Object.setPrototypeOf?Object.getPrototypeOf:function(H){return H.__proto__||Object.getPrototypeOf(H)},f(R)}var W=Ae().EventEmitter,x=un(),D=bA(),m=UA(),G=se(),O=Ce(),I=OA(),C=fn(),B=ee(),Y=Sl(),w=Ie(),v=yl(),P=Tl(),F=wl(),U=Ml(),L=oe(),g=new D("RTCSession"),d={STATUS_NULL:0,STATUS_INVITE_SENT:1,STATUS_1XX_RECEIVED:2,STATUS_INVITE_RECEIVED:3,STATUS_WAITING_FOR_ANSWER:4,STATUS_ANSWERED:5,STATUS_WAITING_FOR_ACK:6,STATUS_CANCELED:7,STATUS_TERMINATED:8,STATUS_CONFIRMED:9},b=["audio","video"];return dt=function(R){S(H,R);var j=l(H);e(H,null,[{key:"C",get:function(){return d}}]);function H(J){var u;return M(this,H),g.debug("new"),u=j.call(this),u._id=null,u._ua=J,u._status=d.STATUS_NULL,u._dialog=null,u._earlyDialogs={},u._contact=null,u._from_tag=null,u._to_tag=null,u._connection=null,u._connectionPromiseQueue=Promise.resolve(),u._request=null,u._is_canceled=!1,u._cancel_reason="",u._is_confirmed=!1,u._late_sdp=!1,u._rtcOfferConstraints=null,u._rtcAnswerConstraints=null,u._localMediaStream=null,u._localMediaStreamLocallyGenerated=!1,u._rtcReady=!0,u._iceReady=!1,u._timers={ackTimer:null,expiresTimer:null,invite2xxTimer:null,userNoAnswerTimer:null},u._direction=null,u._local_identity=null,u._remote_identity=null,u._start_time=null,u._end_time=null,u._tones=null,u._audioMuted=!1,u._videoMuted=!1,u._localHold=!1,u._remoteHold=!1,u._sessionTimers={enabled:u._ua.configuration.session_timers,refreshMethod:u._ua.configuration.session_timers_refresh_method,defaultExpires:m.SESSION_EXPIRES,currentExpires:null,running:!1,refresher:!1,timer:null},u._referSubscribers={},u._data={},u}return e(H,[{key:"isInProgress",value:function(){switch(this._status){case d.STATUS_NULL:case d.STATUS_INVITE_SENT:case d.STATUS_1XX_RECEIVED:case d.STATUS_INVITE_RECEIVED:case d.STATUS_WAITING_FOR_ANSWER:return!0;default:return!1}}},{key:"isEstablished",value:function(){switch(this._status){case d.STATUS_ANSWERED:case d.STATUS_WAITING_FOR_ACK:case d.STATUS_CONFIRMED:return!0;default:return!1}}},{key:"isEnded",value:function(){switch(this._status){case d.STATUS_CANCELED:case d.STATUS_TERMINATED:return!0;default:return!1}}},{key:"isMuted",value:function(){return{audio:this._audioMuted,video:this._videoMuted}}},{key:"isOnHold",value:function(){return{local:this._localHold,remote:this._remoteHold}}},{key:"connect",value:function(u){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},K=arguments.length>2?arguments[2]:void 0;g.debug("connect()");var Z=u,X=I.cloneObject(E.eventHandlers),z=I.cloneArray(E.extraHeaders),$=I.cloneObject(E.mediaConstraints,{audio:!0,video:!0}),eA=E.mediaStream||null,nA=I.cloneObject(E.pcConfig,{iceServers:[]}),lA=E.rtcConstraints||null,rA=E.rtcOfferConstraints||null;if(this._rtcOfferConstraints=rA,this._rtcAnswerConstraints=E.rtcAnswerConstraints||null,this._data=E.data||this._data,u===void 0)throw new TypeError("Not enough arguments");if(this._status!==d.STATUS_NULL)throw new G.InvalidStateError(this._status);if(!window.RTCPeerConnection)throw new G.NotSupportedError("WebRTC not supported");if(u=this._ua.normalizeTarget(u),!u)throw new TypeError("Invalid target: ".concat(Z));this._sessionTimers.enabled&&I.isDecimal(E.sessionTimersExpires)&&(E.sessionTimersExpires>=m.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=E.sessionTimersExpires:this._sessionTimers.defaultExpires=m.SESSION_EXPIRES);for(var hA in X)Object.prototype.hasOwnProperty.call(X,hA)&&this.on(hA,X[hA]);this._from_tag=I.newTag();var IA=E.anonymous||!1,EA={from_tag:this._from_tag};this._contact=this._ua.contact.toString({anonymous:IA,outbound:!0}),IA?(EA.from_display_name="Anonymous",EA.from_uri=new L("sip","anonymous","anonymous.invalid"),z.push("P-Preferred-Identity: ".concat(this._ua.configuration.uri.toString())),z.push("Privacy: id")):E.fromUserName&&(EA.from_uri=new L("sip",E.fromUserName,this._ua.configuration.uri.host),z.push("P-Preferred-Identity: ".concat(this._ua.configuration.uri.toString()))),E.fromDisplayName&&(EA.from_display_name=E.fromDisplayName),z.push("Contact: ".concat(this._contact)),z.push("Content-Type: application/sdp"),this._sessionTimers.enabled&&z.push("Session-Expires: ".concat(this._sessionTimers.defaultExpires).concat(this._ua.configuration.session_timers_force_refresher?";refresher=uac":"")),this._request=new B.InitialOutgoingInviteRequest(u,this._ua,EA,z),this._id=this._request.call_id+this._from_tag,this._createRTCConnection(nA,lA),this._direction="outgoing",this._local_identity=this._request.from,this._remote_identity=this._request.to,K&&K(this),this._newRTCSession("local",this._request),this._sendInitialRequest($,rA,eA)}},{key:"init_incoming",value:function(u,E){var K=this;g.debug("init_incoming()");var Z,X=u.hasHeader("Content-Type")?u.getHeader("Content-Type").toLowerCase():void 0;if(u.body&&X!=="application/sdp"){u.reply(415);return}if(this._status=d.STATUS_INVITE_RECEIVED,this._from_tag=u.from_tag,this._id=u.call_id+this._from_tag,this._request=u,this._contact=this._ua.contact.toString(),u.hasHeader("expires")&&(Z=u.getHeader("expires")*1e3),u.to_tag=I.newTag(),!this._createDialog(u,"UAS",!0)){u.reply(500,"Missing Contact header field");return}u.body?this._late_sdp=!1:this._late_sdp=!0,this._status=d.STATUS_WAITING_FOR_ANSWER,this._timers.userNoAnswerTimer=setTimeout(function(){u.reply(408),K._failed("local",null,m.causes.NO_ANSWER)},this._ua.configuration.no_answer_timeout),Z&&(this._timers.expiresTimer=setTimeout(function(){K._status===d.STATUS_WAITING_FOR_ANSWER&&(u.reply(487),K._failed("system",null,m.causes.EXPIRES))},Z)),this._direction="incoming",this._local_identity=u.to,this._remote_identity=u.from,E&&E(this),this._newRTCSession("remote",u),this._status!==d.STATUS_TERMINATED&&(u.reply(180,null,["Contact: ".concat(this._contact)]),this._progress("local",null))}},{key:"answer",value:function(){var u=this,E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};g.debug("answer()");var K=this._request,Z=I.cloneArray(E.extraHeaders),X=I.cloneObject(E.mediaConstraints),z=E.mediaStream||null,$=I.cloneObject(E.pcConfig,{iceServers:[]}),eA=E.rtcConstraints||null,nA=E.rtcAnswerConstraints||null,lA=I.cloneObject(E.rtcOfferConstraints),rA,hA=!1,IA=!1,EA=!1,sA=!1;if(this._rtcAnswerConstraints=nA,this._rtcOfferConstraints=E.rtcOfferConstraints||null,this._data=E.data||this._data,this._direction!=="incoming")throw new G.NotSupportedError('"answer" not supported for outgoing RTCSession');if(this._status!==d.STATUS_WAITING_FOR_ANSWER)throw new G.InvalidStateError(this._status);if(this._sessionTimers.enabled&&I.isDecimal(E.sessionTimersExpires)&&(E.sessionTimersExpires>=m.MIN_SESSION_EXPIRES?this._sessionTimers.defaultExpires=E.sessionTimersExpires:this._sessionTimers.defaultExpires=m.SESSION_EXPIRES),this._status=d.STATUS_ANSWERED,!this._createDialog(K,"UAS")){K.reply(500,"Error creating dialog");return}clearTimeout(this._timers.userNoAnswerTimer),Z.unshift("Contact: ".concat(this._contact));var qA=K.parseSDP();Array.isArray(qA.media)||(qA.media=[qA.media]);var cA=p(qA.media),gA;try{for(cA.s();!(gA=cA.n()).done;){var pA=gA.value;pA.type==="audio"&&(hA=!0,(!pA.direction||pA.direction==="sendrecv")&&(EA=!0)),pA.type==="video"&&(IA=!0,(!pA.direction||pA.direction==="sendrecv")&&(sA=!0))}}catch(SA){cA.e(SA)}finally{cA.f()}if(z&&X.audio===!1){rA=z.getAudioTracks();var yA=p(rA),mA;try{for(yA.s();!(mA=yA.n()).done;){var FA=mA.value;z.removeTrack(FA)}}catch(SA){yA.e(SA)}finally{yA.f()}}if(z&&X.video===!1){rA=z.getVideoTracks();var wA=p(rA),WA;try{for(wA.s();!(WA=wA.n()).done;){var jA=WA.value;z.removeTrack(jA)}}catch(SA){wA.e(SA)}finally{wA.f()}}!z&&X.audio===void 0&&(X.audio=EA),!z&&X.video===void 0&&(X.video=sA),!z&&!hA&&!lA.offerToReceiveAudio&&(X.audio=!1),!z&&!IA&&!lA.offerToReceiveVideo&&(X.video=!1),this._createRTCConnection($,eA),Promise.resolve().then(function(){if(z)return z;if(X.audio||X.video)return u._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(X).catch(function(SA){throw u._status===d.STATUS_TERMINATED?new Error("terminated"):(K.reply(480),u._failed("local",null,m.causes.USER_DENIED_MEDIA_ACCESS),g.warn('emit "getusermediafailed" [error:%o]',SA),u.emit("getusermediafailed",SA),new Error("getUserMedia() failed"))})}).then(function(SA){if(u._status===d.STATUS_TERMINATED)throw new Error("terminated");u._localMediaStream=SA,SA&&SA.getTracks().forEach(function(LA){u._connection.addTrack(LA,SA)})}).then(function(){if(!u._late_sdp){var SA={originator:"remote",type:"offer",sdp:K.body};g.debug('emit "sdp"'),u.emit("sdp",SA);var LA=new RTCSessionDescription({type:"offer",sdp:SA.sdp});return u._connectionPromiseQueue=u._connectionPromiseQueue.then(function(){return u._connection.setRemoteDescription(LA)}).catch(function(JA){throw K.reply(488),u._failed("system",null,m.causes.WEBRTC_ERROR),g.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',JA),u.emit("peerconnection:setremotedescriptionfailed",JA),new Error("peerconnection.setRemoteDescription() failed")}),u._connectionPromiseQueue}}).then(function(){if(u._status===d.STATUS_TERMINATED)throw new Error("terminated");return u._connecting(K),u._late_sdp?u._createLocalDescription("offer",u._rtcOfferConstraints).catch(function(){throw K.reply(500),new Error("_createLocalDescription() failed")}):u._createLocalDescription("answer",nA).catch(function(){throw K.reply(500),new Error("_createLocalDescription() failed")})}).then(function(SA){if(u._status===d.STATUS_TERMINATED)throw new Error("terminated");u._handleSessionTimersInIncomingRequest(K,Z),K.reply(200,null,Z,SA,function(){u._status=d.STATUS_WAITING_FOR_ACK,u._setInvite2xxTimer(K,SA),u._setACKTimer(),u._accepted("local")},function(){u._failed("system",null,m.causes.CONNECTION_ERROR)})}).catch(function(SA){u._status!==d.STATUS_TERMINATED&&g.warn(SA)})}},{key:"terminate",value:function(){var u=this,E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};g.debug("terminate()");var K=E.cause||m.causes.BYE,Z=I.cloneArray(E.extraHeaders),X=E.body,z,$=E.status_code,eA=E.reason_phrase;if(this._status===d.STATUS_TERMINATED)throw new G.InvalidStateError(this._status);switch(this._status){case d.STATUS_NULL:case d.STATUS_INVITE_SENT:case d.STATUS_1XX_RECEIVED:if(g.debug("canceling session"),$&&($<200||$>=700))throw new TypeError("Invalid status_code: ".concat($));$&&(eA=eA||m.REASON_PHRASE[$]||"",z="SIP ;cause=".concat($,' ;text="').concat(eA,'"')),this._status===d.STATUS_NULL||this._status===d.STATUS_INVITE_SENT?(this._is_canceled=!0,this._cancel_reason=z):this._status===d.STATUS_1XX_RECEIVED&&this._request.cancel(z),this._status=d.STATUS_CANCELED,this._failed("local",null,m.causes.CANCELED);break;case d.STATUS_WAITING_FOR_ANSWER:case d.STATUS_ANSWERED:if(g.debug("rejecting session"),$=$||480,$<300||$>=700)throw new TypeError("Invalid status_code: ".concat($));this._request.reply($,eA,Z,X),this._failed("local",null,m.causes.REJECTED);break;case d.STATUS_WAITING_FOR_ACK:case d.STATUS_CONFIRMED:if(g.debug("terminating session"),eA=E.reason_phrase||m.REASON_PHRASE[$]||"",$&&($<200||$>=700))throw new TypeError("Invalid status_code: ".concat($));if($&&Z.push("Reason: SIP ;cause=".concat($,'; text="').concat(eA,'"')),this._status===d.STATUS_WAITING_FOR_ACK&&this._direction==="incoming"&&this._request.server_transaction.state!==O.C.STATUS_TERMINATED){var nA=this._dialog;this.receiveRequest=function(lA){var rA=lA.method;rA===m.ACK&&(u.sendRequest(m.BYE,{extraHeaders:Z,body:X}),nA.terminate())},this._request.server_transaction.on("stateChanged",function(){u._request.server_transaction.state===O.C.STATUS_TERMINATED&&(u.sendRequest(m.BYE,{extraHeaders:Z,body:X}),nA.terminate())}),this._ended("local",null,K),this._dialog=nA,this._ua.newDialog(nA)}else this.sendRequest(m.BYE,{extraHeaders:Z,body:X}),this._ended("local",null,K)}}},{key:"sendDTMF",value:function(u){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};g.debug("sendDTMF() | tones: %s",u);var K=0,Z=E.duration||null,X=E.interToneGap||null,z=E.transportType||m.DTMF_TRANSPORT.INFO;if(u===void 0)throw new TypeError("Not enough arguments");if(this._status!==d.STATUS_CONFIRMED&&this._status!==d.STATUS_WAITING_FOR_ACK&&this._status!==d.STATUS_1XX_RECEIVED)throw new G.InvalidStateError(this._status);if(z!==m.DTMF_TRANSPORT.INFO&&z!==m.DTMF_TRANSPORT.RFC2833)throw new TypeError("invalid transportType: ".concat(z));if(typeof u=="number"&&(u=u.toString()),!u||typeof u!="string"||!u.match(/^[0-9A-DR#*,]+$/i))throw new TypeError("Invalid tones: ".concat(u));if(Z&&!I.isDecimal(Z))throw new TypeError("Invalid tone duration: ".concat(Z));if(Z?Z<v.C.MIN_DURATION?(g.debug('"duration" value is lower than the minimum allowed, setting it to '.concat(v.C.MIN_DURATION," milliseconds")),Z=v.C.MIN_DURATION):Z>v.C.MAX_DURATION?(g.debug('"duration" value is greater than the maximum allowed, setting it to '.concat(v.C.MAX_DURATION," milliseconds")),Z=v.C.MAX_DURATION):Z=Math.abs(Z):Z=v.C.DEFAULT_DURATION,E.duration=Z,X&&!I.isDecimal(X))throw new TypeError("Invalid interToneGap: ".concat(X));if(X?X<v.C.MIN_INTER_TONE_GAP?(g.debug('"interToneGap" value is lower than the minimum allowed, setting it to '.concat(v.C.MIN_INTER_TONE_GAP," milliseconds")),X=v.C.MIN_INTER_TONE_GAP):X=Math.abs(X):X=v.C.DEFAULT_INTER_TONE_GAP,z===m.DTMF_TRANSPORT.RFC2833){var $=this._getDTMFRTPSender();$&&(u=$.toneBuffer+u,$.insertDTMF(u,Z,X));return}if(this._tones){this._tones+=u;return}this._tones=u,eA.call(this);function eA(){var nA=this,lA;if(this._status===d.STATUS_TERMINATED||!this._tones||K>=this._tones.length){this._tones=null;return}var rA=this._tones[K];if(K+=1,rA===",")lA=2e3;else{var hA=new v(this);E.eventHandlers={onFailed:function(){nA._tones=null}},hA.send(rA,E),lA=Z+X}setTimeout(eA.bind(this),lA)}}},{key:"sendInfo",value:function(u,E){var K=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(g.debug("sendInfo()"),this._status!==d.STATUS_CONFIRMED&&this._status!==d.STATUS_WAITING_FOR_ACK&&this._status!==d.STATUS_1XX_RECEIVED)throw new G.InvalidStateError(this._status);var Z=new P(this);Z.send(u,E,K)}},{key:"mute",value:function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{audio:!0,video:!1};g.debug("mute()");var E=!1,K=!1;this._audioMuted===!1&&u.audio&&(E=!0,this._audioMuted=!0,this._toggleMuteAudio(!0)),this._videoMuted===!1&&u.video&&(K=!0,this._videoMuted=!0,this._toggleMuteVideo(!0)),(E===!0||K===!0)&&this._onmute({audio:E,video:K})}},{key:"unmute",value:function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{audio:!0,video:!0};g.debug("unmute()");var E=!1,K=!1;this._audioMuted===!0&&u.audio&&(E=!0,this._audioMuted=!1,this._localHold===!1&&this._toggleMuteAudio(!1)),this._videoMuted===!0&&u.video&&(K=!0,this._videoMuted=!1,this._localHold===!1&&this._toggleMuteVideo(!1)),(E===!0||K===!0)&&this._onunmute({audio:E,video:K})}},{key:"hold",value:function(){var u=this,E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},K=arguments.length>1?arguments[1]:void 0;if(g.debug("hold()"),this._status!==d.STATUS_WAITING_FOR_ACK&&this._status!==d.STATUS_CONFIRMED||this._localHold===!0||!this._isReadyToReOffer())return!1;this._localHold=!0,this._onhold("local");var Z={succeeded:function(){K&&K()},failed:function(){u.terminate({cause:m.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Hold Failed"})}};return E.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:Z,extraHeaders:E.extraHeaders}):this._sendReinvite({eventHandlers:Z,extraHeaders:E.extraHeaders}),!0}},{key:"unhold",value:function(){var u=this,E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},K=arguments.length>1?arguments[1]:void 0;if(g.debug("unhold()"),this._status!==d.STATUS_WAITING_FOR_ACK&&this._status!==d.STATUS_CONFIRMED||this._localHold===!1||!this._isReadyToReOffer())return!1;this._localHold=!1,this._onunhold("local");var Z={succeeded:function(){K&&K()},failed:function(){u.terminate({cause:m.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Unhold Failed"})}};return E.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:Z,extraHeaders:E.extraHeaders}):this._sendReinvite({eventHandlers:Z,extraHeaders:E.extraHeaders}),!0}},{key:"renegotiate",value:function(){var u=this,E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},K=arguments.length>1?arguments[1]:void 0;g.debug("renegotiate()");var Z=E.rtcOfferConstraints||null;if(this._status!==d.STATUS_WAITING_FOR_ACK&&this._status!==d.STATUS_CONFIRMED||!this._isReadyToReOffer())return!1;var X={succeeded:function(){K&&K()},failed:function(){u.terminate({cause:m.causes.WEBRTC_ERROR,status_code:500,reason_phrase:"Media Renegotiation Failed"})}};return this._setLocalMediaStatus(),E.useUpdate?this._sendUpdate({sdpOffer:!0,eventHandlers:X,rtcOfferConstraints:Z,extraHeaders:E.extraHeaders}):this._sendReinvite({eventHandlers:X,rtcOfferConstraints:Z,extraHeaders:E.extraHeaders}),!0}},{key:"refer",value:function(u,E){var K=this;g.debug("refer()");var Z=u;if(this._status!==d.STATUS_WAITING_FOR_ACK&&this._status!==d.STATUS_CONFIRMED)return!1;if(u=this._ua.normalizeTarget(u),!u)throw new TypeError("Invalid target: ".concat(Z));var X=new U(this);X.sendRefer(u,E);var z=X.id;return this._referSubscribers[z]=X,X.on("requestFailed",function(){delete K._referSubscribers[z]}),X.on("accepted",function(){delete K._referSubscribers[z]}),X.on("failed",function(){delete K._referSubscribers[z]}),X}},{key:"sendRequest",value:function(u,E){return g.debug("sendRequest()"),this._dialog.sendRequest(u,E)}},{key:"receiveRequest",value:function(u){var E=this;if(g.debug("receiveRequest()"),u.method===m.CANCEL)(this._status===d.STATUS_WAITING_FOR_ANSWER||this._status===d.STATUS_ANSWERED)&&(this._status=d.STATUS_CANCELED,this._request.reply(487),this._failed("remote",u,m.causes.CANCELED));else switch(u.method){case m.ACK:if(this._status!==d.STATUS_WAITING_FOR_ACK)return;if(this._status=d.STATUS_CONFIRMED,clearTimeout(this._timers.ackTimer),clearTimeout(this._timers.invite2xxTimer),this._late_sdp){if(!u.body){this.terminate({cause:m.causes.MISSING_SDP,status_code:400});break}var K={originator:"remote",type:"answer",sdp:u.body};g.debug('emit "sdp"'),this.emit("sdp",K);var Z=new RTCSessionDescription({type:"answer",sdp:K.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return E._connection.setRemoteDescription(Z)}).then(function(){E._is_confirmed||E._confirmed("remote",u)}).catch(function(z){E.terminate({cause:m.causes.BAD_MEDIA_DESCRIPTION,status_code:488}),g.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',z),E.emit("peerconnection:setremotedescriptionfailed",z)})}else this._is_confirmed||this._confirmed("remote",u);break;case m.BYE:this._status===d.STATUS_CONFIRMED||this._status===d.STATUS_WAITING_FOR_ACK?(u.reply(200),this._ended("remote",u,m.causes.BYE)):this._status===d.STATUS_INVITE_RECEIVED||this._status===d.STATUS_WAITING_FOR_ANSWER?(u.reply(200),this._request.reply(487,"BYE Received"),this._ended("remote",u,m.causes.BYE)):u.reply(403,"Wrong Status");break;case m.INVITE:this._status===d.STATUS_CONFIRMED?u.hasHeader("replaces")?this._receiveReplaces(u):this._receiveReinvite(u):u.reply(403,"Wrong Status");break;case m.INFO:if(this._status===d.STATUS_1XX_RECEIVED||this._status===d.STATUS_WAITING_FOR_ANSWER||this._status===d.STATUS_ANSWERED||this._status===d.STATUS_WAITING_FOR_ACK||this._status===d.STATUS_CONFIRMED){var X=u.hasHeader("Content-Type")?u.getHeader("Content-Type").toLowerCase():void 0;X&&X.match(/^application\/dtmf-relay/i)?new v(this).init_incoming(u):X!==void 0?new P(this).init_incoming(u):u.reply(415)}else u.reply(403,"Wrong Status");break;case m.UPDATE:this._status===d.STATUS_CONFIRMED?this._receiveUpdate(u):u.reply(403,"Wrong Status");break;case m.REFER:this._status===d.STATUS_CONFIRMED?this._receiveRefer(u):u.reply(403,"Wrong Status");break;case m.NOTIFY:this._status===d.STATUS_CONFIRMED?this._receiveNotify(u):u.reply(403,"Wrong Status");break;default:u.reply(501)}}},{key:"onTransportError",value:function(){g.warn("onTransportError()"),this._status!==d.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:m.causes.CONNECTION_ERROR,cause:m.causes.CONNECTION_ERROR})}},{key:"onRequestTimeout",value:function(){g.warn("onRequestTimeout()"),this._status!==d.STATUS_TERMINATED&&this.terminate({status_code:408,reason_phrase:m.causes.REQUEST_TIMEOUT,cause:m.causes.REQUEST_TIMEOUT})}},{key:"onDialogError",value:function(){g.warn("onDialogError()"),this._status!==d.STATUS_TERMINATED&&this.terminate({status_code:500,reason_phrase:m.causes.DIALOG_ERROR,cause:m.causes.DIALOG_ERROR})}},{key:"newDTMF",value:function(u){g.debug("newDTMF()"),this.emit("newDTMF",u)}},{key:"newInfo",value:function(u){g.debug("newInfo()"),this.emit("newInfo",u)}},{key:"_isReadyToReOffer",value:function(){return this._rtcReady?this._dialog?this._dialog.uac_pending_reply===!0||this._dialog.uas_pending_reply===!0?(g.debug("_isReadyToReOffer() | there is another INVITE/UPDATE transaction in progress"),!1):!0:(g.debug("_isReadyToReOffer() | session not established yet"),!1):(g.debug("_isReadyToReOffer() | internal WebRTC status not ready"),!1)}},{key:"_close",value:function(){if(g.debug("close()"),this._localMediaStream&&this._localMediaStreamLocallyGenerated&&(g.debug("close() | closing local MediaStream"),I.closeMediaStream(this._localMediaStream)),this._status!==d.STATUS_TERMINATED){if(this._status=d.STATUS_TERMINATED,this._connection)try{this._connection.close()}catch(Z){g.warn("close() | error closing the RTCPeerConnection: %o",Z)}for(var u in this._timers)Object.prototype.hasOwnProperty.call(this._timers,u)&&clearTimeout(this._timers[u]);clearTimeout(this._sessionTimers.timer),this._dialog&&(this._dialog.terminate(),delete this._dialog);for(var E in this._earlyDialogs)Object.prototype.hasOwnProperty.call(this._earlyDialogs,E)&&(this._earlyDialogs[E].terminate(),delete this._earlyDialogs[E]);for(var K in this._referSubscribers)Object.prototype.hasOwnProperty.call(this._referSubscribers,K)&&delete this._referSubscribers[K];this._ua.destroyRTCSession(this)}}},{key:"_setInvite2xxTimer",value:function(u,E){var K=C.T1;function Z(){this._status===d.STATUS_WAITING_FOR_ACK&&(u.reply(200,null,["Contact: ".concat(this._contact)],E),K<C.T2&&(K=K*2,K>C.T2&&(K=C.T2)),this._timers.invite2xxTimer=setTimeout(Z.bind(this),K))}this._timers.invite2xxTimer=setTimeout(Z.bind(this),K)}},{key:"_setACKTimer",value:function(){var u=this;this._timers.ackTimer=setTimeout(function(){u._status===d.STATUS_WAITING_FOR_ACK&&(g.debug("no ACK received, terminating the session"),clearTimeout(u._timers.invite2xxTimer),u.sendRequest(m.BYE),u._ended("remote",null,m.causes.NO_ACK))},C.TIMER_H)}},{key:"_createRTCConnection",value:function(u,E){var K=this;this._connection=new RTCPeerConnection(u,E),this._connection.addEventListener("iceconnectionstatechange",function(){var Z=K._connection.iceConnectionState;Z==="failed"&&K.terminate({cause:m.causes.RTP_TIMEOUT,status_code:408,reason_phrase:m.causes.RTP_TIMEOUT})}),g.debug('emit "peerconnection"'),this.emit("peerconnection",{peerconnection:this._connection})}},{key:"_createLocalDescription",value:function(u,E){var K=this;if(g.debug("createLocalDescription()"),u!=="offer"&&u!=="answer")throw new Error('createLocalDescription() | invalid type "'.concat(u,'"'));var Z=this._connection;return this._rtcReady=!1,Promise.resolve().then(function(){return u==="offer"?Z.createOffer(E).catch(function(X){return g.warn('emit "peerconnection:createofferfailed" [error:%o]',X),K.emit("peerconnection:createofferfailed",X),Promise.reject(X)}):Z.createAnswer(E).catch(function(X){return g.warn('emit "peerconnection:createanswerfailed" [error:%o]',X),K.emit("peerconnection:createanswerfailed",X),Promise.reject(X)})}).then(function(X){return Z.setLocalDescription(X).catch(function(z){return K._rtcReady=!0,g.warn('emit "peerconnection:setlocaldescriptionfailed" [error:%o]',z),K.emit("peerconnection:setlocaldescriptionfailed",z),Promise.reject(z)})}).then(function(){var X=E&&E.iceRestart;if(Z.iceGatheringState==="complete"&&!X||Z.iceGatheringState==="gathering"&&K._iceReady){K._rtcReady=!0;var z={originator:"local",type:u,sdp:Z.localDescription.sdp};return g.debug('emit "sdp"'),K.emit("sdp",z),Promise.resolve(z.sdp)}return new Promise(function($){var eA=!1,nA,lA;K._iceReady=!1;var rA=function(){if(!eA){Z.removeEventListener("icecandidate",nA),Z.removeEventListener("icegatheringstatechange",lA),eA=!0,K._rtcReady=!0,K._iceReady=!0;var IA={originator:"local",type:u,sdp:Z.localDescription.sdp};g.debug('emit "sdp"'),K.emit("sdp",IA),$(IA.sdp)}};Z.addEventListener("icecandidate",nA=function(IA){var EA=IA.candidate;EA?K.emit("icecandidate",{candidate:EA,ready:rA}):rA()}),Z.addEventListener("icegatheringstatechange",lA=function(){Z.iceGatheringState==="complete"&&rA()})})})}},{key:"_createDialog",value:function(u,E,K){var Z=E==="UAS"?u.to_tag:u.from_tag,X=E==="UAS"?u.from_tag:u.to_tag,z=u.call_id+Z+X,$=this._earlyDialogs[z];if(K)return $?!0:($=new Y(this,u,E,Y.C.STATUS_EARLY),$.error?(g.debug($.error),this._failed("remote",u,m.causes.INTERNAL_ERROR),!1):(this._earlyDialogs[z]=$,!0));if(this._from_tag=u.from_tag,this._to_tag=u.to_tag,$)return $.update(u,E),this._dialog=$,delete this._earlyDialogs[z],!0;var eA=new Y(this,u,E);return eA.error?(g.debug(eA.error),this._failed("remote",u,m.causes.INTERNAL_ERROR),!1):(this._dialog=eA,!0)}},{key:"_receiveReinvite",value:function(u){var E=this;g.debug("receiveReinvite()");var K=u.hasHeader("Content-Type")?u.getHeader("Content-Type").toLowerCase():void 0,Z={request:u,callback:void 0,reject:z.bind(this)},X=!1;function z(){var eA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};X=!0;var nA=eA.status_code||403,lA=eA.reason_phrase||"",rA=I.cloneArray(eA.extraHeaders);if(this._status!==d.STATUS_CONFIRMED)return!1;if(nA<300||nA>=700)throw new TypeError("Invalid status_code: ".concat(nA));u.reply(nA,lA,rA)}if(this.emit("reinvite",Z),X)return;if(this._late_sdp=!1,!u.body){this._late_sdp=!0,this._remoteHold&&(this._remoteHold=!1,this._onunhold("remote")),this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return E._createLocalDescription("offer",E._rtcOfferConstraints)}).then(function(eA){$.call(E,eA)}).catch(function(){u.reply(500)});return}if(K!=="application/sdp"){g.debug("invalid Content-Type"),u.reply(415);return}this._processInDialogSdpOffer(u).then(function(eA){E._status!==d.STATUS_TERMINATED&&$.call(E,eA)}).catch(function(eA){g.warn(eA)});function $(eA){var nA=this,lA=["Contact: ".concat(this._contact)];this._handleSessionTimersInIncomingRequest(u,lA),this._late_sdp&&(eA=this._mangleOffer(eA)),u.reply(200,null,lA,eA,function(){nA._status=d.STATUS_WAITING_FOR_ACK,nA._setInvite2xxTimer(u,eA),nA._setACKTimer()}),typeof Z.callback=="function"&&Z.callback()}}},{key:"_receiveUpdate",value:function(u){var E=this;g.debug("receiveUpdate()");var K=u.hasHeader("Content-Type")?u.getHeader("Content-Type").toLowerCase():void 0,Z={request:u,callback:void 0,reject:z.bind(this)},X=!1;function z(){var eA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};X=!0;var nA=eA.status_code||403,lA=eA.reason_phrase||"",rA=I.cloneArray(eA.extraHeaders);if(this._status!==d.STATUS_CONFIRMED)return!1;if(nA<300||nA>=700)throw new TypeError("Invalid status_code: ".concat(nA));u.reply(nA,lA,rA)}if(this.emit("update",Z),X)return;if(!u.body){$.call(this,null);return}if(K!=="application/sdp"){g.debug("invalid Content-Type"),u.reply(415);return}this._processInDialogSdpOffer(u).then(function(eA){E._status!==d.STATUS_TERMINATED&&$.call(E,eA)}).catch(function(eA){g.warn(eA)});function $(eA){var nA=["Contact: ".concat(this._contact)];this._handleSessionTimersInIncomingRequest(u,nA),u.reply(200,null,nA,eA),typeof Z.callback=="function"&&Z.callback()}}},{key:"_processInDialogSdpOffer",value:function(u){var E=this;g.debug("_processInDialogSdpOffer()");var K=u.parseSDP(),Z=!1,X=p(K.media),z;try{for(X.s();!(z=X.n()).done;){var $=z.value;if(b.indexOf($.type)!==-1){var eA=$.direction||K.direction||"sendrecv";if(eA==="sendonly"||eA==="inactive")Z=!0;else{Z=!1;break}}}}catch(rA){X.e(rA)}finally{X.f()}var nA={originator:"remote",type:"offer",sdp:u.body};g.debug('emit "sdp"'),this.emit("sdp",nA);var lA=new RTCSessionDescription({type:"offer",sdp:nA.sdp});return this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){if(E._status===d.STATUS_TERMINATED)throw new Error("terminated");return E._connection.setRemoteDescription(lA).catch(function(rA){throw u.reply(488),g.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',rA),E.emit("peerconnection:setremotedescriptionfailed",rA),rA})}).then(function(){if(E._status===d.STATUS_TERMINATED)throw new Error("terminated");E._remoteHold===!0&&Z===!1?(E._remoteHold=!1,E._onunhold("remote")):E._remoteHold===!1&&Z===!0&&(E._remoteHold=!0,E._onhold("remote"))}).then(function(){if(E._status===d.STATUS_TERMINATED)throw new Error("terminated");return E._createLocalDescription("answer",E._rtcAnswerConstraints).catch(function(rA){throw u.reply(500),g.warn('emit "peerconnection:createtelocaldescriptionfailed" [error:%o]',rA),rA})}).catch(function(rA){g.warn("_processInDialogSdpOffer() failed [error: %o]",rA)}),this._connectionPromiseQueue}},{key:"_receiveRefer",value:function(u){var E=this;if(g.debug("receiveRefer()"),!u.refer_to){g.debug("no Refer-To header field present in REFER"),u.reply(400);return}if(u.refer_to.uri.scheme!==m.SIP){g.debug("Refer-To header field points to a non-SIP URI scheme"),u.reply(416);return}u.reply(202);var K=new F(this,u.cseq);g.debug('emit "refer"'),this.emit("refer",{request:u,accept:function($,eA){Z.call(E,$,eA)},reject:function(){X.call(E)}});function Z(z){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(z=typeof z=="function"?z:null,this._status!==d.STATUS_WAITING_FOR_ACK&&this._status!==d.STATUS_CONFIRMED)return!1;var eA=new H(this._ua);if(eA.on("progress",function(lA){var rA=lA.response;K.notify(rA.status_code,rA.reason_phrase)}),eA.on("accepted",function(lA){var rA=lA.response;K.notify(rA.status_code,rA.reason_phrase)}),eA.on("_failed",function(lA){var rA=lA.message,hA=lA.cause;rA?K.notify(rA.status_code,rA.reason_phrase):K.notify(487,hA)}),u.refer_to.uri.hasHeader("replaces")){var nA=decodeURIComponent(u.refer_to.uri.getHeader("replaces"));$.extraHeaders=I.cloneArray($.extraHeaders),$.extraHeaders.push("Replaces: ".concat(nA))}eA.connect(u.refer_to.uri.toAor(),$,z)}function X(){K.notify(603)}}},{key:"_receiveNotify",value:function(u){switch(g.debug("receiveNotify()"),u.event||u.reply(400),u.event.event){case"refer":{var E,K;if(u.event.params&&u.event.params.id)E=u.event.params.id,K=this._referSubscribers[E];else if(Object.keys(this._referSubscribers).length===1)K=this._referSubscribers[Object.keys(this._referSubscribers)[0]];else{u.reply(400,"Missing event id parameter");return}if(!K){u.reply(481,"Subscription does not exist");return}K.receiveNotify(u),u.reply(200);break}default:u.reply(489)}}},{key:"_receiveReplaces",value:function(u){var E=this;g.debug("receiveReplaces()");function K(X){var z=this;if(this._status!==d.STATUS_WAITING_FOR_ACK&&this._status!==d.STATUS_CONFIRMED)return!1;var $=new H(this._ua);$.on("confirmed",function(){z.terminate()}),$.init_incoming(u,X)}function Z(){g.debug("Replaced INVITE rejected by the user"),u.reply(486)}this.emit("replaces",{request:u,accept:function(z){K.call(E,z)},reject:function(){Z.call(E)}})}},{key:"_sendInitialRequest",value:function(u,E,K){var Z=this,X=new w(this._ua,this._request,{onRequestTimeout:function(){Z.onRequestTimeout()},onTransportError:function(){Z.onTransportError()},onAuthenticated:function($){Z._request=$},onReceiveResponse:function($){Z._receiveInviteResponse($)}});Promise.resolve().then(function(){if(K)return K;if(u.audio||u.video)return Z._localMediaStreamLocallyGenerated=!0,navigator.mediaDevices.getUserMedia(u).catch(function(z){throw Z._status===d.STATUS_TERMINATED?new Error("terminated"):(Z._failed("local",null,m.causes.USER_DENIED_MEDIA_ACCESS),g.warn('emit "getusermediafailed" [error:%o]',z),Z.emit("getusermediafailed",z),z)})}).then(function(z){if(Z._status===d.STATUS_TERMINATED)throw new Error("terminated");return Z._localMediaStream=z,z&&z.getTracks().forEach(function($){Z._connection.addTrack($,z)}),Z._connecting(Z._request),Z._createLocalDescription("offer",E).catch(function($){throw Z._failed("local",null,m.causes.WEBRTC_ERROR),$})}).then(function(z){if(Z._is_canceled||Z._status===d.STATUS_TERMINATED)throw new Error("terminated");Z._request.body=z,Z._status=d.STATUS_INVITE_SENT,g.debug('emit "sending" [request:%o]',Z._request),Z.emit("sending",{request:Z._request}),X.send()}).catch(function(z){Z._status!==d.STATUS_TERMINATED&&g.warn(z)})}},{key:"_getDTMFRTPSender",value:function(){var u=this._connection.getSenders().find(function(E){return E.track&&E.track.kind==="audio"});if(!(u&&u.dtmf)){g.warn("sendDTMF() | no local audio track to send DTMF with");return}return u.dtmf}},{key:"_receiveInviteResponse",value:function(u){var E=this;if(g.debug("receiveInviteResponse()"),this._dialog&&u.status_code>=200&&u.status_code<=299)if(this._dialog.id.call_id===u.call_id&&this._dialog.id.local_tag===u.from_tag&&this._dialog.id.remote_tag===u.to_tag){this.sendRequest(m.ACK);return}else{var K=new Y(this,u,"UAC");if(K.error!==void 0){g.debug(K.error);return}this.sendRequest(m.ACK),this.sendRequest(m.BYE);return}if(this._is_canceled){u.status_code>=100&&u.status_code<200?this._request.cancel(this._cancel_reason):u.status_code>=200&&u.status_code<299&&this._acceptAndTerminate(u);return}if(!(this._status!==d.STATUS_INVITE_SENT&&this._status!==d.STATUS_1XX_RECEIVED))switch(!0){case/^100$/.test(u.status_code):this._status=d.STATUS_1XX_RECEIVED;break;case/^1[0-9]{2}$/.test(u.status_code):{if(!u.to_tag){g.debug("1xx response received without to tag");break}if(u.hasHeader("contact")&&!this._createDialog(u,"UAC",!0))break;if(this._status=d.STATUS_1XX_RECEIVED,!u.body){this._progress("remote",u);break}var Z={originator:"remote",type:"answer",sdp:u.body};g.debug('emit "sdp"'),this.emit("sdp",Z);var X=new RTCSessionDescription({type:"answer",sdp:Z.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return E._connection.setRemoteDescription(X)}).then(function(){return E._progress("remote",u)}).catch(function(nA){g.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',nA),E.emit("peerconnection:setremotedescriptionfailed",nA)});break}case/^2[0-9]{2}$/.test(u.status_code):{if(this._status=d.STATUS_CONFIRMED,!u.body){this._acceptAndTerminate(u,400,m.causes.MISSING_SDP),this._failed("remote",u,m.causes.BAD_MEDIA_DESCRIPTION);break}if(!this._createDialog(u,"UAC"))break;var z={originator:"remote",type:"answer",sdp:u.body};g.debug('emit "sdp"'),this.emit("sdp",z);var $=new RTCSessionDescription({type:"answer",sdp:z.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){if(E._connection.signalingState==="stable")return E._connection.createOffer(E._rtcOfferConstraints).then(function(nA){return E._connection.setLocalDescription(nA)}).catch(function(nA){E._acceptAndTerminate(u,500,nA.toString()),E._failed("local",u,m.causes.WEBRTC_ERROR)})}).then(function(){E._connection.setRemoteDescription($).then(function(){E._handleSessionTimersInIncomingResponse(u),E._accepted("remote",u),E.sendRequest(m.ACK),E._confirmed("local",null)}).catch(function(nA){E._acceptAndTerminate(u,488,"Not Acceptable Here"),E._failed("remote",u,m.causes.BAD_MEDIA_DESCRIPTION),g.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',nA),E.emit("peerconnection:setremotedescriptionfailed",nA)})});break}default:{var eA=I.sipErrorCause(u.status_code);this._failed("remote",u,eA)}}}},{key:"_sendReinvite",value:function(){var u=this,E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};g.debug("sendReinvite()");var K=I.cloneArray(E.extraHeaders),Z=I.cloneObject(E.eventHandlers),X=E.rtcOfferConstraints||this._rtcOfferConstraints||null,z=!1;K.push("Contact: ".concat(this._contact)),K.push("Content-Type: application/sdp"),this._sessionTimers.running&&K.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(this._sessionTimers.refresher?"uac":"uas")),this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return u._createLocalDescription("offer",X)}).then(function(nA){nA=u._mangleOffer(nA);var lA={originator:"local",type:"offer",sdp:nA};g.debug('emit "sdp"'),u.emit("sdp",lA),u.sendRequest(m.INVITE,{extraHeaders:K,body:nA,eventHandlers:{onSuccessResponse:function(hA){$.call(u,hA),z=!0},onErrorResponse:function(hA){eA.call(u,hA)},onTransportError:function(){u.onTransportError()},onRequestTimeout:function(){u.onRequestTimeout()},onDialogError:function(){u.onDialogError()}}})}).catch(function(){eA()});function $(nA){var lA=this;if(this._status!==d.STATUS_TERMINATED&&(this.sendRequest(m.ACK),!z)){if(this._handleSessionTimersInIncomingResponse(nA),nA.body){if(!nA.hasHeader("Content-Type")||nA.getHeader("Content-Type").toLowerCase()!=="application/sdp"){eA.call(this);return}}else{eA.call(this);return}var rA={originator:"remote",type:"answer",sdp:nA.body};g.debug('emit "sdp"'),this.emit("sdp",rA);var hA=new RTCSessionDescription({type:"answer",sdp:rA.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return lA._connection.setRemoteDescription(hA)}).then(function(){Z.succeeded&&Z.succeeded(nA)}).catch(function(IA){eA.call(lA),g.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',IA),lA.emit("peerconnection:setremotedescriptionfailed",IA)})}}function eA(nA){Z.failed&&Z.failed(nA)}}},{key:"_sendUpdate",value:function(){var u=this,E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};g.debug("sendUpdate()");var K=I.cloneArray(E.extraHeaders),Z=I.cloneObject(E.eventHandlers),X=E.rtcOfferConstraints||this._rtcOfferConstraints||null,z=E.sdpOffer||!1,$=!1;K.push("Contact: ".concat(this._contact)),this._sessionTimers.running&&K.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(this._sessionTimers.refresher?"uac":"uas")),z?(K.push("Content-Type: application/sdp"),this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return u._createLocalDescription("offer",X)}).then(function(lA){lA=u._mangleOffer(lA);var rA={originator:"local",type:"offer",sdp:lA};g.debug('emit "sdp"'),u.emit("sdp",rA),u.sendRequest(m.UPDATE,{extraHeaders:K,body:lA,eventHandlers:{onSuccessResponse:function(IA){eA.call(u,IA),$=!0},onErrorResponse:function(IA){nA.call(u,IA)},onTransportError:function(){u.onTransportError()},onRequestTimeout:function(){u.onRequestTimeout()},onDialogError:function(){u.onDialogError()}}})}).catch(function(){nA.call(u)})):this.sendRequest(m.UPDATE,{extraHeaders:K,eventHandlers:{onSuccessResponse:function(rA){eA.call(u,rA)},onErrorResponse:function(rA){nA.call(u,rA)},onTransportError:function(){u.onTransportError()},onRequestTimeout:function(){u.onRequestTimeout()},onDialogError:function(){u.onDialogError()}}});function eA(lA){var rA=this;if(this._status!==d.STATUS_TERMINATED&&!$)if(this._handleSessionTimersInIncomingResponse(lA),z){if(lA.body){if(!lA.hasHeader("Content-Type")||lA.getHeader("Content-Type").toLowerCase()!=="application/sdp"){nA.call(this);return}}else{nA.call(this);return}var hA={originator:"remote",type:"answer",sdp:lA.body};g.debug('emit "sdp"'),this.emit("sdp",hA);var IA=new RTCSessionDescription({type:"answer",sdp:hA.sdp});this._connectionPromiseQueue=this._connectionPromiseQueue.then(function(){return rA._connection.setRemoteDescription(IA)}).then(function(){Z.succeeded&&Z.succeeded(lA)}).catch(function(EA){nA.call(rA),g.warn('emit "peerconnection:setremotedescriptionfailed" [error:%o]',EA),rA.emit("peerconnection:setremotedescriptionfailed",EA)})}else Z.succeeded&&Z.succeeded(lA)}function nA(lA){Z.failed&&Z.failed(lA)}}},{key:"_acceptAndTerminate",value:function(u,E,K){g.debug("acceptAndTerminate()");var Z=[];E&&(K=K||m.REASON_PHRASE[E]||"",Z.push("Reason: SIP ;cause=".concat(E,'; text="').concat(K,'"'))),(this._dialog||this._createDialog(u,"UAC"))&&(this.sendRequest(m.ACK),this.sendRequest(m.BYE,{extraHeaders:Z})),this._status=d.STATUS_TERMINATED}},{key:"_mangleOffer",value:function(u){if(!this._localHold&&!this._remoteHold)return u;if(u=x.parse(u),this._localHold&&!this._remoteHold){g.debug("mangleOffer() | me on hold, mangling offer");var E=p(u.media),K;try{for(E.s();!(K=E.n()).done;){var Z=K.value;b.indexOf(Z.type)!==-1&&(Z.direction?Z.direction==="sendrecv"?Z.direction="sendonly":Z.direction==="recvonly"&&(Z.direction="inactive"):Z.direction="sendonly")}}catch(rA){E.e(rA)}finally{E.f()}}else if(this._localHold&&this._remoteHold){g.debug("mangleOffer() | both on hold, mangling offer");var X=p(u.media),z;try{for(X.s();!(z=X.n()).done;){var $=z.value;b.indexOf($.type)!==-1&&($.direction="inactive")}}catch(rA){X.e(rA)}finally{X.f()}}else if(this._remoteHold){g.debug("mangleOffer() | remote on hold, mangling offer");var eA=p(u.media),nA;try{for(eA.s();!(nA=eA.n()).done;){var lA=nA.value;b.indexOf(lA.type)!==-1&&(lA.direction?lA.direction==="sendrecv"?lA.direction="recvonly":lA.direction==="recvonly"&&(lA.direction="inactive"):lA.direction="recvonly")}}catch(rA){eA.e(rA)}finally{eA.f()}}return x.write(u)}},{key:"_setLocalMediaStatus",value:function(){var u=!0,E=!0;(this._localHold||this._remoteHold)&&(u=!1,E=!1),this._audioMuted&&(u=!1),this._videoMuted&&(E=!1),this._toggleMuteAudio(!u),this._toggleMuteVideo(!E)}},{key:"_handleSessionTimersInIncomingRequest",value:function(u,E){if(this._sessionTimers.enabled){var K;u.session_expires&&u.session_expires>=m.MIN_SESSION_EXPIRES?(this._sessionTimers.currentExpires=u.session_expires,K=u.session_expires_refresher||"uas"):(this._sessionTimers.currentExpires=this._sessionTimers.defaultExpires,K="uas"),E.push("Session-Expires: ".concat(this._sessionTimers.currentExpires,";refresher=").concat(K)),this._sessionTimers.refresher=K==="uas",this._runSessionTimer()}}},{key:"_handleSessionTimersInIncomingResponse",value:function(u){if(this._sessionTimers.enabled){var E;u.session_expires&&u.session_expires>=m.MIN_SESSION_EXPIRES?(this._sessionTimers.currentExpires=u.session_expires,E=u.session_expires_refresher||"uac"):(this._sessionTimers.currentExpires=this._sessionTimers.defaultExpires,E="uac"),this._sessionTimers.refresher=E==="uac",this._runSessionTimer()}}},{key:"_runSessionTimer",value:function(){var u=this,E=this._sessionTimers.currentExpires;this._sessionTimers.running=!0,clearTimeout(this._sessionTimers.timer),this._sessionTimers.refresher?this._sessionTimers.timer=setTimeout(function(){u._status!==d.STATUS_TERMINATED&&u._isReadyToReOffer()&&(g.debug("runSessionTimer() | sending session refresh request"),u._sessionTimers.refreshMethod===m.UPDATE?u._sendUpdate():u._sendReinvite())},E*500):this._sessionTimers.timer=setTimeout(function(){u._status!==d.STATUS_TERMINATED&&(g.warn("runSessionTimer() | timer expired, terminating the session"),u.terminate({cause:m.causes.REQUEST_TIMEOUT,status_code:408,reason_phrase:"Session Timer Expired"}))},E*1100)}},{key:"_toggleMuteAudio",value:function(u){var E=this._connection.getSenders().filter(function(z){return z.track&&z.track.kind==="audio"}),K=p(E),Z;try{for(K.s();!(Z=K.n()).done;){var X=Z.value;X.track.enabled=!u}}catch(z){K.e(z)}finally{K.f()}}},{key:"_toggleMuteVideo",value:function(u){var E=this._connection.getSenders().filter(function(z){return z.track&&z.track.kind==="video"}),K=p(E),Z;try{for(K.s();!(Z=K.n()).done;){var X=Z.value;X.track.enabled=!u}}catch(z){K.e(z)}finally{K.f()}}},{key:"_newRTCSession",value:function(u,E){g.debug("newRTCSession()"),this._ua.newRTCSession(this,{originator:u,session:this,request:E})}},{key:"_connecting",value:function(u){g.debug("session connecting"),g.debug('emit "connecting"'),this.emit("connecting",{request:u})}},{key:"_progress",value:function(u,E){g.debug("session progress"),g.debug('emit "progress"'),this.emit("progress",{originator:u,response:E||null})}},{key:"_accepted",value:function(u,E){g.debug("session accepted"),this._start_time=new Date,g.debug('emit "accepted"'),this.emit("accepted",{originator:u,response:E||null})}},{key:"_confirmed",value:function(u,E){g.debug("session confirmed"),this._is_confirmed=!0,g.debug('emit "confirmed"'),this.emit("confirmed",{originator:u,ack:E||null})}},{key:"_ended",value:function(u,E,K){g.debug("session ended"),this._end_time=new Date,this._close(),g.debug('emit "ended"'),this.emit("ended",{originator:u,message:E||null,cause:K})}},{key:"_failed",value:function(u,E,K){g.debug("session failed"),g.debug('emit "_failed"'),this.emit("_failed",{originator:u,message:E||null,cause:K}),this._close(),g.debug('emit "failed"'),this.emit("failed",{originator:u,message:E||null,cause:K})}},{key:"_onhold",value:function(u){g.debug("session onhold"),this._setLocalMediaStatus(),g.debug('emit "hold"'),this.emit("hold",{originator:u})}},{key:"_onunhold",value:function(u){g.debug("session onunhold"),this._setLocalMediaStatus(),g.debug('emit "unhold"'),this.emit("unhold",{originator:u})}},{key:"_onmute",value:function(u){var E=u.audio,K=u.video;g.debug("session onmute"),this._setLocalMediaStatus(),g.debug('emit "muted"'),this.emit("muted",{audio:E,video:K})}},{key:"_onunmute",value:function(u){var E=u.audio,K=u.video;g.debug("session onunmute"),this._setLocalMediaStatus(),g.debug('emit "unmuted"'),this.emit("unmuted",{audio:E,video:K})}},{key:"C",get:function(){return d}},{key:"causes",get:function(){return m.causes}},{key:"id",get:function(){return this._id}},{key:"connection",get:function(){return this._connection}},{key:"contact",get:function(){return this._contact}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}},{key:"start_time",get:function(){return this._start_time}},{key:"end_time",get:function(){return this._end_time}},{key:"data",get:function(){return this._data},set:function(u){this._data=u}},{key:"status",get:function(){return this._status}}]),H}(W),dt}var Ct,Tn;function kl(){if(Tn)return Ct;Tn=1;function k(I){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(B){return typeof B}:k=function(B){return B&&typeof Symbol=="function"&&B.constructor===Symbol&&B!==Symbol.prototype?"symbol":typeof B},k(I)}function p(I,C){if(!(I instanceof C))throw new TypeError("Cannot call a class as a function")}function h(I,C){for(var B=0;B<C.length;B++){var Y=C[B];Y.enumerable=Y.enumerable||!1,Y.configurable=!0,"value"in Y&&(Y.writable=!0),Object.defineProperty(I,Y.key,Y)}}function r(I,C,B){return C&&h(I.prototype,C),I}function M(I,C){if(typeof C!="function"&&C!==null)throw new TypeError("Super expression must either be null or a function");I.prototype=Object.create(C&&C.prototype,{constructor:{value:I,writable:!0,configurable:!0}}),C&&Q(I,C)}function Q(I,C){return Q=Object.setPrototypeOf||function(Y,w){return Y.__proto__=w,Y},Q(I,C)}function e(I){var C=l();return function(){var Y=q(I),w;if(C){var v=q(this).constructor;w=Reflect.construct(Y,arguments,v)}else w=Y.apply(this,arguments);return S(this,w)}}function S(I,C){return C&&(k(C)==="object"||typeof C=="function")?C:T(I)}function T(I){if(I===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return I}function l(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function q(I){return q=Object.setPrototypeOf?Object.getPrototypeOf:function(B){return B.__proto__||Object.getPrototypeOf(B)},q(I)}var o=Ae().EventEmitter,c=bA(),f=UA(),W=ee(),x=OA(),D=Ie(),m=se(),G=oe(),O=new c("Message");return Ct=function(I){M(B,I);var C=e(B);function B(Y){var w;return p(this,B),w=C.call(this),w._ua=Y,w._request=null,w._closed=!1,w._direction=null,w._local_identity=null,w._remote_identity=null,w._is_replied=!1,w._data={},w}return r(B,[{key:"send",value:function(w,v){var P=this,F=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},U=w;if(w===void 0||v===void 0)throw new TypeError("Not enough arguments");if(w=this._ua.normalizeTarget(w),!w)throw new TypeError("Invalid target: ".concat(U));var L=x.cloneArray(F.extraHeaders),g=x.cloneObject(F.eventHandlers),d=F.contentType||"text/plain",b={};F.fromUserName&&(b.from_uri=new G("sip",F.fromUserName,this._ua.configuration.uri.host),L.push("P-Preferred-Identity: ".concat(this._ua.configuration.uri.toString()))),F.fromDisplayName&&(b.from_display_name=F.fromDisplayName);for(var R in g)Object.prototype.hasOwnProperty.call(g,R)&&this.on(R,g[R]);L.push("Content-Type: ".concat(d)),this._request=new W.OutgoingRequest(f.MESSAGE,w,this._ua,b,L),v&&(this._request.body=v);var j=new D(this._ua,this._request,{onRequestTimeout:function(){P._onRequestTimeout()},onTransportError:function(){P._onTransportError()},onReceiveResponse:function(J){P._receiveResponse(J)}});this._newMessage("local",this._request),j.send()}},{key:"init_incoming",value:function(w){this._request=w,this._newMessage("remote",w),this._is_replied||(this._is_replied=!0,w.reply(200)),this._close()}},{key:"accept",value:function(){var w=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},v=x.cloneArray(w.extraHeaders),P=w.body;if(this._direction!=="incoming")throw new m.NotSupportedError('"accept" not supported for outgoing Message');if(this._is_replied)throw new Error("incoming Message already replied");this._is_replied=!0,this._request.reply(200,null,v,P)}},{key:"reject",value:function(){var w=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},v=w.status_code||480,P=w.reason_phrase,F=x.cloneArray(w.extraHeaders),U=w.body;if(this._direction!=="incoming")throw new m.NotSupportedError('"reject" not supported for outgoing Message');if(this._is_replied)throw new Error("incoming Message already replied");if(v<300||v>=700)throw new TypeError("Invalid status_code: ".concat(v));this._is_replied=!0,this._request.reply(v,P,F,U)}},{key:"_receiveResponse",value:function(w){if(!this._closed)switch(!0){case/^1[0-9]{2}$/.test(w.status_code):break;case/^2[0-9]{2}$/.test(w.status_code):this._succeeded("remote",w);break;default:{var v=x.sipErrorCause(w.status_code);this._failed("remote",w,v);break}}}},{key:"_onRequestTimeout",value:function(){this._closed||this._failed("system",null,f.causes.REQUEST_TIMEOUT)}},{key:"_onTransportError",value:function(){this._closed||this._failed("system",null,f.causes.CONNECTION_ERROR)}},{key:"_close",value:function(){this._closed=!0,this._ua.destroyMessage(this)}},{key:"_newMessage",value:function(w,v){w==="remote"?(this._direction="incoming",this._local_identity=v.to,this._remote_identity=v.from):w==="local"&&(this._direction="outgoing",this._local_identity=v.from,this._remote_identity=v.to),this._ua.newMessage(this,{originator:w,message:this,request:v})}},{key:"_failed",value:function(w,v,P){O.debug("MESSAGE failed"),this._close(),O.debug('emit "failed"'),this.emit("failed",{originator:w,response:v||null,cause:P})}},{key:"_succeeded",value:function(w,v){O.debug("MESSAGE succeeded"),this._close(),O.debug('emit "succeeded"'),this.emit("succeeded",{originator:w,response:v})}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}}]),B}(o),Ct}var It,wn;function vl(){if(wn)return It;wn=1;function k(O){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(C){return typeof C}:k=function(C){return C&&typeof Symbol=="function"&&C.constructor===Symbol&&C!==Symbol.prototype?"symbol":typeof C},k(O)}function p(O,I){if(!(O instanceof I))throw new TypeError("Cannot call a class as a function")}function h(O,I){for(var C=0;C<I.length;C++){var B=I[C];B.enumerable=B.enumerable||!1,B.configurable=!0,"value"in B&&(B.writable=!0),Object.defineProperty(O,B.key,B)}}function r(O,I,C){return I&&h(O.prototype,I),O}function M(O,I){if(typeof I!="function"&&I!==null)throw new TypeError("Super expression must either be null or a function");O.prototype=Object.create(I&&I.prototype,{constructor:{value:O,writable:!0,configurable:!0}}),I&&Q(O,I)}function Q(O,I){return Q=Object.setPrototypeOf||function(B,Y){return B.__proto__=Y,B},Q(O,I)}function e(O){var I=l();return function(){var B=q(O),Y;if(I){var w=q(this).constructor;Y=Reflect.construct(B,arguments,w)}else Y=B.apply(this,arguments);return S(this,Y)}}function S(O,I){return I&&(k(I)==="object"||typeof I=="function")?I:T(O)}function T(O){if(O===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return O}function l(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function q(O){return q=Object.setPrototypeOf?Object.getPrototypeOf:function(C){return C.__proto__||Object.getPrototypeOf(C)},q(O)}var o=Ae().EventEmitter,c=bA(),f=UA(),W=ee(),x=OA(),D=Ie(),m=se(),G=new c("Options");return It=function(O){M(C,O);var I=e(C);function C(B){var Y;return p(this,C),Y=I.call(this),Y._ua=B,Y._request=null,Y._closed=!1,Y._direction=null,Y._local_identity=null,Y._remote_identity=null,Y._is_replied=!1,Y._data={},Y}return r(C,[{key:"send",value:function(Y,w){var v=this,P=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},F=Y;if(Y===void 0)throw new TypeError("A target is required for OPTIONS");if(Y=this._ua.normalizeTarget(Y),!Y)throw new TypeError("Invalid target: ".concat(F));var U=x.cloneArray(P.extraHeaders),L=x.cloneObject(P.eventHandlers),g=P.contentType||"application/sdp";for(var d in L)Object.prototype.hasOwnProperty.call(L,d)&&this.on(d,L[d]);U.push("Content-Type: ".concat(g)),this._request=new W.OutgoingRequest(f.OPTIONS,Y,this._ua,null,U),w&&(this._request.body=w);var b=new D(this._ua,this._request,{onRequestTimeout:function(){v._onRequestTimeout()},onTransportError:function(){v._onTransportError()},onReceiveResponse:function(j){v._receiveResponse(j)}});this._newOptions("local",this._request),b.send()}},{key:"init_incoming",value:function(Y){this._request=Y,this._newOptions("remote",Y),this._is_replied||(this._is_replied=!0,Y.reply(200)),this._close()}},{key:"accept",value:function(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=x.cloneArray(Y.extraHeaders),v=Y.body;if(this._direction!=="incoming")throw new m.NotSupportedError('"accept" not supported for outgoing Options');if(this._is_replied)throw new Error("incoming Options already replied");this._is_replied=!0,this._request.reply(200,null,w,v)}},{key:"reject",value:function(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=Y.status_code||480,v=Y.reason_phrase,P=x.cloneArray(Y.extraHeaders),F=Y.body;if(this._direction!=="incoming")throw new m.NotSupportedError('"reject" not supported for outgoing Options');if(this._is_replied)throw new Error("incoming Options already replied");if(w<300||w>=700)throw new TypeError("Invalid status_code: ".concat(w));this._is_replied=!0,this._request.reply(w,v,P,F)}},{key:"_receiveResponse",value:function(Y){if(!this._closed)switch(!0){case/^1[0-9]{2}$/.test(Y.status_code):break;case/^2[0-9]{2}$/.test(Y.status_code):this._succeeded("remote",Y);break;default:{var w=x.sipErrorCause(Y.status_code);this._failed("remote",Y,w);break}}}},{key:"_onRequestTimeout",value:function(){this._closed||this._failed("system",null,f.causes.REQUEST_TIMEOUT)}},{key:"_onTransportError",value:function(){this._closed||this._failed("system",null,f.causes.CONNECTION_ERROR)}},{key:"_close",value:function(){this._closed=!0,this._ua.destroyMessage(this)}},{key:"_newOptions",value:function(Y,w){Y==="remote"?(this._direction="incoming",this._local_identity=w.to,this._remote_identity=w.from):Y==="local"&&(this._direction="outgoing",this._local_identity=w.from,this._remote_identity=w.to),this._ua.newOptions(this,{originator:Y,message:this,request:w})}},{key:"_failed",value:function(Y,w,v){G.debug("OPTIONS failed"),this._close(),G.debug('emit "failed"'),this.emit("failed",{originator:Y,response:w||null,cause:v})}},{key:"_succeeded",value:function(Y,w){G.debug("OPTIONS succeeded"),this._close(),G.debug('emit "succeeded"'),this.emit("succeeded",{originator:Y,response:w})}},{key:"direction",get:function(){return this._direction}},{key:"local_identity",get:function(){return this._local_identity}},{key:"remote_identity",get:function(){return this._remote_identity}}]),C}(o),It}var pt={},Mn;function Rn(){if(Mn)return pt;Mn=1;var k=bA(),p=OA(),h=zA(),r=new k("Socket");return pt.isSocket=function(M){if(Array.isArray(M))return!1;if(typeof M>"u")return r.warn("undefined JsSIP.Socket instance"),!1;try{if(!p.isString(M.url))throw r.warn("missing or invalid JsSIP.Socket url property"),new Error("Missing or invalid JsSIP.Socket url property");if(!p.isString(M.via_transport))throw r.warn("missing or invalid JsSIP.Socket via_transport property"),new Error("Missing or invalid JsSIP.Socket via_transport property");if(h.parse(M.sip_uri,"SIP_URI")===-1)throw r.warn("missing or invalid JsSIP.Socket sip_uri property"),new Error("missing or invalid JsSIP.Socket sip_uri property")}catch{return!1}try{["connect","disconnect","send"].forEach(function(Q){if(!p.isFunction(M[Q]))throw r.warn("missing or invalid JsSIP.Socket method: ".concat(Q)),new Error("Missing or invalid JsSIP.Socket method: ".concat(Q))})}catch{return!1}return!0},pt}var mt,kn;function Ul(){if(kn)return mt;kn=1;function k(T,l){if(!(T instanceof l))throw new TypeError("Cannot call a class as a function")}function p(T,l){for(var q=0;q<l.length;q++){var o=l[q];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(T,o.key,o)}}function h(T,l,q){return l&&p(T.prototype,l),T}var r=bA(),M=Rn(),Q=UA(),e=new r("Transport"),S={STATUS_CONNECTED:0,STATUS_CONNECTING:1,STATUS_DISCONNECTED:2,SOCKET_STATUS_READY:0,SOCKET_STATUS_ERROR:1,recovery_options:{min_interval:Q.CONNECTION_RECOVERY_MIN_INTERVAL,max_interval:Q.CONNECTION_RECOVERY_MAX_INTERVAL}};return mt=function(){function T(l){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:S.recovery_options;k(this,T),e.debug("new()"),this.status=S.STATUS_DISCONNECTED,this.socket=null,this.sockets=[],this.recovery_options=q,this.recover_attempts=0,this.recovery_timer=null,this.close_requested=!1;try{this.textDecoder=new TextDecoder("utf8")}catch(o){e.warn("cannot use TextDecoder: ".concat(o))}if(typeof l>"u")throw new TypeError("Invalid argument. undefined 'sockets' argument");l instanceof Array||(l=[l]),l.forEach(function(o){if(!M.isSocket(o.socket))throw new TypeError("Invalid argument. invalid 'JsSIP.Socket' instance");if(o.weight&&!Number(o.weight))throw new TypeError("Invalid argument. 'weight' attribute is not a number");this.sockets.push({socket:o.socket,weight:o.weight||0,status:S.SOCKET_STATUS_READY})},this),this._getSocket()}return h(T,[{key:"connect",value:function(){if(e.debug("connect()"),this.isConnected()){e.debug("Transport is already connected");return}else if(this.isConnecting()){e.debug("Transport is connecting");return}this.close_requested=!1,this.status=S.STATUS_CONNECTING,this.onconnecting({socket:this.socket,attempts:this.recover_attempts}),this.close_requested||(this.socket.onconnect=this._onConnect.bind(this),this.socket.ondisconnect=this._onDisconnect.bind(this),this.socket.ondata=this._onData.bind(this),this.socket.connect())}},{key:"disconnect",value:function(){e.debug("close()"),this.close_requested=!0,this.recover_attempts=0,this.status=S.STATUS_DISCONNECTED,this.recovery_timer!==null&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.socket.onconnect=function(){},this.socket.ondisconnect=function(){},this.socket.ondata=function(){},this.socket.disconnect(),this.ondisconnect({socket:this.socket,error:!1})}},{key:"send",value:function(q){if(e.debug("send()"),!this.isConnected())return e.warn("unable to send message, transport is not connected"),!1;var o=q.toString();return e.debug(`sending message:
|
|
52
|
-
|
|
53
|
-
`.concat(o,`
|
|
54
|
-
`)),this.socket.send(o)}},{key:"isConnected",value:function(){return this.status===S.STATUS_CONNECTED}},{key:"isConnecting",value:function(){return this.status===S.STATUS_CONNECTING}},{key:"_reconnect",value:function(){var q=this;this.recover_attempts+=1;var o=Math.floor(Math.random()*Math.pow(2,this.recover_attempts)+1);o<this.recovery_options.min_interval?o=this.recovery_options.min_interval:o>this.recovery_options.max_interval&&(o=this.recovery_options.max_interval),e.debug("reconnection attempt: ".concat(this.recover_attempts,". next connection attempt in ").concat(o," seconds")),this.recovery_timer=setTimeout(function(){!q.close_requested&&!(q.isConnected()||q.isConnecting())&&(q._getSocket(),q.connect())},o*1e3)}},{key:"_getSocket",value:function(){var q=[];if(this.sockets.forEach(function(c){c.status!==S.SOCKET_STATUS_ERROR&&(q.length===0?q.push(c):c.weight>q[0].weight?q=[c]:c.weight===q[0].weight&&q.push(c))}),q.length===0){this.sockets.forEach(function(c){c.status=S.SOCKET_STATUS_READY}),this._getSocket();return}var o=Math.floor(Math.random()*q.length);this.socket=q[o].socket}},{key:"_onConnect",value:function(){this.recover_attempts=0,this.status=S.STATUS_CONNECTED,this.recovery_timer!==null&&(clearTimeout(this.recovery_timer),this.recovery_timer=null),this.onconnect({socket:this})}},{key:"_onDisconnect",value:function(q,o,c){this.status=S.STATUS_DISCONNECTED,this.ondisconnect({socket:this.socket,error:q,code:o,reason:c}),!this.close_requested&&(this.sockets.forEach(function(f){this.socket===f.socket&&(f.status=S.SOCKET_STATUS_ERROR)},this),this._reconnect(q))}},{key:"_onData",value:function(q){if(q===`\r
|
|
38
|
+
`,r+=t.body.content):r+=`Content-Length: 0\r
|
|
55
39
|
\r
|
|
56
|
-
`){e.debug("received message with double-CRLF Keep Alive request");try{this.socket.send(`\r
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
`
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
`);if(
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
`)
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
`),
|
|
73
|
-
|
|
74
|
-
`),v+=`\r
|
|
75
|
-
|
|
76
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var x=!0,D=!1,m;return{s:function(){c=q[Symbol.iterator]()},n:function(){var O=c.next();return x=O.done,O},e:function(O){D=!0,m=O},f:function(){try{!x&&c.return!=null&&c.return()}finally{if(D)throw m}}}}function p(q,o){if(q){if(typeof q=="string")return h(q,o);var c=Object.prototype.toString.call(q).slice(8,-1);if(c==="Object"&&q.constructor&&(c=q.constructor.name),c==="Map"||c==="Set")return Array.from(q);if(c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return h(q,o)}}function h(q,o){(o==null||o>q.length)&&(o=q.length);for(var c=0,f=new Array(o);c<o;c++)f[c]=q[c];return f}var r=OA(),M=UA(),Q=zA(),e=oe(),S=Rn(),T=se();ke.settings={authorization_user:null,password:null,realm:null,ha1:null,authorization_jwt:null,display_name:null,uri:null,contact_uri:null,instance_id:null,use_preloaded_route:!1,session_timers:!0,session_timers_refresh_method:M.UPDATE,session_timers_force_refresher:!1,no_answer_timeout:60,register:!0,register_expires:600,registrar_server:null,sockets:null,connection_recovery_max_interval:M.CONNECTION_RECOVERY_MAX_INTERVAL,connection_recovery_min_interval:M.CONNECTION_RECOVERY_MIN_INTERVAL,extra_headers:null,via_host:"".concat(r.createRandomToken(12),".invalid")};var l={mandatory:{sockets:function(o){var c=[];if(S.isSocket(o))c.push({socket:o});else if(Array.isArray(o)&&o.length){var f=k(o),W;try{for(f.s();!(W=f.n()).done;){var x=W.value;Object.prototype.hasOwnProperty.call(x,"socket")&&S.isSocket(x.socket)?c.push(x):S.isSocket(x)&&c.push({socket:x})}}catch(D){f.e(D)}finally{f.f()}}else return;return c},uri:function(o){/^sip:/i.test(o)||(o="".concat(M.SIP,":").concat(o));var c=e.parse(o);if(c)return c.user?c:void 0}},optional:{authorization_user:function(o){if(Q.parse('"'.concat(o,'"'),"quoted_string")!==-1)return o},authorization_jwt:function(o){if(typeof o=="string")return o},user_agent:function(o){if(typeof o=="string")return o},connection_recovery_max_interval:function(o){if(r.isDecimal(o)){var c=Number(o);if(c>0)return c}},connection_recovery_min_interval:function(o){if(r.isDecimal(o)){var c=Number(o);if(c>0)return c}},contact_uri:function(o){if(typeof o=="string"){var c=Q.parse(o,"SIP_URI");if(c!==-1)return c}},display_name:function(o){return o},instance_id:function(o){if(/^uuid:/i.test(o)&&(o=o.substr(5)),Q.parse(o,"uuid")!==-1)return o},no_answer_timeout:function(o){if(r.isDecimal(o)){var c=Number(o);if(c>0)return c}},session_timers:function(o){if(typeof o=="boolean")return o},session_timers_refresh_method:function(o){if(typeof o=="string"&&(o=o.toUpperCase(),o===M.INVITE||o===M.UPDATE))return o},session_timers_force_refresher:function(o){if(typeof o=="boolean")return o},password:function(o){return String(o)},realm:function(o){return String(o)},ha1:function(o){return String(o)},register:function(o){if(typeof o=="boolean")return o},register_expires:function(o){if(r.isDecimal(o)){var c=Number(o);if(c>0)return c}},registrar_server:function(o){/^sip:/i.test(o)||(o="".concat(M.SIP,":").concat(o));var c=e.parse(o);if(c)return c.user?void 0:c},use_preloaded_route:function(o){if(typeof o=="boolean")return o},extra_headers:function(o){var c=[];if(Array.isArray(o)&&o.length){var f=k(o),W;try{for(f.s();!(W=f.n()).done;){var x=W.value;typeof x=="string"&&c.push(x)}}catch(D){f.e(D)}finally{f.f()}}else return;return c}}};return ke.load=function(q,o){for(var c in l.mandatory)if(o.hasOwnProperty(c)){var f=o[c],W=l.mandatory[c](f);if(W!==void 0)q[c]=W;else throw new T.ConfigurationError(c,f)}else throw new T.ConfigurationError(c);for(var x in l.optional)if(o.hasOwnProperty(x)){var D=o[x];if(r.isEmpty(D))continue;var m=l.optional[x](D);if(m!==void 0)q[x]=m;else throw new T.ConfigurationError(x,D)}},ke}var yt,Bn;function Yl(){if(Bn)return yt;Bn=1;function k(R){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(H){return typeof H}:k=function(H){return H&&typeof Symbol=="function"&&H.constructor===Symbol&&H!==Symbol.prototype?"symbol":typeof H},k(R)}function p(R,j){if(!(R instanceof j))throw new TypeError("Cannot call a class as a function")}function h(R,j){for(var H=0;H<j.length;H++){var J=j[H];J.enumerable=J.enumerable||!1,J.configurable=!0,"value"in J&&(J.writable=!0),Object.defineProperty(R,J.key,J)}}function r(R,j,H){return j&&h(R.prototype,j),H&&h(R,H),R}function M(R,j){if(typeof j!="function"&&j!==null)throw new TypeError("Super expression must either be null or a function");R.prototype=Object.create(j&&j.prototype,{constructor:{value:R,writable:!0,configurable:!0}}),j&&Q(R,j)}function Q(R,j){return Q=Object.setPrototypeOf||function(J,u){return J.__proto__=u,J},Q(R,j)}function e(R){var j=l();return function(){var J=q(R),u;if(j){var E=q(this).constructor;u=Reflect.construct(J,arguments,E)}else u=J.apply(this,arguments);return S(this,u)}}function S(R,j){return j&&(k(j)==="object"||typeof j=="function")?j:T(R)}function T(R){if(R===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return R}function l(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function q(R){return q=Object.setPrototypeOf?Object.getPrototypeOf:function(H){return H.__proto__||Object.getPrototypeOf(H)},q(R)}var o=Ae().EventEmitter,c=bA(),f=UA(),W=ml(),x=Rl(),D=kl(),m=vl(),G=Ce(),O=Ul(),I=OA(),C=se(),B=oe(),Y=Ql(),w=ee(),v=Bl(),P=bl(),F=new c("UA"),U={STATUS_INIT:0,STATUS_READY:1,STATUS_USER_CLOSED:2,STATUS_NOT_READY:3,CONFIGURATION_ERROR:1,NETWORK_ERROR:2};yt=function(R){M(H,R);var j=e(H);r(H,null,[{key:"C",get:function(){return U}}]);function H(J){var u;if(p(this,H),F.debug("new() [configuration:%o]",J),u=j.call(this),u._cache={credentials:{}},u._configuration=Object.assign({},P.settings),u._dynConfiguration={},u._dialogs={},u._applicants={},u._sessions={},u._transport=null,u._contact=null,u._status=U.STATUS_INIT,u._error=null,u._transactions={nist:{},nict:{},ist:{},ict:{}},u._data={},u._closeTimer=null,J===void 0)throw new TypeError("Not enough arguments");try{u._loadConfig(J)}catch(E){throw u._status=U.STATUS_NOT_READY,u._error=U.CONFIGURATION_ERROR,E}return u._registrator=new W(T(u)),u}return r(H,[{key:"start",value:function(){F.debug("start()"),this._status===U.STATUS_INIT?this._transport.connect():this._status===U.STATUS_USER_CLOSED?(F.debug("restarting UA"),this._closeTimer!==null&&(clearTimeout(this._closeTimer),this._closeTimer=null,this._transport.disconnect()),this._status=U.STATUS_INIT,this._transport.connect()):this._status===U.STATUS_READY?F.debug("UA is in READY status, not restarted"):F.debug("ERROR: connection is down, Auto-Recovery system is trying to reconnect"),this._dynConfiguration.register=this._configuration.register}},{key:"register",value:function(){F.debug("register()"),this._dynConfiguration.register=!0,this._registrator.register()}},{key:"unregister",value:function(u){F.debug("unregister()"),this._dynConfiguration.register=!1,this._registrator.unregister(u)}},{key:"registrator",value:function(){return this._registrator}},{key:"isRegistered",value:function(){return this._registrator.registered}},{key:"isConnected",value:function(){return this._transport.isConnected()}},{key:"call",value:function(u,E){F.debug("call()");var K=new x(this);return K.connect(u,E),K}},{key:"sendMessage",value:function(u,E,K){F.debug("sendMessage()");var Z=new D(this);return Z.send(u,E,K),Z}},{key:"sendOptions",value:function(u,E,K){F.debug("sendOptions()");var Z=new m(this);return Z.send(u,E,K),Z}},{key:"terminateSessions",value:function(u){F.debug("terminateSessions()");for(var E in this._sessions)this._sessions[E].isEnded()||this._sessions[E].terminate(u)}},{key:"stop",value:function(){var u=this;if(F.debug("stop()"),this._dynConfiguration={},this._status===U.STATUS_USER_CLOSED){F.debug("UA already closed");return}this._registrator.close();var E=Object.keys(this._sessions).length;for(var K in this._sessions)if(Object.prototype.hasOwnProperty.call(this._sessions,K)){F.debug("closing session ".concat(K));try{this._sessions[K].terminate()}catch{}}for(var Z in this._applicants)if(Object.prototype.hasOwnProperty.call(this._applicants,Z))try{this._applicants[Z].close()}catch{}this._status=U.STATUS_USER_CLOSED;var X=Object.keys(this._transactions.nict).length+Object.keys(this._transactions.nist).length+Object.keys(this._transactions.ict).length+Object.keys(this._transactions.ist).length;X===0&&E===0?this._transport.disconnect():this._closeTimer=setTimeout(function(){u._closeTimer=null,u._transport.disconnect()},2e3)}},{key:"normalizeTarget",value:function(u){return I.normalizeTarget(u,this._configuration.hostport_params)}},{key:"get",value:function(u){switch(u){case"authorization_user":return this._configuration.authorization_user;case"realm":return this._configuration.realm;case"ha1":return this._configuration.ha1;case"authorization_jwt":return this._configuration.authorization_jwt;default:F.warn('get() | cannot get "%s" parameter in runtime',u);return}}},{key:"set",value:function(u,E){switch(u){case"authorization_user":{this._configuration.authorization_user=String(E);break}case"password":{this._configuration.password=String(E);break}case"realm":{this._configuration.realm=String(E);break}case"ha1":{this._configuration.ha1=String(E),this._configuration.password=null;break}case"authorization_jwt":{this._configuration.authorization_jwt=String(E);break}case"display_name":{this._configuration.display_name=E;break}case"extra_headers":{this._configuration.extra_headers=E;break}default:return F.warn('set() | cannot set "%s" parameter in runtime',u),!1}return!0}},{key:"newTransaction",value:function(u){this._transactions[u.type][u.id]=u,this.emit("newTransaction",{transaction:u})}},{key:"destroyTransaction",value:function(u){delete this._transactions[u.type][u.id],this.emit("transactionDestroyed",{transaction:u})}},{key:"newDialog",value:function(u){this._dialogs[u.id]=u}},{key:"destroyDialog",value:function(u){delete this._dialogs[u.id]}},{key:"newMessage",value:function(u,E){this._applicants[u]=u,this.emit("newMessage",E)}},{key:"newOptions",value:function(u,E){this._applicants[u]=u,this.emit("newOptions",E)}},{key:"destroyMessage",value:function(u){delete this._applicants[u]}},{key:"newRTCSession",value:function(u,E){this._sessions[u.id]=u,this.emit("newRTCSession",E)}},{key:"destroyRTCSession",value:function(u){delete this._sessions[u.id]}},{key:"registered",value:function(u){this.emit("registered",u)}},{key:"unregistered",value:function(u){this.emit("unregistered",u)}},{key:"registrationFailed",value:function(u){this.emit("registrationFailed",u)}},{key:"receiveRequest",value:function(u){var E=u.method;if(u.ruri.user!==this._configuration.uri.user&&u.ruri.user!==this._contact.uri.user){F.debug("Request-URI does not point to us"),u.method!==f.ACK&&u.reply_sl(404);return}if(u.ruri.scheme===f.SIPS){u.reply_sl(416);return}if(!G.checkTransaction(this,u)){if(E===f.INVITE?new G.InviteServerTransaction(this,this._transport,u):E!==f.ACK&&E!==f.CANCEL&&new G.NonInviteServerTransaction(this,this._transport,u),E===f.OPTIONS){if(this.listeners("newOptions").length===0){u.reply(200);return}var K=new m(this);K.init_incoming(u)}else if(E===f.MESSAGE){if(this.listeners("newMessage").length===0){u.reply(405);return}var Z=new D(this);Z.init_incoming(u)}else if(E===f.INVITE&&!u.to_tag&&this.listeners("newRTCSession").length===0){u.reply(405);return}var X,z;if(u.to_tag)X=this._findDialog(u.call_id,u.from_tag,u.to_tag),X?X.receiveRequest(u):E===f.NOTIFY?(z=this._findSession(u),z?z.receiveRequest(u):(F.debug("received NOTIFY request for a non existent subscription"),u.reply(481,"Subscription does not exist"))):E!==f.ACK&&u.reply(481);else switch(E){case f.INVITE:if(window.RTCPeerConnection)if(u.hasHeader("replaces")){var $=u.replaces;X=this._findDialog($.call_id,$.from_tag,$.to_tag),X?(z=X.owner,z.isEnded()?u.reply(603):z.receiveRequest(u)):u.reply(481)}else z=new x(this),z.init_incoming(u);else F.warn("INVITE received but WebRTC is not supported"),u.reply(488);break;case f.BYE:u.reply(481);break;case f.CANCEL:z=this._findSession(u),z?z.receiveRequest(u):F.debug("received CANCEL request for a non existent session");break;case f.ACK:break;case f.NOTIFY:this.emit("sipEvent",{event:u.event,request:u}),u.reply(200);break;default:u.reply(405);break}}}},{key:"_findSession",value:function(u){var E=u.call_id,K=u.from_tag,Z=u.to_tag,X=E+K,z=this._sessions[X],$=E+Z,eA=this._sessions[$];return z||eA||null}},{key:"_findDialog",value:function(u,E,K){var Z=u+E+K,X=this._dialogs[Z];return X||(Z=u+K+E,X=this._dialogs[Z],X||null)}},{key:"_loadConfig",value:function(u){try{P.load(this._configuration,u)}catch($){throw $}this._configuration.display_name===0&&(this._configuration.display_name="0"),this._configuration.instance_id||(this._configuration.instance_id=I.newUUID()),this._configuration.jssip_id=I.createRandomToken(5);var E=this._configuration.uri.clone();E.user=null,this._configuration.hostport_params=E.toString().replace(/^sip:/i,"");try{this._transport=new O(this._configuration.sockets,{max_interval:this._configuration.connection_recovery_max_interval,min_interval:this._configuration.connection_recovery_min_interval}),this._transport.onconnecting=L.bind(this),this._transport.onconnect=g.bind(this),this._transport.ondisconnect=d.bind(this),this._transport.ondata=b.bind(this)}catch($){throw F.warn($),new C.ConfigurationError("sockets",this._configuration.sockets)}if(delete this._configuration.sockets,this._configuration.authorization_user||(this._configuration.authorization_user=this._configuration.uri.user),!this._configuration.registrar_server){var K=this._configuration.uri.clone();K.user=null,K.clearParams(),K.clearHeaders(),this._configuration.registrar_server=K}this._configuration.no_answer_timeout*=1e3,this._configuration.contact_uri?this._configuration.via_host=this._configuration.contact_uri.host:this._configuration.contact_uri=new B("sip",I.createRandomToken(8),this._configuration.via_host,null,{transport:"ws"}),this._contact={pub_gruu:null,temp_gruu:null,uri:this._configuration.contact_uri,toString:function(){var eA=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},nA=eA.anonymous||null,lA=eA.outbound||null,rA="<";return nA?rA+=this.temp_gruu||"sip:anonymous@anonymous.invalid;transport=ws":rA+=this.pub_gruu||this.uri.toString(),lA&&(nA?!this.temp_gruu:!this.pub_gruu)&&(rA+=";ob"),rA+=">",rA}};var Z=["authorization_user","password","realm","ha1","authorization_jwt","display_name","register","extra_headers"];for(var X in this._configuration)Object.prototype.hasOwnProperty.call(this._configuration,X)&&(Z.indexOf(X)!==-1?Object.defineProperty(this._configuration,X,{writable:!0,configurable:!1}):Object.defineProperty(this._configuration,X,{writable:!1,configurable:!1}));F.debug("configuration parameters after validation:");for(var z in this._configuration)if(Object.prototype.hasOwnProperty.call(P.settings,z))switch(z){case"uri":case"registrar_server":F.debug("- ".concat(z,": ").concat(this._configuration[z]));break;case"password":case"ha1":case"authorization_jwt":F.debug("- ".concat(z,": NOT SHOWN"));break;default:F.debug("- ".concat(z,": ").concat(JSON.stringify(this._configuration[z])))}}},{key:"C",get:function(){return U}},{key:"status",get:function(){return this._status}},{key:"contact",get:function(){return this._contact}},{key:"configuration",get:function(){return this._configuration}},{key:"transport",get:function(){return this._transport}}]),H}(o);function L(R){this.emit("connecting",R)}function g(R){this._status!==U.STATUS_USER_CLOSED&&(this._status=U.STATUS_READY,this._error=null,this.emit("connected",R),this._dynConfiguration.register&&this._registrator.register())}function d(R){for(var j=["nict","ict","nist","ist"],H=0,J=j;H<J.length;H++){var u=J[H];for(var E in this._transactions[u])Object.prototype.hasOwnProperty.call(this._transactions[u],E)&&this._transactions[u][E].onTransportError()}this.emit("disconnected",R),this._registrator.onTransportClosed(),this._status!==U.STATUS_USER_CLOSED&&(this._status=U.STATUS_NOT_READY,this._error=U.NETWORK_ERROR)}function b(R){var j=R.transport,H=R.message;if(H=Y.parseMessage(H,this),!!H&&!(this._status===U.STATUS_USER_CLOSED&&H instanceof w.IncomingRequest)&&v(H,this,j)){if(H instanceof w.IncomingRequest)H.transport=j,this.receiveRequest(H);else if(H instanceof w.IncomingResponse){var J;switch(H.method){case f.INVITE:J=this._transactions.ict[H.via_branch],J&&J.receiveResponse(H);break;case f.ACK:break;default:J=this._transactions.nict[H.via_branch],J&&J.receiveResponse(H);break}}}}return yt}var Tt,bn;function Dl(){if(bn)return Tt;bn=1;function k(e,S){if(!(e instanceof S))throw new TypeError("Cannot call a class as a function")}function p(e,S){for(var T=0;T<S.length;T++){var l=S[T];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(e,l.key,l)}}function h(e,S,T){return S&&p(e.prototype,S),e}var r=bA(),M=zA(),Q=new r("WebSocketInterface");return Tt=function(){function e(S){k(this,e),Q.debug('new() [url:"%s"]',S),this._url=S,this._sip_uri=null,this._via_transport=null,this._ws=null;var T=M.parse(S,"absoluteURI");if(T===-1)throw Q.warn("invalid WebSocket URI: ".concat(S)),new TypeError("Invalid argument: ".concat(S));if(T.scheme!=="wss"&&T.scheme!=="ws")throw Q.warn("invalid WebSocket URI scheme: ".concat(T.scheme)),new TypeError("Invalid argument: ".concat(S));this._sip_uri="sip:".concat(T.host).concat(T.port?":".concat(T.port):"",";transport=ws"),this._via_transport=T.scheme.toUpperCase()}return h(e,[{key:"connect",value:function(){if(Q.debug("connect()"),this.isConnected()){Q.debug("WebSocket ".concat(this._url," is already connected"));return}else if(this.isConnecting()){Q.debug("WebSocket ".concat(this._url," is connecting"));return}this._ws&&this.disconnect(),Q.debug("connecting to WebSocket ".concat(this._url));try{this._ws=new WebSocket(this._url,"sip"),this._ws.binaryType="arraybuffer",this._ws.onopen=this._onOpen.bind(this),this._ws.onclose=this._onClose.bind(this),this._ws.onmessage=this._onMessage.bind(this),this._ws.onerror=this._onError.bind(this)}catch(T){this._onError(T)}}},{key:"disconnect",value:function(){Q.debug("disconnect()"),this._ws&&(this._ws.onopen=function(){},this._ws.onclose=function(){},this._ws.onmessage=function(){},this._ws.onerror=function(){},this._ws.close(),this._ws=null)}},{key:"send",value:function(T){return Q.debug("send()"),this.isConnected()?(this._ws.send(T),!0):(Q.warn("unable to send message, WebSocket is not open"),!1)}},{key:"isConnected",value:function(){return this._ws&&this._ws.readyState===this._ws.OPEN}},{key:"isConnecting",value:function(){return this._ws&&this._ws.readyState===this._ws.CONNECTING}},{key:"_onOpen",value:function(){Q.debug("WebSocket ".concat(this._url," connected")),this.onconnect()}},{key:"_onClose",value:function(T){var l=T.wasClean,q=T.code,o=T.reason;Q.debug("WebSocket ".concat(this._url," closed")),l===!1&&Q.debug("WebSocket abrupt disconnection"),this.ondisconnect(!l,q,o)}},{key:"_onMessage",value:function(T){var l=T.data;Q.debug("received WebSocket message"),this.ondata(l)}},{key:"_onError",value:function(T){Q.warn("WebSocket ".concat(this._url," error: "),T)}},{key:"via_transport",get:function(){return this._via_transport},set:function(T){this._via_transport=T.toUpperCase()}},{key:"sip_uri",get:function(){return this._sip_uri}},{key:"url",get:function(){return this._url}}]),e}(),Tt}var wt,Yn;function Ol(){if(Yn)return wt;Yn=1;var k=jt,p=UA(),h=se(),r=OA(),M=Yl(),Q=oe(),e=Pe(),S=zA(),T=Dl(),l=At()("JsSIP");return l("version %s",k.version),wt={C:p,Exceptions:h,Utils:r,UA:M,URI:Q,NameAddrHeader:e,WebSocketInterface:T,Grammar:S,debug:At(),get name(){return k.title},get version(){return k.version}},wt}var Dn=Ol(),On=Ae();class Gl extends On.EventEmitter{constructor(h,r){super();BA(this,"phone");BA(this,"activeCall",null);BA(this,"lastError",null);BA(this,"channels",[]);BA(this,"activeChannelId",0);BA(this,"maxChannels");this.config=h,this.audioManager=r,h.debug=!0,this.maxChannels=h.maxChannels||3,this.channels=Array.from({length:this.maxChannels},(Q,e)=>({id:e,sessionId:null,session:null,isActive:!1,isOnHold:!1,isMuted:!1,callNumber:"",callerName:"",direction:null,startTime:null,callInfo:"Disponible"}));const M=new Dn.WebSocketInterface(h.wsServers);this.phone=new Dn.UA({uri:h.sipUri,password:h.sipPassword,display_name:h.displayName,register:!0,extra_headers:["X-Nebula: nebula","X-Tmtek: tmtek"],sockets:[M]}),this.setupUAListeners()}setupUAListeners(){this.phone.on("newRTCSession",h=>this.onNewSession(h)),this.phone.on("registered",()=>{this.lastError=null,this.emit("sipStarted")}),this.phone.on("unregistered",()=>{this.emit("sipStopped")}),this.phone.on("registrationFailed",h=>{const r=this.describeRegistrationError(h);this.lastError=r,this.emit("sipStopped",h)}),this.phone.on("disconnected",()=>{this.lastError="No se pudo conectar al servidor SIP. Verifique dominio",this.emit("sipStopped")})}extractStatusCode(h){var r;if(typeof h=="object"&&h!==null){const M=h;if((r=M.response)!=null&&r.status_code)return M.response.status_code}return null}extractCauseMessage(h){var r;if(typeof h=="object"&&h!==null){const M=h;if(typeof M.cause=="string")return M.cause;if(typeof M.cause=="object"&&((r=M.cause)!=null&&r.message))return M.cause.message}return null}describeRegistrationError(h){const r=this.extractStatusCode(h),M=this.extractCauseMessage(h);return r===401||r===403?"Error de autenticación: credenciales SIP inválidas":r===404?"Usuario/Extensión no encontrada en el dominio SIP":r===408?"Tiempo de espera agotado al registrar":r===503?"Servicio SIP no disponible":"Error de registro SIP"}onNewSession(h){var Q;const r=h.session;if(!r)return;(Q=r.connection)==null||Q.addEventListener("track",e=>{this.audioManager.attachMediaStream(e);try{const[S]=e.streams;S&&this.emit("remoteAudioStream",S)}catch{}});let M=null;if(r.direction==="incoming"){if(M=this.assignCallToChannel(r),!M){r.terminate(),this.emit("callRejected","No hay canales disponibles");return}this.emit("incomingCall",r,M),this.audioManager.startRingtone()}else{const e=this.getActiveChannel();if(e&&!e.session?M=this.assignCallToChannel(r,e.id):M=this.assignCallToChannel(r),!M){r.terminate(),this.emit("callFailed","No hay canales disponibles");return}this.audioManager.startRingBack(),this.emit("outgoingCall",r,M)}this.attachCallSession(r,M)}attachCallSession(h,r){this.activeCall=h,this.setupCallEvents(h,r)}getChannel(h){return this.channels.find(r=>r.id===h)}getActiveChannel(){return this.getChannel(this.activeChannelId)}getAvailableChannel(){return this.channels.find(h=>!h.session)}assignCallToChannel(h,r){let M;if(r!==void 0){if(M=this.getChannel(r),!M||M.session)return null}else if(M=this.getAvailableChannel(),!M)return null;return M.session=h,M.sessionId=h.id,M.isActive=!0,M.isOnHold=!1,M.callNumber=this.extractPhoneNumber(h),M.callerName=this.extractCallerName(h),M.direction=h.direction,M.startTime=new Date,M.callInfo=h.direction==="incoming"?"Llamada entrante":"Llamando...",this.activeChannelId!==M.id&&this.setActiveChannel(M.id),M}cleanupAudioForSession(h){try{this.config.playerRef.value&&(this.config.playerRef.value.pause(),this.config.playerRef.value.srcObject=null,this.config.playerRef.value.currentTime=0),this.config.viewerRef.value&&(this.config.viewerRef.value.pause(),this.config.viewerRef.value.srcObject=null,this.config.viewerRef.value.currentTime=0),this.config.selfViewerRef.value&&(this.config.selfViewerRef.value.pause(),this.config.selfViewerRef.value.srcObject=null,this.config.selfViewerRef.value.currentTime=0);const r=h.connection;r&&(r.getReceivers().forEach(e=>{e.track&&e.track.stop()}),r.getSenders().forEach(e=>{e.track&&e.track.stop()})),this.audioManager.stopAllTones()}catch{}}removeCallFromChannel(h){const r=this.getChannel(h);r&&(r.session=null,r.sessionId=null,r.isActive=!1,r.isOnHold=!1,r.isMuted=!1,r.callNumber="",r.callerName="",r.direction=null,r.startTime=null,r.callInfo="Disponible")}setActiveChannel(h){if(h>=0&&h<this.maxChannels){const r=this.getActiveChannel();r!=null&&r.session&&r.isActive&&!r.isOnHold&&this.holdCallInChannel(r.id),this.activeChannelId=h;const M=this.getActiveChannel();M!=null&&M.session&&M.isOnHold&&this.unholdCallInChannel(h)}}holdCallInChannel(h){const r=this.getChannel(h);r!=null&&r.session&&r.isActive&&(r.session.hold(),r.isOnHold=!0,r.isActive=!1,r.callInfo="En espera")}unholdCallInChannel(h){const r=this.getChannel(h);r!=null&&r.session&&r.isOnHold&&(r.session.unhold(),r.isOnHold=!1,r.isActive=!0,r.callInfo="En llamada")}extractPhoneNumber(h){var r,M,Q,e;try{let S;return h.direction==="incoming"?S=((M=(r=h.remote_identity)==null?void 0:r.uri)==null?void 0:M.user)||"Desconocido":S=((e=(Q=h.remote_identity)==null?void 0:Q.uri)==null?void 0:e.user)||"Desconocido",S}catch{return"Desconocido"}}extractCallerName(h){var r;try{return((r=h.remote_identity)==null?void 0:r.display_name)||this.extractPhoneNumber(h)}catch{return"Desconocido"}}setupCallEvents(h,r){h.on("accepted",()=>{this.audioManager.stopRingBackTone(),r.callInfo="En llamada",this.emit("callAccepted",h,r)}),h.on("ended",()=>{this.cleanupAudioForSession(h),this.removeCallFromChannel(r.id),this.activeCall===h&&(this.activeCall=null),this.emit("callEnded",h,r)}),h.on("failed",M=>{this.cleanupAudioForSession(h),this.removeCallFromChannel(r.id),this.activeCall===h&&(this.activeCall=null),this.emit("callFailed",M,h,r)}),h.on("hold",()=>{r.isOnHold=!0,r.isActive=!1,r.callInfo="En espera",this.emit("callHeld",h,r)}),h.on("unhold",()=>{r.isOnHold=!1,r.isActive=!0,r.callInfo="En llamada",this.emit("callUnheld",h,r)}),h.on("muted",()=>{r.isMuted=!0,this.emit("callMuted",h,r)}),h.on("unmuted",()=>{r.isMuted=!1,this.emit("callUnmuted",h,r)}),h.on("progress",M=>{var e;("response"in M?(e=M.response)==null?void 0:e.status_code:null)===183&&this.audioManager.stopRingBackTone()})}stopLocalMediaTracks(){var r;const h=(r=this.activeCall)==null?void 0:r.connection;if(h)try{h.getSenders().forEach(Q=>{const e=Q.track;if(e)try{e.stop()}catch{}});const M=h;typeof M.getLocalStreams=="function"&&M.getLocalStreams().forEach(e=>e.getTracks().forEach(S=>{try{S.stop()}catch{}}))}catch{}}startSIP(){this.phone.start()}stopSIP(){this.phone.stop(),this.emit("sipStopped")}makeCall(h,r,M){if(!this.phone)return!1;const Q=M!==void 0?this.getChannel(M):this.getActiveChannel();if(!Q||Q.session)return!1;try{return!!this.phone.call(`sip:${h}@${this.config.domain}`,{mediaConstraints:{audio:!0,video:r},sessionTimersExpires:1e3})}catch{return!1}}answerCall(){this.answerCallInChannel()}endCall(){this.hangupCallInChannel()}sendDTMF(h){var r;(r=this.activeCall)!=null&&r.isEstablished()&&this.activeCall.sendDTMF(h)}setMicrophoneMute(h){if(!this.activeCall)return;const r=this.activeCall.connection.getSenders().find(M=>{var Q;return((Q=M.track)==null?void 0:Q.kind)==="audio"});r!=null&&r.track&&(r.track.enabled=!h)}resetCallState(){this.stopLocalMediaTracks(),this.activeCall=null,this.audioManager.stopAllTones()}getActiveCall(){return this.activeCall}getLastError(){return this.lastError}answerCallInChannel(h,r=!1){const M=h!==void 0?this.getChannel(h):this.findIncomingCallChannel();if(!(M!=null&&M.session)||M.session.direction!=="incoming")return!1;try{const Q=r?{audio:!0,video:!0}:{audio:!0};return M.session.answer({mediaConstraints:Q}),this.audioManager.stopAllTones(),!0}catch{return!1}}hangupCallInChannel(h){const r=h!==void 0?this.getChannel(h):this.getActiveChannel();if(!(r!=null&&r.session))return!1;try{const M=r.session;return this.cleanupAudioForSession(M),M.isInProgress()||M.isEstablished()?M.terminate():M.isEnded()?(this.removeCallFromChannel(r.id),this.removeCallFromChannel(r.id),this.emit("callEnded",M,r)):M.terminate(),!0}catch{return this.removeCallFromChannel(r.id),this.emit("callEnded",r.session,r),!1}}holdCall(h){return this.holdCallInChannel(h),!0}unholdCall(h){return this.unholdCallInChannel(h),!0}switchToChannel(h){return h>=0&&h<this.maxChannels?(this.setActiveChannel(h),!0):!1}getChannels(){return[...this.channels]}getActiveChannelId(){return this.activeChannelId}hasActiveCalls(){return this.channels.some(h=>h.session!==null)}getActiveCallsCount(){return this.channels.filter(h=>h.session!==null).length}getChannelsOnHold(){return this.channels.filter(h=>h.isOnHold)}findIncomingCallChannel(){return this.channels.find(h=>h.session&&h.session.direction==="incoming")}}class Mt{static getAutoAnswer(){return"data:audio/mp3;base64,SUQzAwAAAAARblRBTEIAAAB3AAAB//5oAHQAdABwADoALwAvAGEAdQBkAGkAbwBqAHUAbgBnAGwAZQAuAG4AZQB0AC8AdQBzAGUAcgAvAHUAcgBiAGEAegBvAG4ALwBwAG8AcgB0AGYAbwBsAGkAbwA/AHIAZQBmAD0AdQByAGIAYQB6AG8AbgAAAFRQRTEAAABjAAAB//5oAHQAdABwADoALwAvAGEAdQBkAGkAbwBqAHUAbgBnAGwAZQAuAG4AZQB0AC8AdQBzAGUAcgAvAHUAcgBiAGEAegBvAG4APwByAGUAZgA9AHUAcgBiAGEAegBvAG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/++JkAA/wAABpAAAACAAADSAAAAEAAAGkAAAAIAAANIAAAARMQU1FMy45OC4yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaHR0cDovL2F1ZGlvanVuZ2xlLm5ldC91c2VyL3VyaHR0cDovL2F1ZGlvanVuZ2xlLm5ldC91c2VyL3VyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8="}static getRingTone(){return"data:audio/ogg;base64,SUQzAwAAAAAxbFBSSVYAABDiAABYTVAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4xLWMwMDAgNzkuNGQyZjU5NywgMjAyMS8wOS8wMS0yMDo1MToyMiAgICAgICAgIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcERNPSJodHRwOi8vbnMuYWRvYmUuY29tL3htcC8xLjAvRHluYW1pY01lZGlhLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bXA6Q3JlYXRvclRvb2w9Ik1peGNyYWZ0IDcuNSA2NC1CaXQgQnVpbGQgMjkyIChsaWJzbmRmaWxlLTEuMC4yNCkiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjItMDYtMDhUMTE6NDA6NTgtMDU6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIyLTA2LTA4VDExOjQwOjU4LTA1OjAwIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmZjNzc0YWI2LWMwMTItNDg0Yy05YzM0LWEwYjM2YWFhZDhlYyIKICAgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpmYzc3NGFiNi1jMDEyLTQ4NGMtOWMzNC1hMGIzNmFhYWQ4ZWMiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplYTY1OGRlNC00Nzg0LWY5NDctYTI5OC0xZGE3MjdlZTM3Y2IiCiAgIGRjOmZvcm1hdD0iYXVkaW8vbXBlZyI+CiAgIDx4bXBETTpUcmFja3M+CiAgICA8cmRmOkJhZz4KICAgICA8cmRmOmxpCiAgICAgIHhtcERNOnRyYWNrTmFtZT0iQ3VlUG9pbnQgTWFya2VycyIKICAgICAgeG1wRE06dHJhY2tUeXBlPSJDdWUiCiAgICAgIHhtcERNOmZyYW1lUmF0ZT0iZjQ0MTAwIi8+CiAgICAgPHJkZjpsaQogICAgICB4bXBETTp0cmFja05hbWU9IkNEIFRyYWNrIE1hcmtlcnMiCiAgICAgIHhtcERNOnRyYWNrVHlwZT0iVHJhY2siCiAgICAgIHhtcERNOmZyYW1lUmF0ZT0iZjQ0MTAwIi8+CiAgICAgPHJkZjpsaQogICAgICB4bXBETTp0cmFja05hbWU9IlN1YmNsaXAgTWFya2VycyIKICAgICAgeG1wRE06dHJhY2tUeXBlPSJJbk91dCIKICAgICAgeG1wRE06ZnJhbWVSYXRlPSJmNDQxMDAiLz4KICAgIDwvcmRmOkJhZz4KICAgPC94bXBETTpUcmFja3M+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmVhNjU4ZGU0LTQ3ODQtZjk0Ny1hMjk4LTFkYTcyN2VlMzdjYiIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wNi0wOFQxMTo0MDo1OC0wNTowMCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgQXVkaXRpb24gMjIuNCAoV2luZG93cykiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii9tZXRhZGF0YSIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmYzc3NGFiNi1jMDEyLTQ4NGMtOWMzNC1hMGIzNmFhYWQ4ZWMiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDYtMDhUMTE6NDA6NTgtMDU6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIEF1ZGl0aW9uIDIyLjQgKFdpbmRvd3MpIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICAgPHhtcE1NOkRlcml2ZWRGcm9tCiAgICBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmVhNjU4ZGU0LTQ3ODQtZjk0Ny1hMjk4LTFkYTcyN2VlMzdjYiIKICAgIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6ZWE2NThkZTQtNDc4NC1mOTQ3LWEyOTgtMWRhNzI3ZWUzN2NiIgogICAgc3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmVhNjU4ZGU0LTQ3ODQtZjk0Ny1hMjk4LTFkYTcyN2VlMzdjYiIvPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//uwYAAABLI8QOUx4AAAAAlwoAABHimDS7muAAAlgGsTAAAAurUQJItUrSnJxDAHEsSz88cO18bCzjsegnCggp80zTVchpnXHgPKf+995u/fx4CvZ90pq94Cvc2xWVP8g5logI+JmtqQ0EMcMv2TUNnsnDQQhvHoJY4Q1er4+//ikB48iZePKZhv1fHgK9ntAiavH8OPsoCBwEHA+HxGfEBzlz5d8u8n4IQfCwPvBAMCQMCd/yjv//+H0ASSSoky6EzG5XLLbrMVV2BuQsIYBoyd+zJHgjObqgY7CyNa4IIgYcXMMZOcCEnI3aa5TJtkHmQlK48LpCETGRweYLHZlstjQHUszlkxFDMotMUkEFGMvfDkRL+tl7/v3ACNKtRbQYABAEhwDMyaaXzaupYxN37bW2vjwBZa5dIy1QZ5aCblbInXn7Fe3hh7HGBR5TZR+nU929Zpo+2tjuGEv7+GHsqb5l0qnJ+vGYd1fu3e/r//WFPn3n/nncf6XY47u3K1LV/d/X65jzWHYm5c/hhhL5XL5ZY5/zTcV4Sqz2tjKcOY4b/sy02x+7/9YeAAAAAQAAA/5RC0BLEAApCHAADr6QRdJJNtxECEJ6ILGstpntKonSVgcgoARYxT8VlZbLaQEgg3ZNOASqSGCoU5MYWLQK6T4okhA5d0jpE/l3MWwlipXIXsicrohfg5I1ZhbQJfGH3lEFNyEQsywRm0rZCTCLdq13Hf1alPDsoswWYQQiM16XSqXTVive3VgDfe2qlVKcWA543uzfJim5hS1s9P1rv012ktc3jrL94447xyyy/mOX679n9ZUuP5f+9d/HWssvz/+7BgWYAGPlXU129ADAUACsTgAAEXlVNXrWptsPBFo4QACbl5Wl0NSeYu1dXQaehxtyj28j1LWHQCAAABqjSJbJkkl1lpf8RAFxlQAd6gdoiUW4YGQ4YtrBzZEIs/DjJlNQSPNaKWswGqIgotobNAzAU9i+q3p0uAJHosqZlz+MtZTSEwJQtkxnIJuhLAwoTdx3naeGUxiCHZBJ4uYdw6AbBo7Hc8y0CDGJACeIKYiyAO6ScFdYi5SIsQIXEPpBEUGPJIMR5fEIwNTxSg5Q7R7L9jIsJHEqiVNj6TGZiig55Svv+r9St2WpI2f6SV1LSRTJ5Zk5H/+zexIA////////////////////T0eyNPSyLdp2+yVPpg3qdUZFVXZEQa+phM6i0DFMqNcw5Vc65AwIaUSJWSgHGiWyZbrvbcvMoCTOSqDzY61MLYwDBSJlQGp1yMFDFnogK0+MNxMQiNN6mlbPAsmEdYg7KVLbtjDZwOwZYe+6DcWUO+o7CWjwAUaIrGsaoerCwFigwCwwvgYEphiKxvXHShJ7q9/Gmpuyx/pXATlQ8l8BEa0FXsY3Wt8fh9q0VcluMJrLtYcl+JJLcgOUdtXcs8M944zPcM9WLG7dfs+nWYPyx4KCgifT54Ch9X6ZdMTQcFQwUHnEf////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCdgAqJO9XrmMrcImX6xwQiW5L4x1NN4ytwvZfraBEdbv////////////////////////////+QCQQYAb0f///9ueqMm///X///+v8O5P//////+73osQpZf5Dh7bdoJQMEhAcpqYKGHmRB1LePNrQlDSYbvhAU7QIUkHHXwHTiRtVcYkD3SvK1Hqdi2CdClgXU/zwqpPTASumnpDA0MzhV4pFFg4mC6/Ergp75WlKag1hqaOqhkav6yq3cIRNQ9SMTUbLcg2qAYcfizKIVLu3sZI/cjlscsww6Ci0egW9M57I1Q8TV////EX/SlmpW4maAAgO20YC75f//6+UQSKUeMjpyoe56Ns1Q3oXf////p5pcY7/////hf933NXPOpGhQgBNu27awCocKj1iQQb+emTX4cD2KhMJeGAM2KhQ5HpswUD8Nf+igxRsmMWrB6YzP4PEk3BMIl6VPsdl5f59J2IJzrmVuJDCPMSQEY0HRNfLUEMWtMZERSJrSlpqGh0rXZFM0n28ajpRphs5HRECrxAI48PzU9a3zm/5y5/bOEvmJy0HSTLXDbP/////sqqtQJIAK////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+AAC7ckjDn469FLvHh9C//uwYKcACf0w1Ot5ytw5xfpaAOdbksDDU63nS3D5Dyu0E70m00J91E5RRwgxUXKKw/i+wVBc2Str19d3O/r+UdrqWM////+Cn+jrWRnp4fKQS3Jdt9YJVvEwCCgowABOEEDPHwaKpaSAwkDVgUPOykOgSfS+AgTj6Fi0b3KlRkBrKeFr9BNj00Pq4SJetVzQkRW4oMLBywuvCxAEOOkJhiw6sLLXqb9YZv0EwjFD2qGpQ648KlDwX6OPVasxXxgaWtaacX5UjO8uW//XNfljztzLDDtFoisdXV////w43/X34xSRYeAAA3Jf99gBvn+68qBYm0RRpXDvX6pNCMzQ9HwnmFRr8oPsVuas3/3F9Rq17VMclJypdX5YX////////3k8wLUSXJdt/tQMHBjB0jE7jrzY0nWDCh+yQCS4qhgLKRwMVlTrBDytEUgCsrYa1rLhpW2HHOHptYbKrkUWRBdONMhWDlzlNsMIJfNRql6WOJgumxFUrtvGXHHvLDuY2d15+bllSmt3uU12lp4y6SulvzNyY7Xy/v6u54/qZl1NH8J40QzWln////0etLEqmKwEKlkf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+KAA5btv9gB8yX//v/MMblIXRCamzdirFypqgZmqut35YsigSBqOpj/+7BgpwAJMzDV63jC3EqE2u0F6UuR9L1TrecLcTYP6vQUvSbf0oPvqQSz/3X+/f1s6SWz6uxv//////7xUukPmlwOAlGoIyEAy2Xb/WAUQABEFqsDho3hLMvjxYdlz1FABLQEJPYWpRiQ7F2wIYZZaP6ZLZXRCTnPcVU9OvIeCpIFdQqlhwKvUUm0Szhl6mEJGyFEVDwqGctMBciizwt1SgLaBbr8rujKTFyexryXOxrU/RvXYfZWJl0zbqZYfz9fne/8cMazrzJlbf/////+rJ1pEMSCYAAByS7f3ADey//1v0UjTHkfE7i6OlpTolRQDXjouCwKHX0wE0hqY58boplqWNV3Der0GJxRGsgkN7WMaPJmv//////3MYOlFJJFiyXJjRJlku21sAwQEOU0sLBBw74aZOhhW4jhjwLwti65VIbPZTKOY40xmvrngYFAAoyIong59pjWEI7ogFN18GHLFLzoI08mOt2NKgDYLaqqlwgVMNX/ygHARuIP+lU7EjgBs1S3fle30obHe4bzfGVu5Qy+n3T4V6lj/5/PuUn27tvOoHwY3yf////zF3JqHOaaHFUCE+PE3//////////////////////////////////////////////////////////////////////+AABLZd/9qB/X+3K7+EyhLEiQikWnWaZRfGHgs7zboWQUbo6R0Jkuu2xgUGEVIoY+MVgJShXlPAag7/00Nv9DEMLCOZOW+Um6ekzz1Y5dv/EH8hzmtdqWN5///+F3valWtYEBMIHEw+//////uoTZGGwq4RhItEQS23LNbWBQUGXbHv/7sGCnAAZfMdXrecrcdcY6/QcYW5Jsy1WtYwtx4xkrtFw9bk/TXWzFXhoNZT/ZzcLbPkISQ5D1UwsT1e6WOws8SzYWaPWV2/qotoimQ5aBORYdjKZ0Mt0Q2Zy/aRC3S6oFaAROc7KAcmYt4vIJVmoZjrS4FrV5qOUmE9ahqil/y5NF6lOpdH4IpeXZillu5u5zDl19FuS+Lz2f2tLUHYur//////bRclkUFQwCZJJbttANwg6bM52dOFKXX2uQwhjTZuqAgqdKjosmeh2McJANxhmKu86AMNJFuYhnSFmHOUIkoMchp5spc1IypUDYRLciW1Wo5jZoL7eZ4Bl2TrgJgQZFwY0NqgPXT3UKjxjtsz1Qu32q0niNn/////+797hCpiioglpONyStuNKWFm1DjF+DS1h4BbTJJg+ZggJgxYCVmWWAqjXWkAVENvrSJQIT4DaU00auoYlQjQhmaUl+1tKCNfYA7kFsbfmWJyJFsUXOhW9zBGuqZqbvEquTCYAfiGZXclFmAJZH3/bokInRSz602TsNRUYI9agbL6zI1jsnTsMIKMcAEKM5uc9ck3hJJkCgRIMXAUgkeW/jigbbtIWJAKJ6KcLhiTxByJBNy/tJSdwsY09vVJY1Scz7hY5nhvPP/3nn+fdYcztgcPkBOFg+IBp/LyBTYjd6/rIARcjksoAzlB0iI4h/3nP/CZVS5TxGyQzE1yhb17SPEhNjucnC8TZFibLhQBGjrm60D5fPKH2GrTFRPkygm7G5s1NSrGSZ0zWm9N9Z2gp3NCAnUTQ5//////+tG8Q2BedUWrIBSTjksbbBngICCsSUHCuc//uwYKcABs5MVOtY02xjBhrdHfFbliDvU61vC3mBE2w0bD0uE0yIDapVEaYChEvjIKwzUcWc5S6g4RdprzxQGJFcOr9Leu3bjSPT/P+oa6sJhlhkEppFo3JbgMyI3VGVNL7Udp5m3XKFRC13alUaisTlMy4z3RthqYsCSKXTOpEtJynnv0kth2mzlMZxmomJBB/m63pmHaXOemYdrv7DrMmXNOhlrLu1aWpLo1njZ1VxhFTQlEEmnQn8eri4bFOFfFNi7sJJUk1t1gA7jzKRAt/fW8ctU9ZHct1RVLbnKfnoDHlKHNxpZsXQ6iwHUa0iDPJSGazRiRClQcMlZboxyxk0FFZO1WtPXCPumKTX3qrC03Mvfpx7m//////9XZUlfDznlmkSS0Y3JIgKm7SSNJ41CwMolw4bli2BYKqggJpgM1ExqmvRFUA8wKZai+GisQuVQxVGx3lx3Uw0cpc9r2WnSm6d6mTU6AoifgdTd1qTjrwlwICXyAcOGiTJFRrkcVTFEwRTMki0XCbccIy4khfMzc+mXkUEC8gNYGqgCzoSEdpkSo0iUJJ3bWrrS////////////+2z61+yCfOV////////////////////////////////////////////////////////////////////////////////////////////////+0QAGlXJbGBVvEgAYWTpYjXPlVqUg0cIr2KEaVXjxhEOBbjCJTdkcmqT1ULQtyD/lVoSx3CTp8RsagrOlcFc4vpkKbp75jbmtIubR8ryejvYeaYtEz8wfTW/lsrPRB1Or///////EhdjFOL/+7BgpwAHHWfT63mjbGlGGq0jD1uR6MdTrW8rccYZa7S8vW4opxyS21gVWLTLhoSdl6ZqgNFp0lELs2XuS1MMk1K3ghuNGvDaFbI2GM2EhWNNzZ0oLUbPXtKSXwra8soYZOziezUJSmANjw6+MOtmiLc2eROAV6nEe2tWIw9enKti1jTYWYjOdfTTjP3KOUWWeN3utSmWA15NaxLqzPHOxv3vdbv/////79HYiOJmhYXMSIomS23bagaCYk4MR/rfe3O59FTKADwDYaWUNGE2HKL/O8oNZt6iEN34VTS5JsB+mYq9BQm5gL6Z7LtTWqdjClEo+ViicHK+ptYzeHHmw+cF2yacs6xiNA3S88TeKNMrJAvqJ6wAKUWf/////VvSNnNAbJJKTjksiAijDttwULCRhi4yBkvTuJilKCArjG94PTM1iEoN9K5DcqLdMOd6BFeIrNhYNF7qhTWGv4ytLjNmKtjvNwROI0lqva68gpJa68WgpaSh7N4cYyzJoj8xmITdminq2OeVA4Kp2ffb7a1dsXa+HbLdqly1HojLrk9eXZyH//////85xv///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7ZIAbkktsAFUaLKgaDNrfH/l9IuYai1qAp8KQRqVga6nTOQ3LI9Az6xp/aaGYJ0I9DUY/D4TcIph9Ids8nHbPGNxZzEhMrvWs+HLuPAjwJAb5qrUFltb/5+Pf/7sGCnAAehMNNrWcrcbIX6nTcPW4/gv0utawtxuRfqdPw9biLv6Vtw07///////fi8pIix4LtEAFJRuSNARADWlahhyVBgyJQFtV02PTSZ4aWQLEGJv425nBMFQxUn0iYjATaMqkEPuS2k+4MalcZnKjxWHlsKpjUmsz0agW1TQivfjJb5zrm4zYpKbmGHM9y3DCYetAlI6bvceZby5vP6/MOfH7QYQfr3f/////o8UStSQs5TRBIbdktsYFxbVQUZnz+8S9P/62CT5ehtI6/0gGrtNiCGLUIDjEGJnSiVt2vvud6GuJSMzgeYWUMn7xC4yLT2JhoAz4MBJIezbrbUD3tAWG+PsUg3ocss1P//rG5vi7Fo+IXarkf/////9jRz7NSiUW25G0BFfwussGbHpByXPiBCGki/oMLZCF/1YXqrwKGNU03Xf8Sbdtz1M0q4u98ojEMNuzjsFszmVcrJp5ljI+9uKAl271Izx9HmfVRMGBe+LxmMv/DuNuW0lrfa3ftSi1MRaxc1vuOGt54x+xzteXeC4iPUqnf////9ec7GKvAiggJhJ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////YmkXLbdrQBnod+tmMCTQgbHdXdz9fzSbptm3zTniVOT1Ye19YZudPrBS2GONjqS1467cqN27TJiJUbjMFttNR2Hn1ygEdBI7mozT9rz2OH4a7+rsAN7T0uud/n93+tzeGu0NJhT//uwYKcAB0Uv0dM5wtxw5hrNYxhbkLjDS61nC3G6l6o0/D1uc///////62uxikD4iSS245bGgIrItKVqJGFtBiAoR0iU6fc8MhHmB3pM2ow0IdCKLXDiseEM5f6H1bBItH6IsXmWz4M0o3cpXDhqWvOt9/WUkdlpl9SqPFzHkZO79VpYhA22U005/Y1ckm52lpa+q1JyHnchmf7Z1jhhrP/7n/fxm86TJBv//////9+tNq1kpqsokuOSWyQCjuf4ZwNcGcJTeZ73tZflK2IE00Rmcu+wNQOLNLfeAKGp2DHtvw7jAZm3UJ0papbUOXRfkMu3M0RXQ8ATLT0KnZLy53TH3bXyxDysz7v/r6//bf8wYYheDrB7mNs//////5lhkKMXHmwgAiY3I2AIXwXW3YqJgXUsZF9GtxFRHBMmABDs7DYZpyH3lteswEaAsaQeQXpFrddpMZrKdsgbhLHStLslEolRFuMsQdG1edmvA7srnYi51WehczXufP4Z/vXMq0djEMTmf8y1jv/5+OX/nHq97zv//////o7rlKZHiYGSX//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2qJGR67e2garZuqPJWCNadNbXe5d/8NKyAWkTl0BvDV3MKBBy1yy7i7X5pJTYjJICmNICMW5qGuBZUJsLhUxb+tdEyIfFQJLo6qb0U20v/b1w/Y4j7NP//r59t/GXcmVmHm//+7BgpwAHWzDR6znC3HFmCs1jD1uQsMNJrWcLca8X6jWMPW5BR//////ZXUwYTFUoNG4yiSypJbIAJGl9PyXuNRMAT8e2tTdAeBTJCIips1jyLLoqmlZq2tOUTS6dMDGqzNXYtL4uw5nDR4u9y15a7ycbHb4FyjUnqoOoTFIYiDRGpcGEgryQdPHo1WgaVUtBLrP5fuv2OCQX1vfWvVssvw7Xxyu/vKQUljI9//////7vzqRpVjWkLCiS2rbrZAK2B5ZOwBV6CpWOxrv3cbvbu2+A4YdtdpWxUvoq5ODKqtdhjZ262c0AeBP4pMVKXKrKO0FquqOKCdH8W02HPG1dPuHnX1rd/SlzhpvN42/vf+d//OXmD6XI7w//////+3oOXuUYjBQCSbcjaAiYyPjroanTCAM1B6QkOUqwUTesyI0z3EelZQeGgZjG2qKBv1DK85p/+XWUqVuDDsDw9t0IdWHgWMqGlBnjuvby9QSydeFgYIyTzl0gBOG7IrSSz6zFx9EOFuJJ7Vmyk6zU8tallstIWo96u3//////////e7f7LR2r3Ut1supSjz///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+pbJblktkgFVWVxQJjsFKtGRU8BQx+dSpfmsV8g0FDRXF8hz3pl6QkOKPwmOnSXJgV8CGT6Hpd5byrXVTterMWRz1AUBOd9TR4Gr4vWv9L7tlmf8JWb3wvHDbmX///7sGCnAAeJaFFrOItsZqTajWMPS5Cgv0m1rAAxxJfpdrWABv////sda2YadkYykSkpJa2wIjWoIBBxmjRyAQECB2PIgBDwycQ8VUBEJC53GUKcCapRKp9LYoHA7vFtXemL9KpN9ks2nRdlO46w+FLvg9ncDS1uqNrz09PHWnvW+CYtDSQBAj9YVp6zu9re/1ejlPzLv/z8u85vWGv/dLZEKWWi97F/////+pFBqkwdlDZSsMgJKSWxsCJiNAelBOpkt84wRYlii/n/8tzZmsC/8btSuAbundZzD8rla246vyR0W4ZmKGWayIBsfgx2GUWZ6+3CBI9Cmdz9ejp6K7Zq/jh+WrWFeVxB+Mb39//////3//dxr3c///////ZFLS+oOioAEkgIhwxltRq2Wzb63IxyIoDEiopgLH8tMYDB4oPgx1DEmM9C4x+GRECB44DQzMNgxrxgFAJAYCAmB/MEwBQwDQB34BAABQA6oiYkov5q8DmGNKIeMg+mFIEiAAFDAcASMFABhNNDAqAimC6E+YDAQxgLAJiQB4wAKAAAx4BlAx3+rOBgABgCgWlyDA1AXMCUCowDAPEoVH1mLRCoCZgMAAGBmAiiuEABmBAAkXoBgABgMgKGAIBKh1ecoAZMCoAUwCACAwCMuy7ddphgFgCgEAEvWAgDGITpgDgAmAaAECgBwYAEVQC3dCgBcAu8wtdszRVaRGwugYCYA6A+RoKKkZIFQEDAhAgMA0AQAgYgIEYIAwBQBMNF4ZPMs5FAF2FtdjX8LVoD5Q/daWP/Pw4hLAIAJgDAEmAWBIBgH56LKMsJSoUyMAAAEEAFthAw//uwYKcADTdk0W5zwAZLxCp9zLQAk6V3WV2aADCohmurjoAGFS93IpHmQ0hKeCiSDCI5VANMCkCkIAnfixYioXAFBQC5gOAIGAQAArA28wMgBGAAByYDwIQVAEXTDbIE0TAEANVxIGevl8uk4iATMEYBdPijh3GJU+o9TAZJRJAREYjEaYAAAAAwFUkhzTt2SroWww/csS71YktW7hmDORyEZqYTUIYdoxQ9Mzy+WrEwZoxuszPGhKHS2z0LsrzqP////////nSHqr/JxttKwIzZYqEkIBQFitpMFVB6qYMg4SAz85TvaGXxBUZUyFIidRCUQRETBCuACPCPjYaRARQoqJcOJiDRZgfqMyOEsoDkkgQ1AoEOFZOjkmxuRUsiAoKDCGjhJBIWcAaUDQhliBDLDLnkDIiSJY6SVqJi1qv0aTLSrOGyyKkFEESWLyjJO//Xf////+pIyPqWjpJLXo/qNvPfqJAPwIAAAfUiAIDgXf50cAUpdwZt33bf//////////23UryQIBdgOhg8LmwA3JEpbI268QWInyo4XCT9SYKJoui1UwwutuRvdESz2sESWDqYkJOJEKrCTE+lo9hpziUlJGpVC3bkUrqo0TLgzazICbrTr8eRgr6tQaw1+Juqy5qj7NfEBBjLrWVlY67DoGcIThO1uSNDf+Z7O2JLUzx73PHuq2/5rusMv/L//+8538+1LFqYpsnpYpj60f/vpSFWQA/yVVVUssmop/////////////////////////////////////////////+mQErKFLJQBtSIlYfvqTsShME2BX0FGInADwJ2N3++5YX/+7BgcQAGCTnU6xnK3DvF+t01pVuTtOdTrWsrcR2TLDSnoS4jhEXWXdlnBdf/+//+/Gv///////0J0WtlWC7oAbkjd1tjlaQUDS2asYiArwHIzdiqHWvKk1H+My0EiC93sl46CYMaEkyVDIaDvs4zsGegoewRTNTchdo0Al7jFr4KVjWm1l9UOPYagBgzqQMhKkznXWyxV+qZMopKo41LWAxkKkhwSQ78QQgOoI9DVetbz/LPd/XeZXa//3UQ7vDHee+fj2xd5zF0pHZndhsRhryX//eVD6v/V9I+l4kN64TfbADrYOiaPy31nFO32J8ocuL0gATsAd///W9KoSj0WsPgjLDAgQoqF2hQD10v7Q1cr6ZyD/5b///////vl7Ka3B00lBDUmku1sksPEQQeHFkB0Ak4ZuMJcE7x4+IxT70IrG2vw696scFmBO9qZYLyCwiqbjgnIBHNlhT8Sh+C38KnEB01KEwXjnUtVmPA0xuT2uSqeVQ1GHIYvYfVVcZIaS0h22YNyEM7IV0t1nX6wzpZPT28c/1d/8/w5Vy/93MNc7//r9/n/7q40dYEXKRI9n//cAv9SfctzMBf////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8pASt0t+2AGVcfBIB0H3/1+eX1tNxRul32naEtMcd2Max74y5dhjSKW3HKWSYf/7sGCnAAkDONTrWcrcT0Ta3S8JS5Cgm1ms5wlxZRDrNKe9JnJfFp2WFI/mtq+1B13FjY0mnrUp6VMf///////32kFeSKyolzW67/WAZWhXrAhEKF1xGGDeRqmGB6JL5VSCzcBGl0LOPGbQTXgQVL3rZ1OWwQKeICCUeaRtethLXAAKTwUo+pq/sph6kWmTFaMu2YcbNhr2yOGoDLZRF2IiGpXQ8tIrp2QsqHuRaNw3SVZbFqnQdCGnnzvLSIoKu/////+xtGlBtShjhASttm+touV0F4A0hf4rrPi0U4VJoYZhliwvS6I9ZPuN3rlvWtIlJLamXEg7U5JOuWa0sBD5V+NrWp87vejVomHjZQwj1b+l11rlq///+Cn9V17IJMYXHTKUEty2zb2MSoblANZxcJHgqgTAdwcLGBRdJL9G90BH48UG1WegPuXmOIuEuugkUhtlIEZSSnY3KXweVCXm/EWbRrbPIAg0kONEgael08/LlfdjkCgYMVa2wxWtlkFsod18UTi7Dmyif+xdon9sbAXQp3/NAH////Pf7yPTvrCon//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////dAAVu139tAy50VBqMEv//r5dbhhC7W7Rasea6+YY5AjGV86fgxrx6oo0kW5LTYMt1BTqEx7yuaigLovt///uwYKcACIom1OtZwlxY5DrNNw9JkTTjU6zl63FoEiu03D0uIeFZI/hJKIpSCgB+rt7soPu//////6lExYwQAMxJb1tu/tgFQQJnF/gYGDi1iA4EjjHChIgREropTHDSxJgmaMEOo5k4w+qVRVwVQtUg4lSUpsy9c7k2hgyIQ0EFWaGEqlyEPPRFn0XMZg6x1o5VIpdgG6sLyYb86z8aDPHYA+iYzvKPoDg1yQv/rWv8/+Wv+db+v/r/G///qDZX/////r/FIKsYOnQAe21/+1Ay0xCAfwcY/N//HDtTtgzBmpHXdF6qCLxVK+E6rvLatvRyUimFtTA7TIqrXeOwNUDTYuNXst+FvEJRtG74m5ImmnlIuGX/h1P/////t8a/UFwkaJgQ3bddtbAKDiYyx0HNK0JlCDwS2gooELqrDyUAVb9+NoJgNOgDCKuQS2GutagYucvhiTyOERFlBVPEbrNpSxWSrMgxdKXMSiTjQ7hVpaluCWjSbcdWpLqt1/aCD5fYnbvL2+VxMdO6lpWD5K26dQSdb/////0OYQ5Ui8b//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6OIAaMzRv/tQNjZ+hVH4/r//wwptbwZ+CQRW3SQItGcjSIJsWnW1qCVbJpCZ4KvThfX08As1baHZ/FgO8xH8OBVthTR7bqULrQ0Iwy/7Zj7fu/////9Vq95GqUkuW3W7WOCpZ5LzESAYEv/+7BgpwAHISXU6zjCXFokSu8/D0uSQONTrOqLcfcdavTcQW6cl2cBaY0yyRaC7gI8ZE0ByUvFSRotcsJLkc4kFAhlBRo6ZvQaGipExbTaIImVwGS4oiA6Q98igpMPMLkLozQgIVRfhv43hGAnMWSNAborwqJbE2DkFQSwDEIANAELA5hMkmcHPMFGhFygaIIf+pm2/+tboHjgx5fc71////1fYUQFZEAnbddtbAMcPzUC/CtTf6l7O5HmGiINJ8qjCRVh3AuUExElVGyvs1yxF6Z4ByQBcScNUgD4wx2E2TAsgjxxqLA4DiJgK4SChCQeXJBM3KIcWJmSEskHL5oeOFAwRdak+m9ltVtr9aafWcHMJxlGC3f///9VuzArDyHGGuaMlALckjlsjYqZryP8qqXlUNROKCDK1oovLPdAaOVA11fjDy1bpJItZdB3o2ASDBTO5VFtBO4bXYZlLOZTtA5nqPBVQhOlDstWf9y2mxykfR52uverqIyaXuXepVHFYYjaN5AnNM+0MySggDkblVv6tS1vnf/XP1+8M/3/73v/yz3//rBy9ztESAYqdTqHI///0aSe1QqDyg6eadCl5Jkuut/1oHw5qwkaxTcf7zTdFI9fxIWJrQWnMzbTbKCceWGm6pjpXMdQYjeE9HoIUrXQ0qfcKBr9E2RfLcGntpi6DFn+ZkQEPqKVE6kUFJA3VFCDdJwDKgusePimhyRFyAmpwsEWUyDv7bf9taC0lLWgUBZ5cNT7LSb//////////rq716l1PSdloLSQm0pAbbkcksccQ7sBMiFQTCEsXkRnRZVTSDNHFPj9PPBMa3BQtv/7sGCnAATdOdPrGcLcjo0a7T9SbaJpo0+tY22xShKq9Py9LgDULDnQtldAw9JMvotwl+btAkgwNfaiTuQDdzlMOK6X8yB9WFtuEALJv2/FLA9BhDjgUbVGuMTdfJc7T2lInw2lQmI+YFBzAwEUBjIB4ONzIlg46cOGUDAAsIHwYECwYCQFpqK7Wi5DATAQNWoGAQYAMaToaOkXFnIpXLh+bi8cfyrDdNDF6k3B7OopKX/kdJcikGqngZTBzE5061O0U3CL+L0aW26tiPjlKAPIyt130cSStfvU/eV6fKkxscz1Y3T5SiX3HYhyrG5frmHO1LE3D9Z2H7mH8lleN29Ul+pSXY3bww3hhvPOpYm4fjqmbpISktklgYA+Fh4cR6FBE/5/cLkNS/KHYcanUa85LxuMiicQo1EzGACnj4U+3NK3SzxqrHx/quaPIXls5vHPTmnEbZKxikxK9WaxMjzQp//1BlCQgAOSOWONuNEa4DUIPkJVpIdZTKVCtmyAOE7VqHY1kiQ86Q0vd9irqtfUDNSxJx2mRMpp59/eWXiWDcxb7jw2ra4i6YVDEPSaMwc/FPF3ocqRSqms0F+IyZw1vy65jSwRGVHDlmS8UlL4r26/0+1l7ZFFUeWuvpOw1FpS+tmSX4jaxs/ljV5qrejr2cuV8bPLVbspsU1uU2rr+zta/S2KaU8y7Vx1llrLuWX/rL9Z467+PKtLerS61vH/3+/7VpbMzGb1bLeNnmOOu/jzXdZf+fNWpmGmVZoABy2S1BgAqBcZYLSU57//72qqVkgxq1GHSEvAnSE1q4dN912QrCcqUwc8OIsHmQElqOkw//uwYIYABrdo1OsZy2xUZxrNNy1b0gGjSUzmjbGJG+q0vDVurJylDcVkqakkPYumqZBLw8zY8BtHrVV2/////+s+xbwC+040kBGcp7OSuoGBIhgQdLtVRCLI83UuACI1Z2bigYGTZ0RAy6T9iNgkCPkAeRb1l6G7re/X24IdenWm/E/Yb1uStUHR2djDOoGpbRDTUqnS8OWTxkomxYROxqouEiYl4boCyEOaRJkl+9knZX6q2pWdWgYrLpfWuj/////////R0Ho7LX219VFb9aNFZ5wkBSSO2sOCxDnBkLQLmsV/KnLtunfpvIxGaFOGCnorD3XFyhmva1jVxABEGWFsBGyVWTSCPiI4R9WdLpeYpmpRNjw9ieOFBRFAhSYynKK3qfv////+dCAbVdt/////2t8skHCCFJI5Y2gILDRl54qZoYoTDCiJIQuiZOIqByEW5NG/AQFEARSoDGobi76XVLBCEOUjvtKZy3dvrMOdjgKwcDwLIChlNEPIghuSo5h5mgdwlRAAtgW8mus8PMdTc2HoAFcCFmpcMkyslC8AGgRZrq/0Pq//6yVWO//////sJUniiYkDH///////////////////////////////////////////////////////////////////////////////////////////////////////7xJCl1t2gcGxCiB+pF0PdL5m/8ct9q1AUG6MK06CLLOhkEsQj45Zileo6nJkLAxGsPWXAu6AXEaSIURLzqSEasuD/zAJwW9OQ3MTU+nZ5gsR81zt1NoDA6h3//Lknn19yH///+QQHUybXnz/+7BgngAGizjS6zpq3HEkmq0/L0uQ5OFJrOJLccgcKrT8NW6YNgM4RHk3AAFJG5KwmIsJDcaamiw+gqhDzPiYCwc47VletCoXFauY2pooxMtjq18GhPOTPSwrOMw1a07IJbHQ+QPfEJxWgm4bQ/CcVLLx83MB5KJMpiEQtIrYZUWANFDUg2sWeHICFgFSJ0pHDIzLxwMVEUM3rf////6jE0w68Jqcxt////1ehmRBIkpVyICt1l2gdFb0ejxdi6CdKA2/r/97lteYHAQWtGNOmUTZou9xQAUNK0hQ55pv7/0oRQGwF6E4F02Gg0SEaGFEeZHi8ssHKPMcxENR9H4RI/kiPQzAMRky8UTRKY0lf////6RsT0jgcNM0u////+LsrQ9AlJJVkklsCYiK8MMWagEHDhAjASgh8iR4eQ19D60s1nLkFxHRR1o6Bf8FQWr0CyyysXlS4e+deWhrjgEkAyAqDkIkiMPYYYTkSYlD4mQ5B4G4nIX4ZJID+OELmFiPUtCLjIIyRmMWWHwNJ4v9P////1rMHEqJ+93////9KGPqlHJ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+4oBW2y7UMCtho8mTRuNiJj9Y///Uypqj7BwGcqfh5gaucYmBFL2SLbtDgRp07exlOTskJ2j9njp5YlUypMiVsTK/AWkIZNq5iJarCbQ4wIwRFIy8h6lVVX7FYEB3/6o8y2z/////+MS95IyUFXACFJI3K//7sGCnAAbWONNrOWrcbUTanWMPS5DE4Ues6mtx/jLq9Py1twmIilPvEluWlc4lJaCOhoU0APHcQv/AqD2VKFSLkEoi277SGMMEMILA5weLxFSics5O/OxEZ8qiyT5eTKBdOOLAfNR8nSCnCcGwUBayGjjEBAxcPRfFbAUGAqFE2WWzY2cqIGzrRb///66tZ0umjJ03SAa2s///9vatVJUSmRHJXpIu7a3eiUZImKFWrGgmILopId8Y2uqcoqEMFWFTCk1OrpxmahA53GDRTGGmJWvxk+1FqN3mYUUNcznexOg3ZuRGKVrw9w5REHKMIH4yEEE1GIKYB65gSQ8lLROJps61f///+xi9nZXrUy39Bq6v//////q9XtSU9ad1L2O5xOiQAl2Sy3QJiKGu9K1gEbknxRbfpuqjjYZcWuFArL2dwMqsIQDoMfgXSlsEInGEKm/iEwJlcDJxuXEJ6mlKPcUYyo2pZdzlkQi7cKSF8isOw7IIJbgt6Lw8hKIBvLDLACz4cCGo329RPzi3aW2jYk//yhN3SkSf////6GFIQRSN///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9QCHrbNtQwKO8yS9HDGYHZ9ZnxvGh4qBp5d8tO+6QskfyalSgjYTfoh6AndbhAm8/koQ6JKIRg1cfJNjVIQnSSHGVTFRFkk0CiLKKY2yuJ/LiRDjQfw404dNxcZNF9bmZXNEHf/////uwYKcABzwm0usawlx3BxqNPzJbj7zjSazlq3HFnGp1jTVu/6zVR9X/////Y2OigH4laOdJJVljlrCAiQctgEgDFFUMRgYoaaSTJUIfPASUnKZ31tM5ZKMCxdrSND7sfAKJyKgQBlEH336nn+uRw1BQCVDAjAmZAJo+CeDQPQ4Pw/DJHcbifBdiQHuoaB2EmUREAagQCV0ycksvpI/////9Zsml3/////3CzxJWVF3iItMkS9dbdqGBatiHGlvyyIhSzX+5cwxp9za5S7zQpRDa7EIVcJ5g0CYCimvGnVTBbW7LpyyMQhEmMENp8zHi4jB4kjY6alZEJciFjjxJMeAXkvDvGMDyCBcxTGUtNzN02W3////6zOr/////3dJ2fF0rpJACHbW7bAgIkQ3kPpuEBBwhDyVPAPK2VrMvTPY6psoIzQSic01JGzpTDycvDBXjCshQzOyfN/p2iwyRrLIsOBKG6X0jmCP+41h9s68XZy7sIastd/5VKZKu17JhlafwYyp3OXTUbrymKXb9U3/9fIgP////7u7tvNGFgVKw1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////aSS9tJdqGBYbXl4rkWBtPOBjNsI5Xfx2JpFhV5NFxJpBd8E01SkgBIUlopDjnh3yVGSJmcGMeJBEkiUOGZfj1TNC0xKRcLrEYoKc4HcYpSTL5eMFrT/+7BgpwAHxSfR6xnCXGuHCo0/DVuQGZ9JrOGtuaQTajWMPS4dJSlo/////WaDf/////p1teTLBVa1ykouySS2BARIfNrCeoNNLzDqRQgShNalA21GREW6bLlwtCLexVPN5aFFuXtwZ+aHg8rWoLWBafQ15a71hcjIV7ap49IYDfy5E9V4jhMQIO0nC3RHiMOOAW6SggwAQUmHw+P5EXOmx9bo/////Xfq///////////132UrqdV2vPtROUi9bbdqGBfyVsZXEYJYiTLsWN45U2KfdV0mssSZLnKqCmf1TY7gKOU8EggUlEeKzYfwv0Nj0cVJJBV9lE5bis0NunV0BTPm9bQLOpASa1GkSK1aFjUOg3//oCzv/////rJLIJdaowNWTJAMbbkiRQaOUYTUaSYoIYl2QwRqQxhHBdARVQ3WRLmISpAaUKd9O2Wshb6FvGjIIO0bT4ihdHHQXTE20YwztU6dbEsoAilFfh6dqUEMPLNw4/UglUQmWIxeIR+LEgV/Y1eVMKHPeGH555Z593///9///PPPVPb7+uc//5y9m/E4PjhGH7lu2f/9ffMoE4cDEWWCpUwMdTJVlst0DAuO4jNKJI2CCQNL7+Ne12r8Skczqer2I41V9mBw8cpIEpNBb4zmEtv4OzBEfnaWimsca0r+9uJ5bzhmVRGN1p6MNbhiaQ9VHzPcsgMQOO//6gju/////UexVwhWTYYSgUUqqrUqq0mlHI5rtvDAVERCADSDkI4gygGMYTDa0sRtod6GLtxkBQZIEAUsMNSzBDo98wfwEgcw+TDmgKMu/E3QnH6bYGhNnRhwHGhCENAoGv/7sGCnAASwONBtawAMaCR6fa1gAardm0lZvgAYdogqEySQAAQLncwyAx4ERpdBhgOEADEYWMEhdYYLAFaDUgwPqCJDiQYVONHYwQCRoVyEwMAW4GEBoDhLEbUkMHg8aB7LIOAILLwvuYaATFkE7CYirMTA1RISAsKCBmEA9PRejlImAYEJPDoCFhikEwqFCoEUaMBh1PmAX9jCZZMDkUJlGgEgVA8wGA11LUAxNgSHpVImA1X5YAIgS93JmWy6OzjO0wlbS6bTEhIJAwQYJehy8IgCwF5Iea060Kzm78qAoAYNIsZVGJZT2Ltu3hZf+ZUULoEoAMMCoxUCkflIS+wzNrVLEGJRGMI/TIFJQIAruN9D7pQqRsSlbvwbGl/qNgQOA4BMFgalrVPnQLTAERRIAWOpSpHgXM1DV0F8I36MVI7U1x3Dt6nokJKJUicsjszxJQJ3AEYQGAiQ9pmyyXKIADOhCGtbFAJVJfXbKYISaryEEGYCMCECQAKDhxaVgKpGPnNEAYc+cihmbdlL1u1uVolNeVSWDR2dIlNHCwgYiw1Hp3WyO9PLusQjJ/mlOAqZE40YcBDU1XehUArSMGYJmblTEdjrkvZEUdQUdTqichpsLnL1rHLOq5L6kJBWKXS7LeP9139f+POa3eoLVK7LupEsOcahmbPMM7PeVaXWO/1v/3////+v/9//9/+///+su/3HmPc6timn47NS6rSqdFMJPOK7//////////////////////////////////////////////////////////////////////////////////////////////////////uwYJSACbhf1m9rQA4SgdrZ4ogBlykDU03vS7CZEStocoku///////////////////wACwMAC6lI4uCrp/9soAn//6PVevUlmkFTeCAseAGWkq4HQikQLDhweIQIyULQHP4k6BAw4A3ZQ28RY0Fg5EdFUaA21blLGRvK7xIGmRhT+yh9Y1YWcow4LRlU0t4JWYncj7AisR2YS3nDCgOHIyxaZZ3HJDNva78j7CiKK0mm5FJE3EqAgwNRztO1mvOJ9qCCQJgIWAvbCb0/KY1NYT9aPsKd4v0qC/vePf1r+4a/d7mu7z/lNZf2rb0SGGnpZ///vNgF1My1AoaSAjABfUFAAG3nqF2/v/LKYD0Of5j2P//dEua1I3//////////bSpK/BcLUlljEEQYFA38GA44+MIJU6NtiEgxasI7Iaxl1AqUNxvdSXcR0i3iJARFhToLLTVYIKHgrB1Y5lGeqPgUR+naUAXU0hST2OouIKin1KqB9EepNWgWJQBHoapsYw7stkA9VyWRx/n2qKlJjaOTWoKp7TwKNoTUzotTXrs1T3K2V7LH5gUJX7qz+/x//yw/Pu+44f3W9XLWx6n////6vsuk/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AlKAOu33UD+yBUmz3ZD/vl4NgtVb/+7BgpwAJyD/T01nK7DgESw0dqkuS0MtXrWcrcRoT67RYtS75VzEOuz1688wrYoM3NIScNP9Cv/xd6//////uWbIUtSFDqXCSWpLLvtIKOgIcYkQhyWca8PojDEyBuJiATTn+nyAs7oodznlhVRBBjcAULWQIrcdVbrvoJyLVYJujO5bMvWSjyN2p+CoTXdh2UynQOKBBNGC4MUgJs7XmDyh+nNh6fgeNPWHWyCalsWgl+BwdJHUhzqQ/Uf5pauH3ldW3flNrDX4flfxvZ7XqcVW+Kllf////692RKLABAQk0t+1A3ugcDfq8wOE+bJrqGTAFgqjh43ZakbqdaSlT3T+gaorMnWgbEmGEbWSMlMgghpGjo1Cf/hT//////va97Z2bTABRTtt1jgqU7TVZkEoVUE99Fc1msv3GjSCQ4LIoLKgAUrpLcJgBPUrETuWfBKhq5WfFrIsnKCrkblaEVnRZY7KZqo1HnVkkOwCQYWQOUFwIH1oBQQ5EUkQE4OAZcdJoPA54uAjC+XTMCRiwRpQKAs4fBUFGJ8iSJsUy6VSkTpMJl1Sb928pJf++h9j0ICch////2UVor1HS3/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4YACKeu31AG7mqFDv1N2SbuEVAySATyQON5ePTD1eZ5EWtpzvbOnrB4MuNagVhu26E/8MZK//7sGCnAAjHPdPrWZrsUwT6zR2vS5I1oVOt5U2xQZxr9HeVbiwPoS3VwtvVYj1DXsX///////63F1zUiXDYCLAULyEkxOW3a1wUGhBEBqmJhRdQa3K3GCSgYFKNAYHQ2TpJQIVDT9gdezlfaTFI8LHPFCUu05yYRy1KQ4Qvi2lSda61kZEn8InA96nd5jojBKg50iRN/oFdVzw3PBeHwqlh4yC4XiJYmU4jJgWQEgbjypRzRLGAhguyEmY1ct60T9f//Ux//////////9KWfpqljEInCQYZdtvtgP0ONCw10/ON/3wr6wpPV7ENRgbgX73qhglOAQ0HMgadylYO1SY6EVog5hogLhIfdYidlL2s7//7U/xRTqnf////8Uety7KRjyiMgFl3XbWyClpSsBdtAQAUsFj0MhBmTAF4xUAYDDj3r1I+yD6d4F5xouqWsgEQQHrqqWhCJcg1RgruNRcF/m6jtU8XIaIw1yXZZG2VoLthBGDwt1nJj+GEO0WEpynM9y6OfV7y7pwcLWXOcobUowjDjS2bCIZ3KFAiuPsYj////91KGhpB0DAb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8MECCTbf7YD9VYmEn5tv/+C9W85+nJyNqGwE3fcr4jMKNZ2aH6eKkLAmmYk6VMLythWPVoink314vy6//uwYKcACJoq1Ot4wtxW5VrtHelbkVTLUa1nC3FlMeu0J5W3y83rzq6Ixq1wAhrjf////QpeLkhWdBqaLJDBhEYBLTmu2tYFQiSGbGQCCSCEHnDMUvS/Q6iRBpTvKUhUg82YGzmZ0hJo4SnjF0XErQMGspPVE4xIGCN+49xl7IC6MCw48aTDLKqJq7IQj8TVVgjkUoYIl17tW/N028o2+Nik7jZp6r1sks2bedy7KpbEK/M6uv/O////fuZ//////+upjGizGLUIHF4ACApfv/tQOnSDdv8/6mSTNEj6ypwfgWD5iFVO8MjDBHohum5SKFKt30n4msP/BQKHCIfMzIgoLln0cezmFdoeO7////Qtf/////////9f1OttHfmGYWkeG4yCmpLNta2KXWeJwUEQxbOIGeoQGkSoANgFR5g14B04z6Zdx6p5Q2eQzR/5Ck+VjPO19o64VmN4nGIAMOVoWAeoaEM0U3409mulyOiIYihGrkyw4JarlyarQM/WxYu83GJm22Zucqqy+21hYikJifhiWVX3kDtvU1yBcv7+cY68ux/+/YLhi3///7f3WsMuCoX//////////////////////////////////////AAQj11/+0o3zhVYn8N2rksp3BYQjaUWkExd6+79L0pGAXn7hpzX3nX9QTvOpacXjUzEBWBO4OQmWknNtIcmes2K+noRQoaOX9f+mvVql6NuXav0laMWJXU3UnnAdyrBFEsHSjl2v/uuOJBOc0////7dEXJsEchBUUkcmtbFUCb5cI8CBicH8IOIhScCqQZLLhPonsSmHMS2anj5aQ3jweT/+7BgpwAFbi7U61jK3HVleu0LGFuUNPtTrWYrsiSgbDS8wXY0wiCtLCu7Arcy/jMhpOQRVx6C0+UFugqk6DMZhbgeuShMGQLUYRHEaOscZ4kRW4ecnCeWMQSsiYskkxlQtySJBjEV8LZB8JCokoOWYjLGYgoBrj5JojycLaSykVS8gmZVGqLq/2+l9RdFXDnp////18+1AdW0XuJSr212+1o7EAFyJT6M23XnHHRn8KZuCGBt2pJKbIIYeZRJKaBEiUuhESrVdi6xYzKWGMOj7SUuGGLCh3hmxCoe2A3kTLoySY55GkIQUipEC8kQYtF4tlRY5pfHEcIENoW81KRkiYk8WDIUUaouFIwOtSMq3n6Gtrf/X+WUmNnd2////QxPTPwKjARhcjksskreqnbmgDS0ElV/QQGvuIQEaFoYNumDkF4ygiHxZ7nWTgv6qbrMvjkBu+1lDMRiKolePWzuG3yfZajvtfdh6FrPIx1CfAMZcgsxJrVS++0ASyFzrA3XgBljSExHUeOXOpE5UoAxdiAUARFU8HqUK8cMxwYZNnh3n1pmxGryX4hmveG4MgRStWNaDagUKCh6wJcd3liPqoG97KHUbguiCWJw0uyHVM23aW0+gnX/nn8cNY7grHZ8BACXCR5aNq7DGTwAzh+I+w952QKaP8uyHWdydwIo+7vzmHJXL8qlJYz3T1nYfiPxeYn4hFJXPyizG60PzTkTsbtWLsvu0+WHdYY2/t9MH4D6yQIZrbtaAAhWh4YEwp+nnnD5/xqD0K42qZSyNMhpIdnIMdMgQ31KvNnDiYyi3MYQPZzaBRVBQIis+c3Dl6KVr//7sGCnAAhsZNTreNNuXEV6/R8YW9upc1FNYy2xc5WrNPfhbkYi1TDtjOxN93SWt5X52X3tapP5XrUuNHxPfu/SEvcljccGhbgs6UHJVxmiMkJRUPJOpMQYFQRzCoCGoDOfL2koslZ2XNZlsOXYZrwaSlEpLuddgspl8UeOPK7ha92uqwNhZ24DMjMtdyPznz0VgaRz1yK1bjMmUtYXc+1pnTNvgF7mNR53qd/XZZEoFSQ2PGBo0tjM1P47s/uzjHouxFh0vjNyXR2HYdy7Wps7NyGqOU36tmmmZhnUqfWNuipi9igSvoZSFaa+sO0DtM6n31fmORmzKp6lwiU9l/5fVs0vN5bxs41u447xrX8eZbx3S8rZEgKFTu+lKGyWAHJLbGGB48HDaXhMFEZB+Y///7WjgZrghAsFEf4TKhhdAFFgYWUXqdkzJoYh9yXyafDrc4cmloAgcqh5x70orU12M65u7K8Md7lc5lrtNNWdfr88tYdqI///JmySSDGm42AKsFFmtIcSV8bsCuoxJNTyjgYNUxCpMfKsKRf1f47DSFvIAkKpQpzDztX3mTpOQmO2s4HsZROjfdrLmNaciWMulMnComhUlBjmRpuOFEsGySCJqUCjL5wqoEVIuQhstBBMnVD8CaAFBRsTyStFFB0km////////////9e+1NOztU62vWpO1BaU8M///6yUAVY5bGGNBL5bHG1kELH3//84pSgsiaSIE6T9DFyZjKzhJlnZbm61NnM1IHoYelcZUoeeDWEgFkthl8tynHlaU56z7Wx3rmcpvYYSn73sAwECYX///Lsf///9jdOacgVCLEhM//uwYHwABJhn02tYo25mxNq9PfhLkPi7Ua1nC3HaFer1jD1uSF7CWSS65NaAK74cDb9M0t0CzTbF6SsGlsNC4eHaR72NgIrKzqPCMicm6DK26zWoy0UhCAeKTE8xJ4o/C5ZGJUzeAopSP7S1Y8wS1WfXCLdicvlsCxiHIQ6+6N/p+Rtdh2UM7g5nMIpcH25nKZkxyUEgqVWeWt1swOETv//////pyDJ9ChWLEXF9SYSVM7daINbX67jw1GSx9CQRGxu/9TtbnNSN835etwKaPMphtGFwBGV8894RmdfKBOqxZaHNOmEL9oG4FS9c3bbGuchc0Y173G3fwqIY9k3Jpng5u9xEsxDOUC4ig8FwiLjjn/5A+cs///27cKbwOGHBlBQCFZCWiVK7dYIKTHTD7rkKpIS9ZKoTDCoCCgmNlSceB0TGyy17Y0k2KuWzu1DkjbDDbOTKKRBaZm8FuaSyFp1SDteCyF9F+WqRFMByHgvvnqymDlKJtMlusn2GNHqrEmwtTIVK2KmFDk8F3lOpNwTtLptP/8cJio31f//+1W4Wwu1Cv//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+UFkBSu3WBiwFCk0SvZXwlQHhDLb/v4/z39Wi57d4q6nyh0b7RRydvJfhP5ZPh8H2qEPJIPQhOzuuc4D8hTxlbGB6+YGt/EkmntqsBWQXk2TtKSFaFGnhf1jx+1n/+7BgpwAHjivU6zl63GjFeq0/L1uQJP1RrGZLsciVqvT8vW5l3/63//////fBiUF4yUSTI5bIGKqNh0pUaIbsfdFItSLSRoE0QUw3BgYHPY5QyhxsuxA0vj0tiWqwNcAz+84q5FqfwgqGILaa9TmhtwoYVqGSAdqS4rw7TQg7mw7SYWtjxeTTQMjUnTrRcg0kFsyLGRTK45psig71qZOj////2Pusf///+TfVthgY4UAUhLBKslutsGaqzsj84pQSZf0/n6x7l+OobfNzmDogwy9dSatR9O8Nkzvw7Asoine9QljM66tUKqYB4AWlRiXbe2MD5ubL2s/j7v4iklkiyI+NSkkbHveZsOPew4gLI4xGzkBM7///6uJyaWFlEiyz4KhAkJSJUjlsYYimTsL5W0QUjcjKwo6JFsKMIFZIpSNJwyh5P6sSIvJPNcjT02n5nZHgl2UbNDlDpuXEn6dJapbJQbzYXMeRyg2wgiLJ45xUOZnxzq1yhx94c4bnEVLMzZYTnVcXV38yt21poMBN3b//NotP/////+KU///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9oKQLsctkDFn2mNJZRBsibAICMWo4d79b1vUjWE4xMgYQzxo5hOZGzDH7EuezPnLWpplwzp5yHmI2HYHOGoZJPC+rKSyoyOmzyouOiarSQUtAYcFkykUpoaIkdP/7sGCnAAeVKlNrOXrccsfqjWHtXY9Qr1Os4wtxuBXqtPw9bsoqdBqSv////5x93///u+6SEihYibKilpLSTutusDFcNUbiIXOqHkVBhBTZmQsW1oRPI9u4Dg0Xcl8Cw2OlRD37YC2Z0GvswUVBGpHKWGK35xGGn5m3MuSJ5GUNnpIeDotA3DNJZ5KIPldft7OGezs7bfjtmnf6BXmndXM79jWGs72zlY1X/8Qsd/////1PQMZXqSyS7rbrRBkNHBGPQjZaLwmwNREQP/e9/VqZi06pQyPOXM3h13iUJYEJbbaSTEOPVBWHpuzmYdLYS2jtEkmtInvpqVz9LbxuSPWHvEDEGLRUpqtqV3PqQvG1ZxUANd//p////7WYmRc5AtDgTASwlJGSy22Bijdb7uwpWgQKLWmEQ48RHy4zZWWD6VhRHvIAUDADdC+y3px66rabUrVhDMWaPMqtA0E1WwWnMib7LCNSf7VZL4QngWOWqOU1pqxbw/Ovew58trVq92bWksPIsd435dl2U2T4SJCb//lxf////63suUypY0z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ykkkyWW2QQWYnYcZUzEaxTiJtfvf/uV7+RFYACEtSYU1yw6ERf1+2Go3A8aBsY86dHx+snWbi/jvuiuJ7ILY0NNnrMA396w+Hcb2sqXu8/wrWu6vQn//uwYKcAB8Uq1Gs5wtxtxWqNYzhbj9y1T6xnC3GilWo1jD1uv9/8OTWVmyAWMQj//GzaKv//7Pu1OqrEEpLKUtltkDFXw/zZC84pQgC+gUqpWsGoRAAo8NtPqDiIri/jpHUE8zyqBRuXOuuaQOYLCDSr8SZuDqRikir/LDR2SMqgRV7DpWw4QEhMFNlsRbKXxupjr+d5Xs52KT71i8v7Wf3e5dqc5nyxe6Ku//1HTH////kHU3qKFRAIxWUlkqWy2yCC9uTrL1sE5I6X8SCiOP77lL95x1yB7KvnqbhAsERCBYg6ixg70mnoallRdIah7cdirLkhZnNk6rFizLAgxtbiMd/7Rs5tvV95xp9/jGq+y3oHX///UeR////9SsViwBOqMrSWknbLbIGKXfeFiSAURwCLsSLOEXl9ISXxHOB6aSJT3+146HLPJImOQM+DcncqtxFCiIu9F5c6Dq5Og/Kn4DSqjTWlYW1j74gwcm5GIlLMJ+T7xw1n396r089zKvNwrHfd95jQS61Y8NXC//+k4n///+p9im2KhoUFxxb///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+wloJ2y2yCCvo3eSMzICCRXZQBCRG0lGH/8Y72hZBEHMhovLC42+rzyV/R0Q/N7IzATI7EcdevI3gcJmWQgI8ysHgAC6fOsSJ9zYyJyTomCLU1pmhTrSKDKVZ0ETiJqva3////VvMnNo////yNankWDIT/+7BgpwAG4CvT6xnC3HOH2n1jDV2StaNPtZkAMaKV6naxgAZB2QlpJWy6yCChxS95OW4XgNZIpoCi7Cyh4pVQqeJnsvLTPpRGCIIBJ0MdIQR+J2EBhCcd7hYkAXAxC4OEqDJHDMi47xSAskaRBQootQngZwA0gwWRQWs2GwgeLBcN0zqR57GJgmggVhT0EGQQdkjIZdZ1NDTd1IVv///603pnk3epW6DfQ/////9dSb6q3p10Ld90FPMFSkslK2bawQWL2FKDNAgImPDaH7+xje/79Dr879qxYorbSdR67ASqgZKW3cYhOX2jQzjK1/uQ77extr8Pi0o9L5B8mpK0zKqTWpnLmtfjL+52IxBtHr94/r9/a1//9S7v///+r8CIJS44HSfRSKlkt323cIACptguLiAAkgWMGBEyUSjLwqJIKaEJJj1+F21mGLQiYsI4KCAKCgkIEHzBwrMWD8UARVDMiBwrsB0LBKaFggZqqYC2oKAtKYVAL1SYGCoGigmAa3y9gUAAYDmQl42JNMMFglINSQJASTS3wwNDABTNQklQGoUssMIglQtxFBGFtUIgGPBFkMxHR4fmEQkHCmHpVWCBGWzXcpY0iGaYwYBSy4IAbcIoWuAwPaUzWAebhlgrQ05GaAYIJTojrvUUT4cIVGRkgJhgdBQFMHA8LAcSDr1qbDIaMiA5PVwp6GV5ToMASKoQB1V2EQCYSBAOAkmYJHVgkbQAAVUHKMAgARgAeBS90JSh0ofOV25VGL8i1EZ535m3TrvGAACgoVAYYqIBj4LF4kRIfsqVuk02cWMyF3AEAnhMBmgCA9rjHnbZU/T/sP/7sGCnAAsXZtE+c4AGSOyqd8wcANdNd1VdqgAwoo0rt6hwBojbrunDSfaTpgIWAIHL1g+UyqAuz/igoIACwAAcDyQR8lIFXNgiIUA7683QZK+P//OYgeLQvASLrO1kd/9W3Lf6mH////9hw757f////////U+x3//////2VGNaSB/lqlTrcjEhlHJqLMR0KRLjYlYy2xUAHqGhwEgBEQ3BM921Vgs6Q0UISSkhNoECIGhMAFDQxSLCZB74xpwg5TFAi4w5YTIXMWBmiBOJyFAkTC5QoQa4g0WaKDFBkeMyKBKRGizQuiBqBIhMKWFBAWJhcyQwpFsrGpiaOUSKmheSQNThuaKQdJaK3WikmXVFkc01IcJTDB4N2ifRxEWI4kjEwMVH3RZSSKNrPo/o//////+vWyTnRECrv4u40SUgE6BQAEpkTInkBqUKSDVxaq9PWx3/M1TvSYxc5XALKqAv/6AkXGySVGS7rbBbJ0iFCXwbqjialjcn+IRjVFpHqKC7CilorNlhMR1IY5QSoUiGkty3tmAkFGXNcZs8COa2GKSx8nZZnDjsJforqYiRWmS1E0MCpkzlpyskuhp9DFYXvTsuR3J2MtXDKH8h+mltq33KGccNWpdhvD99yxx3rf85zlS/NOJVnpVdsbyvauFgc//W5+14CMpFTiP33c8G3yE8Lf/////////////////////////////////////////////////////////////////////////////////////hogKMBWy0UbTMAtuBfJCQr6niWGBpLgqHv+QG3pLCh4wkgasDQOORuuO///hW//uwYIaABvs51Ws4wtxFpXrNRahbkvzZU61nK3E/FWt01b1urjE3x/GELGf//6wg5X///+3VrIBBqxMXdJSVbSu1sAsDlBAHAVKnTMEIEb+OvyIQJ6xyWbCx4GaMZWMp1s6Hm2Jvxi+TvhQsD0tCh2pNwc3fshhFRk8xJIpKaaG2ZOBCmEraRTiKgDrTrjNelT0ZAkJNAxdBAM+KNTAyJ9+Wz0M9TUUb19mZxx5+4hNWtX8c9/zmXOdwyqdu2YVAsRzBwNHlo/////b3KakckXUacDCxKKrae22FGyRCID6aRLCkm2Lwxh7pH5r/7+dVbl92V8LEsdpnjzO9Ca0g/21vUSv1TF86xPNE+F9x38f3ptusdPbv/+d/////uQg9eA58iGwQS247bI2ICQlGlcT3tYW6bHELllo4BmbCiSI6KpGeHlmbVI4LMR1Jl6nMZaIwDMpFukK8UyUoFEpdF2uvex4SHg51C7KwUCPe0mYXOy9It73vo466E9BC7mmWofLgFI6xnWh8Mlp6fOdmZq5CLOF/DmOuTti1hr+fv//vMPpddvau0lQEthytIz////9DVLp2JJI////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9VEguOTa2iDa7GXCSdJuRFwpzX/j7xmaHgkaP8PWDxrd7CQ6La9dBUTU1NycRx6FMTkhmIqBZGTmCRu3au6VS1oL/+7BgpwAIZjXS63nK3FqFWq1h7VuSONdPrWMLcVMVarT3sW4ZihqQrzFEjf//5X///9S+l6BSFnvLQbCy5SUTG5NtY4KkSNDG5KGo7MFPNDU8rWIggC04EpZ3MFUdVqrwojF5X1zpsxhAmd0GEyl0HiAJY64bxUSVyYy/n2LjQpi1OQgSCZEr5JhsbfORA089kGjIWovUNDELBqUhh6CkHo/AWOctmY01nCz+tfj/dXP/uv5////vX/lv7OZ1HoiE1u////vJv2HRo4iRPhN4lAyOTbWgC/dSTvQSi+O+L9/H7exU6LHea1o+8FN307fHiePGyNTdFQrEksKyyxwrrVZuQX9Usc5lHauXh2f+9n/npmd5yMLf///////16UJWSCWocJJLjjt0iYjV0BqJC+3QDA858YL3OUKhxloa7xAlqdhJWarqWlPDCcnPhJ4qVQA1NiFw6nc14uxAcN2JLHFnQHE2JORDkDUETnlUlVH2jk7BdM3tKGFXc0pW53GXF82eRdMHLDPDW7E1z86v9w3LLtXqpotbScCX+An2f///6UZ54wMyhsz//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////MiSbbZvrQBsXPwc4bANVwcJ86/11ZIooKHlvL0fiu2kxfxHyMRIpFcUdWQ2C1P+zH4qz2NBgf/7sGCnAAi9K9LreMLcWsS6vT3vS5B4m0etZwlxXo/q9PfhJohlpZ6X51rG83rRjm3/j0x/6R7oxj///////+34axxQg0RCQioQQW25bY0BACAiLaJ0J7BicJgu3CRUGAyofGByYvEFHQwy2UDyzHUcnAglQ8QiCYzFYtOQQNiBX2A3oy9DQqWq5rSlQrqc5hldxH+K6wPPxWdpXJly3ozBatgoUHKbtaoHmlcil+9VYlWr+CqUBgX/rUGKP////69imIc4ypBACBSOAjyLJll32tgG+3hARBjnhF2SjzX+ux52xIsJIsU3p/JpvCXQwdAsUymY/A0YZ/uzXdFzKm94S+LZ3KmOeeqTf/M7QFmGZHgYb/1hL/////6mbmqXkXRIUFh0Akp2S2xoCJwOVLnaW2l8Cw76ykUFnUFOthJg/ShsctJmkAWatyhLXQQwZYivYMa3F4olCTtxmMYjhBUw5h1DlIghzlGXx7iQIowNObyz14olwrSfihc3KXcOjx5WkOL1CZ6Tn+RY53////+33TLUbnvCYh//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////eJJLlt20kAuNkGHyPYMtFC7xcW19dslZ4yrSRiMSsuFOHLl9Z+VOk+7nIefmD+sTi9TCGvk0fppp1U1d0NaWVMdw9rt+cjFNzOo50BdQUf/iVX/////2VrS51oMpebTAigBJTkckbQERHke4CcGEnAKKVQMM//uwYKcABsgmUmtZelxgZDqNPfhJkhDbR61p63IPHGn0/GFuAjeCXNjhQGn0k5pkaxRYECizEEQ4OdEza046MUGhCuAUJ6TSRT2ytVIoDC2hPx35c1eZEQ4MpM+AnAbEFCQvB5tj0XQO9BqdFs6zKVQgBdHuItFewZltnf9JY/1j//P3/ql8ZxqlW/xIZ8m8o7////9goKsQL3EUIHIFUCkIFuyW2xgX/ZiLQHrKEmOr7/mPzLd4alWLi3GaLkQSAaizl+K6SsfRl7txeTKrpgreMhlQSVicSYJLJVVfR0043/lG4fl/KrdwMOLS2RVbeqWNO7blC7IOhiESubl+WOtZ77+G//////9b7/7zzib96x/f1+qOH//////oEkfnweFQ6HSSk225LGwKkNInUTCaWLAnubCqZHY/S0rkOA8GzWQ/TIl+tlEAeZiU0ouCBwPftNVRVhe9dWcofdw3/GnVZFTxWGtw49j9QxVxvP1k9LWnKY/QIqBAjNnJVlOUtgt53Gjveuagp7kEd7h3XP//vb/9///////dz+rlpn8HTt7Ls2HDVX////KPUfrWbF3HXg8waEyoBVQALbblsjAt4twZ6CrDvFYVq/Vd0oBVhgOmhmbtxpDiZKxXg5kPLRlTbyTcGvYzksGTjcGlltJBUEtIcaCkObEGC1GhMuaQ5UvXcmM57YRwR0NUlD/PLhD0xT2Zbdw7//+tWcfz/+/////+We//lyIu9T1bIYYWFSP////9NG1jxIgiDp1UhJCTSTkkbcYIj+n2vhvAcFNUoQGysdAg4dBxl0J0Yptz4ktQR21NVOXZbe/WRBLhk1n/+7BgpwAErjfTazrK3IXm2n1LOFui6ZNLrWNNuWea6fWMNW+C31KHLSvSogVk9iPKwvG7mT7RiekD/xl6k6E007AEBXL7QHOwt7ZG+jcWtgkYkQs1TdqT3syDgDDxACJiYGCDIcmBlpE/U4jBCEeQUgMKdARo2ko3Awt2k4pamvG2sQWo4pBdYgAIJTFgSEGjEoItNrSoFB2DNo3SKtuwx2W/TkcFg7A36kMvdiy8D2qnbizpAAhzRLLUK2lv2yOc1yDWJvUyxmbfKkZ80Bd71QK/bSHyd+c+nrSybl+VJf+YnHbl0UhuVT0OROmopfKKGmi7sSmB4xdrXpfQ2rG9Xb/M99sBwBos6SQFGk5GEAN9g5wGN0A8Rd9Fr//mcp5KG4qtlMOS+lW2ajLh3B9FPzNfGPxqsMOWDIWyRsslGcehKmg9BwKdx7iTicHxpNgb5TSL5kYGbIGjMpP////qmqJM9Ub9uSJNNC5baqKPqby9DNoVhKVMkWASoGHD0nAUSb9+Z91J4gFbi8nnyXpPRpivWDKbRFvX+qTsBvSyB75ZqVSK89MfjLWmTNWirowZLrEavYu05TW3ExllPA0y/KxWesxa8yJXUfiDvOTByEqo9IWpDmdU367vnedxmr8tjVfnca1PZ7cpt46q4U13dnDGatclVunh14nWcGBGJTcZiM7TV39mLcZpOfVs5EhEqIlth0NLoxcBEvufXQgNabiAAnJBZrM9age5pez+f///PfcgJtZZnYiLto2HyGz9SbFJfF4ErzbiOKuRHGT0lLXtWK/K8LyrV56M3eQW+ig07DTsgeTV7Elz1MAcwt/////7sGCHgAXVStNTWMtsYKRaSmM4S5I5o0ms5m2xwxrrNYzNbv/////90OCsJnlUCNwggGJNyNoCKDQK3rS24KSMwZ+6ydgYLEBy4XSs3MYxLSZqPORCrtoCEg8iGodjUON8rmmYJPRpyXI+zO2XqmIjHKaTRyXQRLoy/QuIiAXBFggotgfmQR1HCQQKhfMyZNloGqjpdUaoHwMXxSZIpq1d2WzG1lsXSJOzmFlV6kf/////////7aqtfpptbrdJTJuflaZL0lu1EA2WWVuUC3QIxhEavc5/O2ca67igGWKG7o0QASoHhP3NwqgisonpWwds4ZKThAyogdMS6VR7USxNkgVykVB3KNRcoyQyJdD2gVCOJE6RQ1NFJmaaN////7VIksaGUo//////vdFResgUeFyQggKNuStoCBg2Cw3HVZAMc21huFJ7Cx3+KnA0lnZfd1kErBmG35+UzYgFBWqznHa5MI1RKOQ8sE3gfZ5DrYVe7fPoc7ckkLupUoLglUccB4E+SyHAzwLZHq2xjzRN4qyWxPvObaq3CQB6mt////87xr/4jztYes/////23Yy3E4AcNFCH/////////////////////////////////////////////////////////////////////////////////////////////////////cigHZJdrGBajBpMtN8C/BAuRwmp3u//k1D7sqayOSU8siQ842jkL6QxDjQaKpabxdAekLLEJEz08QUqCjG4g4mhRDMlBH5HEoSYNkBc+RAV0IYAaElx3FUuk6M2XifOIuVEurZbV/+35YNzdMKH//uwYJ+ABoU10msZetx7BsqdYxJbkHDTSaxma3G/mup1nEVu//////7jNbC6j7TQu6QiFG3JW0BERra31qrTQfNGnSkBCMHWjBDk+mcajsIXa3svYDftqzjIyuOPi7rZVNmW22DNxSqDE4bwGrCmWY6CbG0mWDhdNSYOFEtjGi+AeET0J/JwAW4CSCTi4SBikimcSN3Mjc3bfRMA/Id1D//VkyggMZII/////7qHJFza6gGKvJIhWWXaBgX85Uoum4vk15lFb+79jf9/V+lHQNZhjJ6GvoCQXBZrEI7CHtkViVw3ZEohdWKBLZuxULrmI+RGIqRDEGFkjVIcRom8dQ+BN5PgTY5x8uDeWbum+mj////1GSRoAlf/////q0YaGyjkF7iUSpJJbGwI0RPRy2GOyhOBM8beVVUaQtCO4ectyzC+8LrKKutIn9aiFRA1mJSuLyJ6FgoDd10oaKIhcPTNzJEdSBPHCaKwyhNl8XAPJGFEvh8wpMyFnC4QNkyFNyiLgKpXMkDYxKzpt9AvHrf/oPqKQ7RA88trm//////5ZOoNf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+6SJdtt2ogGaW/6sSCjMmTnIiphf3hb3nnzsPMmdmFWn6izOkZj6GiWEExh331uRRnDcg5guCfFrpDyTRJA+HYkyaSJuPQnF06JSLpNKgFSBhKRH4tScvmpImyJ//+7BgpwAHjTVTazma3Hgmuq1nLVuPuNVLrOYrcZmTKnWX4S5tVX//1aqzE3KYbPFa/////pI7DoyUrhRQgAg+4lEqNyWxpiBOcaZmpU0uAjJ+aS+aSiAF5BGkVyX5vs5AryNWc/ecEFwgELUcurPpwKK7dUkBWkLQRcPmIMkYjWJpMiQ5Q7BJBcQ0h0DoGgTJFQxIKCHAQIcsD6FwG5eFml8emYrl4ze1dqjM9//X8xiU56Lr/////6XjtLaL0ki7JLtAwK3WNy1I2oUBgO5vpNqJE+/H1HIeFoOFzfRQgjUBnUU52vZPLtTVC/KmkiZHboLcxau00ffWDn5kLi1LM/H3Za1KfUxGoSGlwpdYZ/ruNn//9B1H//////KPXeREwq8cdRRLjjtsaAiF3IIiIUBJnTq3L+QMsEPLwtl5SraWg+z8tZrxVm8al2gDcf5aAFXbOIcjLZLrZMIBC+BRDVBYFwDOk8XC4LmIMKAEdjuIYXA5EaBPk8I1IoNEV0G3AJpARsk4YEoLnRSIYTLJJsnepSa12/f/oGx05Z////+37SsNoJoU8FwAFf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3kkA65NdIwLQ21XuQ4ZMGDRJfXtrv//zWdVmpdV6WMWMnSbmTrhmfgmKxSX/YoGZCBjjJPQ9RYwHBEls7lkm12tb5ALcWCIsvYuWOFrpPN//7sGCnAAf0NdJrOYLcbYVqfWsYW48Im0Os6wlxppDqNYfhJt3jv7Hc9f3////ed//6YVC09/////647mKFEA+sHXQCQom5I2QGX/a80MRgN2LonuU67FVZQEGdUZIlDW01mYfuQmEAhUBTW6NwsyOOpCGIGbxZy5ZE4UwranmKjW7cpcpC30uoaZyJrOUSBwHqirpy91Ja+LjOjAmpRO37Gd6guZ5WOnDY8F8r2axZH/////9uzreRhq9FIuyS7SQCvi7DB1FkC4CHtwBPdjwsVxForiCAWm9TxWEuYNIovFJS7N2Qy7eDowy015ZbIcdyOq60zUZVUob9C4FHM7rp9TkDsyUot2fiptA1K0YC/UyGgCeIhlTf////9KD1cbQPa1ZQlAGJOStEBkwuROgh3ZgUET2HwsHctBkiAREdnHlcrVNmvFnQoS9uFK4BIqqk017HkjK/mGfkuxjwhAHpEBJEiZFhQRuTxMGxNi5SsfJkQqOAZ8cAWKCEIywrIagBwI8DNE8MgXDd0Uy+dZal793///KJ5v//////0fFBb///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////91JAOty3RsCTNSWwYvkrEPwJiUs5rHGu7uyIoR8eo1fEYiBg8ZnyEv4J/2gNy8HviCQ7ESwQ9MnygfSKhqUUTAihXL5FyDjcHgZM//uwYKcACBw1UOtZktxqRqptZfJbjrSTSaznCXGplWn1nD1ugoCoCNjE3JNRuzILUj/nH///oG4XrfV/////9fdRaH5SWio3JbGwIDgoEUclZIEqYTrTSViKhBZWUljdruUtx5IVWuW7dNKW5JiiSstiuOL/VLsFt2aBDq74lRZ27VNBzu3HZhdNnDECyGNug9kShUTgcMVIMqebqRiryUzB8GTiEmf94ZB8eplCf///+ij19TDDnvJTJJB2S3aRgWh04i1pkrGPElP+7yzW1/yDCy0IMMsuv2VNNQRo4RZ/afjUoEoYsuV+QboqFrFLqzbC5YNI1sRVcqoFlKYIsqyyDcEJV92+H8Wi1x7////En/6hTR/////yuHkLrWODRZTAfHCkSo3JY4kokm3t1O1ygwue5kJCphWIeBQWQOR4XGGVxaICAZ5AK2DREDC3abz0hxD0w02ic4WmNZsPrO6AwXwwEAggBAwgQ5cAAK2r3lYqaDhjYKAL5ipBnhmloEESEhENLG1H6aZhHiTlQoediMIWkiaDfOoXMkB4kLMAxSFnYlAqC4g3xXDJL2ciTVRjlsTKXNBhOtETMkGPjUtoFdXrvGr/VP////8/5/+r4rHeS2iQCYYC0ywLf6b2m1sqeBzco8CiypSATbbkQAE/juKpr4SBOowQAPnj6/+tdM6hV+ocBDCmImxZ9YlyPRrO03KvPxvD/7+V3H7cstVcN369WSS23ek6MdbAJOU5P////////+OzcY9BgSGrGSqr7aEglzrXgrEeAzOSEwEKP09jfQwOB2oDAaVhtowEDTBIQMBg8SIxhgGgAEAIHGD/+7BgpwAGK0jR61l7bFYkGk1p+EmgfUtDLfNNuQMP6emUtSaQ6Y4FgCBQBIYqCEfRGEhQCtNAJABJnNBIY5/cTIi4Dh2DBQLFsyUATFoEL8q3gQBOKYGBYXFBhkVhh1MdiwwMLzDweMYg0WCCDCPMMCogLBVbB4EkSz5uaXBEaLeqCDQJO0mAhhZBMuNFFbIKVGCFjAqCh0GBUolDO1aIQqgKhiohZALCgaAIQMMraX+iqokzeGZXLa1vlXL95yzPmW+Wsc+a7/d4W7XLMqm6SfsUMZuS540TC4b6rDNFf+KxCRQzQW6t6lqUdLUtVdZZUmaKYrbStaSgCAuv/bYqY3Y2HWeSfcN310Sd/kwCAhKB1qnTMDM8yH/Wv61mp82WRROD6///1hD//////RoYcQkAmXNJAFCSS22E7GkAmmQAoKLGTiMDcowwgMGBDlccxAKJgSTpakUqwtYLhV5hQGxRPpxkTEgUIhACEjrZhIKX6fXGKxYGwQUVfoDMQwKmYklxpLM4lDio2nIKMklBeJ3ddXWpnD5a4SDNYSUZXADPiIav2Lvs40XUYed1bDVQ4RAjEaAYHqPmMFnAFuRyLTzjS7Uqp9Y3rljtnWX73///5b5////r/3/7///v/r//nIlqls////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////mIgltsF1hgTLxZEqAaOAZAXfqbOvSWDAX26mn6oHwMGSpedD93b//7sGCdgAilR9HretLsRUQ6bU3tSZLUw0mt5wtxKJrqtPedbvmTaMvolgwxufHoEhNklHjaf//KBP//////R9thm9CRBKUiLlkSEZ6MASAasMAKEgKgZCDHZWAVEYV0RJEd1daN1FBJVhiljZiqAXnXIIxShyKXLViqzJ2gJupm4J0C5RdJ8HdUBaw/q5lDyIrvvs/8ebhPVIfdN3GXwbIXOa1CpRHHugCV12G0sulsMvrK4cizDnRl4EbGW+jdqbjk/2VV7NndQKOkj3//guEv//9P4mEZ4WFw0Qk7WHdRAL/fUYSwO1kv8xpZvXO3pYnKSDlDAT5xUxjX//7o/fapEu9nHDRCLDyoLAmKoYyzT2dG7f///ohdH//////6JfR2tLBVEpSxu3SMCMHIgROuO2yIsBgUzE7lNMHDFN32HJhrK6oNBgoWpwZYSGxAAyp+1pqCjZsMX61LG5YxMcHQPTlQmjoAANlC0VOzQNrrlIMq8cixKZPhWf9L6TxV84osuKBCbrDPy5HLWfxvKjqaldTcHvgie8sPQ9Ku7tbErUDbgOKf/////+qw4tFEVT/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+M0EppHd7YBcrHA74ZoAmhlkLnpdbfdsLMV02VL4DYFOnnOZ/W2Mt3yTCUL693osYGxme//uwYKcACNct0ut5wtxXRUqtSe1bkDSvQ63l63FnkOj1N70m1mo9RPBlksaAngsi4SCRQWy01r/6jxmj+3o/////+lKKKclLKAglyNORsoNOFKsxwKV3LBoBMGPWDnTGJiAardFirgkFSuTXARzaFzVZZBG2KK/EIwPJci3Uh+A5C6KIEBQ0IGkUopCfQAY0dWKZ7ASy4netKdOGq4b4MFiCVPY8DeKxI0LTy0bKr3FV0r5pf3hlSBPblTv/6KQOgj///9qlUseqZLBACkacrbAljMsD+RwGyopvjcu/F8ZyPYw4sBJCHAJJDFUqVfqlZdlpAgYxb/V6725Z04Qd0iVboG3jEJRntLhQP1xBUfp/3n7rS/////nUaD6GLjhjFDDYsFSSU7I5bIGIjGxW84hICJimQiwyHHQ4QOOodkAz8sztaWjxqOSsQgBcGkpGTJqC1DwQNKZ2LvtmDSkIGpKBOHDj0NOiI02SvFNxdwZQ/kRgl/a9PBU05U9SuW0qLyn5f976lPaoam57eXcI9KF72JfV5VHGHL/+5NlD+LCL///vqYWOva8Vhb///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////84IgIkZml/tgF1o7TSPk8AA1F38ebv/b5ukUtikjlElTdQ8OoWijkcqUnhoton/+7BgpwAJAizR63nC3F3kiq8/L0uPkKtLreXrcUyVK3WHpW6fzSVzjW9N7gZL+zelYUGeHEvH2fIz2KStfbwcBF4AaoTpu6Oj/////+21d1KXOTXMyUptZdZABCIBcQAgIIDQSFAYmEkFD8xSbXIjjAxCoPEZzFgeLX6CixAcuVlCXyw5rFEfDWH/h1iL9QAzsIMVxAhFHqdCnNI5giztIQhV0gW9UI5RJ49vFxDjRopaw86hb3j39ayzV1p9JMgtFkFkz3///////ZapNCrxNfUW7/t/9qBsuSysu0TypbJNfzvj31rq0fx6LukpJAjBwuO4v1XApJDEssYHhzINm1IkKyJHJ33U8UlY2QThs//v+Vd3/6tn4/yTP//////Zb6BcdRJU19tsjAg0GgBBNL2UBkYarQMaLIXJVFeQREyyjooBZ49hixBgQS7ZxmzdjCrD4HUA4QDQzgZvC7T1oNmaEKGDWNM/U25K0E45tUrRut0Is/ndRWaO+hPFVH1VZxnONSY3jXhZnuxJCjByHniPKn39f////+xUxaphU2lZYK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+jGQETO0b72gDYq9Yz2CdAalPrz61f7G7DWG4pEyCkpZI1R9zuhFAXkHQEYYtTxMaVA4DQANsNgYcTl0h8dVNE1UVvUkZv/7sGCnAAhFKtJrWnrcZkVarz9NW4+or0etZetxhhTqNYyxbj0MUUiUGBNV0nWup+tJudN////////TU/gCVXBAMqBsJyokqXWW2QARhpbVm5eAKgQcnNMGQoJw4YOsYrBk1tq9piKT5eEUHflhaWxUDMK43QYfnopKnpXQsCDHx6hkYsYHZcKSKhIkNnjfCc3rKaa6Xq1oxtUWinIqPAis7lalN+mrQr5red4TVphWJmA/Uz/////+xvbFkK6ElweLTNFPb67ayAXvJU2VRRzBrLkyL/zoKP4AjjBJFHIzDkDtjS+NOlgEmdWP2JPIpINCKWzQkCyBR33xvjY6gskgfbcb5M5xcNa3s1SmZP2m+QVmZhb/1P+f/////b9FS0i5AMh1ElS2OWyJOCxaJQhmAoPmjJjXbM5DRJfK+SlkyNO/7lBxaSawzgJ5Jclx0MioOTrv+yi7HYbQTGIWZZKCJM5lDNHlLtyaG5Rp+4dY0iwgPBK1lPNDc1Y1HHjws4yCfwWDmH8ce3f+URvCkae5EU5EIup0AqXss+81Tw5toRC5x///5MpOKdr/+mrHCkeWfEYJq////////////////////////////////////////////////////////////////////95kEy6S3SBi/dc90yEgccifHozZvfc/4+7bOG6LVlcTLePMXLBA1EJO5Lb6YAhAK0I2g1IcBfoKe09WNxJh3LNLUW2pcvRwHDldbKAKVuqg76QJJl7yavAFqrbyicvxn8KSxDdTdeo7D8Um8MN18fz7/1cv/+nxOfOf//8dOisJOJsJB21opSyu//uwYKcABiou0mtZwtyEBiptYxhbkFjDTazh63IHl2m1jGFuWyJOKBqOLZgBRsDcGcgykd2l8Kh0qpYr7P1OVhWMyhhbcllPnmukI9OLaSGfipKS4Jr6QLXcjyXkJKl+mVzZ0ZYxSiFvHSoCXKBGP7qZU5rDQ+Cr3zK50jPqJ2sVuZ1wedGGQ/QjdvWRzhahZi71O9rrv//NFaqLP/+d/TWQlaBMsjlsgQvcVGm9h4PGfgOm71Nl+v2uzNgrvJqLflFCpS4KTjO/onittitSIGhNAGgMBRRgGBpbjEZZBrKWsK3JiqSeNzZ2IVt46puRF3JyfdnHOtcdqXy7DOYZVJJm/EZWIRZ1tZ1JTjla8GBc7///tSz//2o0JEQoRUISoVGEVPUX/TcbBDExnfex931DnDBpYWZNsSf+DyA2V+5cAUrjvctp/IBd9eKPY8A6tXepOmUxUy/UAbQWzMIZAq9+p2U4kAJsZQQlFLDKDsHGVESsmZEuUCPI0hyj5bKpSLZfMiIFgkhuJF4fy8aEeRYVgHxmkon3SdmdnSS//////+geV////WpTVCilf//////////////////////////////////////////////////////////////////////////////////////////////////////////////7qRKklclkDE+sou0x60gjvFVNKnX9ufuLyiOwLCaCHnLfzbDR4ptHcl3KWBU9QD+odBiYjzqmodU1XM3Nh0FmQhvC9jOm6ZufGBHedNB4laRBNkC0pE4nufRRHcPQehadKASQUk6CZLpvs1BD//////3/+7BgpwAG5UdQ0zmC7HvIym1jLV2PsKtBjOXrcd8XaPWcvW5HDgY////VcKsizhJKbcb+G2HparpYOKDAoUyqEgj86RNgqHSpGTD4szd2Iql5ZZBBSkZkABjVixINVZBsth9IoxC2bTJwF/G6cjyRl2eiGKZdFCQsx0c6q8pXWvLLmyknkdVYiwMbXHhro9lHEbGGA74gDJcMJOO///2QZmH///3UNDYCLiwuqUUpJU5GwRPwcWTMbkRpYLUQ4RGHpDNWdrwuo9F/F1X4DfdEx8RkEHhMznFRSGGmqIFiK0OsfocI+izV0bMu1YkC/iaIa2lsMBalxWCrpbNz6DajvDDHU14+pKtkTz6ZTcj68vpnE2xMxv//+Dv//7dvZJuYqWAIUJKUkqm1ggw0ahxt39EYghAmBXjIsJFGDAIGvMKPKPzjDomoK78IZuyhjz7ShMV/YJgKAYAiM8yZkA9twzWS5LYj1hdwVc5HgP9vPt44sWN1V1l2y7dQWFyeSVc3UClN1hrEXbEwop1umt4/lWAg7///rPFP//Rd7CyaUAFoNf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////66JZlud/uEH1BLG2yIylvCxKxMDHLDQzA1y98rgGnXc2j61WFpeu0ncvuUSB1PwbkwMhpQx0TB+Tk5NUviEqCYjfN5LoSoY9oF4KmpBi4oy6ffMHGLY+qQJMVcSbjP/7sGCnAAeDLk5rWHrYdMWZ7WcvWw7QqzutZYthyZcnfZw9bHtXNoIHLQl///yLP//9A04NEUYopACFbEFKW53a0UZk7IHkYaOAihUQqGGm2rixmGfnSJ+5DLT77gwA1WDnWgKjT9TEeKBW/i8aeaCzT4MsJxycpA6DUfEImuWWEszaLwPD8vU3imP17zewe7SFmtzPW5Q9PvtYhHFQ+YBkOqCDv/6P32///66ilY1kWMpAAJCiqqu1og22TKfe+6NAglpWc5L1qyODqCTamp5cbHmvwZMQWwqTLrWdAszP5YZx1CSUImRJUYNZW1tHtdOmUWBhL3islcZiO4HmiZzu9Y1YT31vdhu21vKuSdQfi76HeJIkf//9QWHf//6F+h4oxA9MkEuNt9EZEiiMcdRk4CdAhSQDAtKXuya+m4jFi5bW2tr3SdVsdJ9lN25paDzM1ajViYa0+ozIhJ3EHme6h5Wn7ksls87cBZuXNU2SblaicdYnMXnLxfRTUtZoaKHucQSY4FeOE0STZaKmsiq3////67dXW6bV//////WqttXZ3ZaST6l0kJyD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+oSUZG05Gwg+1m4SmAFaTENfw0aotOz+4u1Yk08pHFnalatnCfrPmPvqxMoSI20IQoDEKCkLET5fElS5eFG6tHvPiNI8jaZ8Y3qHu//uwYKcACBdnz+NZa25opUotZe9bjuSrP+zh62GsFGgxh+EuK8ZI+IksKE5bg7RLgIRcw+9H//+s3///+jLT6Em3kiATZme//Ycdf7/rxgIcLKyTTcQQmrqw6W1CRicWLcIAcSIuK7cNPM+0dJTLAxeNvxGo9A7Ni4gCozI0haAmD/ZoaxNpgUJuP1YdCFx6Z939fDlxEzau9N8W9bd/6atWcpJ1mzTb//7qTKEyAhEzP///+sQmYKOEgltu/ojfFZzkvCm1KTqqRmDtKy0lccysZ+C4HapoTOOVXp4rmOSkZ/4y3ICRDCV2dyeNPPyagPDXby9ZiVSqUfrmdWrnhjlz7v93cx/+4XLljH64VDw4Mkaf/2/8TMf///0ZccKi4eFguHWQVJI5I2EGUZSlr5AAQxhHpoKxEooVzSeQnSLBN9gi/9PI+VtuCnr6PxE/DjvUW32e1YQQ6mlG3g9YswkxMtZJWhunRYEsY5WmQzR6zeAxRZKMnfQ4b+1n8RwiagyP3PTdMvklc9ZzEAryIh///4CWz////RDELf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+qyCZZHLGwA7vG6OihyJ1A7LwiM3Ms7vPqxhlS/Iaf1fDxS60g2/1jKln5bGGtCni6NMLOsCIo6K+T14MUbwryIIcOop663n0gxOy0tv/+7BgpwAIByzQ6zl63GrFqi1jD1uOXK1FrOHrcb4WabWcPW69K619YjeeLbd3a7YP8eBotWv///////l0yiFoN1ypBKSVyxsINOtMZfL8EAYuIA2iqcYbDNnbpEOzmXGUSiQP02JlVxKpcMsWCBYm9YBF4vXlSR4PIgGckL9Dwm05HtGwo3ERYn4jwlTrMpLPs58CTEsfM7l9Ptabcb1WBre48OrA+2nLkf//+Xf////6xlSL0ylbbLbIALAbO1oyS4oiJtPosLau6u/9NLWNsbl8otNEYbkVQrXty2mtRuTLQEbEBkULmqyFD+iQDJjRnZxotH3cHv1X0i7l+q4zuu4EslM5lcnCvrO2IbEvnygAWX//////9qRpM/qqHCgMGBcUmSJdtrlsgYhNu+qmKC6Mg1AGcoJypu/HfSmSg69VIrG5UsYjhHHXwTfAzEQrw7crQElcM8I/ZtCAWw/+CJ1kQA6EtWcIx+Srq/7j9nDz5T69DS1neObHOdyVkhEaIBiwePvIHf/+vrMf//ysSY0j1ONkRb///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////nSKd2rusgYkdn1h3eeNq4tiVMnsZba3+ILYuxRAMT05WAA0FxCHFgPGAzTw5Y40gPrISZDj/NW7YbcBUpBUFsZj8Ui4g//7sGCnAAhGKtJrOWLcaiVKbWHvW46Isz2s5etxmhVodYw9bm99s241Y8SFf73j/Hxl7uN77XRrvWeGJb///y51////36lKelTiAKccTjSBCTzduJJDiGAMFDiqE0uG4w9ecooNqP697KlvSFo8iZkvajUTNAN/obWvzbRmSiHoFQOUV5/rMV/Io4ipPtLjmH1DOwbzlaW1H/vEg5gvca3Ao1Wxbb/d9ZrBPO+s+Ip89///xD///+2knKUEzMqIKlkckbCDj7TVgnSSVaMDvwGppu9lVtah6HmWMpcZ3Y9LZVBLK0gKkOutNw23VtgrAuI/BuCSqBAwdnREa6aJ2tNVos+t7qwUtqB8e+rfH+belInxWIeXg6Yb///9Fv///7998LBQklSyORpABEReYZ2w8cCAIuCmiEw6qEts3uS2ygW07crQGjwqVKmDroB17sSQkQFhK6atCUB6EZqlD+haoI8BQAvhcK5MKFOvmJkONKtbyG/3fWPh/33xTNNX8ev3ndpdZhSpZglMB5LP///////u0ZKR///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1SQTLI5I0AHViTvvo9aoDgqDlb7/LON/1YZyEKhZRI5dXRtbC7wsDPOtGI7K03kEJVgNgGMAMQdR+k0jNhl0kv1I63O6tNv2e0i2ZdQpN6y1OT6tdZeQLa12+L2JOu///////XQ1K2MHFnjg2NQ4QCpHG//uwYKcABtwqT2tZetxt5Vn9Yy9bleTtP7WcgDFVECk2nyAG5G0UlxwEy18WHC1ZEU1g4gVwyV3x0NSEOJcJChwYUGMAIvZKXxf9x1PrDO/IlyKAREVHC4Y5aHugIsIDW/BSdDEHIqxMuAlY3BRtL9Sc271iX3IYikspYbi/H/a+48Dyp4HIfiC2AMMfydlNuV09uSwGrVG5IwxIRkjIzAALWN4+673Ht4cqRiMSzGG3Lh+ga278v1U5/dU5/g+9TNL4IWuKHE/b/+pNbGFbEQlLLHI2AIiCwfK5EYCrY32dWxvs0yWHNIOQQvm5iVBrDOkoUiZPiuiEwREGhAE0Uj5aSZ6mSk2YGZdJpHXUt8/UhZFJ1keF93///////+pNDlmIHKlWVWl2m023Zf//1vr0UWMDlQvmWSBAoBISKCKEBo0KG01jEwcQhNC9oycDTIqzCBABQKIAEYvFg0FjDoeBAHSQMRBQVDI6iQHUTOw0MGrcxmuRYlkwHCgEToe2BTBYMAAVZGYLEIwAgMBQcChoIGBgM+4sG2IF3nIKgJCoIDAEXRUWQOWUXvLsGCQWX6abQJcAoNrnGgMXXZ81cSAYwXRoRPg48okbX1oGAwaLC16Gvxu3MmBg0tu3j2vGB4NKDX/MEgQwYExYTCgOQEqcpyPq6FRw2erIBQlZUzl9Ydh+HmgKzDw8yjVHeMDAZPwiBCMrJlpsjUELxs7dUv6kMKAFBM0q03kDOjBubRyIASSM01qznZiMVT7X8zV5n+fdwMJ6ihmAozKYYdGI145axo5Vhf39TG1O8oZZIO8sa5ztS3HZQQAAAgAAAAANtvn/+7BgpwAKFGZSVnOABERrylrIHACVbPFLXa0AOKgJaiuOcAZgR4blInBcZUIIahcAT+jV/6P7Pq2B4Z//////////////TMf/o3/P/v9D2bbo9j7GnFUGx2/JqAtyrUlxttANLSqUEUmWxRkN8EBZIgEt6qinaABp2nBtwQCDL/YKhioKqFLllbarlQpSnMNAMqcCBSa0ohxhrtLqkBfRR0GBQuIY+tJ7qr4pIPQnS+7AR4Sj+2O4wZ24TIk0UrVMWgJkgAOa5CZkMLErrxGCBwmQVXwg9utneE9lc1ljGVVQY3DhrpRq7KbO98x5Kr8th2dqQ1FqaYbERAobgV9K0pzu5VLe5KKKEAApgIAXoFjhCaBYbf//+qjoJGgqzuE///W7///////6NmGyIEH1k1pAZCKkuRtINaQYCF86cYBQQSGAXgCEC+kAg4AWivA0+wMEFw1MF7qlbuYcyjmtlXEWTedQDZyLq4cM4vk0VVz5ytHkDBgcChhVzpv6/qWNdw1zMWghUir2IphNDWnBDT2kIIS9qzVWBbxjeMKT1eFWZ3HDic9D1qJUc7hlftX7Fv64EqveXy3Due/7lzD7mXce28pQ/cKicRq83vtjVQ8gAstT////f6jbw5/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////gIpluBy20Abyg6K0Bk12rZXmZru/z5oiAPv/7sGCfgAkrPNFTesLsOWVazSlCW5Ps50WtaytxAw1p9LKtJqx66+g7N/61P3Sl7o9IYLgD///////qRS0tWBkqMKBAogkFQl2RpBpTNBGgzTI2CkhxVgnQMSBccgBKzMJMfjEhsnjMJmmrmMOKXS8sqxUwIxwDFP1izU28kXoxwNNu8PHNFaw+kqgGlddhSt68mJqQL2rkdpwU74ryBbMMKxMmbVPVexjnD7IYIkmX2Ryep4GdSflavTU1/OUSHH8bkGLim7P///zfcd8y3ljrDVLTX7VcP92ed////ba76zEQEEEgKFSyQAXr3kcbXAetP8tosKBGY/q6cM2mK77bu7grJbUF2OMKiYVMoFilLIsyWP///////1+0bDJNAsWCzzIsAkJRuWtpCIPPKp0p2xouqYvjgZtlrioSn0jZkgmND6Zjzv1nSkRTHXGZqBgkrXTFKEo17sMZ2nuysgPY45JbpfjFFnRSeZQxaBH4flWtNZfqP8kijBCKkgKSFyjIkkI+FniAgWWgMCwRQRZxYI4k2SWbS4lSdZwxVRQGsRLVWtB+vo60zpoYp1ber////////of16K7vsi6k1ppscuQ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////iEtBOyXa2AXSnT44lgrLt/VeYF9EiDwUZqUmsdxUB5GIUA4uYfHTNABGHu0MMRnEEFYsL//uwYKcACNNmUWt5o25KRbqtNaVbkqjhS63rK3FQlmp0iTVuhucYvkZ6Q5phwf7vqq//////87MWllOIpFPR7aRgRnCHdnRcMQAABBTLMsDTYADGGF11srYC+hgUB1KkMRYcExdqK4XFSGBgE0pouOsA7Uhkzdy4TaxhfCmCXyGznvAiEmk4EXpYLlKmSwz6wE8KVzWmNsNjac63IaBIDCTanXzcpIxE61mi3ew1r//LXPxwgKc1///P////3j3eu5Y2QSMHf/////q0DaUsLuIkBP2ba0AWE4EMwFqNX+zoo1jNFkWeE4IUQVEyMVGSKQ5wh6I5w/jDGY7CgbM5weBmhJxfZ01J9JOamZH2efVUeW9K6btQGYj///////V7n04BjlCUSnWrbGgIXbRaXsgc8AQHGhPRObDwSosQAMEwKd8o9i90C07d2XAxJoSgil8FLqhkUVZY7t7k/AgiFkMmJ8K6PgkJVlgU4XCOQpWDwV1EbBUydSrouiHxz/LidiEmmHUDTGc0vMPG9xgQZN3r6wnv//m7/rrChb////7uKsqmXsW5YuXBIRf///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+IiwG/XtrYBdZCJgXyBML//1qt/bm8fi8cI70QuH1N71STIaoAhDj/+7BgpwAJOS3R63l63E4Fuq0p61uP6LVFreXrcWUWarTZPW4bTrKfErNNGPY48e9uVXvUXq+5rmOvp7l/82W9n5eV///////XaknIQUC7HbY0Ay2QXBEwU7lsgEGC84CiIZBZAXFeKGzG5V/GK9yDHiLRPkoMqqwdNxqAgcAILq2HMeePlCTSLQlCwIE4SzJQeZLjDKM3k2YiyY6WbHReYr97CMV80L4mrmB+VpxzqtSLMekfeM5x933n7vFIbe2gsZ//////u+pVUqLQE+n3tgFVOJqIw5Vh/V1eimuOgh5DBaiKguYYVHJKBuzGZDZAFarS8wHNlxq80kfUmtajw2p7PCgYgMAMhwx82/+vvW/vVI+//BGf9Dnf/////T9TmmiwdQKCejtsaAYhBt6IgocMFQJYFGPsA6IKBGVkAkWdIwsEzmmz2MzAJKe2ZDcWFDkETnMJBm/jERg2Gm5g6r9xuIoSHfcCXQOwV3alanaFA0eiLJ4fpopSR7KtZim3ZiLTm4SufwpKLuPbOwqScHYBb/xVh5L//////soVpR////////////////////////////////////////////////////////////////////////////////////////////////MymXPr/7QBrjBGcFI/rEc/3rdKPM1yW8glQNxugD0z1VI3RukR+ZQ1YE2LxVj/YN1X3kFrWYHdanbIkZT+E2ECPHes/41/nWP8ajez///////pSaSE1OjQXEIqQUI3WSi5ZLbG2IHEndbgiqFxZMYMWfExIQHkSUjzQ4Z0gUDEN6JrwYfjxgBC5//7sGCnAAYjJtFrWcJcXiVarSXvW5Ss7UmtaytyGB1qNHzlbhECTxegyEYHPDEm0J0oiqplZ0bwg8yNQ8aDVUYiWqOABYjv7hyJJ0KOu8jIhJd9bStbgQK5ShrzwGp0+jsR0hBNkmHZ7CNyhx7tuPxiN29XuY////d/h/////MP19fPXM8+08XldPuatDSE4hpRy7////yVUUEKEAIcqyQZNZtrIBeXAwB4BBITF/dfCnk7yOpnahCv2t24oATzAEOAROt4JBDU1DLVo43AQBLtAoBwHIDIEpW4L0cNfGb4sKZxAtplC7GuJzvU4rX3XtQJAwkBI8aaWUr+S2nfeH6Cv3/7r8P///////////DDn//7cOB7/3Krf///+r9aZZk+eyR1AsFtuSRpCQCogt5DeQGMKQ5ixqKLytKZA+JBbAP9uoZtya815w4OdBBYkbOrFCehyRUVM3Bn6gLwvCXeKGxGiSQgwtuMtikvZhYkMvcJ6bELV0ydw7bXL959kSZZIR1ojWp1gZMs6SK2TEGO7SZ0Uarfds/9f95fljr///3/7/mv/e3jhr5+s4YMZ7v//9bdc9WRhBoOrOlDP/////////97Lpltu21sGhvkIIxtXLqKPvSsn/23mp51mWquoJbDTxDgMSAGIng4qwB+xUS3sxG1BIAEgRjBpfVfFt+a75PQ+bLYhD8RgqcpmyDLFciQ4iSGfEARWxZFAA3aJ/WRpNgTIskBNS6UxyTEyKCbr6qLaT+tnnEzJ65oURCImyOJlFEyX1bI6v///////q//97+ipl1GjvIppuNy2NgQSDcFFJ03qLwgzlLMLoUy//uwYKcABQ850es5ytyVDRrNP1JtklTnS6znC3IRnCo0/FFuv2utaO6ImycWHIcX9K1GYdbS2nsQBjJabpMtL5Ktu8+6/4ZcFO1ExTRaa+fiMCpLvw3qp38dlKuVP0w15lpzjpwUoqp9ynrQktWCDwDRQHVrQ/LYDnc6bHWX9//3n+v/////ev/m8s9f/JMs23fzOgj/////6aqrFJDpd9FMuSS3WOC0bADUhEFzVSaJBK1U13esY65LEWfQzOz80x5XJ664k1LUuIcpUp2awsCAMMTibBKYhOMoUTAwMkSJGCxZhNJlkdYXKHLE4F8OqHtA4SL4OQBAoFSJsihEx8DhJAosS5Mlc3NGo9e2v//aqYh57EJMNAKXvX///9VGnlVqNHECgU0nI0gGWmdtmi2hgCbqwI+8dLMKoyWOGLQvx+72Ktr7p40s460NJHofmlAgOjLPVAnIiLq00ZaSGCXiPIaBHJLLF8vvEJe9dE0xjkjhSmjOGmSGdcJxt0jesOASLErfV65ZQYVYcq1bFvP96///W//n////7/8/5r8fgKC+z9LfwsHv////9nvJtW8Lf////////////////////////////////////////////////////////////////8qKYTrcukYEmnFY9hXulgshTrypMt73c+6qTlLQP+hvFBzCfIf5C2gfRc781X1llMjm3BnbeLiqzeUfhxpTTZmsvFdruxmMLsSuXdDqwyC5d9TJJwA3GcBblb+vNZndUOV2/q9j3d7+d1nvnP///////+f/718OW6S2MKf//////eqWkRUKcacjSAiGbHb/+7BgpwAGATtQ6xnC3ILnOm1jGVuRmOdHrOprcfgeaLT8SXY6nYm8hUCKiKNHyKiAFhz4mBcpIuNffdFqRAELDalrkuyW2GRBwXE4utwC3kM83R2yiQYeQyAJ2MzclliAx0ix0tjXHPLo9EmMgXy4RUOwOImC8NMCtwbauXzAbBMkklMzA3SR26VT/9/VdqBSIwvGijYB/////qZQLoYFgeHIFDY9whMFNFyMFiNxtq4om1Sk9L2GQsm/n//d3S7pZXkUscJ8Wm04Z1xaWmmKWvVpcQ4tRoqvJqTb4QAb455DigcFnDSKg9EwR5gRIiIhUTeNpY9h1AVk+WRPJLHSvKKVNNNf////3RWk9VR9zgfOpGtG7U///vqUwk5YQIQMTGgUcRTLbacrSYYQqf+GmyPuEFgTEYYn1A7ZoAgM2DSgp1WhrcZ/FVbnmjGEZS0QnHtGXEhtl7KITxR5zogLCLeQMohjA0RIiXSQIualVMWlxqEED1yCEwRYR8H2DbiCjPAOKAtkDWZIvkFFhKJEDY4WzJJFXf1K/9v+kVjBR9lkjIoOAT40wi5X///6acBKHf///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+4QmE205G0g21dF7P6jiOQpi7M5VqfKr/ewU1eaWhuaidVKkghN0oHSPuvPOzXiE9DwmxdSFINXwfRMDPRh0xbPJzvkhFmX5Ttx7lxiM7lEDopAUsFwriaBb4/3Xf+f8/X////7sGCnAAdbOlFrWZrcducKLT8vW47on0OsZelx0Zxp9Ze1bv///197zDfhAGybf////9mnZTaBnEUgW2nI0UG6D5tjRMaWiUWmJ0I7xtqlqaIYolJd24eZSWkvzD2P5BqFZpkBjtlKwuyEsIf0faEj+O5D4CMoqaqtxleQzAP1Ew2Qyyasx9oYA5DHVaALeCVQpreu1OpnbkwsEXmb93/KBw2hvel3////7i920Kmroow5Y5dAwLXaG1posWWELEUoAoNu9z68mXw8GNRo1MHaXYTNPA5QPqdGTM4X3EehOBLROBzjgPsaGY+JCENS8XzNAcIc4khDj2HYAVwtAjI9QvImwAT6RMJo2lx6S0Vsj////9bHjjbv/////tdki4oLHDRxAwpxpyIEBhFbw0zsEIaPIBjUtfi8CQi/z+myaRKuk+V5cqpVjvLANK/xAGxEzayIVpRZ5s87QwBKbghQUQMIhkccw1cbBkNQmxCUcZTDrmRBCLDkjGDSH8uB/jEQIOSNMIMCKOiXSdTRcxoVun///9fuWC6xkSlf///+zsXKHqh5p6RUor//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3UVA5G3KwmImUYP0WBibgjwIghkoihfv/Z+DQVxjbivzAjRqVjIgI1JEuo/Zb2XXn8fp22dO1EmvTGFexVmLUF6rzMN6lwmIk43jtFmF4C2BTOPYTgAbnQHYJSSJeRYxW6X////6lJsh//uwYKcAByo40Gs5ityArPo9Pw1tzoCTQ6zp6XHPnCl0/LVushd0WXfpKf///////6/Vv3ZWpGz7Oo+soimU5G5GCg1BpfDUTXaVhGlyNTrKiCCO82UwS9g+7N913hTRkcoe6SDwAyxE9C8ibs+RfMdPSHalT9OYoA5oEvjONjmRa0zLot6RshByqUuTElCZGkzwYASY8pIrctuTEsAhgX//xMeHI9N////+3dfVilErKhctktgQEaxMTyPhuGGEnDyReSiVn73VpJubh1HDOSxVrbNASOfRY9/FFay+Tn0S7oFsiWBSA3R1F1RsiXx7nB3FIzHgNRw8XyTHmOZjxQFwaSUAD4KY1cqMjibEjUfsr////6jQs3/////5W5hWPIqSOJkTAm89vY6MjO7EgaFEgUMMFUDMytsMICWMukAFyI0Zo5p/n4RctNhypqIzh02OwmNKby8sCMalBEbUPKkQI3BfwY6xAR0NC1iTEFlWH5M4rhAP0D7eIS0FUb6tcN0eKGXIFi19X/iECmt1gS////toZkGvZXlRH//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////KkWE5FJGyBHra61yG6rKxSuu2DsYe1+edbdtFeLy+WsDgB4wsERNMjeUSdpQI33L6dt43zRFeB3OUV1OwwWKPbbfnOFyyPlRMXVz21QxTF1Lhqgxo/+Jje6r/+7BgpwAHoSXOa1p6WGxk2i1rT0uP0ONBrWWrcbwcaHWNNW5n/U93////6LE2BhlBdwwArCClGTE5GnIwQGTC4S+7VEOACOCDoHCJyuW8tv4dLwYYpduVLwToS7XDBy3H1XuBUzUdCEGk5yyM8l8qpDcEZLonREPDsJo+E0tEzJMrGkcIwRLDo44x6JiNkMc5oIyFgBjzJA1H4nGZELqV3/////TPMun////9mhtI9hpKGCoEWRMLlbcjBAfJCoC3lWHxiZFOayRngH6tmV5Q6XaTCZo3BjasaejDQuDEdNo7xRpXTzZRuxGQ4SUNBKRLndFQySTHqimbpkkU0STQHksOMglIe5IAZQ92OD8N07SbRUl////9RhT//////TrUpsLIcILBTLfIEn8jjktwVChsJOJ7EmnXJHh0aUlSl/Z+tQNs+gWFi9GvWGVUHLIKGOU9Scq8lFu2w6D4FUpltimsSOAoXS703V/Z2BHhf6JSmefF1X49vhAJe9fGIZVofzwt1Ocv+t1f/oDQc/////1698SNUgoLJ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+VFQNxKSMEBx+Tu00OAdAAhSO7MEA2Z5xhRN1h+kqYWvZ2qYjJkngW5ufTwq6csgNsBFgrAlof47kR+UbkIwMzjmhabl4e5JLWaG0wDEP/7sGCnAAgCKM5jOcJcZ+cKHWHtW4+g3zOt5kthohHnNay9LMIeQcli4drRrdm/////Ov//////Q7LrUqwJPEGGWuS6BAQHDceUALmtaBwmI5EHMKZctEIE9jhG4gNNKAuJ4QTGR2pTZ1KjKVDmjhxCBs3BiOzZrbWs3eWJtE5BxpcJYvMUxwkXKRiYHSuUiRHPEFSESNhN4rYi7oAhgBolm5PMUSgpE4zKf////6jgYFFf/////zpNaPS+ioLtbt6GBsaBarhVVhBTM0p5ZuM3dXai6ZbLUkUjkzo5GXSmntEgjheMIF1F9CNJ9Wrtq2QQQ5VJVJw4ECC7yyxc2nlkhxLqWZYXaAZ3Agwea+AtigHFf//WKs/////5XqPaCiCpYOhYk0yWy/713IpclZcebEgxktYKZvhMmBBkIGsYNAoIho3rsp/LogqHWPNvdZqVBh2lLlrUcSYhtU89DiVaOaznAWJBz+XpWXgU0kCw6p2vv3JsY/EpA3klj79NPeBTNiaQajEecB/IxE10LofjGVw3D9vUNu21t+44pggEXoquYggKEZo6a72v0dTlSklFJjK3/h+47cPy+3SWfFg+ikuP3I5Q5wx+u3de/0FGHFh0okwlMNuJOIEB77PLkqP6Y/B7FApElo2LWvd67H4JiUFY3tS9oo8GfFi7pErZBkbp7NH9eW5d1r+XbtrDtyzR7zktmLTs9XiTpyyNrvSA/ecaiwvd//rP/////9N3qvWGXuUyqqrUslG225J//8+xVB4WBxCCFLwuNjDIAMBAA0gKC75jgggQAkoRBwHCsCJiSZNX4OFhicYmEwGYnAqA//uwYKcABYI5zm1rIAhg5HoNrGQBp3mFSVnOABjliCprMFACchDAOAxicFm2l0NMEQqM74RzGYjMBrc3uUTB4GVqS/MFgNg7UQSBjBoOXWBAXDANAycyDKKaa4CCbH0pl/AIGqPtYBwBS1Q5w2IwoYQBQcHwoClLU92HmBhCYSDA8fDAARpn1DAeXOJkams/1aFPOnIYBBYsLXoYm5NPQGCgwn7XxyzhgeCSg2XUUgoBSsCptOrTLEfGT9YczMYAQCCyuqWVUcfgyIMKJg3Wy3wHCQWA7USqA1dL7ZmpoW3a25qRhZUsy+z9y1hs66O5ClsmdGo7Ra5cxq8T7XszV5nGgNrHZFLX9gqMyWUOjN2X6/7VNcmLeExRS3mOrlLafoJPTSAAqABAAAABx//mtizGsnxAQYyLrfxc2u/v9f+JgrhEfGm//AI3/////muz+zR9IEDH1hg5VSQlQKRR5KjSaAEICngxMdBGLAUEMCnigtaW5MBIOhYBNQJAExFvn7ZKFg6BoOEIXsEXWg6DioqBN5ECp4SBOgr9iajhcZgTiKaDwot8FgKhEXj92uRAWZEw+MKKg0gnOwNQ1dSQ0be1fQ0GSjUqWBawVIp4DIGMsFWiiS/T8xl/asGdzuX8u9yqx1TELLRIK+09uzjzerNLy5Mz1WYf6fhq+mWsI3Jj7nw6zmjzsZbx7rmP1sqa9f//////////////////////////////////////////////////////////////////////////////////////////////////////////////////1NFyXGAAKt60R9D/+7BgioAIUUHRV29ADC9imprmiAGUXOdFTWsrcOGQ6rShISYVJuSDr1syMjjn1ydu8qjEM1Ne5DdzQz/////////9NNLn6DyWRStLkbSDScQAiw5Npi4sNB2IbWIHKpigKHF8Gj9BAhBOuZg6erdwcSXQmUNE2xkIC8bFgCrLrRCIy5lDc4Bl5ggw4gq76WLk08tSBaEtZ9WgLLVSp3RU2hT1OrFHfKwFiylJBKEe+OQ1Mhyq4kJBcTn7/zM7Wud7lTb/GnAia143LeY4ZfvvOa7+N7O3Wq00CxC5dGix0PbAvq////1e8gKyACKQDhUtggF+NwmhuRoDWvuzUZROffp/eMZT0/lYrt/mB008rXQTCeiz//6iDL//////X9RwoABYYGG0uxtAMgAS61oKztkEADMHw0wgA4cbwIAwNAClJneYYxd6MyDcHmSZthh1gTqCMAzAGRyIRL70Dvy/RdqliwQFHGCpzvfGIaftN5JMDAypX7YF7skWKgLbVzX/i8uh2KtAaq54EYB46z2CWGSwBMU1H+8MNd3zXP+afBWqV2e/+u6z1+v5qnxyqXJl+b2Ou3//////6C9NJn//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wyUgnEprIwLrdaQJ4Iogsa///c+UqY3SCwAOfu/6JdNayLlM1LraUlDWOf/7sGCnAAkaOtDTmsrcRKR6jTTLS5J05UWt50txShbqNPmtbm4TizVdrwOXcUsYV9KT//h7//////x0XZZQWQSCpFLW0Ay90vSBVvYQBQEziJB12DgBdghBWsxs6Ixpd1JP2vFx1ZVy5Vblts0MEUXJMekFEA0WQt0pxoWidFSLd0w2gMnhKSjfQLAbPVeJEpLJ83aq4ILa/FYGa82yF7OWuwaYyYDmz116CU6qc12nxx7rPn71jp8J7fP///H//8N561++3N1tB23/////+i4soxFEBWu6yQC/3gSsAbVFdvX/QXZIqJl4tgG8FlkMKxolUpMfTVZIdK0RV0axJkbnlFrv1GMekKQ+P2MbP/1//+xf/Cwu9Fkj/////673tA6HshFxFIp6O7SMCEwKHAbDUboZMFCDNJ4FayXEFCgGslbQ7mWGgu1WfLMv25iIzcok+RVAmXeFyhIDBEHtOpxIdZlhfZ4IZai1+ff5yn8RqmWWvrNylmsANjWV6VSxniTJUlBgNA5QG+uSvVrUsuqUVT9/rP9a/ussIMnNf/P///X///38u7vniYBf//////U5ooxKP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////UJSCfj20kAsbGZwFggI8qR92OooBwiWCaA9jFB0kQvmanu0hwXARIUai80OUSD5KqT4+G0j+V//uwYKcACLo30ut6wtxWpZqNLatbkGiXR65nCXFzluo0971unkz6RMKZIEPYlfxO7+////MP0u1DW/////+lPMWITCihKRTsdtjQELbtsiqIAM8ZCBDEMkMGAgQgtp6FDWn1PGMipYtFa7A3OES7zqbqtdpQt5AD6UYvVagaEt8LhjMggRdzyrKgVgy6U6HCeqUsPdWN0tSNYvZIGYxSVNLnYAkN9CaoQuFybE1W7e2FQwkvQtz6OusRg7v/////rzhGvJsKCyhKYb1e2sgFxvVcVHOgVxlux/5tZnrJ2OV+rhTRyBbHI2rH+NaJCdJEpKLE9YTA3Q75hPaTzxN0hdTRpIYurn4sm6xdUvv/////2m/1ufU4P/////9frSKoIrLtFHGCgXY7bGgHAg0AYCCghhQ4CGGVRDZxf0BjhyWzxmNyn3GLdSKRwQHM2TFX088FpsGUMVru5EnGhyyJXj0eS+h5+lxyxmzxseaW/8ta828kg6ajEoe2MRqLTL7P29mKeqsKA2XQ5XjsxOSq7SeMCxbA4zK6nrbEzqP/////X1XxwQFf////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+WFoufX/20DRbrIARwVfbvqbWYrNJDyKDpE2GYG4F2kXNTLJsnVCQGHNw5xQWkXpsgYWGskyxAwMTqRqolX/+7BgpwAIhCbRa1nCXFzFqr0uLVuQiN9JrWorcXGSKjT8PS5zoRUL/Uo+2rdv+Y//Ok3sf/////h5zhYg9YaJDQCBXkSipbNdGwIgHeRZSnVdASYXWGoZFXFQGDdjGUEDndnvcOHQMKcV7HvL5PILEQKGSLXe6U8770hhh8Z8PcETD3gI0gIoAN5IGYmpERwFwukDGmbl4mCiLWVxySNF8J9GdIaFoAY1Iw1MlHnNVJIMl2+j//s7+bNDYGC3////X/y02rChN9hIK7T7UMC45WK+Rbgu3ut/+fP/3ExnbkUfvNIxG0fqJNcuNSPNNWn4pQhZdAU4k6slhUk1mWzZNirqC/c7t7LiBCUx1RbRJ7ggkIHf/+Wd/////9q8XU9htA4wVQMLcjtsaQiG0mVwXvlAWAhSerbZpCYG2Nrh0uE0gcG7DLkY6UYBdZLdv7A4wEqCwxyFIjsTj65LqG7hs/AR8DJwqGMUlOCLGg7S4vAjvKNrSYqmmpBV6hw8DkdGp5DlCXEd6PNYWiaF6EFnKbm/T2Qw0+P33gm4pncnMOZf/7/f49////5+v/9fzv2MLEs52seFX1Nt////R0Yq8RBoItWMyqZNpt7JBf1fvKuJg5Nm2Fc/S97Nuo/FWXxdXiciniy5nXpuvR/iDFmfv2++U7KNpDHZiEgCBE35U8riEZWAa7J5Q67sQdL3/S/LZhQT4sjAT1rwUpQZOA0d6/BCgkVdidwiEOU9jWu//7/9//7///////P8P/8KsqinM7dVq2Smz////21sSNcwWFnYUwnGnLG0JZXC7i7y9A8YYGZSetCIDJcIkpUnlLtQuf/7sGCnAAUJOtHrWdLcjKdanT9YW5L470ms5ytyPTRqtPzJtko9ylj+LLGJMgQZCjZrYrAskUDf2L2LleItAfBI4kAf6H6fKVLsgafkDoy19rbTkWlKlqKx0rzw2TOLwTgOL83gJBBTOmXx5nGoxKq+EatYfnj/4dxy/Xef//vHX61a1/7qt2Th1FLeP2ahVqOv///+/rxcXPNaqepwu2ybWxjbkhi0p8nQjx4HHlkx4EGNavo9KAuBfjV2WBhK0AR6H0pyvQMANtfqxKkTKdaCILdmdq3m6KDP22F/IlK1wVGeDiDxmAyI4RIRrBfZxAADtx+SJQUwQTJkuoFlAhxxzJaXUtaK6m9qOigs1rsZigTApmiaJz1r2/////////svq9d13tayTMfYURLKTScjSAY8PjY0IbmsAhyMUsDyUM0A6HQxhR6SD4Tau9EGnRVKio97+dStHSyqege3ZpS8Jdti9O+pggLo5xHBzGMvvRzhyFvIwp0UX0WpChgnKukafh/hHGd8+YQZIJxDFExnGzJuGb1MNeMX+//j+3///+cfWcVzj2gyl7eahhoE/////7H3Xfjf//////////////////////////////////////////////////dZbLljltDgtHAveH6tGWyrz2FPjvOnopK+rIU8XWZMy1VJsLimpuNQRhz2Xv3ultRcP3HMEIRWgyBLl1RMRxkUMyyJ3GXL50jyQKw71C4B6D6DWJ8J2GxkQG+OIPiFhHYYl0eCHE4UU2////16jJAODlPGvQ1C2I///t6l1Z559gGBoGZEVCm23LGgIXWvsFarkiEQ//uwYKOABZQ50OtZetyERxp9PzJbkVTpSa1ma3IWHSq0/MFuQCIM2WZTBFQb4GT0ppD85ZRlqLCv5ajtBFU3yjUojl7di4rf4M8rQyJtE8Bq4PGMckXVC9IOU0SgfG2Q4tkkHZFwitxti4w8QjonS4NcDNYGzJmVTYQnJpRmkUS8cLx0zv1VLq/+2q1yDManHMM/////zceRvS5A54L7suFy2TayQYwgzwwiD9tTMZm29r+tSfd1gkK+bgxmkDoXDSJ90A5VkiwbSIGp4tLrg/CPRqF4dq1pEDHJMBJygURJBkSZICOEQFGRHJNhP4tYnsVsQYMcAvk4XRpidyqTqlFUyQTZH93//qqspcyJs8bF2wn7F///9N7ZAeLw6hAMhEIPKlCCgU0XI0QGsellaXvVAgrUPGK6h9UjWn1MCvSZd7cBqieku1DDJo0w5DIhCGjkItNOhlAHeynbFpfLeNSEYqEl7XDkDwsAak2aYf1hrC51myEqXuNG7A6JIH0lyhxg0KZWryp4tAMDW6eNU9FT4d/n/+95d/v////9///fP/WOcrqhRKP////o7mam1TwQF/////////////////////////////////////////////////////////////////////////////////////////////////+ZlsuWOXSMC9bXxOcKhQWUdNV3QdrVayPUnf+WSN60ySoNc4La8luHKGtX3ZxDApLC5hYy+bOoujfHKLRmgZLPESKQrYckc0rk8F1YcESoauCagrugdJIzP5rQZFe2p2//1ds4XlGFDP////+y1TZodeEEPFP/+7BgpwAGyDjQazrK3HMnGo0/E1uR7aM/TOKNscmcaXT8tW5ck4iUGiNI34f1Ydm4CHJrQKDK1gm6MvPaUavaYutlkBq5Liu678vkQjQqsfshzM2GIB37hT9V2QOjPxq6rXhdpas7HqSe1BEHvtCRbiOLhVE4hqgLDBFhLAzkMigKTZMlMeCiTpXMzRFd2/q//rUpl9NzNkb7Jo1a92va///////q9279dupFq6SC1GK1mWy3I5a2gJmCKU2SEwCmRhStrymNvU5lATzSqM6lMUsqWjFZx4EVseSMhNa6/1Z/gJUIoBwicjYaGaB4FKE9EUbInC+LpcNxXBSR8PDlG4cxfE8AmwDLPuse6CLJmKN3/Vr///1Fxdr/////7OrqCMVUkYLBbjcjRQbJWBQwo+lqm6SRuTDFlWJjMGEKSJY9p32ZwW9h6DYP67pjwpqYgQhYaYcmkrLqNk8pfYwSkJaqDZiQVTDTeEMhxCnYV+OdJ3GOyrIfRxC3nUMGxB0bRXoep25pYHzfjNN///ftr/////////+GAgwLizVtfH////9DXdsVFv///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9YVApbJbAmIkyAHgmD0bi3Fam7wRSf+eX5Lhf5R6XP6o5FmXoSgZFU7X0OyNOJ6uYiyQUWskaGLTrOoapSx6szbBhwlK1K1dPXIuJbjxesKlDigw//7sGCnAAfQN9DrOnrcaGTabT8PS4+A4zss5ktxvRPodYxhLla/tH8CFZTv/9Yl//////+Al8XEvwxXt6AQHvXO2jxvSt0wKx7NpEEJOwO/JqmlBKhT+VHdfgkClUkliwKS6e5xkgrlMMtDLK3L8ruDeEBwwsGrBzzUmSQlEZoiRECMFKilygQ4wEemJAieGsHuCwDkm4m0Bk84XHMdBPd////q9JErOHGr/////Yn1M5oMwO4ykE405GCg+JmRVfcoYeSzV6+tm5h9B23nNiSH+ahaae0udXyMQg8WM2GGEfpTyOWo2wqJQ6sV8a0psXZBPNazsxKvTS6CcpNcpG2eKR0HBCV/Z2vNtRlMawlmVyxsn//nA7Rp6////9J7rVWInVC4Yb0nECQkVpfDrJmslsDG6Gklo0issHRswClk728088GrBzt+KsxZmYIScK+TG7KNw8GtxQLxcmcmTlfvMw3GGzIJNOL5YV7SjFOwChRKCCrC/Q+CWEesBib58Zdt2GA2Ff/5omcAo8aypf////+69qlf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+6y4XLZLYExNS1lkE2ouQjgePTsN1dVvn6ChlUGLCxqtWcFmRVEmgkiUNO16y+LQdROBJ0FYMQKMNgmBTdEvl4fR2mqAmQmRgeKh4koOUkxJ2FkP44QHaN6RiXSVMEjI3PL//uwYKcAB2MlT1M6elx3hxpdY01bkGTjQ61mC3Gak6i0/T0uPMgr////83klVv9X///2+VSf5URsLuImFONyRooNIdZjcXQehFQEzg4pWzBAaTQEAKE+oEyrOE+qXsnTuh9n5hCgIER3L2fyHE62/jbSIw9IlQmwGQs8NJLx0kDUnh1jmE+ZkTJ8uksmTRLJmIs0UQrkMFyioCciLFY8XiYICis0SoMr+r///uaJJ20BL////p3KaipQqlIhUQMDcjkjBAeHRSwpXIfJFwsJ+wX9D2RTsPl44s1qTsokTsl9gYBBGxFRWdYERRNNkSO3iRTiGg9TIeQI7aqVhsi6ey1plDXFV9CFH4CvIGSe1niUjT++p9H//+TT//////eLMbuVWHhmuv0Ah4qEvsyFPZioRGT0pXw+VCGwOwd8BFQ48CS59IIJBpp11C4agEQpgyVMGLxR17+bwxidBVgBXhuAkIFHJIXAvJIBbx3iYEpGsYcRQnwmIxSoe5cDkhIxg0CTAOxJK5ocVNT6NX////85en/////3qqm1lE3Cn//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////mspFuNuRAgPCy47J3BaoKSIjM5+I56s0zqZQmBp6XxF6IdZ2ogIRpk56ELd3TZK+VaOyiKhVRtMAuQhTzGpwTUpFJIqORhiGVlI3HKOwYo7ikOcS0d4O50zBq2V7/+7BgpwAHizhOSzlq3G7nGg1jTVuPdKE/rWsJccccaDWMNW7////b9jrlf/////T0TJIWUKJlYLKcacjBAaZCwrJEVRwIY0SQyUcbt5QJbDYSB25OEjlCmT+BA+K0rbRIAgkHzEZiYe8TowqxftdlbMmBPemlB9urLIegStvH5BfweSXqWOrDU5djzkXWVEtUL6TtBRWofrY1Jvtb//+BgKz////+2phZKzYgB5wWKjRFKwmE41JGCA5fD0RUcgMv4QQijDqd/LermVW1xTWVKFxqkfCyzFoBiWgY5rl419ZZ5gA/AMIHWFqGgW5eKJEJdxKDpgPZi4Uz5RJg9TYpmxHMC6TRgzdMkFFwzZJ3QXb////6jJkf/////7HIGvAosJC4ZiA1JWhLv6GBjWg3im1j1wwWYSKLOxAAiANOwWJHxhW9OF1n7Lww2ZGsTWO8rd0RnpMEmjQ3GRoqahvw08f4c46Afx1sXi3OWyljbkUb5QqpcRKwCwIU16byQqDDyDM9eUKm2f/8u//////0DFJUR4fUIQD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6hBQTjv4AsaRU7yagQwkJsO/G2ERze9vxZxTpd1Z0rdqJuSwZEo56jLDb1fJNUozq9cXAwhOxi9HY5WeZfd3b2iwaSK3bdHZlaqHNfGQU0aqKihAPhP/7sGCnAAfFJU57WHpYZIR53GMvS5BE4zWtZithuZxotZ1JboIP//4S//////ifsSLLxy0Loc1f3gYFLxWpevoQDTDgjUQA9cgy+BIPTvgAwbGSPu/MCJFNICwT9JesVf0vYMtHDyBA7LwJx2YzHs6UOMDCgjMPWAGhIkyQwxTHycUXiiXi+SpOESHGTBJCDiZHUR5IhLBjM8cNHWYoOqpf////6jhQWK0f////6o2xUjJlCYGVicLdrkrCAdfrEmsqVCAMQ+k1sDzKh0c/n1Z2P0Njc9C9qKqwgIuexwBjyxl8vHAk3TW6cVMXORU85bY8dLpOOeRIYms3PkVHggxIkQGWE8lUg4SwUuo4gRJlLZJX/////mDZP////1f6uKC4hHi1hQOyTbSMCCEBa9FU9EOZgQoYHCILOjGUaXig0w61CYHlsPpCtGDilqrSnYgIgF+jyA0Ntj4NxluOHDcKecApYEMPl+poqvgo2O4ZSczAvPY6RZ5EINOBBSx2HFiDBvWFqHoi/kU/6ohBdhj////9e/4jkYwH///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////kRTDbn/SGwtbzqPHJEvxSOhuoZSLvmdXNvv2KrDyVp1ftiSPSWF5GPRNisEFkwKqdovBQOBIQOcnZvSF/W0SOauu52vIMdByn8+MMix9ztd////uwYKcAB+ImTOt5elhlpHnsa0xLjxiRMaznCWHMHGb9nLVsWGkf////sXQxJYWEIqVSKAFweAcyD5llutcIEE7twmC2FgaACzD7AGKccksIQomcR48mqSHlyJJs3MRXTDmtsqfARtrCoBn5Q1KxMhhKX0YzsDQlzuIkU73X8mZiioORyvL7tmG86WnuSm3RW6By+4/Xt8MFnfT/5b/////Zr7HExcgNEQqPd/////9SQQpIKqvvvRAM3W/FVp3mbiyhGGka+grmIh+bvXozJJC9b+RyMSXJa4OBBZq1o8rxb85VdqH50FbBtBcwmYWpFJBIuGx5A6hWaDyKBGHicHumodpQCjGCdSZSQa6ev////+s/Q/////+9VjhgqdQcvArgmHElCnG42gQEnMpGPIyoeAYKaW+HkUEewqZA7YhXipzUdW/faQ1Nt2tSlKcLhktRfGnf0HYSpTsKuqDACGgpAjgEvBXSsqo4r2PCbH7+d3B1AnjH2o+rBT1DHvLQGThFj//8qY/////0dC1CymzgxgB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+Vp0uWSSMIBzLuua8TR1zDE4WFOxdLgyXvMoOq5sOYKxuHWQxtnpKApkA0xo+eZoDHetd7GkwIY5mKXtwmzuaLPBgwbfKv/+7BgpwAIQiPOa1l6XGSEeg1rL0uO1JEtrWcJYaqR5nWsPSwa9x6Nq/Ew4lClvhvuAjKU//q59H/////oRfumkiKpRFsu2WyIIBhhuKqwMZQaJBZsOIWAmEDSFyp17DldKIVvyOBhEO11N6mhMgbEpmnWBTRoBTZIQBOemZUlFaVW6D2LjBkjZfr+1LOFurKdXqOxQ7vWr2co5qee//+zYPJH//2aBE7/////ri7VP5Zt5////6PvbWuk6b/droGBamLsrwg1rhidA1EbeLpoRLN4I7F6ZVcGhL+oSIZbK8EAkKEejhMTc+N8GKPCioZDhMopC/JI63PD3MGBEtZy1/iHBkjtrQtwWoKCRevD5hxtP//UCez////9UaVamsc2bjwRKEE2JWhP94GBA4KFrgWBIAhJsyYxYttoaS1Yg3czt0k3IttQdqIiAmDnzVbA5KI8YwFLqdhZjUwxlZb10XUehrjYpU4jfQRbryO53n3dxudhm1dtSifkcCTcBM9jThAQL3//+53/////6txJkw9Ai////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ERTCcf+gDc9ujcYukiYrI26pvKSUzhctUtWzSMkjq6I1H17M4R3BP/7sGCnAAk2Icz7OcJIX0Q5rGcaSY0YhzWMZykxfBImsZw9LoswNQWZshg5StptJQVou1x3IOgmDK1NyrTav/+drKpZpsO42pRKs32lCeY0HTFv//3//////+rqcQTLcf+gCIxwZKVDW+IzFsSh5eV+EQ1gXiBly9m8kz3hxM8PHOfK4EbAhyDkzK6RZdFOV32gu+oXTyJNJa8/I4OkVrVWHquFrLHCxRy6JSnlFKHunM5lozqAmYAxp///2nP/////p/WtwgsJxf6ALClvPwxmaYaQzrVhjig0OfHbtWc68EucVy22WHYECDtFvrsk8AEJI5uYWRWK8/Ea5GmwwIlYsNhviyufQX2ZpIra8etbUJwY333vcl3//s//////r9rKByhYMDhHiX/3ggFFxqrmKDJOiQSHAoWRAyGTQcG+h1mE0ivmCtJBRb8AhJ51kMyUkCmkAQ2vHZdgnSnBQsV6viLdfdubvWsNVNctWsaXPG1MWbdbGcl8tv1X2cdiXjmf//Dv/////depzWNILVY8Pf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+kkJuTRL/7UQC0DbN8zuCILBGI8nGpQMhdHbwS+F2Z4us/AlSRKOSppJfpswWYmKz//uwYKcACO8hzXs5ykhmxEmvZxhLDVSHM+1nCSF6kOaxl+UmSBgidWYgaRTMmcWA2J3ssLNznK2tZ7xz7Vw3nyj7cqZSDxECLgWd/+jgbZ////9fqjceXWpwsUKJsTRD/7wMCEweYZiWmGRasAIlJrMDk7k1HxEW71tKgNMpgo8SghZKrZFodVZFx/rCmZsRhlQSWlYYauMncdk78v5rPLKaxz59+evanJLawpoCsyC7PsxZcwTBZVX//XT/////v99s54CERTDkn+gD/X4duML2MJArhUjDgPVDe+w1qQ/ThHIS1GMhlMIGIaCBuE4sMo/VpbT8yGJKpxiTwHL696tWprdfdapjy5hR3u6leNvdNhUWIWf//rb//////Gv2LdasKgghNTZ4j64BAQrDnGVoGqolDJr5DWCRsMlwIkyY6JiKIOIZveTDWFRHoEwnAiQMGEmh60Y4RjTShwkGAYBXxVd6DWDTEFNexjlvWpruN2hy525Kr/LdbOU5zUML3///6L/////T/GJljjiAmOJI//////p/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wcRJSZ4ja1hAT/bu+HruC0ZAdAVGw2L07G4m90aZ+YAIsEvtwIJWq4ZagzIc4AwyI9dqE0e63s83JlL/+7BgpwAImiHL+znSSGlESX9rT0sNaIc5rGcJMZeRJj2dPSxkrSpXlBGz5aVgYxb+Wr+JXcHFK5aYPCRuUb//5L/////2+tpoweoCqv/////+o1F1SWyOIEBJZTrmrrZgRNfEmyOEf8qHSuGDHkasut8G6P7IkCTnsNgHQkcCLopgpzLwaMMIxBubB9RF2o6tFDsyWQ1Na7a13Cx9XtHbn6fcSmublCdzHgoEkWf+j1ob/////9ySjtiECMkgIITkVeJ32gAE/1nNIgN2jB4GnH3nwAWUSrxSfp6tEk4tKLOPGWqMaa4SLzWoge6ZesCZzuO0RNIsUREL5c4sCuouX8XObb3aPWe8GI979WxtlP////////c+3sSZWldrzf////9ICENXN3h/toEBEY+s2VtEYZM0G3RqyYEO7RfJVJhJgZKFJMCYY8qiChlRX0ogBdCY4ypMCVAwx0EewGsdK7CMIlcvEQHTBY5oEfbx85+RreQHkk0+pGVicb4NhC+EEh8Ud//5b/////qp3n0B2AzRosZd////d9D0ev///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////NblUtskiAAWvhmceOBBChH0Ld4BKtGJaZ93dmVkzlFmBPQ1KXwWrWYQeYWAEN5p309XGlb925U2J9X7bP/7sGCnAAiOIkv7WnpYX4Q53WsaSY6giS/sbwlhnpIlfa09LNGu3tVMu833KvvXL28PjNSexqSSRJT3f///////9D6e3QdlAgxOViYj61hAQrDqDEEZIADDGCtqgSh0EgA0OL/AT6NHxfyEvMJEQKEDBDJFFebfN3Q0KAk1SAIl1PYLBAQ5gkNIP3oDmqfF3XSqXMv3rPvc9ZYfjrvLf/y1N1PWKf//6f////q+slaUUdFQiRab///6/9n6QcRKDeHe2RgAL/aGtG22pj64YdX1aMSKRQhlL93VA4bqBCIRgC4qw8AtQclHwZJGdkmRBI9MiXSqX0ZhwiQxzJGNq1MR//mn+vWn1Gzb5boWvqNVzP/////////sjG23f/d/d6/+6tYHIzc2h22tYADJgWWTXGdBhMwf8Ibl9oGZy9boAWM/EzSRkDJHdFWbiSSJRhOZRIwcUHMYIZfAL23Xw3VfxgroW4RYuZ59tf/4W6l/7X8z1cq6qtlkIlnv////////6l0xkUJUi6P/7v/1f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////nJvK3WSRAALXoCHrsP6YxGg5Dd2YMM1S8jM9ATsp6JmrmanHWSqvZkX9//uwYKcACSEhy3ta0khbxDndbxhJjjCHLe1rKSFyiuc1rOzmT7Dii94Ij7Wblmmldp9ncuRexnzuU7hh3+53/yt5Zb32xv6ezb/////////1+s4XahAQRnCxDxrawAGVgbVYLAVkjwoEFw8+SAYwFVMdXibOmRHRoUs8u+l+ycYDKB0EucBiBVCO6Au3LTIDZZIa9mYyrdg6mqc19fWefct8/Kpvu8vr5fxsvFCd13///////+3vShhxwwIUBYd/+j+2z7Gp/Qam87bpG0AAt8V638czHhhG/ZJDg72gzHlFICbDG3LGkJexaxSvPABVATFDUzaSMxAhCAJ4p9xu9YpIMbnG38kUhvEyNYUAyRcqfYx4tSv////////o36bzVICNDxhCWFmYj+6AAMmK+cV0VQQuQaDQmkYxFKFTVjtHOrsObUMRTTQCCErCqgwWTNYgAkEDrwvECln2VuGqsFxgixSPEsK5TKrOW7eOv7z/x+rjew/6e5hhT0k14HOGv////////1a9PDLWN////9Sf////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////81p122yNgABd7F56aYEYKgJGpRTAgbM6zbPJUxX/+7BgpwAJjCJL+znCWFQiuc1rGTmN3Icv7etJIWSQ5n2sVSSSivD71yiC4Agxhw6yauxQ65TuLDZ1tU8Mw+0p/nwpuictipC1YCN//////////NqZXGmxcMlRIMGbQkRE/WwACFYH1pbKCADDgAR1CZQOC2LCyCKsyEUZrxddnLfJ1x4VMz0chx9HaVsN7pLhsZftecVya3diVt+o9epr+u6r/n//ruWet65d5rud6iS4NUf///////9NLiaj5BzDATE4SG/////+kJNHo4mK/uAAE5qyrZWZUZv8DoAXGv+ZnJVZthxeTOTFl3fV1umn4LmQMEAQDEqDAsLBxiEooI+o+WCsQUwNjpvQ/urSZmdJaLKOK//////////oWplg9RpQGJfv+8jYAAQ8VQlwhJRc5EgI8geSYIaKZmQBjaIAu0PmkT8MSCLKLBRRv7DowIgREA6DBXKtiCJfL+37e6Sb1ZpAsKNPNZjFSjv////////9yvCNIsSOQm//+trm0x+9jnE3Uk1UGXvV///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAArDFUprOcnIU8Q5r2cTSQuIVyvsawchFQpmfZxk5P/////////////i5ostMzX+1AAv8qPDTTgQuHyq6oSxBYbkOO+8l572dSeCJ13pbizMEAgJxDMidRQ5IGTJqNTIwMzEsOk6l/Zeu+zqnHgX////////9nmnvNtVIsSDoKQzOz2uAABoxdmF1vAPnBqCMjGW4mCJKBLBgyi5btfHkJEeLXztBIZfGIFFTDToBhUOQNuXZfllMzNbw13TOQhz/////////d2GRdDAKZDBQIGP//qqV/ydPSEMay8RE7CgAC/ytK44kiOZjxseqoIpRKCUkSltWWUd9l+XJjUCyMw4Vr3bc5zWHe299vHf/v/////////7W7VCuUFjcIgHMUeGd3kcAACQJ8ja5HeKLGEpO0udFxUMuiBzdYDKhn5qz2EMEwXT1ZT6KDSO1dK9G4nzF3iXVorVWq7R2Hv//////////axpNrBD+j/TT20tuZujV/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcAC0sUyvsaechCQomPZe85CYxVL+zrByFWtCZ9iQm0////////////////////////////////////4QhLEPERcKAAJ/0jwzDDRmtWNieBq0qlQDc0axMPWNpZozLEPVfB+hZNz+2P9apttMW/7lu/////////+nGWVJBYiMKKPMQ8ayAABoE9v8vkdLHiiTmGVz4L2tL8NrKHlkNWX5iLeJ1SGkr5xNMoZKnnUblnPYXMOfl97J1f/f/////////+6/bj5//2f+oYUlmYiJ2uAAF59yXtwfcCBJrvbYGUtx0WxZsXi4WSuTZJG7qOD7C+IH5EGMCZLDW0mSpf/vT74Nv//////////////////399qJ1JVj0Rg6Hf////QBdxSGV2eQMAAIrF7OMuMBswhxFSLZl6IQF0U1WEkPK8dY7baqh/C+y+1DsoMxGHRNheFvTQ6YEd31df/////////9XF1VFF//T/3ff9nq//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwAMBBFK+znBuEBCGX9jGDcJNEct7GMG4Q0IZj2XvNz///////////////////////////////////////////////////////////////////B3JJd3aLRAAA+9oqzcgc4c0PiiGhE9mcNDiFpTsxyRRnffz5WZgDDyGJSarggUBgzf/5P/////////9nUigFBcXUDZ3dosAAADKw/IYZSfDapQFb3Smhgrc4sdhDSntkVJLrYoKxj3O2hiQASRxhmp+U8SPhP///////////97NM0sSNDBj////SEKKM8Q8WigACf8rmptIYcglB/zqjdSTHi6srnqlO7L3enjeMsj3rBH6Xi7v/zP/////////7HMCAGawVY0M/////9YFzA4hnZ5AAAAigr6qQTXBpAd0QiWzWEAlpbRjL2mUXJdPqhh8KjncuV6WbCqHkhqb2OOLij////////////+x2g4B//+/+tFn7VdX//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAvXEEr7OsG4PWIZrz8MNwokUymtZichEQglMYw83P///////////////////////////////////////////////////////////jCktVExPwAAAufl4r08A7AiKeuKIWlKxFm1OfaCEviC71tZEQCpWZfZmMpd///////////15R1k2OMCwuRGhf11zgAAASBP5lmgqKAgQQTA4xBUfCwy9nTMPVptvmb/xd2OnDrkqNMIONFNkE684Zmx85///////////9raL07HGfV/s+w5Qzuo1KIJKMNDMP2a7wAC/8Ja+LkjKyZrjWxUjsaRseff7boZyX+dNiOCBOMrDPesKI///////////+ik0bQtqSCgC7/6/d9Hpy55X1A6mb67yBgABlA3Momk8TNmiQUoKjd8QIZA+52GUTgTOeg3Z7Xg7EEQ0BgkS9J5QUX/9f////////+TqSxLlsaMAAVae/6v/uXuco6py+Rmk/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcADFsRSus4YbhAgemPZe83CThDLezp5uDgiCY8/CTc/////////////////////////////////////////////////////////////////////////////////+EMStDu8WgAACc/KX0ilpVpgtQvGm6wDeZJ8wHfZbb+o5vgy0JhHKFBsNf//////////+jQ95Ry4wQgqd/////QLqJxDOz2AAABoE/o2mJpGuOVMR6l97IXIOBEArKbtzCiQqMhn937WuxPks9c4WSo1qT////////////3rsYockSTo3/+lP6//0BCCkzDvGoAAAn7xX0SocIe4hUGRs5mRx7bSCrSVEkmtWJkgBA7CmUzkh////////////T6AK8sPChROJeHe0AAAMoG7HFH0dwMeFf11sg4JBwhOk3bxY2LZ6QyIOqLmPeDHZdSq0IIlnv////////////66poglP/////1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwAMOQ/L+zl5uDgCGZ896zcKCEcprOcG4PmIJTE4PNz///////////////////////////////////////////////////////////////////////////+EKJzLw8agAAC/wbKSASAa0XAYqnVwXhL6YqRof02WDcB8jupX1f//////////+ljo9Dx0eLRHAp1L3uvjAAACKxey1xgsOgiNqcXjsxAZNXjXNCMOXwv0sR0pr3t/uaqQja02O2u8+utghd///////////+uiaWXWLC53/+2l/z9jVqXprZSpAsCetuwAAtzQcodwQ6IMTc1mQIYZBaSc0jha9vtjQ8Z+2XO3///////////r+SpFmxxCp3+j/dxTFqlJd9moOge+10YAAARWLlLYQh3MQIYiHulYZYIDWltKFPmnTNaSrTcF9A1jcjAJoZUO9ohbK///////////9P1ya3gBjxJ//Zsn15mAK1qEjbGto//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAzmEMprOXm4OoHpjzXpNwfoPzHs4ebg3Ydm/Mek3P////////////////////////////////////////////////////////////////////////////////////////////////////////xZBSId3e0AAARLRjBA4hQpcmCFLkBTTOPLNI1/DLPQBpNL3KmP///////////ztorShLIo7/////26DhhOJeHi0AAAQoG1i4zTRqgRaPtEr7ewuXgqaFk9zJYqILfNZ2pMgTzjiECud////////////7x72j1DyYkBAoYUqpmJ+AAAG6fo+RkEbOexsKRvDRKePl9pYhrfFJ4ELgudJrX///////////06bVxRFYAKsCwZmbyy+AASMfK7TEORMaavwuwDQXDECCwzhgSuN/u1LCJhG9L5ZlBNI+qMcoBM///////////9O5oUU4RLKBkE3fvvZ3TTd7SbkUuWQtF0MyEh//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcADHMQSeM5ebg5YemPRww3CQhBKYzhhuD2h2Uw+Ijc/////////////////////////////////////////////////////////////////////////////////////+LIStLO0YAAACPVJUzBpxbaXGa+oS2djW/9gy3JnCsKjiETGmP////////////6nm00UGQGz////6j6Xvdd4ABFYfHKZmOiOGDRSeGXTJI5rGRg9KsMcypwAcX7HrIjKLRc5+e//////////+r+V0G3sLKE/+v/mdCrnP41CrX0GxYShzyy4AAX+sqUTUF2jx0IF88VQBaJKniIHpgQCJFA3////////////1p7WPEEYGBf/1UcerG97F3PqbzYqBZQJ4VlaMAAANAn+UUIRA7MQ8pcw16K0QdQBPJI1QT1Agfc8XAUxq7ntTVP///////////////////////q3/sp2Q1EdmdR///V+z+jF///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwAMgGjK+yoTaDciCZ8vCzcJREEnjOXm4PGHpfz8LNz///////////////////////////////////////////////////////////////////////////////////////8HUTiXd4wAAAF+JkSgQhPenru5hYs9rvLhD+nmIoqUmxTP///////////oWZXSBwIKBULtLiYMCsP6W3gABQJ/QPSzMDPgjkSbdWGDFLStjJDC+OX3pIiOmxa7a3Cy3pLPtt////////////J7NgsQHfpR/sktlmkbwMsoLMNNY8XBkFHhmZ4AAABP9TsCoGUV05yAcZUOKe/f1dx//esKBPYc////////////v0pbFRAcBE+CokCxz///9v9QOpl0stAAEUFfSrqCxYsmYxJTmXwihVO2OVGAikrOuVik5zj2gwCHuWj+r///////////1r7UsLJD4mFS1vuX9Hyj1WULXcdKKXPoqX/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAzDD0njOHm4NgHpfUXqNwjQOymM4Wbg5Ael/Lkk3P//////////////////////////////////////////////////////////////////////////////////////////////////41Uv2vgAAAEatQ6iaApDKfcXcAfyzHx6EnoTgGFIZ////////////7qrGl2l0gMABv/////yp1C/tm8AAkCfy2kISTGGEWg012mBDWxvsCaN5nhjcB+43WbAMGxdqdr////////////tFFMMoY1qP/+Xb1Vi9rVdlh2KlSYMgHEM6vAAAAJ90oNYEQ0GcWgjjMGt0lKnhuVf9CTgzIBXf///////////5aMUHUIGGwTEgBf//9AnUTiGZWgAAADQJ/JXGVtNAYqaLofHNTRZ0PiGry03M3yNv96gXbCD////////////+r6iZzDaf///q7Wu/6f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcADLYQS3s4WbgwwdmPKeY3CdxBJYzhZuDehyX8/CTc/////////////////////////////////////////////////////////////////////////////////////////////////BkE3lnZ6AAABOxwhwoQ5jKYpOAmDb/sb41v2EDUgu7////////////sZudU0QlAsSFYd0jsAACgT+23iZRMoYtQ+Yy52yBDYJePNU5vdy3CFfdwLARGuSu7////////////k2Z6JIQSBG5jdd20rYLyaQKtA42KtMoBpr0IDrEiyCiwzs8AAAAmvu6+7EXi5ay+IBdEQ7vrMSbPWaCYUcGv////////////0Enlgng6wN/////9CTqXvbLgABIE/lTdyEAQEhesfNbeuWEQFEBXUo7vNkAX3kxLIHGP///////////2dE0uywXHmn/9/T7UK/wIkXOH8+B/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwANHA9KYzg5uDEh2Wwl5TcJeZ8rjRxNoLWHZrx2nNz/////////////////////////////////////////////////////////////////////////////////////////////////////////////////8SB73DAAAe/6VYACbe0Y4tQZ7j/3OI/CISZ////////////9/8lcwskAL//7PIf/f0LUr+63AADKAW7lkqhjDgQrBWLesK+bSBS5bHHNmwAHS4+QOK7f///////////////////////9/9kJqaiWQ6lNEi3/s/r/yjsfz+LmDCkTEPAAAAArcTggeHoStaQSovstnjldTAqWG/////////////ZiKWuBJShYNYe0ssAAEVg/cg2NlCxgZjUa0JQDSujSoCXn1/EoDdkRbSgOIUnv////////////rrMuKNF3lxELvJH/T9qOxOh2wNOIsUtVhum9H//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAzfEEnjOFm4NMHZfzYiNwngPSWM4abguQTlsHS8lP///////////////////////////////////////////////////////////////////////////////////////////////////////gCiTwrAwAAAAnkgLUJgUly6iUghxQ2qH+oZ1////////////Vt1TDmMMCEMExQA/////r9QsLtkdgAAU2fpYaL6h0wMIKemuygkO8NAmRLt4XmjJfrSCyHiim7///////////+7rUtIoeJJAbNFHyC2dT3te4Yw0dQYC7lCQcQWgTExOLDL7hQAAPwsNAtBP4+UQtx+MxBIyhH////////////0prRsvB8iJv/9H/939tZbFfS3YAARWD1jDgyTL2GAhCRZxwAOS5uZjoRr/wQqdFyeAFXFD6f///////////q+xSWMOBQi4SN//T3pcu1y3pG1FRi7Qdawl/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcADT0OymNPWbgwIdmPJaU3CIg5KY1hZuDHh6Y8tpTc///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////5MwG8M7OAAAAJn9lAkHnKnGWA2SX3lPTqDgn////////////6Q5Q9o0CKLFmf//+lal/yygAARWD+nd4YAgZgYOELCIPl6CRnUbERZfz/fQit7veGZ9n////////////73IGEXpU0Wb+r0J2bH7MdK67jqOomUEeGcHAAAAEv2JDMrWN5xycA+F7c6t84KKs3////////////9mxxcUEKgy//////1DWZa46AJQN/X4X0JMCEonoR7gMsGgLqckn5/UnGiynUXArCPOf///////////9lFL3uY8m1ymej0Zx597kVItiiXNMEklTz2HSxH///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwANLBBJWzhpuC/hWWwcayUJTDsljWEG4LkHZbDXiNz////////////////////////////////////////////////////////////////////////////////////////////////////////////////////xoZfcKAAB6MFwnAxIxQqBshPu5Sdh7////////////61pkVEQbaKHThj//fu/37lm0vWRyAABKwPzTxkoQBATFxRqK+0yOmbhZZNU7vIdgPri4PLZ55H////////////dT1WgYNldmij7VMHvLufHuJUTAxqx7VOSKlQKZvcKAAB+TUAoU4WL7lCEv9Z7KF/BV////////////7fMGsa9IBWr////bp/oVhf1ooAAEUBfcxJAASGFO3Tj1Rk7e0qUtOYaqwgO8gBc2v////////////////////////+y2p1f702DvO/6ux9jHEU9Re6p0m7tX//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAA0tZ0pjJxNoKGHZnx2iNwm4OyVs4ebgyQdlsHac3P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////g6ikS7s4AAAAncqGDhlczNTIBKDy2Sno4Jkf////////////6VZwkYNhesjoAlYP1IDh4FTimY2O8ssC53hwXJCufzHVevjeWAcMQS////////////9/et9z0CFZL04uqigUINscQFUMNkhdrCyiZgWcdCLFhI2GbijAAAbbkAQDAeYTFNQK0NvSb80F6jv////////////oWMYg8wTsC4Ad////e70esRl2JpoE/uu8qqDmjOsH+lNJggHbrWYFObGRR3VQQnN/////////////////////////7/VLZ6EW7UZFPp7bK5727rboyFqe7LVyd2sZ6VS9j+s6JacIpD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcADRqPSCMqE3o4gelMNeU3CJQ9JWy85uC2hCVwUySU/////////////////////////////////////////////////////////////////////////////////////////////////////////////////8SGXCCgAAXYfh4g3ko9q4lEFe/8zp8gRH/////////////JWIAsINMCwRQx//9SdCelDKO1C1V2oNgerjgAoE/qw4OgjIxUsS6T8YG6Y8cd7L/6hM1KuJBCz////////////+OUQcUtJKZ+9li69J4+nclTUOFK7Z4JCyWC4kCutFAAAvChcIQftugQ1jJ/Dr/////////////7aNa2Cj3f/o2dG2adp7Hu6VaXqK6AABFYf16YcHDEBnwaMRb8YDFHRrT/7ANfqcAs6e///////////93V4q1qgcJAFQ5n19j0e2tamNYPvZsKom3Nen//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwAMmg5J4y85uC8ByY8ppTcIpDkijODm4RpEJFDRCbz////////////////////////////////////////////////////////////////////////////////////////////AGE3hmZwAAABPGQbDYtnFKBvFm+3rCgr///////////6PH+tkgdeHbj3/////+kxm2ONlYP7ikFDzJQMRuI5NLKpHa2wqz/5OwErJoJn//////////////dlUl+jtapOhocMjRJdE40QiNhtVI0We4iZUZSAglEw/J43BUSifqrCvKPVDfQDGX/////////////////////////29e3rvo6u9m+390+p6omeZZn6j9mfVpHbqCV8UPY0iMhdjaUAFArdaA03gUhMDBEorX9ofORSsPkLqcbA9nujln22////////////////////////3zW5Df6NeyItaP+huVJF9jFQ8xL6ORK1mKr2pu5NjojKcNgBbDv/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAA1Qi0hbRxN6PMHJPBziNwfAOSmMsObgpIOlsAS8VP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////EYcsggAAF0FJMAdzZ7KBUX15fmCv////////////9NTSzxZTQ+CwNhBte2y7fe8Z2DVuclpJYrDeLKIvpdxm0sgAAEVi75iOHIrimrXxAPArddBF+dk2ED0pF1v////////////yNt4QNIYGC3/TsW37pfvaU7EIilBYDBbiigAAYPhElfXvnA7jmexT////////////03YDSGccNd///+77t1QyGWJpgAARQN9SOqrArcEOja6tkcEY3JqNUw/8bg/boYEr2///////////+jUralKlC/WgniuGjcgKdIsosaKDHmWqAgXQ0WHD3pUMQTJB3/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcAC+wOSGM4ObA9AckrHWI3C3IfH4ycTcjehCRQdpyU///////////////////////////////////////////////////////////////w2HK2IAPciBQPD1dW2gLnfrP8wZP////////////9LF4EULkQn7n1XNowrFBcTjoKPHkFhJacOMKOEBgegNmRlFAAASBP9xpgJRGZzg3UqWGElX3yk9jZ4Yemwbf/////////////////////////9J62SjEz6Fj1e696qiUWbR96EuWezTqxXdJmRrO9Ts8yICEkR4Icf6YBluBB+KgQAghSajgCl+zFQh////////////6/LbsaQl2Jbtofa8nWSacY0oRnqobLLNWoSKjw+DKDY2mAKBP8aQVFBowrorFzrBbd9utdrGg2mwAaf////////////////////////9UyovqdSVd5Hsv9KNbboul8yqt0LOtmsiWa6Ma6ug5/mJqZHMlV////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwAMdodI2yUTeiuBCWwIzyULResfjJxNyOaEJKx0nJT//////////////////////////////////////////////////////////////////////////////////////Apm4ooAAH4RQEhWtthkT/P6/////////////42YLIOuMj3CzP/+v93/9sWDYcZYQAAEmz+cuJAwAEVMBZht42vCLX3Qv0mQcv6CO1P////////////////////////9HS3nW1rsVSqXXTdHo3lTTsm5rKYUYHEGLv2jRuY1BHG2ITErql9BsORsMAewWCcFBZe0vDZam7U7/////////////Q4wWcnIuQ/16dTmF5sYKIB5oGLihcot06krUfLqLasiaZWD/zmiYwOyJ+Eh4DVSkmLtWHvYF2lUFTf/////////////////////////t79u6skxOmzWIm/PXLe1bX12M7NZ6oUlFlUyrVGmVnGM/cgLh//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAu9isgjJxN6PyD5DAHvFAuKGR+MlE3I7DPlcKCJtP//////////////////////////////////////////////////////+AynAAgAAJ+ggk6Bx8WyO2P9QK/////////////0oWkldLi6Gzhq9cTWyiULDQDkBRpVTYkQLR4XEzzQUBVQbLYUaSQAAEUFfWib1GMCOYjTsFYsKpMXrs71COlXAuv///////////////////////9P/29GSx9UNdm55WrVbM65jRpSmXI7K9znR8dplU5mrIUEZEkGoSkMLiaZFhlwgoAAH3IR0SVS7IEgm//b/////////////////////////9l+qoWZkY7Od7Akf/p7vKasmk+pGqoqBNhBACUDfrowUMCiH1ddapG6LCdtfCnzhK//////////////////////////v0+32vXZ7Iu1LKs1WZmQ1yaBFzq0rkU+xlaikM1SHYph0j0PRyIzhkB///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcAC8+QR9snE3A4AQk8HeklCzohHWycTckIg6RsB6xU//////////////////////////////////////////////////////////4ELlEDAAAvC7FCt1+bwBIx89of////////////vuW2owSgocDgEc2N//uuIsAzBhNs7h0iBjbrUBQuIIoAUCf6oRUImjNSkbfahDiIb61IK/4R+iBIZ/////////////////////////16fX5dFWdzIjba7kRc+VMwXObKi3VVkZzEaZyqVnHq60Hc8Jh0iR8FCBQ3AggBTpSnom3nRqQrO7dT////////////+GDWLHWPHPYgRXts2PpAAaQlIiWo0TCSzZEKDxRygkfQLGJAER54XD38mAFAn+Mah0MqGHh+JnFRhMryfe9tQAH6QO//////////////////////////W/t96JZmc9nG1ajdam0SxLNyWsjK6LMQ8jijBUW0pmBEMxTqLVSsYMoSYKQBf///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwAMUo5HQyUTcj9BCQQdhiUJrDkgjTDm4NuD5KwXnFT////////////////////////////////////////////////////////////////////////////////ARbYQHlAQBQ+vav0MX9n////////////+XkA8m0apRwKHVoRba5BCmKIAV60PFWmxCCoVDpAWBIyaUF0DBRiC6XImGmz+7CDYQWBkhNYc3g9XvjjeZ46G/oNCP////////////0jaFtUIYqwadJIrc5DExUqsTMYGzrQKMICAQoOkjoiLA/KFB7zIQE4cCcDDAHtqcCZOGemBza+3///////////+i37risAOv/2IhNq3tWs+y+gODzSjgVcAhdo8sgyoChcQIIAps/umKhEvAYuAJMIbia0Ie7EO9I34P///////////////////////////I1EWvJeyN6TaJYhXoRy0Z1oZkcShVDsi2UiOqOdJUKQoJRAcqvucjgyFqIY////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAuSj0dbQhNyNUDpPAEpFQsOQR0MlE3BOEej4NCJuf///////////////////////////////////////////////8CmSiBgAAQPD5CHJWltgu7OaP///////////+q9916zZxZtoZdoTYb9XuTbt1VPYh0ySYbYpt+ZgBKxedsSUSYSuKXGhRtbUxuesb2ALSpBJ//////////////////////////+nzy1RbdqUZW6yOzu2RlZFUpCsad76tdTWnYEpCNbkCUuwNDklTKcW4xbWIAD2PiVgrY2p1MseJ/7//////////////////////////6/9P9G20Ii/u5rrShLs5FSS1S2ISRkKaUUjh2ZTrsQ4e3dCo5WMUxWCAYuFxhFAAASBP9TcSHjoNhix2N2WfTGME4/AX1QC6/////////////////////////Xt8mzUatEdzXZD5mYlW03bZTrkoyTnnsWmcu4JM9CnfOjHctxUShgZgRSP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcAC5uPR+NFE3JGEOkbNCJvS8JBH4yUTcDZA+SsBJRU/////////////////////////////////////////////////+BA2wggB8xG8Nk3anURP1+X////////////////////////pT1bujzGmZpFd3RUcn+vr/J79mVeyK+v9aqibjd+UhJNBDNFQyMIoAACQJ/hwUCEAoW7SvYZSO3IeSi/3hJvi3/////////////////////////76VpdkYmtFMUrvdO5LnYpNFOyzXVXoyNZplmmVGg1V3SrjO6lUlHQ5qEZlMpwQELcAAAEusTh2uuA47//////////////Sq9DwksMA0fd9NuYMDzJNrnPeu0q1oFaOa45QMGuQCqW0EEAJWH+royUZI4EjIy4clDI6H4lh8L/OEhv///////////////////////X+3/reyt1Oxa2z2tmdWs51qqEqZA7HVjzu5DOXoLK4RysrNc5xkIXhTod2DrAYw//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwALAI1HWycTckyyCQwoIm4L6kEdbJRNwQhGZBDQCb3///////////////////////8CFthAAAAXiBBoAABaNmrFV/h///////////////////////////pe2//bM6qvZmR59q/vM6dcpq6I06FRqqUp1o9iEejnWYHoxmOcWVC2gQgBKwf+1DgdMFrCMJ+ajYZns3j8Q+4D2////////////////////////9u3nqu3dnVdrKm7aOsj0mKzoekjxJE5XDtU8c9FQs4wAUMYrhkdFI5nBoaIQGZBQcMOAyEwAPUOgI8rbHx////////////////////bLf3vysVHLT1q6P7dnWupZns9Sa3VCsRnIZFVCMah1uyllMwYqwBgKhLQRIAlYP/YZWZowi+U2/sCz/ZT31A2+T/////////////////////////9/YulbG0lt/dnoyIZDVu6PO7nKqltd7Gq5xIMzHZyHRTndEFPKCFq4VznY54iU//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAtuj0dbIhNyTpEI+SgibktyPx1siE3A2AOkrAOkVP/////////////////////////////////////////8MqEQAALygWQJAsOqZdvn+b/////////////////////////+RvrZbLs7u5lvd+u2cuzOj1dDnohzNuY91M70czoh3V1ViOkLFqEzrFfCSoW0CSAJWD+eRVJXkBfBqRx5e6Fbsk/4j0l/////////////////////////9dPdZGXfR3VZa9L3Ihb5EM1JZQeynMyGUtVlZjMisaIclBEhWDAikkkBlYh3BCAIXIGAAIgcA8OXVWMt2f////////////972XuSLLIRjPW5IQwBc5+tlgioFE2EizBg9zTbyywetEQBTZ/7DRR4KFQ5SAhu6wqVbv86xZvgNf////////////////////////6UWn1oy0fZFfJZd7kcmjy3QyOWciKxCB1OdMgMk5TBgaWKOc4RzXI6EjKHKEKGUSYzuCE//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+Ag//uwYKcACmOPRsNFE3JTcejENAVuS45BGwyITcFGR2Og0Im5AQAPMhOwdJBVU0kEv////////////////////Yz0K0vlRkdbrapiKczIIEQ4iceVpbzGWgxDijxc5RIRI5zHDzWM5UKxgsisKqKmORWOMCApHbbhEASsP8qeVhzJi+i0sS28VJjHf6wH8Tr///////////////////////+zf/ys5i1dnW2Teh3SqlSxlpzHK3dplOYICQUUdbJMWrqrjKWgUQpEJcQUpDVDIkw6BjQgAPohxglynp5eb6//////////////////////////lr/uTuyo7v1IzLW6lPK1b7Ec06u9zls6M6nZmMpnOZCURWMc51Q5hZ51OxGYkOKROCYE0ECAKMX/6CBA0KXrXwqRvH6mXWA34v///////////////////////+//r/5f1ROddEIdqoxkRTopBdJ2VEGNUjtlU+UxZDmEHdkYhbFUSQwYKXEo5Dpiaof/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwALso9HWyUrci9g6SsAwxULZkEdbJRNwTPFo6Bwibj/////////////////////////////////////////////////////wKHGAAAIseMDz7cH//////////////UpWceoSBG7/W25C49QHufHP9KlNtKDFoihUTaBJAFNn9XSUBTcUXH320ljc6vK3PhfrFH//////////////////////////29l91Yz3R2emllddydUueRFy1VlRFozylOciAykaNcgWUSiI4IGcpiyqQysLDJgEAfCoPAsCRlXkH//P//////////////////////////TXpdX1vMjGLVFvQypvZ2TuaXVEMe65WHLdinkdDFgSFElYrKWUiBltHSIJiTIIJWD+8nAFnzW2G4qS43Wb+h/4Q/P/////////////////////////p+mjf3RPR5e7Ld2OzGKIsy1MdmOzMh0OILOLGQgxg040a4sdRAYNEWO40pjoJ3Is9GIooJC3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAuTkEajJStwTM4I+TQibks2QRqMiE3A1QPkbAOIVP///////////////////////////////////////////////+GxEIAAF6xkAQiCfmX4vy//////////////////////////rOTa0isjpRVdHayrV2odFCo50KvyBsZWMuBQHISEUNJeI6mhmad0djKDkwJEEErB1uw/YQsF8nKj+ch73Dvw/0N//////////////////////////9P9e5k9mlUd2sZpasemUrOUyFMZjlRzFRVHhikMhjuKdmdxxwhVdjTyi1kAVMMcCBNhAACgMOGNHh+v////////////7ObsTAocvjThH182l0jnxhexlaQ0MNlRirCwRg+Ex48mFIgggCgT/PIdFEIRVyGrJfTwBl9z/iPwv////////////////////////9bEta77mdZVmszPLKt2fVruQ5mcpbCqzHbIl0K5iOQrBxZiAQXMWYdrhqizqeQEejQfC/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcACuqMRtsiE3JDDPkbHCJtC/pBGwyITcE3xKOg0Im5////////////////////wIU2EEAPiARRkGPQyz/L9//////////////////////////9659EUrUyRw78s1FGcQ1RSk6OUpx0NLA7B28CEhznBpeuAQBQJ/9hoq1DTNJ6YPrs+msZvnx/xX////////////////////////+/tTfLS61K0iq6GfVCqRyqhkV7Op0cqlskzjwTEYgcw5QZCuYiAiKrGEBJSMU5HMdn3YhyCx0YAAHycPMBUlH5V+f//////////////////////////+9GbbUyo5esrL6WfWhUU90nRditSYgIk5HjIiXcxlKQgMyOEKFYgtvVJqU0UCYSiCCAKBP9bbuAlRjcWNzxlVj8e/E/Qb////////////////////////92u3sX+rbKV2cvzfY2zsYznKpVNcpSFIVGPkeY5WIgicI8YQ449lIgljkIqhhJ2MKFf///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwALIY7G2yITck6yCPkcIm4MBkEYjIitwOyDpGwDiFT/////////////////////////////hlQgAABewNC4vMntPb5f/////////////////////////uutmXyJ19EK87OyMnYiqhG5HsnKplVCURqKZ0kXPbVyEkyorHCkYugt50EiHIYSIABWD/9YADhSXVGt2LETx5Mf8N+f//////////////////////////zt1fur3dVlRFd2VSMV85nMMc0p2ZaFVStuLi40PEW7naRzBdhoWogcg1WMKuJ8KO7h4UHCDAQhsIAAR8NBKH64V+//////////////QtlccYng+FgUOSPkjI+NaDt5hgugwBXlgytgPPScGkMk1h4Vn/REASsH/2o9SmcGP3yyYdOl/vPhfyf////////////////////////21+zW2K3Ryo97tZ797v1bZERKKh5EZXDGNghTKKoLESNiAimZ3dzAnpTBJaKE///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAqxikdDIhNyUxGI6DQibkuSQRqMlE3BIUgjoNAJuP//////////hSwgAPk1gCmE6XXmH6///////////////////////////t9U2ZVoTy2NM7ujqzOR70a7zuUYypZ0ViKqocgkgU5jQSkYjGFM7HUAMSZQRQ5Z+ISTGkQQE2f/JkAcMCOheqK4R3Psz/wh+v////////////////////////6f/rquTW0/zUXVLLRmUrkBuxbOhWe9zSMoJzCVOHQ5HFCxIZTRQYwNwyCThhxhFDhjGBhQoAAPrIAI4Sm2/////////////////////bZXdG7a3bPm0MiqSV7lQxgk9lK9AO5KhUPKhQbjIIBBJDmSjy2WOglCqcruRwhFhEggFYevwlREESWRLLO9/anfh/zf/////////////////////////0/V70/zyJdVnY9mdUPcs5TFK7GOac2ZKlQ0hFVyBjhhLXWpwMI4owEZznBCYQkGA/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcACu+PRqMiE3JGUUkEHCJvSy5BGwyITcFCSCNQoIm4/////////////////////gMpIID4YAKDnplfw////////////////////////////batHTRqbn/a0u9rXUl+dVZ2+qqk1kIkqkUjIKq5QlZxHwsQycfPUiIAlA3/1Za9gLQLcQ/nELX1ufCfif////////////////////////9Ek1/ej0RFZnNVG+lEYxbdEs4g6GIhaOQ13KpXRWK+6QxlVyq4KUVqMtUQIDHYWKARAIAHi4lAGhzTM/L////////////////////////////+u2qvI9VWmiOWVjIVK3q6mOQ63ZFRryOCcxFOxDDIdB1UIGVjCCBGcriFGCCXi6+4RAFAn/4Pi/AOTJ4b916qm7v/H/f////////////////////////9fSlq27tK5n5x1f2PO9CmkymO1Q7ZtLGNDHi6MhBZiyolbnOMHDWehCAygiLggI//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwALGIxHQyITckwx6Og0Im5KLi0daghNyTTGo6Bwibn///////////////////////////8OBEAB8nD3Ag5j9L8f////////////////////////////bSaiLc50ZPlSVVW/bK7u7lWsylkO7o50bOHpMcqkPKdHMIpcol1QioKQoxJEEEAQ07WMeGmBDDBEJMpSVb8b8n/////////////////////////+n0vVWpdGdGr9E1vfS2jM8ry0RVWhhnPESOzYxDMSjsjvMcORg9dwkMBEAB8wC4DRf9fy////////////////////////////tKv1Xnc5jV63VM9SLsXRiMY7qcpkYUyMqseWqmFFcxgSkcqHIFqoKjOFEI4QRibQIIAps//u4gqOYiw85Yldnlb/iX3//////////////////////////881e962uqruy1JRJHV2nPc72ednkMyFS6WEI1ymMgzpdyHUxjBgkhhyncFah//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAArnjkdbIRNySJGI+RwCbks+KRqMiK3JO0fjoNCJuP///////////////////hpIAAABeeEwvBuu3//////////////////3/ff3YyVar6mRquzsjaGVLs090pMxCmOU6EM5zOa0ztdkKkisoNGQ5HccQy7IWoi2kQQCsH/20ZhppKkecsqQHd/P+kL+n///////////////////////////09EYtUyuj+2ioYczh5KqWsk6kMZzHRhYRc4nHDDMxIgEho5KkMQajB0YeWX7P0OBEAB8imQGQQvq/X//////////////////////////6tv/WlcqVSt7JR1ZtUq1EM5UeiuEmnJqCKc1FS5CBmYyGYpDGFmUS8gVRiOYI4TepIQBBgPSHQO4JKgURMoorov3hv1//////////////////////////0VPt/M1eRjM/tkaklGZVZBRkI9XZnsVSVGkFsp1UplJJR0RKlMhQhwtoG////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcAC3SNR0KCE3JEMYjoHAJuSpItHWyITckbxqNQcBW5///////////////////////////////////////////wlEAAHypAAYgvr///////////////////qn09EK0pUaupaZ1PValSib3KVZZkPVVBy7thCbGEXSMZSHEFCKrajEnmUQtRJEEEASsPX4OkXaEWzgV87Hf134f83//////////////////////////TRnp8jM/9qrROr8rtVFkRTKZhTURjOw1SO1aui0GKS5gEWDVChE+oA6IAgAAAPUMgYHaf////////////////////7fvak70RroysnpZbs7sqnUQ0Y7GepSSudjHI4kznMNdUUpUZnMNFhxoROIrKiWJGyECAABIE//25qxGjsLoW845W/v/Cft/////////////////////////9/5G2UrkdGLZT/2R2o5zz93XmdWVGfV1oZ2Md7mozOhkkUjMcooYIO5DnIdkFf///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwAK3ZBH4yITcFSSCNQ0JW4LFkEajIhNwRPFI6CgCbn/////////////////+AiCAAPMCwK8jPVq/f///////////////////////////Rua/9FIltN7y3YrD6rNKRSMZj3FzFdClJc4ec5ZA4MSY4sc6scwwOlPFJXGAoojlFRrCyLaRBATZ/8HpgMhbI3aPOPa+7/w/7///////////////////////////Z6f0vvWj5nkZXZ25wRCohUhBbHetGK7lZijKWJWQ7RymEEChjFEFEjDEq7g0qMYKBAAB8oeE037////////////////////9/Sumxt/syPZXKVzmZmK6NkvORldlOUyLBu6KrpOUcpCEcwRHVgJBwfAyBoYZjKIIIAgwDrFfDpQMDHAsBomSFX435P////////////////////////+//0pXJZLIqbXnypcp2VqXzOzJfV0UlQ9nOKVzxilc5GMhzucWzCAYKilmOpxP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAtjkEdaghNwUVIIxCgFbgrSQR0MhE3A54IkEAKcDP///////////////////////////////////////+AQAAAPQbgZG/zf//////////////////+yrWq1sjMjW3eyHKh1d0qZ5FRkQmg9jjxw0yyjijSiTOYXznMUTQxDkYYyXdjGYedCgomrisaQYFb/QiAKMX/9Ex0xORZeMYV8fy59/v//////////////////////////qirfK9rTLu7tvtYruR1ZaavSyFUxkMKU8p1R6oYGjsMqocmhSjOJOxnRXqQlxADQRAA3BwMD7Vf////////////+pSU0NS8qUGOcQZa3eStAy3F1NNCQmA4s12sDRQyeCyggGwsfEhllxIggACF56xqDeAcBBbWeMCPXX+F//////////////////////////3/+l9W30IVbyJNSaY9lIyyHUtz5j1kIyIaShEfVkR3MrUZ1KV3IY5lSCiBYwv////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcACt2QR1qCK3BRMfjYHAVuCpo7HQoITckyRiOg0Im5//////////////////hQAAAPlSQCBd////////////////////tKr+prtXORboh0TVUoswgkhyUI1DiDo72oQynGDSNRRApjscVFxEVKoohQVVEyFEBVjjRUpzkUTFd+khAELz3IYXwME0BEmNZiv+wb9f//////////////////////////XsybMsidW03tbvWlzGMDoZMrMpFFqV5SFMRiOV1nOqlkMrkBuRyOOLIdAyDAoEQAH1oA3ih9f7///////////////////////////63v3zqtHypZNGYqvQ5KOvzFynOhy2oyFYGj1MU4YhmI6imJzjjuYrogwaPJJd+kRAELr7D6FiANdCUE0zR6vwf5v/////////////////////////rMn1v/NpR79FoiKxWsc9J1mdz+mZSMpkEu5yHXOeMUqOxByHWwcuwGZgt/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwALKY5HQoITckWSCOgcAm4LLjUbCghNySbHo2BwCbj//////////////////////////////4SAAAD6jBEO/////////////////////7eiLl3dJ33R5siqt2ujoR3UGrVujkYx6Mx1dDqVJj6HDAhRKC2EvR1QiFMM47z9AgAIefkDEfALqAUgEXTKCv8J//////////////////////////+npXbK65ayIjI1VRmOlSLdWUx2MGVTMYju4ZHSrEIO5TUYI00KRdgrAjOYxiCnHIUTiQkAAAHzBJB2Gf//////////////////r/trZeuc70YlXq5JNF1Qx0UWj3P0dNTFdhxY4StmDqoZSFKIreFcKoZB3IPBI4k4szQQZcSAIIAhdfYlRxAYVWC1U2WUlf4/x/////////////////////////p6fuibdzuqasjMvVVq0q2olklO7vs1SlI6Gu5zvEo93e7HZCBhCSFHnG5VFVf////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAsCi8dagStyTZGo6DQibkqWOR0KBE3JLsgjYHAJuP///////////////////////8KBEAB84iElX9f6//////////////////////////+yfa9EyeZDIWRdjpnLR1yymvPIecj2ZkKyFIyHMYqodDnIaYWrAnY6OqZQxgMci32BAAQyusfY5IRZhyqqTf4H9f////////////////////////9f1Mu0u33Ojo9GtZLFVs6KciMdncyIjCVcytNQisdLno5SHAjFM4lS1ucQrkDH5gEgAAA+YXB+G/////////////////////fy2teYrWkpV1klupjqiXMjI5UMA2MgMh1ZkcEp3OLO7nNYpKkOh1Kp0Oh0YhRCFOilKwRiNIAgACGV5AQ9UBzMERM0QM1/4///////////////////////////36sqc7HfUnTuqk0mmRCmo7HalVuiIp3MhJlJK9bBCHqIqZBIQpdlLCcCZMoAf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcACvWLR1qCE3JE8gjoHAJuC449G2oErck4R+Ng0BW4//////////////////////hIIAAPnDISDP0//////////////////9f+X/T0dKktq2a7Jyu6HZJHcyDTjHWiC2PVVJZXBSLZkCJEGas46GYgMjnCBlQUSAAAAiL8sDYBswFM5oolUf9fl////////////////////////+q/676rNV2UhEdyo1s5Gd0dVS7y6uZDsQqnM5CjhcdKPGFKwy7D1QyMyGM7ixmczChRGUgXSBYAAAPnT4KcUv///////////////////9/l2XV7MpLSO2ipoWfK9yqgsWwmZ2Zx53lYxSD1GlIjFIGxzCokhQ85CihxNhOOZTGfYg4EHGXSgCCAIefcoDoAwUwBp80xT/xfh/////////////////////////X+mlGe+ZEVC0qez3dKIqJUqEcyNdDqrrzmVjsyE2sRzXCaohjCHQpIUS6qzDGWg///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwALP45HWoETckgx6NQoAm5K3kEdCgRNwRxGI6BwCbn//////////////////////////////////gFAAAD1gGDT/////////////////////9X/yT6o8m6s91FPUyUd6OFezEcIoIeqIcEFQhxCmBqMOyGcUYEx3RmEKokh4pDDwd+gRAEPPsPw7gHthABNNBX+H9//////////////////////////2/VFI9D1eR2ZHrKXQjqZatnkaVDldHO6GOd0MpJ0YIytU0zjnOEdpHcZlMczOrBQjBIAAAPqQDYx////////////////////b1cm7zVSndquYt5XWyIRl1cp0ozHNUznzEYktUEvZWSIIJHucxRQA5Y7o4IV6+QAYdSAIIAh52yuNMBcwCLAbplBL/Bft/////////////////////////T/8j8qMzUObRe/WzpOmU6nPdSOqq7KQjOVndA5HKhFnRHLGKIUiFFOeiFHhDBzRf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAsNkEdaghNwTTHoxBwFbkqGPR1qCE3JK8gjENAJuP/////////////////////////4BQAAA8wsA0M/////////////////////br/ap7bWKSvLZmMpEUpVkiToYhBhiiImIDCTmhM0h3ViWONI4oKuVGIUwmLzGdh7igqInAUVSgCAAIq9jpLgZNKCll5kr/D///////////////////////////6WkvVmnSiku5q/ZLIWjI32ZEfuU6K5UWQ6M8yAx2BoRHJZ3DozZUMYERWEwdABQAAA9SIONP////////////////////6/P/uiKy3R2ZpMyFdEKuc7UdyhGQ4YiMXD1ZhL0VAqkAAxxZEcjI0cMOYKohQgVWAQQVjbUEQBDxaymoCC8Trpf8H5f/////////////////////////+volE1lqW/pQ7pc8ERiZzaMu9TUVzMUWxXc57qOQEg5SHOt3QpYgE1jocQIRf///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcACuyPR0KBE3JFkgjoFAJuC55BGIoErcE3R6NgcBW5////////////////////8JAAAB9Diob////////////////////9/dk7p6s8h3L32ZLWV6IjIk5ilO0xwTyLnRyKCd0ZYOU7EVQgQKhHop4ZCMOohCEyQAAKvkNIiElYIkZggZtV+Nf////////////////////////9v/93s/bJIrFpKREXlJdnOqJk1d2VHMxUZTFOMFyHHkUWQPFGuVBQDOMF1xBQcTlGEGkHIPIEiAwAAAPoXHw////////////////////tXdJNESmpmUj1bUSSuiHS2TUzmmmEGdCzEKpLXZw45TodRjkONYyHDpijncXB1FzI4dIU6qwyKEFCQAAAImvQHaA0cCk5lHV1fr//////////////////////////vTquTf0dyuxn2W1N2a1EnLdAjDmOdQRyCnOVXKfOxQ04UrKGVCFWLEBXQQQpFmFgllxCP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwAK/o1G2oETckiSCOg0Am4KvkEaigRNwT9II2BQCbj///////////////////////wsAAAH1mwPBS/////////////////////t2TurVvtczO3lK62WU5mYr3UjXaVmSqkY6GnAhcE5AYp6qZFOUoscI10MCHUrkCEQUJIIAmu5gSAFXgFjTV6/xfh////////////////////////+3/svT+Y/Z+ayVYiuUp2cxVVHRykKhFWIRGcVo6M7Ecl1DK5Qo4CiEQrtYwtjIJRTAIMAAAD6mCQJ////////////////////ZHNfymrZksdUMZaOV+xQrlVXQxZSFoyo5gtgcgZDlIIIxHMCgQMo5ihzhhikOjOowM4DRkIWKIJIRcSIIAAjF4/EcCBwFvCbof8L/////////////////////////+n0/1b2WRFrv6dE0vo5mSchSOg5pEYFMI1oVDGLBKJR2WJqKdyocS7hyAgxRQN////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAr9jkdaghNyUDIIxBwFbgoWEx+JhE3JNkejENAVuf//////////////////////+ACAAAPVgiDv///////////////////+rVt6PnMq6aVZqIiI5H1cRnKcgqYrsV3djgqo5J0YPClXFTHR2OcocEB7HQWOKCyB6YSOgxw9EBw5h1MgggAAQq+bDuA0mBficoJVfi/X////////////////////////6/7zMlPRWTdpAXVVs6oZ0RzmL6lsrlZSrWb5VdlJId6DxSFom01tO4GgBAAAD54PpR////////////////////9k1urS8/SzttMekcqiDIY8SaUa7IpauhVlHmKgmDRzIInMYVRDjxOHjqc5TIysKCDGOio6iE5B0oggACMXrHGDVGCJ6lMlU/wf/////////////////////////v9e3Xt20sjXcya7XVVT0dazFgquHMInRSqUOkiISF0qt5DiHUSFEgkQ4hwXC5////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcAC1uMR1qCE3JIsgjUHAJuCj5BHWoETcEfyCNgcAm4///////////////////////////////////////gFAAAD0YIz/////////////////////+i5u77/RlSnM9bHZWZmEEPdCnHNcq0UrICcc6hxgq0qokjuxQQRyuqAwIIhjqQQQMKQcBIIAAjF5Nk2BFyMrvr/B///////////////////////////75KKtn9ndaOqKv6WUwjRDtsz0VDlEOV7HRSMRHQ7rtZFUpWKylI6oc5zq7nFgwAAAPooAov////////////////////13toXJdLXas1zr9FehWcjO1Dq5a0Z9EQyhjlqcgNwEgV0eYizHOcimKaHGKgc5Tx0EHUiCCAIxeQ0tAYBKCJeaMdRq/H+f/////////////////////////+3S63maZqkcx3d3O6LVNkRDqVDyKaYUVDqiGsUo9495wcglVTqQmaQysZDqo6OwQPX///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwALJ41HWoErcklRyNgoAm5K1j0baYRNySVII2CgFbj//////////////////////////////g4AAAPo4ShO//////////////////+7vb/6GR6xb2l7mprZ3nScysayWYzOyIdSslESOi0Z3KYMMrWKOOhRCFEmK6nBSkI4OsYgoSAQABGL2IgGqArZBR3/r/////////////////////////9v2u5E7Mtmpe9Xo889NdCMxVZlA3PdGQwxRYSiI0pDUIxjhhKCVkCz0GDIrVc50KcSHBQcAAAH1cCQm/////////////////////Vk7PTeWrMQhlWqaWcintlKi3vHzKdzEczug5RRyOrjGOIVo7IWOYgW4ijVQiOQhgsUQMAIAAAjF8tAOcAiDa9f7//////////////////////////r/5dfs9yNY1lStULMVmqVaXHlSV9bSIopyRgkyjyJKIj3EhpxZxploRSmSKgooQL5///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAsbjcbagStySXII2CgCbgqiKR1qBE3JMMgjEFAVuP///////////////////////////+DgAAA/OAWGn////////////////////7ctWReRHbdzSsdLsqul8sScspmWgIjzMjopyLMDbq6sAFBut1UK04wgScgohTFIYWHZBVIgggCN/lhgIsgLAE00Hq/D+//////////////////////////t8rdCP8rMrqrFbo96Im5XYypYtSMp84MiqRFUjHczIdgSICIphzkncUiqA+HnHABAAAHrHBn////////////////////bTbrXTWhc661aSqqUqKdY9Cigmzmc1Si4dFjiIg52iyDyku7DUjjjT1OZTkDgTMYtyDYgqiJBQkAAACMXmRWAFMD2Os5q/F//////////////////////////qq7ab102YslDsjprZLUWUxiOVTkIYO5yMLRHcqFDu5w0MxzohUIYOpRR1hldgzuwkYOLnMig0/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcACwaQRtphE3BJEajYHAJuS3ZBGIoErcEhRqNgcAm5/////////////////////////BwAAAfsAGLf///////////////////3SXf5/O8lfnOmzHPZEKpkucOqWIM1yEO6ykOpTlUQx1eLUS6uUrnCiRJDClnRykFsqwyDAQAAN/ySAqrBRS9LX+H//////////////////////////onT+s16blVHZC2IqIyIjkGpyHMkOjhMjSHFhFzFcSExIpUKzONV1OQpRBxMWZ3cKQhpDxsOKpAooMAAAD9gWn////////////////////7eyWaT1QyURyoiPVKuyWOrqQyiHRXQ7wlloVTHHZBCmZVVBaPKSZj0OUSCdrDKQZeJmEHCSCAAI3+ZkHBNCPvfX+C//////////////////////////++2+8nuzN1aWiuh1LVnOtKkF2YZS3aUzHJZjg2K6IjoVrlRiHLIB7BEOwtwrqTBqf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwALT49HWoITckYSCOgcAm4KAjcfiYRNyTfGo6Bwibn////////////////////////////////////+DgAAA+kF4z/////////////////////V+lNtEZekl15EyPRGVzo7K5WkY7FO6nQzlHYpVXcSYeXFnIZlQ4GpnGIYzFcqjMOpEEAAACGLyidAE6C10FL1fj///////////////////////////TkdaqQjpeYaiHq9EZlt6SNkvI00yo5zKx6oXd6P3ldzzm0XM13egML4DgCAA+jgMGf/1//////////////////////////9/sr+97UKp2VX8m5GszmVSmpUztK6HKdLGM5DqXZ1WERUJKUOGIYM5GGYScxRBw6gQUJIIAAkL0SoFtAezV/8H5f/////////////////////////VW7v7VIu0+6JfTrRiJ9JmI6nc7MQ6HdEdqvVypMhCqdmZT5EUrlIKYgGU8M////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAAt2jkdaQRNyRnII1BQCbgpaQR1qBK3BF8ejUHAVuf///////////////////////////////////////////AKAAAH3AY3/////////////////////+tfSdElk6IrqO7tV3lOViE0qi1MRUdVcpyAJDlQDRAUwND1UqmmFhhBRLuRUIDMgqCQQABIXycAMWBhb6/3///////////////////////////9PI9UerSFZL+30Z85DxpZzmdHlqpToZDjG1V1cpUqyOhDiImBioog7WdBRykHFHABAAAD7gYW////////////////////+//12J37bHbsi1V2OZDnp5CzoVUVTjDug6VIkxnRRMimMZHU7CBlBRcSYXYcPFmBBQkAAACN/lA0ANRBch6Gr9f//////////////////////////ZtHfuzaLnQh0ZquhrFbPRmzFKQZyIxzvEOqTNqdiEOMVyMgooZEQhWFoo7HEIGECh3KZxkn///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwYKcACzOPRtqBE3JGkgjYFAJuC15BGwgErcEZRiNUEBW5////////////////////////////////4MAAAD6w+Gf////////////////////e1LSIjbJVNC91uUhUrRXKM7nYtkgjoxSOCGM6KWR3VWRzHQiI0kHUcdGZJwxs6QsWqIACN/mRmOoKia1aTfF/////////////////////////+/qnp0Y9FWRZhWR9majqVDKjGdTIdjORWFUdBQQQrjUkcrzoqixcp8fIPILAKo0xxAXYexCXI5RAwAA/Rr////////////////////tbyu6NIjUs5nde1jq2rK/u5BpzoRpblpHJc9FPHoIo4uNDRNrCTDkFxNkQaPEBDWJLkCFAAAAQvQImAD0Foqq1/h///////////////////////////r0czaubVHs6E3c87ka6ymJOeuiIxZ2ZhpUMQ55TO5SnIKCIog5TsLGnMQ+DSFExBh6jyigdDP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7BgpwALQJBGImErcE2R6MQcBW5J6j0daYRNySVII1QgCbj//////////////////////////////////wAQAAB9gV////////////////////7296q136z99mNY5Cln1LU5inZkcTOLkI5FOquJiwdQ4pUokqBJhIfFHMIxyiY4MaH0sVzMKoA0JBQEAggCQvctgQyU9/+L8v/////////////////////////027rr6bKqHUiellOjEU7FVH3Vzoj1dKvrdylseVCzlMRVUEioRHmRlKqFBDjAAD8sf////////////////////enl0qh8h2WWZ7OqtsWilQ6IVqKOKKYiWIqndyISxEdDIAEZUBtIOKcjndygDMCIFPccULOEacJQIAAqqJSA4ogCdET18+9t/P////////////////////////////9UdqozuSzPerL9qPK1XTpVjuhkqV3DXVlcQw7wEt7oUroKuyFdDAhZwAV////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7sGCnAA7hjkdZ4RNyQ7H46BQCbgUMFRaAmGJgFoAjEAAABP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+FIAAA+iDgf////////////////////9OT5kdrXK5fuxi6FmdHZ6KUUtyHskxJdiqZHRCrLQzlRUZBwbTGRpiGK5kFEIJIAAAQ9CgEeAt//////////////////+wlw0xQFAT1Hoa8RSwFOg0ACAAAOHT///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uwQKcAD/wAS4AAAAhOgAlwAAABAAABLgAAACAAACXAAAAE/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUQUcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="}static getRingBackTone(){return"data:audio/mpeg;base64,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VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy45OFVVVVVVVVVVVVVVVVVVVVVVVVVV"}static getDtmf(){return"data:audio/mp3;base64,SUQzAwAAAAAxJVBSSVYAABCbAABYTVAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4xLWMwMDAgNzkuNGQyZjU5NywgMjAyMS8wOS8wMS0yMDo1MToyMiAgICAgICAgIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcERNPSJodHRwOi8vbnMuYWRvYmUuY29tL3htcC8xLjAvRHluYW1pY01lZGlhLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDIyLTA1LTI4VDE0OjMxOjI5LTA1OjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wNS0yOFQxNDozMToyOS0wNTowMCIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxZWM2ZDhhMC01ZjBjLTVhNDktODAzOS02NzFkYjhjMjc5ZmEiCiAgIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MWVjNmQ4YTAtNWYwYy01YTQ5LTgwMzktNjcxZGI4YzI3OWZhIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OWIyN2MzYzItMzdmMi01YjQxLTlhMTktN2NkNWUwMzAyODA4IgogICBkYzpmb3JtYXQ9ImF1ZGlvL21wZWciPgogICA8eG1wRE06VHJhY2tzPgogICAgPHJkZjpCYWc+CiAgICAgPHJkZjpsaQogICAgICB4bXBETTp0cmFja05hbWU9IkN1ZVBvaW50IE1hcmtlcnMiCiAgICAgIHhtcERNOnRyYWNrVHlwZT0iQ3VlIgogICAgICB4bXBETTpmcmFtZVJhdGU9ImY0NDEwMCIvPgogICAgIDxyZGY6bGkKICAgICAgeG1wRE06dHJhY2tOYW1lPSJDRCBUcmFjayBNYXJrZXJzIgogICAgICB4bXBETTp0cmFja1R5cGU9IlRyYWNrIgogICAgICB4bXBETTpmcmFtZVJhdGU9ImY0NDEwMCIvPgogICAgIDxyZGY6bGkKICAgICAgeG1wRE06dHJhY2tOYW1lPSJTdWJjbGlwIE1hcmtlcnMiCiAgICAgIHhtcERNOnRyYWNrVHlwZT0iSW5PdXQiCiAgICAgIHhtcERNOmZyYW1lUmF0ZT0iZjQ0MTAwIi8+CiAgICA8L3JkZjpCYWc+CiAgIDwveG1wRE06VHJhY2tzPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5YjI3YzNjMi0zN2YyLTViNDEtOWExOS03Y2Q1ZTAzMDI4MDgiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDUtMjhUMTQ6MzE6MjktMDU6MDAiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIEF1ZGl0aW9uIDIyLjQgKFdpbmRvd3MpIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvbWV0YWRhdGEiLz4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MWVjNmQ4YTAtNWYwYy01YTQ5LTgwMzktNjcxZGI4YzI3OWZhIgogICAgICBzdEV2dDp3aGVuPSIyMDIyLTA1LTI4VDE0OjMxOjI5LTA1OjAwIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBBdWRpdGlvbiAyMi40IChXaW5kb3dzKSIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgIDx4bXBNTTpEZXJpdmVkRnJvbQogICAgc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5YjI3YzNjMi0zN2YyLTViNDEtOWExOS03Y2Q1ZTAzMDI4MDgiCiAgICBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjliMjdjM2MyLTM3ZjItNWI0MS05YTE5LTdjZDVlMDMwMjgwOCIKICAgIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5YjI3YzNjMi0zN2YyLTViNDEtOWExOS03Y2Q1ZTAzMDI4MDgiLz4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/74EAAAA/8AEuAAAAJnIAJcAAAAQlAAS4AAAAgAAAlwAAABP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////tASxAAAidAAAuf/74EAAAA/8AEuAAAAJnIAJcAAAAQqAAS4AAAAgAAAlwAAABP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////74EAAAA/8AEuAAAAJnIAJcAAAAQeITRkBBEcIXwmjICCI4f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wJVV4D8wi00M2m0MlRrbPRnYYXDpkPVV////////////////////////////////////////////////8CVVeA/MItNDNptDJUa2z0Z2GFw6ZD1Vf/74EAAAAwUQkzLesriy2hJmW9ZXFohc08tve27RC5p5be9t2Zq6/ppk3zGoI/awMXszgTeJGLmpnZmBidtCUBMVFzHiTDhy6YVDmTImLCm4mHQeAZgBAyrWDGMNA5BaAIVPpZiCcwosypMKhBZAZE2YgCAkaGAyDEYozw4VAiBAagMZkgGZNckUESRLpwBM3IAdy9g3dMeFSz5XWlnyjHJ2JBNuXR1X/rWafVy92USypLMe0/d9wz7yns5Uk3bwr3L1JvLDOpLMKlvle/hn3ee7lJhSXkjKSPSeILTkX9gcd/+fgAGSf58fp+v/57c////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9mauv6aZN8xqCP2sDF7M4E3iRi5qZ2ZgYnbQlATFRcx4kw4cumFQ5kyJiwpuJh0HgGYAQMq1gxjDQOQWgCFT6WYgnMKLMqTCoQSQGRNmIAgJGhgMgxGKNAOFQIgQGoDGZIBmTXJFBEcS6cATNaAHcvYN3SLgaWfK60s+UY5OxIJty6Oq/9azL9XL3ZRLKksxv0/d9wz7yns5Uk3bwzuXqTeWGdSWYVLeFe/hn3ee7lJhSXkjKSPSeILbIv7A47/8/AAMk/z4/T9f/z24o3VdXd3UWUa25nFLzHFfsacdQZFNr8+ypqcAL48hhCEglC6nKZqGmSkEsEWiB6jUaFOJ8jkPFmXImxCS0ELN0sQC0TktFagkgXhvek7LuGMNYJMdBrsi8XNPsR9NSNR6MYzVQxjdN66fv4cY/kAjz8QpKMzkznqiGZ62sSpcz1QwytrV2dFR2SMywnFqULOsrF5Iq6VTi4ptjXKSUi8wriS7krDjeq2ErYSpUKYpu3jR9QIPr6xYtdx/JaDjGY2N1pTXxmlaz+KCJKeMNzAv4g6jdV1d3dRZRrbmcUvMcV+xpx1BkU2vz7KmpwAvjyGEISCULqcpmoaZKQSwRaIHqNRoT4nyOQ8WZcibEJLQQs3SxALROS0TqCSBeG96Tsu4Yw1gkx0GuyLxc1exH01I1HoxjMVDGN03rp+/hxj+QCPPxCkozMy2eqkZnraxKFzPVDDK2tXZ0U/ZIzLCcWpQs6ysXxFXSqcXFNsa5SSkXmFcSXclYcb1WwlbCVKhTFN28a+oEH19YsWu4+ZLQcYzGxutKa9s0rWfxQRJTxhuYF1iDv/74EAAAAs/Y1PLT3tuxqxqeWnvbdwlo1WtYe2zgLRqtaw9tgF6vqqa6yqJjB5ljJxGpsRB0nBENafXL4GEDMQgqMkGPx25JNNI4QwvJOi9kOIUbjmqCDNTqMrNLZfE4fyCJMcyqdNqeTx+k9ZE8ZK9IuxywoMGW2XlYrIxJRRv3R2nU4v4caiRpFdNTQr2OdiVTp/Dvhtg4cF0sM8O8J7HvDviC21na1h+19ibVvxI6uhtsrkuzzZJcQl9zrSjbv5dtaPdSWklc84xBizajyudbWh2c74tmn3SG7rvEtolJLbxS/kiA+aSkX///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////gL1fVU11lUTGDzLGTiNTYiDpOCIa0+uXwMIGYhBUZIMfjtySaaRwhheSdF7IcQo3FtUEGanUZWaWy+Jw/kESY5lU6bU8nj9J6yJ4yV6AuxywoMGW2XlYrIxJpRv3R2nU4v4c9EjSK6amhXsc7EqnT+HfDbBw4LpYZ4d4T2PeHfEFtrO1rD9r7E2rfiR1dDbZXJdnmyS4hNbnWlG3fy7a0e4SWklc84xBizajyudbWh2c74tmJ90hu67xLaJSS28Uz5IgPmkpnZJTllksjjctKoZJEvi8Q4HNFBFspkwcSiS6nphMrgBly7qypnWiKqpyamkFhtQgWlqw1NOU/1V1aKO2RwodRE82DpIOo2lP1ZjWW7kalq5E1hCOngm63V0OTbaysV8G6Yp7j9Ype3rLizSoawLbKuhClYK6YjSsyG6wN92F0+UsxvD+UhCV5to1nDGVsKtG9lbi3M57NLt7c3WSHNq1mGAplVEQ6HIyL5LVcnatjM3Ok8h0M9k3BjVL6hDGjcK7b5rVzlEQ6HAu2KJmTsz6N91e7bnPULrpzXDi+fX1WtcvsskpyySWRxuWlUMkiXxeIcDmigi2UyYOJQEup6YTK4AZcu6aVM60RdEtC0pSlqEC2asNTTlP9VdWijtkcKHURPNg6SDqNpT9WY1lu5GpauRNYQjp4Jut1deTbaysV8G6Yp7j9Ype3rLizSoapFtlXQhSsFdMRpWZDdYId2F0+UsxvD+UhCV5to1nDGVsKtG9lbi3M57NLt7c3WSHNq1mGAplVEQ6HIyL5LVcnatjk3Ok8hz89k3BjVL6hDGjcK7b5rVzlEQ6HAu2KJmTsz6N91e7bnPULrpzbHF8+vqta5fZP/74EAAAA/6SE/rGHrtnMkJ/WMPXYm8BRKEgAAgFwCiUIAABEmS7rtdbI0nVEYDbQ4gQeLxlyR1B1gjitJeKABLqmWBQdLutVLkq5ayiAdcAbRaoxiLwvxAbLW5NOjryqVQI/TVTElCERBNSzMUDFc0NmunVDFhbqxMYkomKpUpBUqnVC9rRisrpYJvHEiidFuOqMxN0+H0aV7RigJ5RTxVM7VsW281rFtU3lCnVCnVDqsK0HHxb1r/a2dW38/H9fmDUGgaCrolGA0DQa/EQNHfWCoKhr/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////SZLuu11sjSdURgNtDiBB4vGXJHUHWCOK0l4oAEuqZQ1B0u61UuSrlrKIB1wBtFqjGIvC/EBstbk06OvKpVAjrNVMSUaRQJqWZigYrmhrq6dUMWFurExiSiYqFSkFSqdUMWtFdZXSwTeQpFE6NI6ozE3T4fRpXtGKAnlFPFUztWxbbzWsW1TeUKdUKdUOtQrQcfFvWv9rZ1bfz8f1+YNQaBoKuiUYDQNBrrxEDR31gqCoa/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yAAAAAPM////////////////////////////////////////////////////////////////////////////////////////////////kAAAAALKP/74EAAAA/8AMagIAAJnIAY1AQAAQnoAxaAgAAgEwBi0BAABCAAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yAAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yAAAAAH///////////////////////////////////////////////////////////////////////////////////////////////////IAAAAAf/74EAAAA/8AEuAAAAJnIAJcAAAAQqAAS4AAAAgAAAlwAAABP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////74EAAAA/8AEuAAAAJnIAJcAAAAQqAAS4AAAAgAAAlwAAABP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////74EAAAA/8AEuAAAAJnIAJcAAAAQqAAS4AAAAgAAAlwAAABP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1RBRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}}class Jl{constructor(p,h,r,M,Q){BA(this,"player");BA(this,"ringer");BA(this,"backRinger");BA(this,"dtmfAudio");BA(this,"viewer");BA(this,"selfViewer");this.player=p,this.ringer=h,this.backRinger=r,this.viewer=M,this.selfViewer=Q,this.dtmfAudio=new Audio(Mt.getDtmf()),this.setupAudioElements()}setupAudioElements(){this.ringer.src=Mt.getRingTone(),this.backRinger.src=Mt.getRingBackTone(),this.ringer.loop=!0,this.backRinger.loop=!0}normalizeVolume(p){return Math.max(Math.pow(p/100,2),.01)}setCallVolume(p){this.player.volume=this.normalizeVolume(p),this.player.paused||this.player.play().catch(h=>console.warn("No se pudo reproducir el audio:",h))}setNotificationVolume(p){const h=this.normalizeVolume(p);this.ringer.volume=h,this.backRinger.volume=h}attachMediaStream(p){const[h]=p.streams;h&&(h.getAudioTracks().length>0&&(this.player.srcObject=new MediaStream(h.getAudioTracks()),this.player.play().catch(r=>console.error("Error reproduciendo audio de la llamada:",r))),h.getVideoTracks().length>0&&this.viewer&&(this.viewer.srcObject=new MediaStream(h.getVideoTracks()),this.viewer.play().catch(r=>console.error("Error reproduciendo video remoto:",r))))}attachLocalVideoStream(p){p.getVideoTracks().length>0&&this.selfViewer&&(this.selfViewer.srcObject=p,this.selfViewer.play().catch(h=>console.error("Error reproduciendo video local:",h)))}stopVideoStreams(){this.viewer&&(this.viewer.srcObject=null),this.selfViewer&&(this.selfViewer.srcObject=null)}async startRingtone(){try{this.ringer.currentTime=0,await this.ringer.play()}catch{}}async startRingBack(){try{if(!this.backRinger.paused)return;this.backRinger.currentTime=0,await this.backRinger.play()}catch{}}stopRingtone(){this.ringer.pause(),this.ringer.currentTime=0}stopRingBackTone(){this.backRinger.pause(),this.backRinger.currentTime=0}stopAllTones(){[this.ringer,this.backRinger].forEach(p=>{p.pause(),p.currentTime=0})}playDTMFTone(){this.dtmfAudio.volume=this.normalizeVolume(50),this.dtmfAudio.currentTime=0,this.dtmfAudio.play().catch(p=>console.error("Error al reproducir tono DTMF:",p))}}class xl extends On.EventEmitter{constructor(h){super();BA(this,"currentStream",null);BA(this,"pc",null);BA(this,"dc",null);BA(this,"sessionCreated",!1);BA(this,"sessionId",null);BA(this,"cfg");this.cfg={openaiApiKey:h.openaiApiKey,openaiRealtimeModel:h.openaiRealtimeModel??"gpt-4o-realtime-preview",sourceElement:h.sourceElement,mode:"openai-realtime-dev"}}isActive(){return!!(this.pc&&this.pc.connectionState&&this.pc.connectionState!=="closed")}async start(h){this.isActive()||(this.currentStream=h,this.startOpenAIRealtimeDev())}stop(){var h,r;try{(h=this.dc)==null||h.close()}catch{}try{(r=this.pc)==null||r.close()}catch{}this.dc=null,this.pc=null}async startOpenAIRealtimeDev(){var q;if(!this.cfg.openaiApiKey){this.emit("error",new Error("Falta openaiApiKey para modo openai-realtime-dev"));return}const h=this.cfg.sourceElement,M=(h&&typeof h.captureStream=="function"?h.captureStream():null)||this.currentStream,Q=M==null?void 0:M.getAudioTracks()[0];if(!Q){this.emit("error",new Error("No hay pista de audio para enviar a Realtime"));return}this.pc=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"}]}),this.pc.onicegatheringstatechange=()=>{var o;console.log("[Realtime] iceGatheringState:",(o=this.pc)==null?void 0:o.iceGatheringState)},this.pc.oniceconnectionstatechange=()=>{var o;console.log("[Realtime] iceConnectionState:",(o=this.pc)==null?void 0:o.iceConnectionState)},this.pc.onconnectionstatechange=()=>{var c;const o=(c=this.pc)==null?void 0:c.connectionState;console.log("[Realtime] connectionState:",o),o==="connected"&&this.emit("status",{active:!0}),(o==="failed"||o==="closed"||o==="disconnected")&&this.emit("status",{active:!1})},this.dc=this.pc.createDataChannel("oai-events"),this.dc.onopen=()=>{console.log("[Realtime] datachannel open")},this.dc.onclose=()=>{console.log("[Realtime] datachannel close")},this.dc.onmessage=o=>{var c;if(typeof o.data=="string")try{const f=JSON.parse(o.data);console.log("[Realtime] event:",(f==null?void 0:f.type)||"unknown",f)}catch{console.log("[Realtime] event(raw):",o.data.slice(0,200))}try{const f=typeof o.data=="string"?JSON.parse(o.data):null;if(!f||typeof f!="object")return;const W=String(f.type||"");if(W==="session.created"){console.log("[Realtime] session.created"),this.sessionCreated=!0;const x=(c=f.session)==null?void 0:c.id;typeof x=="string"&&(this.sessionId=x),this.trySendSessionUpdate()}if(W==="conversation.item.input_audio_transcription.delta"){const x=f.delta,D=f.item_id,m=f.content_index;typeof x=="string"&&this.emit("transcript",{type:"partial",text:x,itemId:typeof D=="string"?D:void 0,contentIndex:typeof m=="number"?m:void 0});return}if(W==="conversation.item.input_audio_transcription.completed"){const x=f.transcript,D=f.item_id,m=f.content_index;typeof x=="string"&&this.emit("transcript",{type:"final",text:x,itemId:typeof D=="string"?D:void 0,contentIndex:typeof m=="number"?m:void 0});return}if(W==="input_audio_buffer.speech_stopped"){this.emit("transcript",{type:"partial",text:`
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
`),DA=new Blob([dA||""],{type:"text/plain;charset=utf-8"}),vA=URL.createObjectURL(DA),NA=document.createElement("a");NA.href=vA,NA.download=RA,document.body.appendChild(NA),NA.click(),NA.remove(),URL.revokeObjectURL(vA),gA()},yA=async()=>{await FA(),q.value&&(S.value&&await wA(S.value),T.value&&await WA(T.value))},mA=(oA,VA)=>{const TA=oA==="mic"?S:T;(!TA.value||!VA.some(RA=>RA.deviceId===TA.value))&&(TA.value=VA.length>0?VA[0].deviceId:null)},FA=async()=>{const{inputs:oA,outputs:VA}=await M.listAudioDevices();Q.value=oA,e.value=VA,mA("mic",oA),mA("speaker",VA)},wA=async oA=>{var VA;S.value=oA,await M.changeMicrophone(oA,((VA=r==null?void 0:r.getActiveCall())==null?void 0:VA.connection)??null)},WA=async oA=>{T.value=oA,k.playerRef.value&&await M.changeOutputDevice(oA,k.playerRef.value)},jA=()=>{q.value&&(l.value=!l.value,r==null||r.setMicrophoneMute(l.value))},SA=()=>{r&&r.startSIP()},LA=()=>{r&&(r.stopSIP(),ne())},JA=(oA,VA)=>{oA==="call"?(d.value=VA,h==null||h.setCallVolume(VA)):(b.value=VA,h==null||h.setNotificationVolume(VA))},ae=oA=>{h==null||h.playDTMFTone(),r==null||r.sendDTMF(oA)},ne=()=>{p.value="",l.value=!1,q.value=!1,c.value=!1,f.value=!1},XA=oA=>{oA&&!o.value?SA():!oA&&o.value&&LA()},re=()=>{p.value="",l.value=!1,q.value=!1,c.value=!1,f.value=!1,x.value=!1,clearInterval(K),K=null},_A=oA=>{oA==="accepted"?(q.value=!0,c.value=!1,F.value=new Date,E.value=0,K&&clearInterval(K),K=setInterval(()=>{E.value+=1},1e3)):(re(),sA(),gA())},iA={offline:()=>XA(!1),online:()=>XA(!0),beforeunload:()=>XA(!1),freeze:()=>XA(!1),resume:()=>XA(!0)},YA=oA=>{const VA=oA==="add"?"addEventListener":"removeEventListener";navigator.mediaDevices[VA]("devicechange",yA),Object.entries(iA).forEach(([TA,RA])=>{window[VA](TA,RA)})},le=()=>YA("add"),HA=()=>YA("remove"),ue=async()=>{if(m.value==="granted")return!0;G.value=!0;try{return(await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0},video:!1})).getTracks().forEach(VA=>VA.stop()),m.value="granted",!0}catch{return m.value="denied",!1}finally{G.value=!1}},qe=async()=>{try{return(await navigator.permissions.query({name:"microphone"})).state}catch{return"prompt"}};return s.onMounted(async()=>{var TA,RA;if([k.playerRef,k.ringerRef,k.backRingerRef].some(dA=>!dA.value))return;m.value=await qe(),m.value!=="granted"&&await ue(),h=new Jl(k.playerRef.value,k.ringerRef.value,k.backRingerRef.value,((TA=k.viewerRef)==null?void 0:TA.value)||void 0,((RA=k.selfViewerRef)==null?void 0:RA.value)||void 0),r=new Gl(k,h),qA();const oA=k.transcriptionTokenUrl;let VA;if(oA)try{const dA={};k.transcriptionTokenApiKey&&(dA["api-key"]=k.transcriptionTokenApiKey);const DA=await fetch(oA,{method:"POST",headers:dA});if(DA.ok){const vA=await DA.json();typeof(vA==null?void 0:vA.token)=="string"&&vA.token.length>0&&(VA=vA.token)}}catch{}VA&&(L=new xl({openaiApiKey:VA,openaiRealtimeModel:k.transcriptionRealtimeModel||"gpt-4o-realtime-preview",sourceElement:k.playerRef.value||void 0}),L.on("transcript",dA=>{const DA=vA=>vA.replace(/\s+/g," ").trim();if(dA.type==="final"){const vA=DA(dA.text);if(dA.itemId){if(w.has(dA.itemId))return;w.add(dA.itemId)}else{const NA=Y.value[Y.value.length-1]||"";if(DA(NA)===vA)return}Y.value=[...Y.value,vA]}}),L.on("status",({active:dA})=>{P.value=dA})),await FA(),r.on("sipStarted",()=>{o.value=!0,D.value=null,$()}),r.on("sipStopped",dA=>{var vA;o.value=!1;const DA=(r==null?void 0:r.getLastError())||null;DA?D.value=DA:dA&&typeof dA=="object"&&"cause"in dA?D.value=((vA=dA.cause)==null?void 0:vA.message)??"Conexión SIP detenida":D.value="Conexión SIP detenida",$()}),r.on("callAccepted",()=>{_A("accepted"),$()}),r.on("callEnded",()=>{_A("ended"),$()}),r.on("callFailed",()=>{_A("failed"),$()}),r.on("incomingCall",()=>{$()}),r.on("outgoingCall",()=>{$()}),r.on("callHeld",()=>{$()}),r.on("callUnheld",()=>{$()}),r.on("remoteAudioStream",dA=>{g=dA,v.value&&EA()}),le(),r.startSIP()}),s.onBeforeUnmount(()=>{r==null||r.stopSIP(),sA(),navigator.mediaDevices.removeEventListener("devicechange",yA),HA()}),{startSIP:SA,stopSIP:LA,makeCall:eA,answerCall:nA,endCall:lA,toggleMute:jA,microphones:Q,speakers:e,selectedMicId:S,selectedSpeakerId:T,isMuted:l,activeCall:q,isSIPActive:o,canMute:R,canAnswer:j,canHangup:H,canStartSIP:J,canStopSIP:u,changeMicrophone:wA,changeSpeaker:WA,callVolume:d,notificationVolume:b,setVolume:JA,isIncomingCall:c,sendDTMF:ae,resetStates:ne,phoneNumber:p,callerId:W,isRinging:x,statusMessage:Z,formattedCallDuration:X,callDuration:E,isOutgoingCall:f,channels:O,activeChannelId:I,hasActiveCalls:C,activeCallsCount:B,holdCall:rA,unholdCall:hA,switchToChannel:IA,transcriptList:Y,showTranscription:v,startTranscription:EA,stopTranscription:sA,toggleTranscription:()=>{v.value=!v.value,v.value?EA():sA()},callStartedAt:F,transcriptHistory:U,downloadTranscript:pA,isTranscribing:P,microphonePermission:m,isRequestingPermission:G,requestMicrophonePermission:ue,lastSipError:D,checkMicrophonePermission:qe}}function Ll(){const k=s.ref(!1),p=s.ref("prompt"),h=s.ref(!1),r=s.ref(null),M=s.computed(()=>p.value!=="denied"),Q=async()=>{if(p.value==="granted"&&r.value)return!0;h.value=!0;try{const l=await navigator.mediaDevices.getUserMedia({audio:!1,video:{width:{ideal:640},height:{ideal:480},facingMode:"user"}});return r.value=l,p.value="granted",k.value=!0,!0}catch(l){return console.error("Error requesting camera permission:",l),p.value="denied",!1}finally{h.value=!1}},e=async()=>k.value?(r.value&&(r.value.getVideoTracks().forEach(l=>l.stop()),r.value=null),k.value=!1,!0):await Q(),S=()=>{r.value&&(r.value.getVideoTracks().forEach(l=>l.stop()),r.value=null),k.value=!1},T=async()=>{try{return(await navigator.permissions.query({name:"camera"})).state}catch{return"prompt"}};return s.onMounted(async()=>{p.value=await T()}),{isCameraOn:k,cameraPermission:p,isRequestingCamera:h,localStream:r,canToggleCamera:M,requestCameraPermission:Q,toggleCamera:e,stopCamera:S,checkCameraPermission:T}}const Nl=["type","disabled"],Zl={key:0,class:"ui-button__spinner","aria-hidden":"true"},Wl={key:2,class:"ui-button__label"},jl=s.defineComponent({name:"UiButton",__name:"Button",props:{variant:{default:"solid"},severity:{default:"primary"},size:{default:"medium"},rounded:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},icon:{default:null},label:{default:null},type:{default:"button"}},setup(k){const p=k,h=s.computed(()=>["ui-button",`ui-button--${p.variant}`,`ui-button--${p.severity}`,`ui-button--${p.size}`,p.rounded&&"ui-button--rounded",p.loading&&"ui-button--loading",p.disabled&&"ui-button--disabled"].filter(Boolean));return(r,M)=>(s.openBlock(),s.createElementBlock("button",{type:r.type,class:s.normalizeClass(["ui-button",h.value]),disabled:r.disabled||r.loading},[r.loading?(s.openBlock(),s.createElementBlock("span",Zl)):s.createCommentVNode("",!0),r.icon&&!r.loading?(s.openBlock(),s.createElementBlock("i",{key:1,class:s.normalizeClass(["ui-button__icon",r.icon])},null,2)):s.createCommentVNode("",!0),r.label?(s.openBlock(),s.createElementBlock("span",Wl,s.toDisplayString(r.label),1)):s.createCommentVNode("",!0),s.renderSlot(r.$slots,"default",{},void 0,!0)],10,Nl))}}),te=(k,p)=>{const h=k.__vccOpts||k;for(const[r,M]of p)h[r]=M;return h},GA=te(jl,[["__scopeId","data-v-b6b849e6"]]),Hl=["value","aria-invalid"],Pl=te(s.defineComponent({name:"UiInputText",__name:"InputText",props:{modelValue:{default:""},size:{default:"medium"},invalid:{type:Boolean,default:!1}},emits:["update:modelValue","blur","focus","change","input"],setup(k,{emit:p}){const h=k,r=p,M=s.computed(()=>[`ui-input--${h.size}`,h.invalid&&"ui-input--invalid"].filter(Boolean));function Q(l){const q=l.target;r("update:modelValue",(q==null?void 0:q.value)??""),r("input",l)}function e(l){r("change",l)}function S(l){r("blur",l)}function T(l){r("focus",l)}return(l,q)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["ui-input",M.value])},[s.createElementVNode("input",s.mergeProps({class:"ui-input__control"},l.$attrs,{value:h.modelValue,"aria-invalid":h.invalid||void 0,onInput:Q,onChange:e,onBlur:S,onFocus:T}),null,16,Hl)],2))}}),[["__scopeId","data-v-24a9df02"]]),zl=["data-mask"],Xl={key:0,class:"ui-dialog__overlay","data-mask":"true"},_l=["aria-labelledby"],$l=["id"],Ai={key:0},ei={key:1,class:"ui-dialog__footer"},Gn=te(s.defineComponent({name:"UiDialog",__name:"Dialog",props:{visible:{type:Boolean,default:!1},header:{default:""},modal:{type:Boolean,default:!1},closable:{type:Boolean,default:!0},dismissableMask:{type:Boolean,default:!0},closeOnEscape:{type:Boolean,default:!0}},emits:["update:visible","show","hide"],setup(k,{emit:p}){const h=k,r=p,M=s.ref(h.visible),Q=s.ref(null),e=s.useAttrs(),S=s.computed(()=>e["pt:header"]||null),T=s.computed(()=>e["pt:content"]||null),l=s.computed(()=>{var I;return((I=S.value)==null?void 0:I.class)||"webphone__dialog-header"}),q=s.computed(()=>{var I;return((I=T.value)==null?void 0:I.class)||"webphone__dialog-content"}),o=s.computed(()=>{const{["pt:header"]:I,["pt:content"]:C,...B}=e;return B}),c=`ui-dialog-header-${Math.random().toString(36).slice(2)}`,f=`ui-dialog-content-${Math.random().toString(36).slice(2)}`;s.watch(()=>h.visible,I=>{M.value=!!I}),s.watch(M,async I=>{r("update:visible",I),I?(r("show"),await s.nextTick(),D(),document.addEventListener("keydown",W,!0)):(r("hide"),document.removeEventListener("keydown",W,!0))}),s.onMounted(()=>{M.value&&document.addEventListener("keydown",W,!0)}),s.onBeforeUnmount(()=>{document.removeEventListener("keydown",W,!0)});const W=I=>{if(h.closeOnEscape&&I.key==="Escape"&&M.value){O();return}if(!h.modal||!M.value||I.key!=="Tab")return;const C=Q.value;if(!C)return;const B=x(C);if(B.length===0)return;const Y=B[0],w=B[B.length-1],v=document.activeElement;I.shiftKey?(v===Y||!C.contains(v))&&(w.focus(),I.preventDefault()):(v===w||!C.contains(v))&&(Y.focus(),I.preventDefault())},x=I=>{const C=["a[href]","button:not([disabled])","textarea:not([disabled])","input:not([disabled])","select:not([disabled])",'[tabindex]:not([tabindex="-1"])'];return Array.from(I.querySelectorAll(C.join(","))).filter(B=>!B.hasAttribute("disabled")&&!B.getAttribute("aria-hidden"))},D=()=>{const I=Q.value;if(!I)return;const C=x(I);C.length?C[0].focus():I.focus()},m=I=>{var C,B;!h.dismissableMask||!h.modal||((B=(C=I.target)==null?void 0:C.dataset)==null?void 0:B.mask)==="true"&&O()},G=I=>{I.stopPropagation()},O=()=>{h.closable&&(M.value=!1)};return(I,C)=>(s.openBlock(),s.createBlock(s.Teleport,{to:"body"},[s.createVNode(s.Transition,{name:"ui-dialog-fade",appear:""},{default:s.withCtx(()=>[M.value?(s.openBlock(),s.createElementBlock("div",{key:0,class:"ui-dialog__wrapper","data-mask":String(!!h.modal),onMousedown:m},[h.modal?(s.openBlock(),s.createElementBlock("div",Xl)):s.createCommentVNode("",!0),s.createElementVNode("div",s.mergeProps({ref_key:"panelRef",ref:Q,class:"ui-dialog__panel",role:"dialog","aria-modal":"true","aria-labelledby":h.header?c:void 0,"aria-describedby":f,tabindex:"-1"},o.value,{onMousedown:G}),[h.header||I.$slots.header||h.closable?(s.openBlock(),s.createElementBlock("div",{key:0,id:h.header?c:void 0,class:s.normalizeClass(l.value)},[s.renderSlot(I.$slots,"header",{},()=>[h.header?(s.openBlock(),s.createElementBlock("span",Ai,s.toDisplayString(h.header),1)):s.createCommentVNode("",!0)],!0),h.closable?(s.openBlock(),s.createElementBlock("button",{key:0,class:"ui-dialog__close",type:"button","aria-label":"Close",onClick:O}," × ")):s.createCommentVNode("",!0)],10,$l)):s.createCommentVNode("",!0),s.createElementVNode("div",{id:f,class:s.normalizeClass(q.value)},[s.renderSlot(I.$slots,"default",{},void 0,!0)],2),I.$slots.footer?(s.openBlock(),s.createElementBlock("div",ei,[s.renderSlot(I.$slots,"footer",{},void 0,!0)])):s.createCommentVNode("",!0)],16,_l)],40,zl)):s.createCommentVNode("",!0)]),_:3})]))}}),[["__scopeId","data-v-3828feea"]]),ti={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 65.997 65.372"};function ni(k,p){return s.openBlock(),s.createElementBlock("svg",ti,p[0]||(p[0]=[s.createElementVNode("g",{fill:"currentColor","fill-rule":"evenodd"},[s.createElementVNode("path",{d:"M0 32.43a36 36 0 0 0 .576 6.365l.371 1.677c.286 1.069.573 2.118.938 3.1a29 29 0 0 0 1.205 2.891c.232.461.442.882.664 1.327a22.4 22.4 0 0 0 1.9 3.162l.829 1.163c.15.2.292.369.448.576l2.13 2.478a27 27 0 0 0 2.34 2.212 37 37 0 0 0 4.069 2.986 39 39 0 0 0 5.416 2.719c.975.39 2.054.729 3.071 1.026.547.16 1.056.271 1.632.417a29 29 0 0 0 3.435.6 34 34 0 0 0 3.538.238h1.1a29 29 0 0 0 2.746-.171 32 32 0 0 0 6.634-1.388l2.948-1.092a31 31 0 0 0 3.962-2.012l1.874-1.2a26 26 0 0 0 2.261-1.721l1.883-1.643c.437-.4.8-.865 1.223-1.281a6 6 0 0 0 .458-.51l.483-.542c.319-.366.593-.7.9-1.093a33 33 0 0 0 4.429-7.632 32 32 0 0 0 2.128-7.885c.085-.59.15-1.211.221-1.77A15 15 0 0 0 66 33.568c-.545 0-2.826-.286-3.4-.358-2.245-.285-1.939-.4-2.024.342a30.9 30.9 0 0 1-2.3 9.932c-.261.662-.595 1.252-.908 1.88-.123.247-.2.4-.335.632a37 37 0 0 1-2.251 3.382c-.406.543-.87.985-1.277 1.511a4.5 4.5 0 0 1-.465.5 16 16 0 0 1-1.4 1.384c-.543.419-.994.887-1.544 1.3a27.71 27.71 0 0 1-27.156 4.006c-.393-.158-.824-.317-1.2-.5-.744-.37-1.566-.723-2.279-1.134l-1.079-.628c-1.6-1.066-1.939-1.357-3.446-2.528-.187-.145-.259-.263-.446-.407a10 10 0 0 1-.877-.842 4 4 0 0 1-.423-.374l-1.4-1.56a17 17 0 0 1-1.665-2.2 26.4 26.4 0 0 1-3.165-6.223 25 25 0 0 1-.786-2.628 26.66 26.66 0 0 1-.02-12.7 25 25 0 0 1 .777-2.693 27.4 27.4 0 0 1 4.747-8.339 21 21 0 0 1 2.161-2.283c.154-.136.278-.278.426-.427.169-.17.283-.232.456-.4l.456-.4a23.6 23.6 0 0 1 3.609-2.536A27 27 0 0 1 27.7 5.911a43.7 43.7 0 0 1 7.857-.507V.17c0-.129-.038-.169-.165-.171h-.006l-5.362.155c-1.2.156-2.461.23-3.648.506l-1.661.387a31 31 0 0 0-5.41 1.873c-1.152.534-2.282 1.179-3.395 1.782a32 32 0 0 0-3.695 2.564 14 14 0 0 0-1.647 1.425c-.2.206-.363.3-.57.511-.353.357-.667.671-1.024 1.024l-1 1.11a27 27 0 0 0-2.257 2.92L4.5 16.161c-.257.429-.492.88-.74 1.308a31 31 0 0 0-2.852 7.56 35 35 0 0 0-.908 7.4Z"}),s.createElementVNode("path",{d:"M40.054 30.61a4 4 0 0 0 .324 2.123 3.73 3.73 0 0 0 2.919 2.031h.626a3.82 3.82 0 0 0 3.072-2.219 3.42 3.42 0 0 0-.725-3.94c-2.67-2.642-6.216-.119-6.216 2.005M29.244 30.838a3.5 3.5 0 0 0 .378 1.955 3.3 3.3 0 0 0 .745.961 3.6 3.6 0 0 0 3.281.92 3.639 3.639 0 1 0-3.281-6.183 3.3 3.3 0 0 0-1.123 2.347M29.243 52.457a3.52 3.52 0 0 0 .705 2.424 3.654 3.654 0 0 0 4.441 1.129 2.2 2.2 0 0 0 .552-.359 3.4 3.4 0 0 0 1.263-1.467 3.732 3.732 0 0 0-3.035-5.141 3.68 3.68 0 0 0-3.561 2.015 3.4 3.4 0 0 0-.365 1.4ZM18.434 31.065a3.64 3.64 0 0 0 3.527 3.7 4 4 0 0 0 2.632-1.009 3.657 3.657 0 0 0 .056-5.207 3.648 3.648 0 0 0-6.215 2.516M18.434 41.818a3.6 3.6 0 0 0 2.085 3.377 3.634 3.634 0 0 0 4.6-5.288 3.639 3.639 0 0 0-6.69 1.911ZM40.054 41.476a3.4 3.4 0 0 0 .835 2.806 3.72 3.72 0 0 0 2.752 1.288 7 7 0 0 0 .753-.094 3.6 3.6 0 0 0 2.885-3.715 3.56 3.56 0 0 0-1.014-2.4 4.2 4.2 0 0 0-.994-.712 3.37 3.37 0 0 0-1.86-.359 3.71 3.71 0 0 0-2.979 1.914 3.4 3.4 0 0 0-.378 1.272M25.716 20.483a3.6 3.6 0 0 0-1.933-3.358 3.644 3.644 0 1 0-.268 6.562 3.77 3.77 0 0 0 2.2-3.2ZM29.243 19.971a3.62 3.62 0 0 0 1.037 2.945 3.8 3.8 0 0 0 4.273.658 3.67 3.67 0 0 0 1.856-2.468 3.32 3.32 0 0 0-.187-2.2 3.3 3.3 0 0 0-.707-1.057 3.64 3.64 0 0 0-4.241-.8 2.7 2.7 0 0 0-.71.484c-.111.1-.143.1-.254.2a3.72 3.72 0 0 0-1.067 2.233ZM40.054 19.971a3.47 3.47 0 0 0 1.094 3 3.68 3.68 0 0 0 4.122.621 5 5 0 0 0 .531-.322l.82-.83a3.628 3.628 0 0 0-2.7-5.714 3.46 3.46 0 0 0-1.877.342 4.4 4.4 0 0 0-.982.668c-.093.1-.087.116-.174.225a3.47 3.47 0 0 0-.835 2.009ZM29.244 41.538a3.53 3.53 0 0 0 1.569 3.38 3 3 0 0 0 .575.335 3.634 3.634 0 0 0 4.115-5.822 3.68 3.68 0 0 0-4.213-.8l-1.341 1.106a3.4 3.4 0 0 0-.328.525 3.2 3.2 0 0 0-.377 1.276"})],-1)]))}const ri={render:ni},li={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20.433 18.666"};function ii(k,p){return s.openBlock(),s.createElementBlock("svg",li,p[0]||(p[0]=[s.createStaticVNode('<g fill="none" stroke="currentColor" stroke-width=".5" transform="translate(.25 .25)"><path d="M7.407 18.166a7.3 7.3 0 0 1-2.881-.579 7.37 7.37 0 0 1-3.947-3.948A7.3 7.3 0 0 1 0 10.728a7.3 7.3 0 0 1 .579-2.88 7.4 7.4 0 0 1 1.585-2.362 7.6 7.6 0 0 1 2.362-1.6 7.1 7.1 0 0 1 2.881-.594 7 7 0 0 1 2.865.594 8 8 0 0 1 1.3.728 4 4 0 0 0-.408.018 2.82 2.82 0 0 0-2.438 1.9 4.4 4.4 0 0 0-3.013.158 4.5 4.5 0 0 0-1.4.944 4.33 4.33 0 0 0-1.265 3.094 4.45 4.45 0 0 0 .335 1.722 4.24 4.24 0 0 0 2.332 2.332 4.45 4.45 0 0 0 1.722.335 4.33 4.33 0 0 0 3.094-1.265 4.3 4.3 0 0 0 .93-1.4 4.5 4.5 0 0 0 .335-1.722q0-.2-.015-.387a2.78 2.78 0 0 0 1.935-1.026 2.7 2.7 0 0 0 .583-1.278 7.36 7.36 0 0 1-.08 5.6 7.6 7.6 0 0 1-1.6 2.362 7.5 7.5 0 0 1-2.347 1.585 7.2 7.2 0 0 1-2.865.579Z"></path><circle cx=".968" cy=".968" r=".968" transform="translate(6.439 9.761)"></circle><ellipse cx="2.166" cy="2.169" rx="2.166" ry="2.169" transform="translate(9.279 5.261)"></ellipse><ellipse cx="2.909" cy="2.913" rx="2.909" ry="2.913" transform="translate(14.115)"></ellipse></g>',1)]))}const Jn={render:ii},si={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 19"};function oi(k,p){return s.openBlock(),s.createElementBlock("svg",si,p[0]||(p[0]=[s.createElementVNode("g",{fill:"currentColor","fill-rule":"evenodd",stroke:"currentColor","stroke-width":".5"},[s.createElementVNode("path",{d:"M2.95 5.257a2.34 2.34 0 0 1-1.258-.317 2.5 2.5 0 0 1-.806-.76L.73 3.894a2.4 2.4 0 0 1-.006-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .44-.413 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.099 1.92 2.35 2.35 0 0 1-.31 1.269 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.39.337 2.35 2.35 0 0 1-1.308.431ZM.25 2.77A2.5 2.5 0 0 0 .5 4.004c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.065-1.158 2.65 2.65 0 0 0-.367-2.822L4.668.94c-.041-.029-.05-.046-.085-.073A2.64 2.64 0 0 0 2.97.25 2.5 2.5 0 0 0 1.761.5 2.58 2.58 0 0 0 .5 1.761a2.5 2.5 0 0 0-.25 1.012ZM10.153 5.257a2.34 2.34 0 0 1-1.254-.317 2.5 2.5 0 0 1-.806-.762l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337A2.4 2.4 0 0 1 8.71.94a2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.102.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431ZM7.457 2.77a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.067-1.158 2.65 2.65 0 0 0-.369-2.822L11.877.94c-.041-.03-.049-.047-.085-.074A2.64 2.64 0 0 0 10.177.25 2.5 2.5 0 0 0 8.968.5a2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012ZM17.359 5.257a2.34 2.34 0 0 1-1.256-.317 2.5 2.5 0 0 1-.8-.76l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .435-.414 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431ZM14.663 2.77a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.058-1.157 2.65 2.65 0 0 0-.36-2.823L19.081.94c-.041-.03-.049-.047-.085-.074A2.64 2.64 0 0 0 17.383.25a2.5 2.5 0 0 0-1.209.25 2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012ZM2.95 12.088a2.34 2.34 0 0 1-1.253-.315 2.5 2.5 0 0 1-.806-.762l-.161-.286a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431ZM.25 9.601a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.058-1.157 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.606-.618 2.5 2.5 0 0 0-1.209.25A2.58 2.58 0 0 0 .5 8.592a2.5 2.5 0 0 0-.25 1.012ZM10.153 12.088a2.34 2.34 0 0 1-1.253-.315 2.5 2.5 0 0 1-.806-.762l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431Zm-2.7-2.487a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.071-1.158 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.615-.617 2.5 2.5 0 0 0-1.209.25 2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012ZM17.359 12.088a2.34 2.34 0 0 1-1.256-.315 2.5 2.5 0 0 1-.806-.762l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431Zm-2.7-2.487a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.058-1.157 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.612-.617 2.5 2.5 0 0 0-1.209.25 2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012ZM2.95 18.919a2.34 2.34 0 0 1-1.253-.315 2.5 2.5 0 0 1-.806-.762l-.161-.286a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.334 2.35 2.35 0 0 1-1.308.431Zm-2.7-2.487a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.058-1.157 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.606-.618 2.5 2.5 0 0 0-1.209.25A2.58 2.58 0 0 0 .5 15.423a2.5 2.5 0 0 0-.25 1.012ZM10.153 18.919a2.34 2.34 0 0 1-1.253-.315 2.5 2.5 0 0 1-.806-.762l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431Zm-2.7-2.487a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.071-1.158 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.615-.617 2.5 2.5 0 0 0-1.209.25 2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012ZM17.359 18.919a2.34 2.34 0 0 1-1.256-.315 2.5 2.5 0 0 1-.806-.762l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431Zm-2.7-2.487a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.058-1.157 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.612-.617 2.5 2.5 0 0 0-1.209.25 2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012Z"})],-1)]))}const xn={render:oi},ai={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 19"};function ui(k,p){return s.openBlock(),s.createElementBlock("svg",ai,p[0]||(p[0]=[s.createElementVNode("g",{fill:"currentColor","fill-rule":"evenodd",stroke:"currentColor","stroke-width":".5"},[s.createElementVNode("path",{d:"M2.95 5.257a2.34 2.34 0 0 1-1.258-.317 2.5 2.5 0 0 1-.806-.76L.73 3.894a2.4 2.4 0 0 1-.006-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .44-.413 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.099 1.92 2.35 2.35 0 0 1-.31 1.269 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.39.337 2.35 2.35 0 0 1-1.308.431ZM.25 2.77A2.5 2.5 0 0 0 .5 4.004c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.065-1.158 2.65 2.65 0 0 0-.367-2.822L4.668.94c-.041-.029-.05-.046-.085-.073A2.64 2.64 0 0 0 2.97.25 2.5 2.5 0 0 0 1.761.5 2.58 2.58 0 0 0 .5 1.761a2.5 2.5 0 0 0-.25 1.012ZM10.153 5.257a2.34 2.34 0 0 1-1.254-.317 2.5 2.5 0 0 1-.806-.762l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337A2.4 2.4 0 0 1 8.71.94a2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.102.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431ZM7.457 2.77a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.067-1.158 2.65 2.65 0 0 0-.369-2.822L11.877.94c-.041-.03-.049-.047-.085-.074A2.64 2.64 0 0 0 10.177.25 2.5 2.5 0 0 0 8.968.5a2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012ZM17.359 5.257a2.34 2.34 0 0 1-1.256-.317 2.5 2.5 0 0 1-.8-.76l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .435-.414 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431ZM14.663 2.77a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.058-1.157 2.65 2.65 0 0 0-.36-2.823L19.081.94c-.041-.03-.049-.047-.085-.074A2.64 2.64 0 0 0 17.383.25a2.5 2.5 0 0 0-1.209.25 2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012ZM2.95 12.088a2.34 2.34 0 0 1-1.253-.315 2.5 2.5 0 0 1-.806-.762l-.161-.286a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431ZM.25 9.601a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.058-1.157 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.606-.618 2.5 2.5 0 0 0-1.209.25A2.58 2.58 0 0 0 .5 8.592a2.5 2.5 0 0 0-.25 1.012ZM10.153 12.088a2.34 2.34 0 0 1-1.253-.315 2.5 2.5 0 0 1-.806-.762l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431Zm-2.7-2.487a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.071-1.158 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.615-.617 2.5 2.5 0 0 0-1.209.25 2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012ZM17.359 12.088a2.34 2.34 0 0 1-1.256-.315 2.5 2.5 0 0 1-.806-.762l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431Zm-2.7-2.487a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.058-1.157 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.612-.617 2.5 2.5 0 0 0-1.209.25 2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012ZM2.95 18.919a2.34 2.34 0 0 1-1.253-.315 2.5 2.5 0 0 1-.806-.762l-.161-.286a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.334 2.35 2.35 0 0 1-1.308.431Zm-2.7-2.487a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.058-1.157 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.606-.618 2.5 2.5 0 0 0-1.209.25A2.58 2.58 0 0 0 .5 15.423a2.5 2.5 0 0 0-.25 1.012ZM10.153 18.919a2.34 2.34 0 0 1-1.253-.315 2.5 2.5 0 0 1-.806-.762l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431Zm-2.7-2.487a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.071-1.158 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.615-.617 2.5 2.5 0 0 0-1.209.25 2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012ZM17.359 18.919a2.34 2.34 0 0 1-1.256-.315 2.5 2.5 0 0 1-.806-.762l-.156-.285a2.4 2.4 0 0 1-.005-2.018 2 2 0 0 1 .1-.186 2 2 0 0 1 .239-.337 2.4 2.4 0 0 1 .444-.411 2 2 0 0 1 .173-.11c.066-.038.123-.066.192-.1a2.4 2.4 0 0 1 2.2.09l.093.055a2.39 2.39 0 0 1 1.094 1.92 2.35 2.35 0 0 1-.313 1.27 2.3 2.3 0 0 1-.244.346c-.027.033-.038.049-.066.08a2.7 2.7 0 0 1-.387.337 2.35 2.35 0 0 1-1.308.431Zm-2.7-2.487a2.5 2.5 0 0 0 .25 1.234c.036.071.063.134.1.2l.192.285a2.6 2.6 0 0 0 .965.776 2.64 2.64 0 0 0 2.246 0c.071-.036.134-.063.2-.1a2.6 2.6 0 0 0 1.058-1.157 2.65 2.65 0 0 0-.367-2.822l-.233-.244c-.041-.03-.049-.047-.085-.074a2.64 2.64 0 0 0-1.612-.617 2.5 2.5 0 0 0-1.209.25 2.58 2.58 0 0 0-1.261 1.261 2.5 2.5 0 0 0-.25 1.012Z"})],-1),s.createElementVNode("path",{stroke:"currentColor","stroke-linecap":"round","stroke-width":".5",d:"m0 0 19 19"},null,-1)]))}const Kn={render:ui},qi={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 30 30"};function ci(k,p){return s.openBlock(),s.createElementBlock("svg",qi,p[0]||(p[0]=[s.createElementVNode("g",{fill:"none",stroke:"currentColor","stroke-width":".5"},[s.createElementVNode("rect",{width:"30",height:"30",stroke:"none",rx:"15"}),s.createElementVNode("rect",{width:"29.5",height:"29.5",x:".25",y:".25",rx:"14.75"})],-1),s.createElementVNode("path",{fill:"currentColor","fill-rule":"evenodd",d:"M15.947 17.13c.36 0 2.115-.74 2.263-.7a12 12 0 0 1 .931.91l2.475 2.39-.783.846a3.27 3.27 0 0 1-2.073 1.227 2.78 2.78 0 0 1-2.411-.825l-7.466-7.465A3.04 3.04 0 0 1 7.8 11.144c0-1.713 1.611-2.517 2.056-3.194l3.32 3.427-.613 1.861c-.212.635-.106.55.825 1.459l1.248 1.249.931.931c.106.106.19.254.381.254ZM7 11.144a3.68 3.68 0 0 0 1.036 2.665c.338.4 3.49 3.49 3.892 3.892l3.512 3.511.338.338c.085.085.127.085.19.169a3.68 3.68 0 0 0 4.971-.148l1.311-1.311c.55-.55.465-.571-.085-1.121l-3.214-3.109c-.635-.635-.381-.55-1.734-.106a8 8 0 0 1-1.121.36l-2.772-2.75c.085-.338.254-.74.36-1.1.465-1.4.7-1.015-.592-2.306a3 3 0 0 1-.254-.229 4 4 0 0 0-.254-.3l-1.565-1.607c-1.333-1.332-.74-1.523-2.961.677a4 4 0 0 0-.4.465A3.6 3.6 0 0 0 7 11.144"},null,-1)]))}const Vi={render:ci},fi={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 22 22"};function hi(k,p){return s.openBlock(),s.createElementBlock("svg",fi,p[0]||(p[0]=[s.createElementVNode("g",{fill:"none",stroke:"currentColor","stroke-width":".5"},[s.createElementVNode("rect",{width:"22",height:"22",stroke:"none",rx:"11"}),s.createElementVNode("rect",{width:"21.5",height:"21.5",x:".25",y:".25",rx:"10.75"})],-1),s.createElementVNode("path",{fill:"currentColor","fill-rule":"evenodd",d:"M9.467 11.058c-.191.191-.73 1.515-.832 1.573a9 9 0 0 1-.977.012l-2.58.046-.035-.864a2.45 2.45 0 0 1 .45-1.75 2.09 2.09 0 0 1 1.716-.842h7.92a2.28 2.28 0 0 1 1.835.679c.909.909.483 2.188.61 2.785l-3.586-.056-.665-1.316c-.224-.449-.236-.348-1.212-.336H9.798c-.112 0-.236-.033-.337.068Zm7.922-1.57a2.76 2.76 0 0 0-1.965-.864c-.391-.033-3.702 0-4.13 0H7.21c-.089 0-.115.026-.19.01a2.76 2.76 0 0 0-2.56 2.716v1.392c0 .584.056.55.64.55l3.355-.057c.673 0 .495.09.974-.867a6 6 0 0 1 .404-.786l2.933-.006c.135.225.258.527.392.775.494.987.169.909 1.538.909a2 2 0 0 1 .258-.01 3 3 0 0 0 .291.022l1.682.02c1.414 0 1.2.415 1.212-1.931a3 3 0 0 0-.034-.46 2.7 2.7 0 0 0-.717-1.413Z"},null,-1)]))}const Fn={render:hi},gi={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 22 22"};function di(k,p){return s.openBlock(),s.createElementBlock("svg",gi,p[0]||(p[0]=[s.createStaticVNode('<g fill="none" stroke="currentColor" stroke-width=".5"><rect width="22" height="22" stroke="none" rx="11"></rect><rect width="21.5" height="21.5" x=".25" y=".25" rx="10.75"></rect></g><g fill="currentColor" fill-rule="evenodd"><path d="M8.48 11.498V7.93a2.607 2.607 0 0 1 4.135-2.26 2.67 2.67 0 0 1 1.062 2.26v3.568a2.6 2.6 0 0 1-1.446 2.488 2.54 2.54 0 0 1-2.282.023 2.25 2.25 0 0 1-.768-.587 2.58 2.58 0 0 1-.701-1.924m-.678-3.635v3.705a3.35 3.35 0 0 0 .9 2.35 3 3 0 0 0 .407.362 3.22 3.22 0 0 0 3.413.318 3.34 3.34 0 0 0 1.833-3.03V7.863a3.35 3.35 0 0 0-.9-2.35 3.278 3.278 0 0 0-5.653 2.35"></path><path d="M10.717 16.245v1.2c0 .158.226.09.61.09.068 0 .09-.023.09-.09v-1.2a4.54 4.54 0 0 0 3.141-1.6 4.74 4.74 0 0 0 1.062-2.489c.045-.61.181-.5-.633-.5a3.86 3.86 0 0 1-1.13 2.734 3.82 3.82 0 0 1-2.847 1.178 3.8 3.8 0 0 1-1.582-.362 3.97 3.97 0 0 1-1.92-1.966 3.4 3.4 0 0 1-.312-1.356c0-.113-.023-.113-.023-.226-.859 0-.655-.068-.633.407a2 2 0 0 0 .068.52 4.66 4.66 0 0 0 2.369 3.163 4.6 4.6 0 0 0 1.74.5Z"></path></g>',2)]))}const Rt={render:di},Ci={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 22 22"};function Ii(k,p){return s.openBlock(),s.createElementBlock("svg",Ci,p[0]||(p[0]=[s.createStaticVNode('<g fill="none" stroke="currentColor" stroke-width=".5"><rect width="22" height="22" stroke="none" rx="11"></rect><rect width="21.5" height="21.5" x=".25" y=".25" rx="10.75"></rect></g><g fill="currentColor" fill-rule="evenodd"><path d="M8.48 11.498V7.93a2.607 2.607 0 0 1 4.135-2.26 2.67 2.67 0 0 1 1.062 2.26v3.568a2.6 2.6 0 0 1-1.446 2.488 2.54 2.54 0 0 1-2.282.023 2.25 2.25 0 0 1-.768-.587 2.58 2.58 0 0 1-.701-1.924m-.678-3.635v3.705a3.35 3.35 0 0 0 .9 2.35 3 3 0 0 0 .407.362 3.22 3.22 0 0 0 3.413.318 3.34 3.34 0 0 0 1.833-3.03V7.863a3.35 3.35 0 0 0-.9-2.35 3.278 3.278 0 0 0-5.653 2.35"></path><path d="M10.717 16.245v1.2c0 .158.226.09.61.09.068 0 .09-.023.09-.09v-1.2a4.54 4.54 0 0 0 3.141-1.6 4.74 4.74 0 0 0 1.062-2.489c.045-.61.181-.5-.633-.5a3.86 3.86 0 0 1-1.13 2.734 3.82 3.82 0 0 1-2.847 1.178 3.8 3.8 0 0 1-1.582-.362 3.97 3.97 0 0 1-1.92-1.966 3.4 3.4 0 0 1-.312-1.356c0-.113-.023-.113-.023-.226-.859 0-.655-.068-.633.407a2 2 0 0 0 .068.52 4.66 4.66 0 0 0 2.369 3.163 4.6 4.6 0 0 0 1.74.5Z"></path></g><path stroke="currentColor" stroke-linecap="round" stroke-width=".5" d="m0 0 22 22"></path>',3)]))}const Ln={render:Ii},pi={xmlns:"http://www.w3.org/2000/svg","xml:space":"preserve",viewBox:"-6.4 -6.4 76.8 76.8"};function mi(k,p){return s.openBlock(),s.createElementBlock("svg",pi,p[0]||(p[0]=[s.createElementVNode("path",{fill:"none",stroke:"currentColor","stroke-miterlimit":"10","stroke-width":"2",d:"M55 44H19L9 32l10-12h36zm-28-5 14-14m-14 0 14 14"},null,-1)]))}const Ei={render:mi},Si={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 14.701 14.472"};function yi(k,p){return s.openBlock(),s.createElementBlock("svg",Si,p[0]||(p[0]=[s.createElementVNode("path",{fill:"currentColor",d:"M5.491 14.471a5.4 5.4 0 0 1-2.135-.43A5.46 5.46 0 0 1 .43 11.116 5.4 5.4 0 0 1 0 8.959a5.4 5.4 0 0 1 .43-2.136A5.5 5.5 0 0 1 1.6 5.072a5.7 5.7 0 0 1 1.755-1.186 5.38 5.38 0 0 1 4.013-.1 2 2 0 0 0-.287.292 2.06 2.06 0 0 0-.446 1.574 3 3 0 0 0 .042.271 3.1 3.1 0 0 0-1.164-.221 3.2 3.2 0 0 0-1.276.26 3.3 3.3 0 0 0-1.039.7 3.2 3.2 0 0 0-.938 2.297 3.3 3.3 0 0 0 .249 1.277 3.14 3.14 0 0 0 1.728 1.728 3.3 3.3 0 0 0 1.276.249A3.18 3.18 0 0 0 8.5 10.236a3.3 3.3 0 0 0 .248-1.277A3.2 3.2 0 0 0 8.5 7.694q-.032-.075-.067-.148a2.4 2.4 0 0 0 .543 0 2.06 2.06 0 0 0 1.449-.763l.065-.084.055.121a5.45 5.45 0 0 1 0 4.293 5.7 5.7 0 0 1-1.186 1.751 5.5 5.5 0 0 1-1.74 1.175 5.3 5.3 0 0 1-2.124.43Zm-.7-5.628a.842.842 0 1 1 .309.587.84.84 0 0 1-.312-.587Zm5.788-6.56a2.02 2.02 0 0 1 1.838-2.27 2.02 2.02 0 0 1 2.27 1.842 2.02 2.02 0 0 1-1.842 2.27 2.02 2.02 0 0 1-2.27-1.842ZM7.261 5.762a1.318 1.318 0 1 1 2.621-.273 1.317 1.317 0 1 1-2.62.273Z"},null,-1)]))}const Ti={render:yi},wi={xmlns:"http://www.w3.org/2000/svg",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",class:"lucide lucide-sparkles-icon lucide-sparkles",viewBox:"0 0 24 24"};function Mi(k,p){return s.openBlock(),s.createElementBlock("svg",wi,p[0]||(p[0]=[s.createElementVNode("path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4"},null,-1),s.createElementVNode("circle",{cx:"4",cy:"20",r:"2"},null,-1)]))}const Ri={render:Mi},ki={xmlns:"http://www.w3.org/2000/svg",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",viewBox:"0 0 24 24"};function vi(k,p){return s.openBlock(),s.createElementBlock("svg",ki,p[0]||(p[0]=[s.createElementVNode("circle",{cx:"12",cy:"12",r:"10"},null,-1),s.createElementVNode("path",{d:"M12 16v-4m0-4h.01"},null,-1)]))}const Ui={render:vi},Qi={xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 12.46 11.426"};function Bi(k,p){return s.openBlock(),s.createElementBlock("svg",Qi,p[0]||(p[0]=[s.createElementVNode("g",{"fill-rule":"evenodd"},[s.createElementVNode("path",{d:"M9.237 2.429c0 .248.653.676 1.05 1.714.178.466.069.659.711.656.3 0 .4-.019.582.115.319.238.238.642.238 1.129a.58.58 0 0 1-.221.449c-.17.137-.277.13-.569.128-.67 0-.57.111-.748.62-.36 1.033-1.043 1.512-1.043 1.72 0 .317.637.764.231 1.293a2.2 2.2 0 0 1-1.052.527c-.63 0-.567-.88-1.033-.88a5 5 0 0 1-2.023.048c-.819-.19-.545.437-.983.712s-.685.009-1.074-.2c-.944-.51-.08-1.144-.08-1.5 0-.123-.051-.151-.111-.223a5.3 5.3 0 0 1-.594-.774c-.048-.075-.074-.142-.116-.218a9 9 0 0 1-.398-.968c-.21-.324-.765-.005-1.125-.277-.318-.233-.236-.638-.236-1.126a.58.58 0 0 1 .219-.447c.171-.137.277-.13.57-.13.952.005.356-.243 1.207-1.524.551-.827.766-.6.4-1.237-.289-.5-.269-.778.25-1.089q.148-.092.307-.178c1.01-.548 1.016.75 1.418.75a3.5 3.5 0 0 0 .567-.1 5.5 5.5 0 0 1 1.862.1c.365 0 .32-.882 1.033-.882a1.8 1.8 0 0 1 .688.315c.935.5.072 1.19.072 1.476Zm-7.015-.88a1.14 1.14 0 0 0 .094.483 4 4 0 0 1 .178.368 8 8 0 0 0-.555.779 3.7 3.7 0 0 0-.416.951C.729 4.129.004 4.5.004 5.374c0 .6-.077 1.2.438 1.6a1.54 1.54 0 0 0 1.081.315 4.4 4.4 0 0 0 .668 1.336c.1.137.212.26.3.4a1.9 1.9 0 0 0-.272.849c0 .82.637 1.07 1.088 1.343a1.267 1.267 0 0 0 1.89-.617 6.3 6.3 0 0 0 1.636.055 3 3 0 0 1 .43-.055 1.4 1.4 0 0 0 .4.543c.757.56 1.307.19 1.987-.221a1.28 1.28 0 0 0 .286-1.9 4.7 4.7 0 0 0 1-1.731 1.52 1.52 0 0 0 1.068-.307c.541-.411.456-1.021.456-1.639a1.24 1.24 0 0 0-.456-.913 1.53 1.53 0 0 0-1.064-.3 4.4 4.4 0 0 0-.668-1.336c-.1-.135-.212-.259-.3-.394a3 3 0 0 1 .17-.346 1.246 1.246 0 0 0-.47-1.551A2.17 2.17 0 0 0 8.355 0a1.05 1.05 0 0 0-.678.264 1.34 1.34 0 0 0-.415.556A6.3 6.3 0 0 0 5.629.764a3 3 0 0 1-.432.056A1.28 1.28 0 0 0 4.104 0 2.1 2.1 0 0 0 2.81.5a1.25 1.25 0 0 0-.587 1.05Z"}),s.createElementVNode("path",{d:"M4.076 5.861a2.05 2.05 0 0 1 .63-1.678 1.9 1.9 0 0 1 .581-.421 2.173 2.173 0 0 1 2.9 2.9 2.19 2.19 0 0 1-1.8 1.206 2.14 2.14 0 0 1-1.1-.2 2.18 2.18 0 0 1-1.211-1.807m-.637-.334v.368a2.806 2.806 0 0 0 4.412 2.1 2.2 2.2 0 0 0 .36-.308 2.7 2.7 0 0 0 .812-1.8 2.64 2.64 0 0 0-.264-1.406A2.81 2.81 0 0 0 6.413 2.91a2.68 2.68 0 0 0-1.805.5 3 3 0 0 0-.656.651 2.64 2.64 0 0 0-.516 1.466Z"})],-1)]))}const bi={render:Bi},Yi={xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2.25",class:"lucide lucide-video-icon lucide-video",viewBox:"0 0 24 24"};function Di(k,p){return s.openBlock(),s.createElementBlock("svg",Yi,p[0]||(p[0]=[s.createElementVNode("path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5"},null,-1),s.createElementVNode("rect",{width:"14",height:"12",x:"2",y:"6",rx:"2"},null,-1)]))}const Oi={render:Di},Gi={xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2.25",class:"lucide lucide-video-off-icon lucide-video-off",viewBox:"0 0 24 24"};function Ji(k,p){return s.openBlock(),s.createElementBlock("svg",Gi,p[0]||(p[0]=[s.createElementVNode("path",{d:"M10.66 6H14a2 2 0 0 1 2 2v2.5l5.248-3.062A.5.5 0 0 1 22 7.87v8.196M16 16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2M2 2l20 20"},null,-1)]))}const xi={render:Ji},Ki=["aria-expanded","aria-activedescendant","tabindex"],Fi=["data-placeholder"],Li=["id","aria-selected","onClick","onMouseenter","data-active","data-selected"],Nn=te(s.defineComponent({name:"UiSelect",__name:"Select",props:{modelValue:{default:null},options:{default:()=>[]},optionLabel:{default:"label"},optionValue:{default:"value"},placeholder:{default:"Seleccione una opción"},size:{default:"medium"},invalid:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change","focus","blur"],setup(k,{emit:p}){const h=k,r=p,M=s.ref(!1),Q=s.ref(null),e=s.ref(null),S=s.ref(null),T=s.ref(-1),l=s.ref({}),q=`ui-select-listbox-${Math.random().toString(36).slice(2)}`,o=F=>`${q}-opt-${F}`,c=s.computed(()=>`ui-select--${h.size}`),f=s.computed(()=>h.invalid?"ui-select--invalid":""),W=s.computed(()=>h.disabled?"ui-select--disabled":""),x=s.computed(()=>M.value?"ui-select--open":""),D=s.computed(()=>{var U;return((U=h.options)==null?void 0:U.findIndex(L=>String(L[h.optionValue]??"")===String(h.modelValue??"")))??-1}),m=s.computed(()=>D.value>=0?h.options[D.value]:null),G=async()=>{h.disabled||(M.value=!0,T.value=Math.max(0,D.value),await s.nextTick(),P())},O=()=>{M.value&&(M.value=!1)},I=()=>M.value?O():G(),C=F=>{var g;const U=(g=h.options)==null?void 0:g[F];if(!U)return;const L=U[h.optionValue]??null;r("update:modelValue",L),r("change",L),O()},B=F=>{var L;if(h.disabled)return;if(!M.value&&(F.key==="Enter"||F.key===" "||F.key==="ArrowDown")){F.preventDefault(),G();return}if(!M.value)return;if(F.key==="Escape"){F.preventDefault(),O();return}const U=(((L=h.options)==null?void 0:L.length)??1)-1;if(F.key==="ArrowDown"){F.preventDefault(),T.value=Math.min((T.value??-1)+1,U);return}if(F.key==="ArrowUp"){F.preventDefault(),T.value=Math.max((T.value??0)-1,0);return}if(F.key==="Home"){F.preventDefault(),T.value=0;return}if(F.key==="End"){F.preventDefault(),T.value=U;return}(F.key==="Enter"||F.key===" ")&&(F.preventDefault(),C(T.value))},Y=F=>r("focus",F),w=F=>r("blur",F),v=F=>{if(!Q.value)return;const U=F.target;S.value&&S.value.contains(U)||Q.value.contains(U)||O()};s.onMounted(()=>{document.addEventListener("click",v),window.addEventListener("resize",P),window.addEventListener("scroll",P,{passive:!0})}),s.onBeforeUnmount(()=>{document.removeEventListener("click",v),window.removeEventListener("resize",P),window.removeEventListener("scroll",P)}),s.watch(M,F=>{F&&P()});const P=()=>{if(!e.value||!M.value)return;const F=e.value.getBoundingClientRect();l.value={position:"fixed",top:`${F.bottom}px`,left:`${F.left}px`,width:`${F.width}px`,zIndex:1e4}};return(F,U)=>(s.openBlock(),s.createElementBlock("div",s.mergeProps({ref_key:"rootRef",ref:Q},F.$attrs,{class:["ui-select",[c.value,f.value,W.value,x.value]]}),[s.createElementVNode("div",{ref_key:"triggerRef",ref:e,class:"ui-select__trigger",role:"combobox","aria-haspopup":"listbox","aria-expanded":M.value,"aria-controls":q,"aria-activedescendant":M.value&&T.value>=0?o(T.value):void 0,tabindex:h.disabled?-1:0,onClick:I,onKeydown:B,onFocus:Y,onBlur:w},[s.createElementVNode("div",{class:"ui-select__value","data-placeholder":!m.value},[m.value?s.renderSlot(F.$slots,"value",{key:0,value:m.value},()=>[s.createTextVNode(s.toDisplayString(m.value[h.optionLabel]),1)],!0):(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[s.createTextVNode(s.toDisplayString(h.placeholder),1)],64))],8,Fi),U[0]||(U[0]=s.createElementVNode("span",{class:"ui-select__icon","aria-hidden":"true"},"▾",-1))],40,Ki),s.createVNode(s.Transition,{name:"ui-select-fade",appear:""},{default:s.withCtx(()=>[M.value?(s.openBlock(),s.createBlock(s.Teleport,{key:0,to:"body"},[s.createElementVNode("ul",{ref_key:"dropdownRef",ref:S,id:q,class:"ui-select__dropdown",role:"listbox",style:s.normalizeStyle(l.value)},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(h.options,(L,g)=>(s.openBlock(),s.createElementBlock("li",{key:String(L[h.optionValue])??g,class:"ui-select__option",role:"option",id:o(g),"aria-selected":String(L[h.optionValue])===String(h.modelValue),onClick:d=>C(g),onMouseenter:d=>T.value=g,"data-active":T.value===g,"data-selected":String(L[h.optionValue])===String(h.modelValue)},[s.renderSlot(F.$slots,"option",{option:L},()=>[s.createTextVNode(s.toDisplayString(L[h.optionLabel]),1)],!0)],40,Li))),128))],4)])):s.createCommentVNode("",!0)]),_:3})],16))}}),[["__scopeId","data-v-466603ac"]]),Ni=["min","max","step","disabled","value"],Zn=te(s.defineComponent({name:"UiSlider",__name:"Slider",props:{modelValue:{default:0},min:{default:0},max:{default:100},step:{default:1},size:{default:"medium"},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change","input"],setup(k,{emit:p}){const h=k,r=p,M=s.computed(()=>Array.isArray(h.modelValue)?Number(h.modelValue[0]??h.min):Number(h.modelValue??h.min)),Q=s.computed(()=>`ui-slider--${h.size}`),e=s.computed(()=>h.disabled?"ui-slider--disabled":""),S=l=>{const q=l.target,o=Number(q.value);r("update:modelValue",o),r("input",o)},T=l=>{const q=l.target,o=Number(q.value);r("change",o)};return(l,q)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["ui-slider",[Q.value,e.value]])},[s.createElementVNode("input",s.mergeProps({class:"ui-slider__control"},l.$attrs,{type:"range",min:h.min,max:h.max,step:h.step,disabled:h.disabled,value:M.value,style:{"--min":String(h.min),"--max":String(h.max),"--val":String(M.value)},onInput:S,onChange:T}),null,16,Ni)],2))}}),[["__scopeId","data-v-b2990b36"]]),Zi={class:"webphone-settings"},Wi={class:"webphone-settings__content"},ji={class:"webphone-settings__group"},Hi={class:"webphone-settings__group"},Pi={class:"webphone-settings__group"},zi={class:"webphone-settings__group"},Xi={class:"webphone-settings__group webphone-settings__switch-group"},_i={class:"webphone-settings__switch-container"},$i=["checked"],As={class:"webphone-settings__group"},es={class:"webphone-settings__group"},ts={class:"webphone-settings__group"},ns={class:"webphone-settings__version"},rs={class:"webphone-settings__version-text"},ls=te(s.defineComponent({__name:"WebphoneSettings",props:{visible:{type:Boolean,default:!1},callVolume:Number,notificationVolume:Number,selectedMicId:String,selectedSpeakerId:String,microphones:{type:Array,default:()=>[]},speakers:{type:Array,default:()=>[]},maxChannels:{type:Number,default:3},activeChannelsCount:{type:Number,default:0},multiChannelEnabled:{type:Boolean,default:!0}},emits:["update:visible","update:callVolume","update:notificationVolume","update:selectedMicId","update:selectedSpeakerId","update:multiChannelEnabled"],setup(k,{emit:p}){const h=k,r=p,M="1.1.24",Q=s.computed(()=>{var c;return((c=h.microphones)==null?void 0:c.find(f=>f.deviceId===h.selectedMicId))||null}),e=s.computed(()=>{var c;return((c=h.speakers)==null?void 0:c.find(f=>f.deviceId===h.selectedSpeakerId))||null}),S=c=>{r("update:callVolume",Array.isArray(c)?c[0]:c)},T=c=>{r("update:notificationVolume",Array.isArray(c)?c[0]:c)},l=c=>{const f=c==null?"":String(c);r("update:selectedMicId",f)},q=c=>{const f=c==null?"":String(c);r("update:selectedSpeakerId",f)},o=c=>{r("update:multiChannelEnabled",c)};return(c,f)=>(s.openBlock(),s.createElementBlock("div",Zi,[s.createVNode(Gn,{visible:k.visible,header:"Configuración del Teléfono","onUpdate:visible":f[1]||(f[1]=W=>r("update:visible",W))},{default:s.withCtx(()=>{var W,x;return[s.createElementVNode("div",Wi,[s.createElementVNode("div",ji,[f[4]||(f[4]=s.createElementVNode("h3",{class:"webphone-settings__label"},"Audio",-1)),s.createElementVNode("div",Hi,[f[2]||(f[2]=s.createElementVNode("label",{class:"webphone-settings__label"},"Volumen de llamada",-1)),s.createVNode(Zn,{"model-value":k.callVolume,"onUpdate:modelValue":S,min:0,max:100,step:1},null,8,["model-value"]),s.createElementVNode("span",null,s.toDisplayString(k.callVolume)+"%",1)]),s.createElementVNode("div",Pi,[f[3]||(f[3]=s.createElementVNode("label",{class:"webphone-settings__label"},"Volumen de notificaciones",-1)),s.createVNode(Zn,{"model-value":k.notificationVolume,"onUpdate:modelValue":T,min:0,max:100,step:1},null,8,["model-value"]),s.createElementVNode("span",null,s.toDisplayString(k.notificationVolume)+"%",1)])]),s.createElementVNode("div",zi,[f[7]||(f[7]=s.createElementVNode("h3",{class:"webphone-settings__label"},"Funcionalidades",-1)),s.createElementVNode("div",Xi,[f[6]||(f[6]=s.createElementVNode("div",{class:"webphone-settings__switch-info"},[s.createElementVNode("label",{class:"webphone-settings__label"},"Múltiples canales"),s.createElementVNode("span",{class:"webphone-settings__description"},"Permite manejar varias llamadas simultáneamente")],-1)),s.createElementVNode("div",_i,[s.createElementVNode("input",{type:"checkbox",checked:k.multiChannelEnabled,onChange:f[0]||(f[0]=D=>o(D.target.checked)),class:"webphone-settings__switch",id:"multiChannelSwitch"},null,40,$i),f[5]||(f[5]=s.createElementVNode("label",{for:"multiChannelSwitch",class:"webphone-settings__switch-label"},[s.createElementVNode("span",{class:"webphone-settings__switch-slider"})],-1))])])]),s.createElementVNode("div",As,[f[10]||(f[10]=s.createElementVNode("h3",{class:"webphone-settings__label"},"Dispositivos",-1)),s.createElementVNode("div",es,[f[8]||(f[8]=s.createElementVNode("label",{class:"webphone-settings__label"},"Micrófono",-1)),s.createVNode(Nn,{"model-value":(W=Q.value)==null?void 0:W.deviceId,"onUpdate:modelValue":l,options:k.microphones,placeholder:"Seleccionar micrófono","option-label":"label","option-value":"deviceId",class:"webphone-settings__select"},null,8,["model-value","options"])]),s.createElementVNode("div",ts,[f[9]||(f[9]=s.createElementVNode("label",{class:"webphone-settings__label"},"Altavoz",-1)),s.createVNode(Nn,{"model-value":(x=e.value)==null?void 0:x.deviceId,"onUpdate:modelValue":q,options:k.speakers,placeholder:"Seleccionar altavoz","option-label":"label","option-value":"deviceId",class:"webphone-settings__select"},null,8,["model-value","options"])])]),s.createElementVNode("div",ns,[s.createElementVNode("p",rs,"Versión: "+s.toDisplayString(s.unref(M)),1)])])]}),_:1},8,["visible"])]))}}),[["__scopeId","data-v-b3baf713"]]),is={class:"channel-tabs"},ss={class:"channel-tabs-header"},os=["onClick"],as={class:"channel-label"},us={class:"channel-content"},qs=te(s.defineComponent({__name:"ChannelTabs",props:{channels:{type:Array,required:!0},activeChannelId:{type:Number,required:!0},isRegistered:{type:Boolean,default:!1}},emits:["switchChannel"],setup(k,{emit:p}){const h=p,r=M=>{h("switchChannel",M)};return(M,Q)=>(s.openBlock(),s.createElementBlock("div",is,[s.createElementVNode("div",ss,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(k.channels,e=>(s.openBlock(),s.createElementBlock("button",{key:e.id,class:s.normalizeClass(["channel-tab",{"channel-tab--active":k.activeChannelId===e.id,"channel-tab--in-use":e.session!==null,"channel-tab--on-hold":e.isOnHold,"channel-tab--available":!e.session&&k.isRegistered}]),onClick:S=>r(e.id)},[s.createElementVNode("div",{class:s.normalizeClass(["channel-indicator",{"indicator--in-call":e.session&&!e.isOnHold,"indicator--on-hold":e.isOnHold,"indicator--available":!e.session&&k.isRegistered,"indicator--unavailable":!k.isRegistered}])},null,2),s.createElementVNode("span",as,"CH"+s.toDisplayString(e.id+1),1)],10,os))),128))]),s.createElementVNode("div",us,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(k.channels,e=>s.withDirectives((s.openBlock(),s.createElementBlock("div",{key:`content-${e.id}`,class:"channel-panel"},[s.renderSlot(M.$slots,"channel-content",{channel:e,isActive:k.activeChannelId===e.id},void 0,!0)])),[[s.vShow,k.activeChannelId===e.id]])),128))])]))}}),[["__scopeId","data-v-5495654d"]]),cs={class:"video-call-overlay__remote-container"},Vs={class:"video-call-overlay__controls"},fs=["title"],hs={key:0,class:"video-call-overlay__local-container"},gs={key:1,class:"video-call-overlay__info"},ds=te(s.defineComponent({__name:"VideoCallOverlay",props:{isVisible:{type:Boolean},remoteStream:{},localStream:{},callInfo:{}},emits:["close"],setup(k){const p=k,h=s.ref(),r=s.ref(),M=s.ref(),Q=s.ref(!1),{x:e,y:S}=he.useDraggable(h,{initialValue:{x:100,y:100}}),T=()=>{Q.value=!Q.value};return s.watch(()=>p.remoteStream,l=>{l&&r.value&&(r.value.srcObject=l)},{immediate:!0}),s.watch(()=>p.localStream,l=>{l&&M.value&&(M.value.srcObject=l)},{immediate:!0}),s.watch(()=>p.isVisible,l=>{l||s.nextTick(()=>{r.value&&(r.value.srcObject=null),M.value&&(M.value.srcObject=null)})}),(l,q)=>l.isVisible?(s.openBlock(),s.createElementBlock("div",{key:0,ref_key:"overlayRef",ref:h,class:"video-call-overlay",style:s.normalizeStyle({left:s.unref(e)+"px",top:s.unref(S)+"px"})},[s.createElementVNode("div",cs,[s.createElementVNode("video",{ref_key:"remoteVideoRef",ref:r,autoplay:"",playsinline:"",class:s.normalizeClass(["video-call-overlay__remote-video",{"video-call-overlay__remote-video--minimized":Q.value}])},null,2),s.createElementVNode("div",Vs,[s.createElementVNode("button",{class:"video-call-overlay__control-btn",onClick:T,title:Q.value?"Maximizar":"Minimizar"},s.toDisplayString(Q.value?"□":"−"),9,fs),s.createElementVNode("button",{class:"video-call-overlay__control-btn video-call-overlay__control-btn--close",onClick:q[0]||(q[0]=o=>l.$emit("close")),title:"Cerrar video"}," × ")])]),Q.value?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",hs,[s.createElementVNode("video",{ref_key:"localVideoRef",ref:M,autoplay:"",muted:"",playsinline:"",class:"video-call-overlay__local-video"},null,512)])),!Q.value&&l.callInfo?(s.openBlock(),s.createElementBlock("div",gs,s.toDisplayString(l.callInfo),1)):s.createCommentVNode("",!0)],4)):s.createCommentVNode("",!0)}}),[["__scopeId","data-v-a47d404d"]]);function ve(k){const p=k.modifiers;if(p.top)return"top";if(p.right)return"right";if(p.bottom)return"bottom";if(p.left)return"left";const h=k.value;return typeof h=="object"&&(h!=null&&h.placement)?h.placement:"top"}function Wn(k){const p=k.value;return typeof p=="string"?p:(p==null?void 0:p.value)??""}function jn(k){const p=k.value,h=typeof p=="object"&&(p==null?void 0:p.showDelay)!=null?p.showDelay:200,r=typeof p=="object"&&(p==null?void 0:p.hideDelay)!=null?p.hideDelay:100;return{showDelay:h,hideDelay:r}}function Cs(k){if(k.__tipEl__)return k.__tipEl__;const p=document.createElement("div");return p.className="ui-tooltip",p.style.position="fixed",p.style.zIndex="10000",p.style.pointerEvents="none",p.style.padding="0.25rem 0.5rem",p.style.borderRadius="6px",p.style.fontSize="0.75rem",p.style.lineHeight="1rem",p.style.background="color-mix(in srgb, var(--foreground-color) 8%, var(--background-color))",p.style.color="var(--foreground-color)",p.style.border="1px solid color-mix(in srgb, var(--foreground-color) 16%, var(--background-color))",p.style.boxShadow="var(--shadow-md)",p.style.opacity="0",p.style.transition="opacity 120ms ease",document.body.appendChild(p),k.__tipEl__=p,p}function Ue(k,p,h){const r=k.getBoundingClientRect(),M=p.getBoundingClientRect(),Q=8;let e=0,S=0;switch(h){case"bottom":e=r.bottom+Q,S=r.left+(r.width-M.width)/2;break;case"left":e=r.top+(r.height-M.height)/2,S=r.left-M.width-Q;break;case"right":e=r.top+(r.height-M.height)/2,S=r.right+Q;break;case"top":default:e=r.top-M.height-Q,S=r.left+(r.width-M.width)/2;break}p.style.top=`${Math.max(0,e)}px`,p.style.left=`${Math.max(0,S)}px`}function Is(k,p){const h=Wn(p);if(!h)return;const r=Cs(k),{showDelay:M}=jn(p),Q=ve(p);k.__placement__=Q,clearTimeout(k.__hideTimer__),k.__showTimer__=window.setTimeout(()=>{r.textContent=h,r.style.opacity="0",r.style.display="block",requestAnimationFrame(()=>{Ue(k,r,Q),r.style.opacity="1"})},M)}function ps(k,p){const h=k.__tipEl__;if(!h)return;const{hideDelay:r}=jn(p);clearTimeout(k.__showTimer__),k.__hideTimer__=window.setTimeout(()=>{h.style.opacity="0",setTimeout(()=>h.style.display="none",120)},r)}const ms={mounted(k,p){const h=k,r=()=>Is(h,p),M=()=>ps(h,p);h.addEventListener("mouseenter",r),h.addEventListener("mouseleave",M),h.__onEnter__=r,h.__onLeave__=M,window.addEventListener("scroll",()=>{h.__tipEl__&&h.__tipEl__.style.display==="block"&&Ue(h,h.__tipEl__,h.__placement__||ve(p))},{passive:!0}),window.addEventListener("resize",()=>{h.__tipEl__&&h.__tipEl__.style.display==="block"&&Ue(h,h.__tipEl__,h.__placement__||ve(p))})},updated(k,p){const h=k;h.__tipEl__&&h.__tipEl__.style.display==="block"&&(h.__tipEl__.textContent=Wn(p),Ue(h,h.__tipEl__,ve(p)))},unmounted(k){var h,r;const p=k;p.__tipEl__&&(p.__tipEl__.remove(),p.__tipEl__=void 0),(h=p.removeEventListener)==null||h.call(p,"mouseenter",p.__onEnter__),(r=p.removeEventListener)==null||r.call(p,"mouseleave",p.__onLeave__)}},Es={class:"webphone-container"},Ss={class:"webphone__header"},ys={class:"webphone__viewer"},Ts={key:0,class:"webphone__webcall-header"},ws={class:"webphone__webcall-title"},Ms={key:1,class:"webphone__logo-container"},Rs=["src"],ks={key:2,class:"webphone__title"},vs={key:3,class:"webphone__extension"},Us={class:"webphone__call-duration-container"},Qs={class:"webphone__transcript__toolbar"},Bs={key:0},bs={key:1,style:{"margin-left":"auto"}},Ys={class:"webphone__transcript__toolbar webphone__transcript__toolbar--actions"},Ds={class:"webphone__transcript__bubble"},Os={key:1},Gs={key:4,class:"webphone__permission-denied"},Js={key:1,class:"webphone__input-container"},xs={key:2,class:"webphone__numpad"},Ks={class:"webphone__controls"},Fs={class:"webphone__control-wrapper"},Ls={class:"webphone__control-wrapper"},Ns={class:"webphone__control-wrapper"},Zs={key:3,class:"webphone__powered-by",href:"https://www.nebula123.com",target:"_blank"},Ws=te(s.defineComponent({__name:"WebPhone",props:{extension:{},password:{},domain:{},mode:{default:"webcall"},image:{},to:{},callback:{},multiChannel:{type:Boolean},transcriptionTokenUrl:{},transcriptionTokenApiKey:{}},setup(k){const p=ms,h=k,r=s.ref(!1),M=s.ref(!1),Q=s.ref(localStorage.getItem("multiChannelEnabled")!==null?localStorage.getItem("multiChannelEnabled")==="true":h.multiChannel??!0),e=s.computed(()=>h.mode==="webcall"),S=s.computed(()=>h.mode==="video"),T=s.ref(null),l=s.ref(null),q=s.ref(null),o=s.ref(null),c=s.ref(null),f=(h.domain??"").trim(),W=f.startsWith("http")?f:`https://${f}`;let x=null;try{x=new URL(W)}catch{x=null}const D=(x==null?void 0:x.hostname)||f.replace(/^https?:\/\//,"").split("/")[0],m=(x==null?void 0:x.port)||"",G=m?`${D}:${m}`:D,I=W.startsWith("https://")?"wss":W.startsWith("http://")?"ws":"wss",C=G.includes(":")?G:`${G}:8089`,B=`${I}://${C}/asterisk/ws`,Y=G,w=`sip:${h.extension}@${Y}`,{phoneNumber:v,isIncomingCall:P,isOutgoingCall:F,activeCall:U,makeCall:L,answerCall:g,endCall:d,canHangup:b,toggleMute:R,canMute:j,callVolume:H,notificationVolume:J,selectedMicId:u,selectedSpeakerId:E,microphones:K,speakers:Z,changeMicrophone:X,changeSpeaker:z,isMuted:$,formattedCallDuration:eA,statusMessage:nA,microphonePermission:lA,isRequestingPermission:rA,requestMicrophonePermission:hA,setVolume:IA,sendDTMF:EA,isSIPActive:sA,isRinging:qA,transcriptList:cA,showTranscription:gA,callStartedAt:pA,toggleTranscription:yA,downloadTranscript:mA,isTranscribing:FA,lastSipError:wA,callerId:WA,channels:jA,activeChannelId:SA,switchToChannel:LA}=Fl({wsServers:B,sipUri:w,sipPassword:h.password,displayName:"Anw",domain:Y,debug:!0,playerRef:T,ringerRef:l,backRingerRef:q,viewerRef:o,selfViewerRef:c,transcriptionTokenUrl:h.transcriptionTokenUrl,transcriptionTokenApiKey:h.transcriptionTokenApiKey}),{isCameraOn:JA,isRequestingCamera:ae,localStream:ne,canToggleCamera:XA,toggleCamera:re,stopCamera:_A}=Ll(),iA=s.ref(null),YA=s.computed(()=>e.value?h.to:v.value),le=aA=>{const CA=["Backspace","ArrowLeft","ArrowRight","Tab","Delete"],PA=/[0-9*#]/;!CA.includes(aA.key)&&!PA.test(aA.key)&&aA.preventDefault(),aA.key==="Enter"&&v.value.trim().length>0&&L(v.value,S.value)},HA=()=>{r.value=!r.value},ue=aA=>{const CA=Array.isArray(aA)?aA[0]:aA;IA("call",CA)},qe=aA=>{const CA=Array.isArray(aA)?aA[0]:aA;IA("notification",CA)},oA=aA=>{Q.value=aA,localStorage.setItem("multiChannelEnabled",String(aA))},VA=["1","2","3","4","5","6","7","8","9","*","0","#"],TA=aA=>{U.value?EA==null||EA(aA):v.value=`${v.value}${aA}`},RA=s.computed(()=>U.value?"status-active":qA.value?"status-ringing":P.value?"status-incoming":sA.value?"status-active":"status-inactive"),dA=()=>{v.value.length>0&&(v.value=v.value.slice(0,-1))};s.watch(()=>U.value,aA=>{!aA&&e.value&&(r.value=!1)}),s.watchEffect(()=>{setTimeout(()=>{sA.value&&e.value&&h.to&&L(h.to,S.value)},2e3)});const DA=s.ref(null);s.watch(()=>cA.value.length,()=>{requestAnimationFrame(()=>{const aA=DA.value;aA&&(aA.scrollTop=aA.scrollHeight)})}),s.watch(ne,aA=>{aA&&c.value&&(c.value.srcObject=aA)}),s.watch(()=>{var aA;return(aA=o.value)==null?void 0:aA.srcObject},aA=>{iA.value=aA}),s.watch([U,S],([aA,CA],[PA])=>{aA&&CA&&!JA.value?NA():!aA&&PA&&JA.value&&_A()},{immediate:!0}),s.onMounted(()=>{S.value&&setTimeout(async()=>{try{await re()}catch(aA){console.error("Error requesting camera on mount:",aA)}},500)});const vA=()=>{cA.value=[]},NA=async()=>{S.value&&!JA.value&&await re()},Qe=s.computed(()=>!!h.transcriptionTokenUrl),ge=s.computed(()=>!Q.value||!jA.value.length?null:jA.value[SA.value]||null),ce=s.computed(()=>{if(!Q.value)return nA.value;const aA=ge.value;return aA?sA.value?aA.callInfo&&aA.callInfo!==""?aA.session?aA.isOnHold?`En espera - ${aA.callNumber}`:aA.isActive?`En llamada con ${aA.callNumber}`:aA.direction==="incoming"&&!aA.isActive?`Llamada entrante de ${aA.callNumber}`:aA.direction==="outgoing"&&!aA.isActive?`Llamando a ${aA.callNumber}...`:aA.callInfo:aA.callInfo:`Canal ${SA.value+1} - Disponible`:"Desconectado":"Canal no disponible"});return(aA,CA)=>{var PA;return s.openBlock(),s.createElementBlock(s.Fragment,null,[s.createElementVNode("div",Es,[s.createElementVNode("audio",{ref_key:"playerRef",ref:T,controls:"",class:"webphone__media--hidden"},null,512),s.createElementVNode("audio",{ref_key:"ringerRef",ref:l,controls:"",class:"webphone__media--hidden"},null,512),s.createElementVNode("audio",{ref_key:"backRingerRef",ref:q,controls:"",class:"webphone__media--hidden"},null,512),s.createElementVNode("div",Ss,[s.createElementVNode("video",{ref_key:"viewerRef",ref:o,autoplay:"",playsinline:"",class:"webphone__media--hidden"},null,512),s.createElementVNode("video",{ref_key:"selfViewerRef",ref:c,autoplay:"",muted:"",playsinline:"",class:"webphone__media--hidden"},null,512),s.createElementVNode("div",ys,[e.value?(s.openBlock(),s.createElementBlock("div",Ts,[s.createElementVNode("div",null,[s.renderSlot(aA.$slots,"back-button",{},void 0,!0)]),s.createElementVNode("div",ws,[s.createVNode(s.unref(ri),{class:"webphone__webcall-title-text"}),CA[7]||(CA[7]=s.createElementVNode("small",null,"WebCall - Llamada WEB",-1))])])):s.createCommentVNode("",!0),e.value&&aA.image?(s.openBlock(),s.createElementBlock("div",Ms,[s.createElementVNode("img",{class:"webphone__logo",src:aA.image,alt:"Company logo"},null,8,Rs)])):s.createCommentVNode("",!0),e.value?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",ks,CA[8]||(CA[8]=[s.createElementVNode("small",null,"Webphone",-1)]))),e.value?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",vs,[s.createVNode(s.unref(Jn),{class:s.normalizeClass(["webphone__extension-icon",RA.value])},null,8,["class"]),s.createElementVNode("span",{class:s.normalizeClass(["webphone__extension-number",RA.value])},s.toDisplayString(Q.value&&((PA=ge.value)!=null&&PA.callNumber)?ge.value.callNumber:aA.extension),3)])),s.createElementVNode("div",Us,[e.value&&s.unref(U)?(s.openBlock(),s.createBlock(s.unref(Jn),{key:0,class:s.normalizeClass(["webphone__call-duration-icon",RA.value])},null,8,["class"])):s.createCommentVNode("",!0),s.unref(U)?(s.openBlock(),s.createElementBlock("span",{key:1,class:s.normalizeClass(["webphone__call-duration",RA.value])},s.toDisplayString(s.unref(eA)),3)):s.createCommentVNode("",!0)]),s.createElementVNode("p",{class:s.normalizeClass(["webphone__status-message",RA.value])},[s.createTextVNode(s.toDisplayString(Q.value?ce.value:s.unref(nA))+" ",1),!s.unref(sA)&&s.unref(wA)?s.withDirectives((s.openBlock(),s.createBlock(GA,{key:0,size:"small",variant:"text",severity:"danger",rounded:"","aria-label":"Ver error de conexión",class:"webphone__status-tooltip-button"},{default:s.withCtx(()=>[s.createVNode(s.unref(Ui),{style:{width:"0.75rem",height:"0.75rem"}})]),_:1})),[[s.unref(p),{value:s.unref(wA),showDelay:200},void 0,{top:!0}]]):s.createCommentVNode("",!0)],2),s.createVNode(Gn,{visible:s.unref(gA),"onUpdate:visible":CA[0]||(CA[0]=xA=>gA.value=xA),modal:"",header:"Transcripción",style:{width:"400px"},"pt:header":"{ class: 'webphone__dialog-header' }","pt:content":"{ class: 'webphone__dialog-content' }"},{default:s.withCtx(()=>[s.createElementVNode("div",Qs,[s.unref(v)?(s.openBlock(),s.createElementBlock("small",Bs,"Número: "+s.toDisplayString(s.unref(v)),1)):s.createCommentVNode("",!0),s.unref(pA)?(s.openBlock(),s.createElementBlock("small",bs,s.toDisplayString(new Date(s.unref(pA)).toLocaleString()),1)):s.createCommentVNode("",!0)]),s.createElementVNode("div",Ys,[s.createVNode(GA,{size:"small",variant:"outlined",onClick:vA},{default:s.withCtx(()=>CA[9]||(CA[9]=[s.createTextVNode("Limpiar")])),_:1,__:[9]}),s.createVNode(GA,{size:"small",variant:"outlined",onClick:s.unref(mA)},{default:s.withCtx(()=>CA[10]||(CA[10]=[s.createTextVNode("Descargar")])),_:1,__:[10]},8,["onClick"])]),s.createElementVNode("div",{ref_key:"transcriptRef",ref:DA,class:"webphone__transcript webphone__transcript--list"},[s.unref(cA).length>0?(s.openBlock(!0),s.createElementBlock(s.Fragment,{key:0},s.renderList(s.unref(cA),(xA,pe)=>(s.openBlock(),s.createElementBlock("div",{key:pe,class:"webphone__transcript__item"},[s.createElementVNode("span",Ds,s.toDisplayString(xA),1)]))),128)):(s.openBlock(),s.createElementBlock("small",Os,"Sin contenido aún..."))],512)]),_:1},8,["visible"]),s.unref(lA)==="denied"?(s.openBlock(),s.createElementBlock("div",Gs,[s.createVNode(GA,{size:"small",severity:"warn",onClick:s.unref(hA),loading:s.unref(rA)},{default:s.withCtx(()=>[s.createVNode(s.unref(Rt),{class:"webphone__permission-icon"}),CA[11]||(CA[11]=s.createTextVNode(" Solicitar Permisos "))]),_:1,__:[11]},8,["onClick","loading"])])):s.createCommentVNode("",!0)])]),Q.value?(s.openBlock(),s.createBlock(qs,{key:0,channels:s.unref(jA),activeChannelId:s.unref(SA),isRegistered:s.unref(sA),onSwitchChannel:s.unref(LA)},null,8,["channels","activeChannelId","isRegistered","onSwitchChannel"])):s.createCommentVNode("",!0),e.value?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",Js,[s.createVNode(Pl,{size:"small",modelValue:s.unref(v),"onUpdate:modelValue":CA[1]||(CA[1]=xA=>s.isRef(v)?v.value=xA:null),onKeydown:le,placeholder:"Ingresar número",type:"tel",inputmode:"tel",class:"webphone__input"},null,8,["modelValue"]),s.createVNode(GA,{variant:"text",size:"small",severity:"contrast",rounded:"",class:"webphone__numpad-toggle-btn","aria-label":"Mostrar/ocultar teclado",onClick:HA},{default:s.withCtx(()=>[r.value?(s.openBlock(),s.createBlock(s.unref(Kn),{key:1,class:"webphone__numpad-toggle-icon webphone__numpad-toggle-icon--on"})):(s.openBlock(),s.createBlock(s.unref(xn),{key:0,class:"webphone__numpad-toggle-icon webphone__numpad-toggle-icon--on"}))]),_:1})])),r.value?(s.openBlock(),s.createElementBlock("div",xs,[(s.openBlock(),s.createElementBlock(s.Fragment,null,s.renderList(VA,xA=>s.createVNode(GA,{rounded:"",class:"webphone__numpad-button",variant:"text",severity:"contrast",key:xA,size:"large",label:xA,onClick:pe=>TA(xA)},null,8,["label","onClick"])),64))])):s.createCommentVNode("",!0),s.createElementVNode("div",Ks,[s.createElementVNode("div",Fs,[s.unref(U)&&Qe.value?(s.openBlock(),s.createBlock(GA,{key:0,size:"small",variant:"outlined",severity:"contrast",class:"webphone__control-button",rounded:"",onClick:s.unref(yA)},{default:s.withCtx(()=>[s.createVNode(s.unref(Ri),{class:s.normalizeClass(["webphone__icon--sparkles",{"is-active":s.unref(FA)}])},null,8,["class"])]),_:1},8,["onClick"])):s.createCommentVNode("",!0),s.unref(U)&&e.value?(s.openBlock(),s.createBlock(GA,{key:1,size:"large",rounded:"",class:"webphone__control-button",variant:"text",severity:"contrast",disabled:!s.unref(j),onClick:s.unref(R)},{default:s.withCtx(()=>[s.unref($)?(s.openBlock(),s.createBlock(s.unref(Ln),{key:1,class:"webphone__icon--mute"})):(s.openBlock(),s.createBlock(s.unref(Rt),{key:0,class:"webphone__icon--mute"}))]),_:1},8,["disabled","onClick"])):s.createCommentVNode("",!0),S.value&&(s.unref(U)||s.unref(XA))?(s.openBlock(),s.createBlock(GA,{key:2,size:"large",rounded:"",class:"webphone__control-button",variant:"text",severity:"contrast",disabled:s.unref(ae),onClick:s.unref(re)},{default:s.withCtx(()=>[s.unref(JA)?(s.openBlock(),s.createBlock(s.unref(Oi),{key:0,class:"webphone__icon--camera"})):(s.openBlock(),s.createBlock(s.unref(xi),{key:1,class:"webphone__icon--camera"}))]),_:1},8,["disabled","onClick"])):s.createCommentVNode("",!0)]),s.createElementVNode("div",Ls,[!s.unref(U)&&!s.unref(P)?(s.openBlock(),s.createBlock(GA,{key:0,size:"large",rounded:"",class:"webphone__control-button",variant:"text",severity:"contrast",onClick:CA[2]||(CA[2]=xA=>s.unref(F)?s.unref(d)():s.unref(L)(YA.value??"",S.value))},{default:s.withCtx(()=>[s.unref(F)?(s.openBlock(),s.createBlock(s.unref(Fn),{key:1,class:"webphone__icon--hangup"})):(s.openBlock(),s.createBlock(s.unref(Vi),{key:0,class:"webphone__icon--call"}))]),_:1})):s.createCommentVNode("",!0),s.unref(P)&&!s.unref(U)?(s.openBlock(),s.createBlock(GA,{key:1,size:"large",rounded:"",class:"webphone__control-button",icon:"pi pi-phone",severity:"primary",onClick:CA[3]||(CA[3]=()=>s.unref(g)(void 0,S.value))})):s.createCommentVNode("",!0),s.unref(U)?(s.openBlock(),s.createBlock(GA,{key:2,size:"large",rounded:"",class:"webphone__control-button",variant:"text",severity:"contrast",disabled:!s.unref(b),onClick:CA[4]||(CA[4]=()=>s.unref(d)())},{default:s.withCtx(()=>[s.createVNode(s.unref(Fn),{class:"webphone__icon--hangup"})]),_:1},8,["disabled"])):s.createCommentVNode("",!0)]),s.createElementVNode("div",Ns,[e.value&&s.unref(U)?(s.openBlock(),s.createBlock(GA,{key:0,class:"webphone__control-button",variant:"text",severity:"contrast",size:"large",rounded:""},{default:s.withCtx(()=>[r.value?(s.openBlock(),s.createBlock(s.unref(Kn),{key:1,onClick:HA,class:"webphone__control-button--large-icon"})):(s.openBlock(),s.createBlock(s.unref(xn),{key:0,onClick:HA,class:"webphone__control-button--large-icon"}))]),_:1})):s.createCommentVNode("",!0),s.unref(v).length>0&&!s.unref(U)&&!e.value?(s.openBlock(),s.createBlock(GA,{key:1,size:"large",rounded:"",class:"webphone__control-button--delete",variant:"text",severity:"danger",onClick:dA},{default:s.withCtx(()=>[s.createVNode(s.unref(Ei),{class:""})]),_:1})):s.createCommentVNode("",!0),s.unref(U)&&!e.value?(s.openBlock(),s.createBlock(GA,{key:2,size:"large",rounded:"",class:"webphone__control-button",variant:"text",severity:"contrast",disabled:!s.unref(j),onClick:s.unref(R)},{default:s.withCtx(()=>[s.unref($)?(s.openBlock(),s.createBlock(s.unref(Ln),{key:1,class:"webphone__icon--mute"})):(s.openBlock(),s.createBlock(s.unref(Rt),{key:0,class:"webphone__icon--mute"}))]),_:1},8,["disabled","onClick"])):s.createCommentVNode("",!0)])]),s.createVNode(GA,{size:"small",variant:"outlined",severity:"contrast",class:"webphone__control-button",rounded:"",onClick:CA[5]||(CA[5]=xA=>M.value=!0),"aria-label":"Configuración"},{default:s.withCtx(()=>[s.createVNode(s.unref(bi),{class:"webphone__icon--settings"})]),_:1}),s.createVNode(ls,{visible:M.value,"onUpdate:visible":CA[6]||(CA[6]=xA=>M.value=xA),callVolume:s.unref(H),notificationVolume:s.unref(J),selectedMicId:s.unref(u)??void 0,selectedSpeakerId:s.unref(E)??void 0,multiChannelEnabled:Q.value,microphones:s.unref(K),speakers:s.unref(Z),"onUpdate:callVolume":ue,"onUpdate:notificationVolume":qe,"onUpdate:selectedMicId":s.unref(X),"onUpdate:selectedSpeakerId":s.unref(z),"onUpdate:multiChannelEnabled":oA},null,8,["visible","callVolume","notificationVolume","selectedMicId","selectedSpeakerId","multiChannelEnabled","microphones","speakers","onUpdate:selectedMicId","onUpdate:selectedSpeakerId"]),e.value?(s.openBlock(),s.createElementBlock("a",Zs,[s.createVNode(s.unref(Ti),{class:"webphone__powered-by-icon"}),CA[12]||(CA[12]=s.createElementVNode("span",{class:"webphone__powered-by-text"},[s.createElementVNode("p",null,"Powered By"),s.createElementVNode("p",null,"www.nebula123.com")],-1))])):s.createCommentVNode("",!0)]),s.createVNode(ds,{"is-visible":S.value&&s.unref(U)&&s.unref(JA),"remote-stream":iA.value,"local-stream":s.unref(ne),"call-info":s.unref(WA)?`En llamada con ${s.unref(WA)}`:"Videollamada",onClose:s.unref(_A)},null,8,["is-visible","remote-stream","local-stream","call-info","onClose"])],64)}}}),[["__scopeId","data-v-b0d7e139"]]);KA.WebPhone=Ws,Object.defineProperty(KA,Symbol.toStringTag,{value:"Module"})});
|
|
40
|
+
`,{message:r}}var Re=class extends g{constructor(e){super(e||`Unspecified transport error.`)}},ze=class{constructor(e,t,n,r,i){this._transport=e,this._user=t,this._id=n,this._state=r,this.listeners=[],this.logger=t.loggerFactory.getLogger(i,n),this.logger.debug(`Constructing ${this.typeToString()} with id ${this.id}.`)}dispose(){this.logger.debug(`Destroyed ${this.typeToString()} with id ${this.id}.`)}get id(){return this._id}get kind(){throw Error(`Invalid kind.`)}get state(){return this._state}get transport(){return this._transport}addStateChangeListener(e,t){let n=()=>{this.removeStateChangeListener(n),e()};t?.once===!0?this.listeners.push(n):this.listeners.push(e)}notifyStateChangeListeners(){this.listeners.slice().forEach(e=>e())}removeStateChangeListener(e){this.listeners=this.listeners.filter(t=>t!==e)}logTransportError(e,t){this.logger.error(e.message),this.logger.error(`Transport error occurred in ${this.typeToString()} with id ${this.id}.`),this.logger.error(t)}send(e){return this.transport.send(e).catch(e=>{if(e instanceof Re)throw this.onTransportError(e),e;let t;throw t=e&&typeof e.message==`string`?new Re(e.message):new Re,this.onTransportError(t),t})}setState(e){this.logger.debug(`State change to "${e}" on ${this.typeToString()} with id ${this.id}.`),this._state=e,this._user.onStateChange&&this._user.onStateChange(e),this.notifyStateChangeListeners()}typeToString(){return`UnknownType`}},Be=class extends ze{constructor(e,t,n,r,i){super(t,n,e.viaBranch,r,i),this._request=e,this.user=n}get request(){return this._request}},U;(function(e){e.Accepted=`Accepted`,e.Calling=`Calling`,e.Completed=`Completed`,e.Confirmed=`Confirmed`,e.Proceeding=`Proceeding`,e.Terminated=`Terminated`,e.Trying=`Trying`})(U=U||={});var Ve=class extends Be{constructor(e,t,n){super(e,t,n,U.Proceeding,`sip.transaction.ist`)}dispose(){this.stopProgressExtensionTimer(),this.H&&=(clearTimeout(this.H),void 0),this.I&&=(clearTimeout(this.I),void 0),this.L&&=(clearTimeout(this.L),void 0),super.dispose()}get kind(){return`ist`}receiveRequest(e){switch(this.state){case U.Proceeding:if(e.method===R.INVITE){this.lastProvisionalResponse&&this.send(this.lastProvisionalResponse).catch(e=>{this.logTransportError(e,`Failed to send retransmission of provisional response.`)});return}break;case U.Accepted:if(e.method===R.INVITE)return;break;case U.Completed:if(e.method===R.INVITE){if(!this.lastFinalResponse)throw Error(`Last final response undefined.`);this.send(this.lastFinalResponse).catch(e=>{this.logTransportError(e,`Failed to send retransmission of final response.`)});return}if(e.method===R.ACK){this.stateTransition(U.Confirmed);return}break;case U.Confirmed:if(e.method===R.INVITE||e.method===R.ACK)return;break;case U.Terminated:if(e.method===R.INVITE||e.method===R.ACK)return;break;default:throw Error(`Invalid state ${this.state}`)}let t=`INVITE server transaction received unexpected ${e.method} request while in state ${this.state}.`;this.logger.warn(t)}receiveResponse(e,t){if(e<100||e>699)throw Error(`Invalid status code ${e}`);switch(this.state){case U.Proceeding:if(e>=100&&e<=199){this.lastProvisionalResponse=t,e>100&&this.startProgressExtensionTimer(),this.send(t).catch(e=>{this.logTransportError(e,`Failed to send 1xx response.`)});return}if(e>=200&&e<=299){this.lastFinalResponse=t,this.stateTransition(U.Accepted),this.send(t).catch(e=>{this.logTransportError(e,`Failed to send 2xx response.`)});return}if(e>=300&&e<=699){this.lastFinalResponse=t,this.stateTransition(U.Completed),this.send(t).catch(e=>{this.logTransportError(e,`Failed to send non-2xx final response.`)});return}break;case U.Accepted:if(e>=200&&e<=299){this.send(t).catch(e=>{this.logTransportError(e,`Failed to send 2xx response.`)});return}break;case U.Completed:break;case U.Confirmed:break;case U.Terminated:break;default:throw Error(`Invalid state ${this.state}`)}let n=`INVITE server transaction received unexpected ${e} response from TU while in state ${this.state}.`;throw this.logger.error(n),Error(n)}retransmitAcceptedResponse(){this.state===U.Accepted&&this.lastFinalResponse&&this.send(this.lastFinalResponse).catch(e=>{this.logTransportError(e,`Failed to send 2xx response.`)})}onTransportError(e){this.user.onTransportError&&this.user.onTransportError(e)}typeToString(){return`INVITE server transaction`}stateTransition(e){let t=()=>{throw Error(`Invalid state transition from ${this.state} to ${e}`)};switch(e){case U.Proceeding:t();break;case U.Accepted:case U.Completed:this.state!==U.Proceeding&&t();break;case U.Confirmed:this.state!==U.Completed&&t();break;case U.Terminated:this.state!==U.Accepted&&this.state!==U.Completed&&this.state!==U.Confirmed&&t();break;default:t()}this.stopProgressExtensionTimer(),e===U.Accepted&&(this.L=setTimeout(()=>this.timerL(),_e.TIMER_L)),e===U.Completed&&(this.H=setTimeout(()=>this.timerH(),_e.TIMER_H)),e===U.Confirmed&&(this.I=setTimeout(()=>this.timerI(),_e.TIMER_I)),e===U.Terminated&&this.dispose(),this.setState(e)}startProgressExtensionTimer(){this.progressExtensionTimer===void 0&&(this.progressExtensionTimer=setInterval(()=>{if(this.logger.debug(`Progress extension timer expired for INVITE server transaction ${this.id}.`),!this.lastProvisionalResponse)throw Error(`Last provisional response undefined.`);this.send(this.lastProvisionalResponse).catch(e=>{this.logTransportError(e,`Failed to send retransmission of provisional response.`)})},_e.PROVISIONAL_RESPONSE_INTERVAL))}stopProgressExtensionTimer(){this.progressExtensionTimer!==void 0&&(clearInterval(this.progressExtensionTimer),this.progressExtensionTimer=void 0)}timerG(){}timerH(){this.logger.debug(`Timer H expired for INVITE server transaction ${this.id}.`),this.state===U.Completed&&(this.logger.warn(`ACK to negative final response was never received, terminating transaction.`),this.stateTransition(U.Terminated))}timerI(){this.logger.debug(`Timer I expired for INVITE server transaction ${this.id}.`),this.stateTransition(U.Terminated)}timerL(){this.logger.debug(`Timer L expired for INVITE server transaction ${this.id}.`),this.state===U.Accepted&&this.stateTransition(U.Terminated)}},He=class e extends ze{constructor(t,n,r,i,a){super(n,r,e.makeId(t),i,a),this._request=t,this.user=r,t.setViaHeader(this.id,n.protocol)}static makeId(e){if(e.method===`CANCEL`){if(!e.branch)throw Error(`Outgoing CANCEL request without a branch.`);return e.branch}else return`z9hG4bK`+Math.floor(Math.random()*1e7)}get request(){return this._request}onRequestTimeout(){this.user.onRequestTimeout&&this.user.onRequestTimeout()}},Ue=class extends He{constructor(e,t,n){super(e,t,n,U.Trying,`sip.transaction.nict`),this.F=setTimeout(()=>this.timerF(),_e.TIMER_F),this.send(e.toString()).catch(e=>{this.logTransportError(e,`Failed to send initial outgoing request.`)})}dispose(){this.F&&=(clearTimeout(this.F),void 0),this.K&&=(clearTimeout(this.K),void 0),super.dispose()}get kind(){return`nict`}receiveResponse(e){let t=e.statusCode;if(!t||t<100||t>699)throw Error(`Invalid status code ${t}`);switch(this.state){case U.Trying:if(t>=100&&t<=199){this.stateTransition(U.Proceeding),this.user.receiveResponse&&this.user.receiveResponse(e);return}if(t>=200&&t<=699){if(this.stateTransition(U.Completed),t===408){this.onRequestTimeout();return}this.user.receiveResponse&&this.user.receiveResponse(e);return}break;case U.Proceeding:if(t>=100&&t<=199&&this.user.receiveResponse)return this.user.receiveResponse(e);if(t>=200&&t<=699){if(this.stateTransition(U.Completed),t===408){this.onRequestTimeout();return}this.user.receiveResponse&&this.user.receiveResponse(e);return}break;case U.Completed:return;case U.Terminated:return;default:throw Error(`Invalid state ${this.state}`)}let n=`Non-INVITE client transaction received unexpected ${t} response while in state ${this.state}.`;this.logger.warn(n)}onTransportError(e){this.user.onTransportError&&this.user.onTransportError(e),this.stateTransition(U.Terminated,!0)}typeToString(){return`non-INVITE client transaction`}stateTransition(e,t=!1){let n=()=>{throw Error(`Invalid state transition from ${this.state} to ${e}`)};switch(e){case U.Trying:n();break;case U.Proceeding:this.state!==U.Trying&&n();break;case U.Completed:this.state!==U.Trying&&this.state!==U.Proceeding&&n();break;case U.Terminated:this.state!==U.Trying&&this.state!==U.Proceeding&&this.state!==U.Completed&&(t||n());break;default:n()}e===U.Completed&&(this.F&&=(clearTimeout(this.F),void 0),this.K=setTimeout(()=>this.timerK(),_e.TIMER_K)),e===U.Terminated&&this.dispose(),this.setState(e)}timerF(){this.logger.debug(`Timer F expired for non-INVITE client transaction ${this.id}.`),(this.state===U.Trying||this.state===U.Proceeding)&&(this.onRequestTimeout(),this.stateTransition(U.Terminated))}timerK(){this.state===U.Completed&&this.stateTransition(U.Terminated)}},We=class{constructor(e,t){this.core=e,this.dialogState=t,this.core.dialogs.set(this.id,this)}static initialDialogStateForUserAgentClient(e,t){let n=t.getHeaders(`record-route`).reverse(),r=t.parseHeader(`contact`);if(!r)throw Error(`Contact undefined.`);if(!(r instanceof O))throw Error(`Contact not instance of NameAddrHeader.`);let i=r.uri,a=e.cseq,o=e.callId,s=e.fromTag,c=t.toTag;if(!o)throw Error(`Call id undefined.`);if(!s)throw Error(`From tag undefined.`);if(!c)throw Error(`To tag undefined.`);if(!e.from)throw Error(`From undefined.`);if(!e.to)throw Error(`To undefined.`);let l=e.from.uri,u=e.to.uri;if(!t.statusCode)throw Error(`Incoming response status code undefined.`);let d=t.statusCode<200;return{id:o+s+c,early:d,callId:o,localTag:s,remoteTag:c,localSequenceNumber:a,remoteSequenceNumber:void 0,localURI:l,remoteURI:u,remoteTarget:i,routeSet:n,secure:!1}}static initialDialogStateForUserAgentServer(e,t,n=!1){let r=e.getHeaders(`record-route`),i=e.parseHeader(`contact`);if(!i)throw Error(`Contact undefined.`);if(!(i instanceof O))throw Error(`Contact not instance of NameAddrHeader.`);let a=i.uri,o=e.cseq,s=e.callId,c=t,l=e.fromTag,u=e.from.uri,d=e.to.uri;return{id:s+c+l,early:n,callId:s,localTag:c,remoteTag:l,localSequenceNumber:void 0,remoteSequenceNumber:o,localURI:d,remoteURI:u,remoteTarget:a,routeSet:r,secure:!1}}dispose(){this.core.dialogs.delete(this.id)}get id(){return this.dialogState.id}get early(){return this.dialogState.early}get callId(){return this.dialogState.callId}get localTag(){return this.dialogState.localTag}get remoteTag(){return this.dialogState.remoteTag}get localSequenceNumber(){return this.dialogState.localSequenceNumber}get remoteSequenceNumber(){return this.dialogState.remoteSequenceNumber}get localURI(){return this.dialogState.localURI}get remoteURI(){return this.dialogState.remoteURI}get remoteTarget(){return this.dialogState.remoteTarget}get routeSet(){return this.dialogState.routeSet}get secure(){return this.dialogState.secure}get userAgentCore(){return this.core}confirm(){this.dialogState.early=!1}receiveRequest(e){if(e.method!==R.ACK){if(this.remoteSequenceNumber){if(e.cseq<=this.remoteSequenceNumber)throw Error(`Out of sequence in dialog request. Did you forget to call sequenceGuard()?`);this.dialogState.remoteSequenceNumber=e.cseq}this.remoteSequenceNumber||(this.dialogState.remoteSequenceNumber=e.cseq)}}recomputeRouteSet(e){this.dialogState.routeSet=e.getHeaders(`record-route`).reverse()}createOutgoingRequestMessage(e,t){let n=this.remoteURI,r=this.remoteTag,i=this.localURI,a=this.localTag,o=this.callId,s;s=t&&t.cseq?t.cseq:this.dialogState.localSequenceNumber?this.dialogState.localSequenceNumber+=1:this.dialogState.localSequenceNumber=1;let c=this.remoteTarget,l=this.routeSet,u=t&&t.extraHeaders,d=t&&t.body;return this.userAgentCore.makeOutgoingRequestMessage(e,c,i,n,{callId:o,cseq:s,fromTag:a,toTag:r,routeSet:l},u,d)}incrementLocalSequenceNumber(){if(!this.dialogState.localSequenceNumber)throw Error(`Local sequence number undefined.`);this.dialogState.localSequenceNumber+=1}sequenceGuard(e){return e.method===R.ACK?!0:this.remoteSequenceNumber&&e.cseq<=this.remoteSequenceNumber?(this.core.replyStateless(e,{statusCode:500}),!1):!0}},Ge=class extends He{constructor(e,t,n){super(e,t,n,U.Calling,`sip.transaction.ict`),this.ackRetransmissionCache=new Map,this.B=setTimeout(()=>this.timerB(),_e.TIMER_B),this.send(e.toString()).catch(e=>{this.logTransportError(e,`Failed to send initial outgoing request.`)})}dispose(){this.B&&=(clearTimeout(this.B),void 0),this.D&&=(clearTimeout(this.D),void 0),this.M&&=(clearTimeout(this.M),void 0),super.dispose()}get kind(){return`ict`}ackResponse(e){let t=e.toTag;if(!t)throw Error(`To tag undefined.`);let n=`z9hG4bK`+Math.floor(Math.random()*1e7);e.setViaHeader(n,this.transport.protocol),this.ackRetransmissionCache.set(t,e),this.send(e.toString()).catch(e=>{this.logTransportError(e,`Failed to send ACK to 2xx response.`)})}receiveResponse(e){let t=e.statusCode;if(!t||t<100||t>699)throw Error(`Invalid status code ${t}`);switch(this.state){case U.Calling:if(t>=100&&t<=199){this.stateTransition(U.Proceeding),this.user.receiveResponse&&this.user.receiveResponse(e);return}if(t>=200&&t<=299){this.ackRetransmissionCache.set(e.toTag,void 0),this.stateTransition(U.Accepted),this.user.receiveResponse&&this.user.receiveResponse(e);return}if(t>=300&&t<=699){this.stateTransition(U.Completed),this.ack(e),this.user.receiveResponse&&this.user.receiveResponse(e);return}break;case U.Proceeding:if(t>=100&&t<=199){this.user.receiveResponse&&this.user.receiveResponse(e);return}if(t>=200&&t<=299){this.ackRetransmissionCache.set(e.toTag,void 0),this.stateTransition(U.Accepted),this.user.receiveResponse&&this.user.receiveResponse(e);return}if(t>=300&&t<=699){this.stateTransition(U.Completed),this.ack(e),this.user.receiveResponse&&this.user.receiveResponse(e);return}break;case U.Accepted:if(t>=200&&t<=299){if(!this.ackRetransmissionCache.has(e.toTag)){this.ackRetransmissionCache.set(e.toTag,void 0),this.user.receiveResponse&&this.user.receiveResponse(e);return}let t=this.ackRetransmissionCache.get(e.toTag);if(t){this.send(t.toString()).catch(e=>{this.logTransportError(e,`Failed to send retransmission of ACK to 2xx response.`)});return}return}break;case U.Completed:if(t>=300&&t<=699){this.ack(e);return}break;case U.Terminated:break;default:throw Error(`Invalid state ${this.state}`)}let n=`Received unexpected ${t} response while in state ${this.state}.`;this.logger.warn(n)}onTransportError(e){this.user.onTransportError&&this.user.onTransportError(e),this.stateTransition(U.Terminated,!0)}typeToString(){return`INVITE client transaction`}ack(e){let t=this.request.ruri,n=this.request.callId,r=this.request.cseq,i=this.request.getHeader(`from`),a=e.getHeader(`to`),o=this.request.getHeader(`via`),s=this.request.getHeader(`route`);if(!i)throw Error(`From undefined.`);if(!a)throw Error(`To undefined.`);if(!o)throw Error(`Via undefined.`);let c=`ACK ${t} SIP/2.0\r\n`;s&&(c+=`Route: ${s}\r\n`),c+=`Via: ${o}\r\n`,c+=`To: ${a}\r\n`,c+=`From: ${i}\r\n`,c+=`Call-ID: ${n}\r\n`,c+=`CSeq: ${r} ACK\r\n`,c+=`Max-Forwards: 70\r
|
|
41
|
+
`,c+=`Content-Length: 0\r
|
|
42
|
+
\r
|
|
43
|
+
`,this.send(c).catch(e=>{this.logTransportError(e,`Failed to send ACK to non-2xx response.`)})}stateTransition(e,t=!1){let n=()=>{throw Error(`Invalid state transition from ${this.state} to ${e}`)};switch(e){case U.Calling:n();break;case U.Proceeding:this.state!==U.Calling&&n();break;case U.Accepted:case U.Completed:this.state!==U.Calling&&this.state!==U.Proceeding&&n();break;case U.Terminated:this.state!==U.Calling&&this.state!==U.Accepted&&this.state!==U.Completed&&(t||n());break;default:n()}this.B&&=(clearTimeout(this.B),void 0),U.Proceeding,e===U.Completed&&(this.D=setTimeout(()=>this.timerD(),_e.TIMER_D)),e===U.Accepted&&(this.M=setTimeout(()=>this.timerM(),_e.TIMER_M)),e===U.Terminated&&this.dispose(),this.setState(e)}timerA(){}timerB(){this.logger.debug(`Timer B expired for INVITE client transaction ${this.id}.`),this.state===U.Calling&&(this.onRequestTimeout(),this.stateTransition(U.Terminated))}timerD(){this.logger.debug(`Timer D expired for INVITE client transaction ${this.id}.`),this.state===U.Completed&&this.stateTransition(U.Terminated)}timerM(){this.logger.debug(`Timer M expired for INVITE client transaction ${this.id}.`),this.state===U.Accepted&&this.stateTransition(U.Terminated)}},Ke=class e{constructor(e,t,n,r){this.transactionConstructor=e,this.core=t,this.message=n,this.delegate=r,this.challenged=!1,this.stale=!1,this.logger=this.loggerFactory.getLogger(`sip.user-agent-client`),this.init()}dispose(){this.transaction.dispose()}get loggerFactory(){return this.core.loggerFactory}get transaction(){if(!this._transaction)throw Error(`Transaction undefined.`);return this._transaction}cancel(t,n={}){if(!this.transaction)throw Error(`Transaction undefined.`);if(!this.message.to)throw Error(`To undefined.`);if(!this.message.from)throw Error(`From undefined.`);let r=this.core.makeOutgoingRequestMessage(R.CANCEL,this.message.ruri,this.message.from.uri,this.message.to.uri,{toTag:this.message.toTag,fromTag:this.message.fromTag,callId:this.message.callId,cseq:this.message.cseq},n.extraHeaders);return r.branch=this.message.branch,this.message.headers.Route&&(r.headers.Route=this.message.headers.Route),t&&r.setHeader(`Reason`,t),this.transaction.state===U.Proceeding?new e(Ue,this.core,r):this.transaction.addStateChangeListener(()=>{this.transaction&&this.transaction.state===U.Proceeding&&new e(Ue,this.core,r)},{once:!0}),r}authenticationGuard(e,t){let n=e.statusCode;if(!n)throw Error(`Response status code undefined.`);if(n!==401&&n!==407)return!0;let r,i;if(n===401?(r=e.parseHeader(`www-authenticate`),i=`authorization`):(r=e.parseHeader(`proxy-authenticate`),i=`proxy-authorization`),!r)return this.logger.warn(n+` with wrong or missing challenge, cannot authenticate`),!0;if(this.challenged&&(this.stale||r.stale!==!0))return this.logger.warn(n+` apparently in authentication loop, cannot authenticate`),!0;if(!this.credentials&&(this.credentials=this.core.configuration.authenticationFactory(),!this.credentials))return this.logger.warn(`Unable to obtain credentials, cannot authenticate`),!0;if(!this.credentials.authenticate(this.message,r))return!0;this.challenged=!0,r.stale&&(this.stale=!0);let a=this.message.cseq+=1;return t&&t.localSequenceNumber&&(t.incrementLocalSequenceNumber(),a=this.message.cseq=t.localSequenceNumber),this.message.setHeader(`cseq`,a+` `+this.message.method),this.message.setHeader(i,this.credentials.toString()),this.init(),!1}onRequestTimeout(){this.logger.warn(`User agent client request timed out. Generating internal 408 Request Timeout.`);let e=new se;e.statusCode=408,e.reasonPhrase=`Request Timeout`,this.receiveResponse(e)}onTransportError(e){this.logger.error(e.message),this.logger.error(`User agent client request transport error. Generating internal 503 Service Unavailable.`);let t=new se;t.statusCode=503,t.reasonPhrase=`Service Unavailable`,this.receiveResponse(t)}receiveResponse(e){if(!this.authenticationGuard(e))return;let t=e.statusCode?e.statusCode.toString():``;if(!t)throw Error(`Response status code undefined.`);switch(!0){case/^100$/.test(t):this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:e});break;case/^1[0-9]{2}$/.test(t):this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:e});break;case/^2[0-9]{2}$/.test(t):this.delegate&&this.delegate.onAccept&&this.delegate.onAccept({message:e});break;case/^3[0-9]{2}$/.test(t):this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:e});break;case/^[4-6][0-9]{2}$/.test(t):this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:e});break;default:throw Error(`Invalid status code ${t}`)}}init(){let e={loggerFactory:this.loggerFactory,onRequestTimeout:()=>this.onRequestTimeout(),onStateChange:e=>{e===U.Terminated&&(this.core.userAgentClients.delete(n),t===this._transaction&&this.dispose())},onTransportError:e=>this.onTransportError(e),receiveResponse:e=>this.receiveResponse(e)},t=new this.transactionConstructor(this.message,this.core.transport,e);this._transaction=t;let n=t.id+t.request.method;this.core.userAgentClients.set(n,this)}},qe=class extends Ke{constructor(e,t,n){let r=e.createOutgoingRequestMessage(R.BYE,n);super(Ue,e.userAgentCore,r,t),e.dispose()}},Je=class extends Be{constructor(e,t,n){super(e,t,n,U.Trying,`sip.transaction.nist`)}dispose(){this.J&&=(clearTimeout(this.J),void 0),super.dispose()}get kind(){return`nist`}receiveRequest(e){switch(this.state){case U.Trying:break;case U.Proceeding:if(!this.lastResponse)throw Error(`Last response undefined.`);this.send(this.lastResponse).catch(e=>{this.logTransportError(e,`Failed to send retransmission of provisional response.`)});break;case U.Completed:if(!this.lastResponse)throw Error(`Last response undefined.`);this.send(this.lastResponse).catch(e=>{this.logTransportError(e,`Failed to send retransmission of final response.`)});break;case U.Terminated:break;default:throw Error(`Invalid state ${this.state}`)}}receiveResponse(e,t){if(e<100||e>699)throw Error(`Invalid status code ${e}`);if(e>100&&e<=199)throw Error(`Provisional response other than 100 not allowed.`);switch(this.state){case U.Trying:if(this.lastResponse=t,e>=100&&e<200){this.stateTransition(U.Proceeding),this.send(t).catch(e=>{this.logTransportError(e,`Failed to send provisional response.`)});return}if(e>=200&&e<=699){this.stateTransition(U.Completed),this.send(t).catch(e=>{this.logTransportError(e,`Failed to send final response.`)});return}break;case U.Proceeding:if(this.lastResponse=t,e>=200&&e<=699){this.stateTransition(U.Completed),this.send(t).catch(e=>{this.logTransportError(e,`Failed to send final response.`)});return}break;case U.Completed:return;case U.Terminated:break;default:throw Error(`Invalid state ${this.state}`)}let n=`Non-INVITE server transaction received unexpected ${e} response from TU while in state ${this.state}.`;throw this.logger.error(n),Error(n)}onTransportError(e){this.user.onTransportError&&this.user.onTransportError(e),this.stateTransition(U.Terminated,!0)}typeToString(){return`non-INVITE server transaction`}stateTransition(e,t=!1){let n=()=>{throw Error(`Invalid state transition from ${this.state} to ${e}`)};switch(e){case U.Trying:n();break;case U.Proceeding:this.state!==U.Trying&&n();break;case U.Completed:this.state!==U.Trying&&this.state!==U.Proceeding&&n();break;case U.Terminated:this.state!==U.Proceeding&&this.state!==U.Completed&&(t||n());break;default:n()}e===U.Completed&&(this.J=setTimeout(()=>this.timerJ(),_e.TIMER_J)),e===U.Terminated&&this.dispose(),this.setState(e)}timerJ(){this.logger.debug(`Timer J expired for NON-INVITE server transaction ${this.id}.`),this.state===U.Completed&&this.stateTransition(U.Terminated)}},Ye=class{constructor(e,t,n,r){this.transactionConstructor=e,this.core=t,this.message=n,this.delegate=r,this.logger=this.loggerFactory.getLogger(`sip.user-agent-server`),this.toTag=n.toTag?n.toTag:P(),this.init()}dispose(){this.transaction.dispose()}get loggerFactory(){return this.core.loggerFactory}get transaction(){if(!this._transaction)throw Error(`Transaction undefined.`);return this._transaction}accept(e={statusCode:200}){if(!this.acceptable)throw new ve(`${this.message.method} not acceptable in state ${this.transaction.state}.`);let t=e.statusCode;if(t<200||t>299)throw TypeError(`Invalid statusCode: ${t}`);return this.reply(e)}progress(e={statusCode:180}){if(!this.progressable)throw new ve(`${this.message.method} not progressable in state ${this.transaction.state}.`);let t=e.statusCode;if(t<101||t>199)throw TypeError(`Invalid statusCode: ${t}`);return this.reply(e)}redirect(e,t={statusCode:302}){if(!this.redirectable)throw new ve(`${this.message.method} not redirectable in state ${this.transaction.state}.`);let n=t.statusCode;if(n<300||n>399)throw TypeError(`Invalid statusCode: ${n}`);let r=[];return e.forEach(e=>r.push(`Contact: ${e.toString()}`)),t.extraHeaders=(t.extraHeaders||[]).concat(r),this.reply(t)}reject(e={statusCode:480}){if(!this.rejectable)throw new ve(`${this.message.method} not rejectable in state ${this.transaction.state}.`);let t=e.statusCode;if(t<400||t>699)throw TypeError(`Invalid statusCode: ${t}`);return this.reply(e)}trying(e){if(!this.tryingable)throw new ve(`${this.message.method} not tryingable in state ${this.transaction.state}.`);return this.reply({statusCode:100})}receiveCancel(e){this.delegate&&this.delegate.onCancel&&this.delegate.onCancel(e)}get acceptable(){if(this.transaction instanceof Ve)return this.transaction.state===U.Proceeding||this.transaction.state===U.Accepted;if(this.transaction instanceof Je)return this.transaction.state===U.Trying||this.transaction.state===U.Proceeding;throw Error(`Unknown transaction type.`)}get progressable(){if(this.transaction instanceof Ve)return this.transaction.state===U.Proceeding;if(this.transaction instanceof Je)return!1;throw Error(`Unknown transaction type.`)}get redirectable(){if(this.transaction instanceof Ve)return this.transaction.state===U.Proceeding;if(this.transaction instanceof Je)return this.transaction.state===U.Trying||this.transaction.state===U.Proceeding;throw Error(`Unknown transaction type.`)}get rejectable(){if(this.transaction instanceof Ve)return this.transaction.state===U.Proceeding;if(this.transaction instanceof Je)return this.transaction.state===U.Trying||this.transaction.state===U.Proceeding;throw Error(`Unknown transaction type.`)}get tryingable(){if(this.transaction instanceof Ve)return this.transaction.state===U.Proceeding;if(this.transaction instanceof Je)return this.transaction.state===U.Trying;throw Error(`Unknown transaction type.`)}reply(e){!e.toTag&&e.statusCode!==100&&(e.toTag=this.toTag),e.userAgent=e.userAgent||this.core.configuration.userAgentHeaderFieldValue,e.supported=e.supported||this.core.configuration.supportedOptionTagsResponse;let t=Le(this.message,e);return this.transaction.receiveResponse(e.statusCode,t.message),t}init(){let e={loggerFactory:this.loggerFactory,onStateChange:e=>{e===U.Terminated&&(this.core.userAgentServers.delete(n),this.dispose())},onTransportError:e=>{this.logger.error(e.message),this.delegate&&this.delegate.onTransportError?this.delegate.onTransportError(e):this.logger.error(`User agent server response transport error.`)}},t=new this.transactionConstructor(this.message,this.core.transport,e);this._transaction=t;let n=t.id;this.core.userAgentServers.set(t.id,this)}},Xe=class extends Ye{constructor(e,t,n){super(Je,e.userAgentCore,t,n)}},Ze=class extends Ke{constructor(e,t,n){let r=e.createOutgoingRequestMessage(R.INFO,n);super(Ue,e.userAgentCore,r,t)}},Qe=class extends Ye{constructor(e,t,n){super(Je,e.userAgentCore,t,n)}},$e=class extends Ke{constructor(e,t,n){super(Ue,e,t,n)}},et=class extends Ye{constructor(e,t,n){super(Je,e,t,n)}},tt=class extends Ke{constructor(e,t,n){let r=e.createOutgoingRequestMessage(R.NOTIFY,n);super(Ue,e.userAgentCore,r,t)}};function nt(e){return e.userAgentCore!==void 0}var rt=class extends Ye{constructor(e,t,n){let r=nt(e)?e.userAgentCore:e;super(Je,r,t,n)}},it=class extends Ke{constructor(e,t,n){let r=e.createOutgoingRequestMessage(R.PRACK,n);super(Ue,e.userAgentCore,r,t),e.signalingStateTransition(r)}},at=class extends Ye{constructor(e,t,n){super(Je,e.userAgentCore,t,n),e.signalingStateTransition(t),this.dialog=e}accept(e={statusCode:200}){return e.body&&this.dialog.signalingStateTransition(e.body),super.accept(e)}},ot=class extends Ke{constructor(e,t,n){let r=e.createOutgoingRequestMessage(R.INVITE,n);super(Ge,e.userAgentCore,r,t),this.delegate=t,e.signalingStateTransition(r),e.reinviteUserAgentClient=this,this.dialog=e}receiveResponse(e){if(!this.authenticationGuard(e,this.dialog))return;let t=e.statusCode?e.statusCode.toString():``;if(!t)throw Error(`Response status code undefined.`);switch(!0){case/^100$/.test(t):this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:e});break;case/^1[0-9]{2}$/.test(t):this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:e,session:this.dialog,prack:e=>{throw Error(`Unimplemented.`)}});break;case/^2[0-9]{2}$/.test(t):this.dialog.signalingStateTransition(e),this.delegate&&this.delegate.onAccept&&this.delegate.onAccept({message:e,session:this.dialog,ack:e=>this.dialog.ack(e)});break;case/^3[0-9]{2}$/.test(t):this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentClient=void 0,this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:e});break;case/^[4-6][0-9]{2}$/.test(t):this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentClient=void 0,this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:e});break;default:throw Error(`Invalid status code ${t}`)}}},st=class extends Ye{constructor(e,t,n){super(Ve,e.userAgentCore,t,n),e.reinviteUserAgentServer=this,this.dialog=e}accept(e={statusCode:200}){e.extraHeaders=e.extraHeaders||[],e.extraHeaders=e.extraHeaders.concat(this.dialog.routeSet.map(e=>`Record-Route: ${e}`));let t=super.accept(e),n=this.dialog,r=Object.assign(Object.assign({},t),{session:n});return e.body&&this.dialog.signalingStateTransition(e.body),this.dialog.reConfirm(),r}progress(e={statusCode:180}){let t=super.progress(e),n=this.dialog,r=Object.assign(Object.assign({},t),{session:n});return e.body&&this.dialog.signalingStateTransition(e.body),r}redirect(e,t={statusCode:302}){throw this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentServer=void 0,Error(`Unimplemented.`)}reject(e={statusCode:488}){return this.dialog.signalingStateRollback(),this.dialog.reinviteUserAgentServer=void 0,super.reject(e)}},ct=class extends Ke{constructor(e,t,n){let r=e.createOutgoingRequestMessage(R.REFER,n);super(Ue,e.userAgentCore,r,t)}};function lt(e){return e.userAgentCore!==void 0}var ut=class extends Ye{constructor(e,t,n){let r=lt(e)?e.userAgentCore:e;super(Je,r,t,n)}},dt=class extends We{constructor(e,t,n,r){super(t,n),this.initialTransaction=e,this._signalingState=L.Initial,this.ackWait=!1,this.ackProcessing=!1,this.delegate=r,e instanceof Ve&&(this.ackWait=!0),this.early||this.start2xxRetransmissionTimer(),this.signalingStateTransition(e.request),this.logger=t.loggerFactory.getLogger(`sip.invite-dialog`),this.logger.log(`INVITE dialog ${this.id} constructed`)}dispose(){super.dispose(),this._signalingState=L.Closed,this._offer=void 0,this._answer=void 0,this.invite2xxTimer&&=(clearTimeout(this.invite2xxTimer),void 0),this.logger.log(`INVITE dialog ${this.id} destroyed`)}get sessionState(){return this.early?pe.Early:this.ackWait?pe.AckWait:this._signalingState===L.Closed?pe.Terminated:pe.Confirmed}get signalingState(){return this._signalingState}get offer(){return this._offer}get answer(){return this._answer}confirm(){this.early&&this.start2xxRetransmissionTimer(),super.confirm()}reConfirm(){this.reinviteUserAgentServer&&this.startReInvite2xxRetransmissionTimer()}ack(e={}){this.logger.log(`INVITE dialog ${this.id} sending ACK request`);let t;if(this.reinviteUserAgentClient){if(!(this.reinviteUserAgentClient.transaction instanceof Ge))throw Error(`Transaction not instance of InviteClientTransaction.`);t=this.reinviteUserAgentClient.transaction,this.reinviteUserAgentClient=void 0}else{if(!(this.initialTransaction instanceof Ge))throw Error(`Initial transaction not instance of InviteClientTransaction.`);t=this.initialTransaction}let n=this.createOutgoingRequestMessage(R.ACK,{cseq:t.request.cseq,extraHeaders:e.extraHeaders,body:e.body});return t.ackResponse(n),this.signalingStateTransition(n),{message:n}}bye(e,t){if(this.logger.log(`INVITE dialog ${this.id} sending BYE request`),this.initialTransaction instanceof Ve){if(this.early)throw Error(`UAS MUST NOT send a BYE on early dialogs.`);if(this.ackWait&&this.initialTransaction.state!==U.Terminated)throw Error(`UAS MUST NOT send a BYE on a confirmed dialog until it has received an ACK for its 2xx response or until the server transaction times out.`)}return new qe(this,e,t)}info(e,t){if(this.logger.log(`INVITE dialog ${this.id} sending INFO request`),this.early)throw Error(`Dialog not confirmed.`);return new Ze(this,e,t)}invite(e,t){if(this.logger.log(`INVITE dialog ${this.id} sending INVITE request`),this.early)throw Error(`Dialog not confirmed.`);if(this.reinviteUserAgentClient)throw Error(`There is an ongoing re-INVITE client transaction.`);if(this.reinviteUserAgentServer)throw Error(`There is an ongoing re-INVITE server transaction.`);return new ot(this,e,t)}message(e,t){if(this.logger.log(`INVITE dialog ${this.id} sending MESSAGE request`),this.early)throw Error(`Dialog not confirmed.`);let n=this.createOutgoingRequestMessage(R.MESSAGE,t);return new $e(this.core,n,e)}notify(e,t){if(this.logger.log(`INVITE dialog ${this.id} sending NOTIFY request`),this.early)throw Error(`Dialog not confirmed.`);return new tt(this,e,t)}prack(e,t){return this.logger.log(`INVITE dialog ${this.id} sending PRACK request`),new it(this,e,t)}refer(e,t){if(this.logger.log(`INVITE dialog ${this.id} sending REFER request`),this.early)throw Error(`Dialog not confirmed.`);return new ct(this,e,t)}receiveRequest(e){if(this.logger.log(`INVITE dialog ${this.id} received ${e.method} request`),e.method===R.ACK){if(this.ackWait){if(this.initialTransaction instanceof Ge){this.logger.warn(`INVITE dialog ${this.id} received unexpected ${e.method} request, dropping.`);return}if(this.initialTransaction.request.cseq!==e.cseq){this.logger.warn(`INVITE dialog ${this.id} received unexpected ${e.method} request, dropping.`);return}this.ackWait=!1}else{if(!this.reinviteUserAgentServer){this.logger.warn(`INVITE dialog ${this.id} received unexpected ${e.method} request, dropping.`);return}if(this.reinviteUserAgentServer.transaction.request.cseq!==e.cseq){this.logger.warn(`INVITE dialog ${this.id} received unexpected ${e.method} request, dropping.`);return}this.reinviteUserAgentServer=void 0}if(this.signalingStateTransition(e),this.delegate&&this.delegate.onAck){let t=this.delegate.onAck({message:e});t instanceof Promise&&(this.ackProcessing=!0,t.then(()=>this.ackProcessing=!1).catch(()=>this.ackProcessing=!1))}return}if(!this.sequenceGuard(e)){this.logger.log(`INVITE dialog ${this.id} rejected out of order ${e.method} request.`);return}if(super.receiveRequest(e),e.method===R.INVITE){let t=()=>{let e=this.ackWait?`waiting for initial ACK`:`processing initial ACK`;this.logger.warn(`INVITE dialog ${this.id} received re-INVITE while ${e}`);let t=`RFC 5407 suggests the following to avoid this race condition... `;t+=` Note: Implementation issues are outside the scope of this document,`,t+=` but the following tip is provided for avoiding race conditions of`,t+=` this type. The caller can delay sending re-INVITE F6 for some period`,t+=` of time (2 seconds, perhaps), after which the caller can reasonably`,t+=` assume that its ACK has been received. Implementors can decouple the`,t+=` actions of the user (e.g., pressing the hold button) from the actions`,t+=` of the protocol (the sending of re-INVITE F6), so that the UA can`,t+=` behave like this. In this case, it is the implementor's choice as to`,t+=` how long to wait. In most cases, such an implementation may be`,t+=` useful to prevent the type of race condition shown in this section.`,t+=` This document expresses no preference about whether or not they`,t+=` should wait for an ACK to be delivered. After considering the impact`,t+=` on user experience, implementors should decide whether or not to wait`,t+=` for a while, because the user experience depends on the`,t+=` implementation and has no direct bearing on protocol behavior.`,this.logger.warn(t)},n=[`Retry-After: ${Math.floor(Math.random()*10)+1}`];if(this.ackProcessing){this.core.replyStateless(e,{statusCode:500,extraHeaders:n}),t();return}if(this.ackWait&&this.signalingState!==L.Stable){this.core.replyStateless(e,{statusCode:500,extraHeaders:n}),t();return}if(this.reinviteUserAgentServer){this.core.replyStateless(e,{statusCode:500,extraHeaders:n});return}if(this.reinviteUserAgentClient){this.core.replyStateless(e,{statusCode:491});return}}if(e.method===R.INVITE){let t=e.parseHeader(`contact`);if(!t)throw Error(`Contact undefined.`);if(!(t instanceof O))throw Error(`Contact not instance of NameAddrHeader.`);this.dialogState.remoteTarget=t.uri}switch(e.method){case R.BYE:{let t=new Xe(this,e);this.delegate&&this.delegate.onBye?this.delegate.onBye(t):t.accept(),this.dispose()}break;case R.INFO:{let t=new Qe(this,e);this.delegate&&this.delegate.onInfo?this.delegate.onInfo(t):t.reject({statusCode:469,extraHeaders:[`Recv-Info:`]})}break;case R.INVITE:{let t=new st(this,e);this.signalingStateTransition(e),this.delegate&&this.delegate.onInvite?this.delegate.onInvite(t):t.reject({statusCode:488})}break;case R.MESSAGE:{let t=new et(this.core,e);this.delegate&&this.delegate.onMessage?this.delegate.onMessage(t):t.accept()}break;case R.NOTIFY:{let t=new rt(this,e);this.delegate&&this.delegate.onNotify?this.delegate.onNotify(t):t.accept()}break;case R.PRACK:{let t=new at(this,e);this.delegate&&this.delegate.onPrack?this.delegate.onPrack(t):t.accept()}break;case R.REFER:{let t=new ut(this,e);this.delegate&&this.delegate.onRefer?this.delegate.onRefer(t):t.reject()}break;default:this.logger.log(`INVITE dialog ${this.id} received unimplemented ${e.method} request`),this.core.replyStateless(e,{statusCode:501});break}}reliableSequenceGuard(e){let t=e.statusCode;if(!t)throw Error(`Status code undefined`);if(t>100&&t<200){let t=e.getHeader(`require`),n=e.getHeader(`rseq`),r=t&&t.includes(`100rel`)&&n?Number(n):void 0;if(r){if(this.rseq&&this.rseq+1!==r)return!1;this.rseq=this.rseq?this.rseq+1:r}}return!0}signalingStateRollback(){(this._signalingState===L.HaveLocalOffer||this.signalingState===L.HaveRemoteOffer)&&this._rollbackOffer&&this._rollbackAnswer&&(this._signalingState=L.Stable,this._offer=this._rollbackOffer,this._answer=this._rollbackAnswer)}signalingStateTransition(e){let t=fe(e);if(!(!t||t.contentDisposition!==`session`)){if(this._signalingState===L.Stable&&(this._rollbackOffer=this._offer,this._rollbackAnswer=this._answer),e instanceof I)switch(this._signalingState){case L.Initial:case L.Stable:this._signalingState=L.HaveRemoteOffer,this._offer=t,this._answer=void 0;break;case L.HaveLocalOffer:this._signalingState=L.Stable,this._answer=t;break;case L.HaveRemoteOffer:break;case L.Closed:break;default:throw Error(`Unexpected signaling state.`)}if(e instanceof se)switch(this._signalingState){case L.Initial:case L.Stable:this._signalingState=L.HaveRemoteOffer,this._offer=t,this._answer=void 0;break;case L.HaveLocalOffer:this._signalingState=L.Stable,this._answer=t;break;case L.HaveRemoteOffer:break;case L.Closed:break;default:throw Error(`Unexpected signaling state.`)}if(e instanceof ce)switch(this._signalingState){case L.Initial:case L.Stable:this._signalingState=L.HaveLocalOffer,this._offer=t,this._answer=void 0;break;case L.HaveLocalOffer:break;case L.HaveRemoteOffer:this._signalingState=L.Stable,this._answer=t;break;case L.Closed:break;default:throw Error(`Unexpected signaling state.`)}if(de(e))switch(this._signalingState){case L.Initial:case L.Stable:this._signalingState=L.HaveLocalOffer,this._offer=t,this._answer=void 0;break;case L.HaveLocalOffer:break;case L.HaveRemoteOffer:this._signalingState=L.Stable,this._answer=t;break;case L.Closed:break;default:throw Error(`Unexpected signaling state.`)}}}start2xxRetransmissionTimer(){if(this.initialTransaction instanceof Ve){let e=this.initialTransaction,t=_e.T1,n=()=>{if(!this.ackWait){this.invite2xxTimer=void 0;return}this.logger.log(`No ACK for 2xx response received, attempting retransmission`),e.retransmitAcceptedResponse(),t=Math.min(t*2,_e.T2),this.invite2xxTimer=setTimeout(n,t)};this.invite2xxTimer=setTimeout(n,t);let r=()=>{e.state===U.Terminated&&(e.removeStateChangeListener(r),this.invite2xxTimer&&=(clearTimeout(this.invite2xxTimer),void 0),this.ackWait&&(this.delegate&&this.delegate.onAckTimeout?this.delegate.onAckTimeout():this.bye()))};e.addStateChangeListener(r)}}startReInvite2xxRetransmissionTimer(){if(this.reinviteUserAgentServer&&this.reinviteUserAgentServer.transaction instanceof Ve){let e=this.reinviteUserAgentServer.transaction,t=_e.T1,n=()=>{if(!this.reinviteUserAgentServer){this.invite2xxTimer=void 0;return}this.logger.log(`No ACK for 2xx response received, attempting retransmission`),e.retransmitAcceptedResponse(),t=Math.min(t*2,_e.T2),this.invite2xxTimer=setTimeout(n,t)};this.invite2xxTimer=setTimeout(n,t);let r=()=>{e.state===U.Terminated&&(e.removeStateChangeListener(r),this.invite2xxTimer&&=(clearTimeout(this.invite2xxTimer),void 0),this.reinviteUserAgentServer)};e.addStateChangeListener(r)}}},ft=class extends Ke{constructor(e,t,n){super(Ge,e,t,n),this.confirmedDialogAcks=new Map,this.confirmedDialogs=new Map,this.earlyDialogs=new Map,this.delegate=n}dispose(){this.earlyDialogs.forEach(e=>e.dispose()),this.earlyDialogs.clear(),super.dispose()}onTransportError(e){if(this.transaction.state===U.Calling)return super.onTransportError(e);this.logger.error(e.message),this.logger.error(`User agent client request transport error while sending ACK.`)}receiveResponse(e){if(!this.authenticationGuard(e))return;let t=e.statusCode?e.statusCode.toString():``;if(!t)throw Error(`Response status code undefined.`);switch(!0){case/^100$/.test(t):this.delegate&&this.delegate.onTrying&&this.delegate.onTrying({message:e});return;case/^1[0-9]{2}$/.test(t):{if(!e.toTag){this.logger.warn(`Non-100 1xx INVITE response received without a to tag, dropping.`);return}if(!e.parseHeader(`contact`)){this.logger.error(`Non-100 1xx INVITE response received without a Contact header field, dropping.`);return}let t=We.initialDialogStateForUserAgentClient(this.message,e),n=this.earlyDialogs.get(t.id);if(!n){let e=this.transaction;if(!(e instanceof Ge))throw Error(`Transaction not instance of InviteClientTransaction.`);n=new dt(e,this.core,t),this.earlyDialogs.set(n.id,n)}if(!n.reliableSequenceGuard(e)){this.logger.warn(`1xx INVITE reliable response received out of order or is a retransmission, dropping.`);return}(n.signalingState===L.Initial||n.signalingState===L.HaveLocalOffer)&&n.signalingStateTransition(e);let r=n;this.delegate&&this.delegate.onProgress&&this.delegate.onProgress({message:e,session:r,prack:e=>r.prack(void 0,e)})}return;case/^2[0-9]{2}$/.test(t):{if(!e.toTag){this.logger.error(`2xx INVITE response received without a to tag, dropping.`);return}if(!e.parseHeader(`contact`)){this.logger.error(`2xx INVITE response received without a Contact header field, dropping.`);return}let t=We.initialDialogStateForUserAgentClient(this.message,e),n=this.confirmedDialogs.get(t.id);if(n){let e=this.confirmedDialogAcks.get(t.id);if(e){let t=this.transaction;if(!(t instanceof Ge))throw Error(`Client transaction not instance of InviteClientTransaction.`);t.ackResponse(e.message)}return}if(n=this.earlyDialogs.get(t.id),n)n.confirm(),n.recomputeRouteSet(e),this.earlyDialogs.delete(n.id),this.confirmedDialogs.set(n.id,n);else{let e=this.transaction;if(!(e instanceof Ge))throw Error(`Transaction not instance of InviteClientTransaction.`);n=new dt(e,this.core,t),this.confirmedDialogs.set(n.id,n)}(n.signalingState===L.Initial||n.signalingState===L.HaveLocalOffer)&&n.signalingStateTransition(e);let r=n;if(this.delegate&&this.delegate.onAccept)this.delegate.onAccept({message:e,session:r,ack:e=>{let t=r.ack(e);return this.confirmedDialogAcks.set(r.id,t),t}});else{let e=r.ack();this.confirmedDialogAcks.set(r.id,e)}}return;case/^3[0-9]{2}$/.test(t):this.earlyDialogs.forEach(e=>e.dispose()),this.earlyDialogs.clear(),this.delegate&&this.delegate.onRedirect&&this.delegate.onRedirect({message:e});return;case/^[4-6][0-9]{2}$/.test(t):this.earlyDialogs.forEach(e=>e.dispose()),this.earlyDialogs.clear(),this.delegate&&this.delegate.onReject&&this.delegate.onReject({message:e});return;default:throw Error(`Invalid status code ${t}`)}throw Error(`Executing what should be an unreachable code path receiving ${t} response.`)}},pt=class extends Ye{constructor(e,t,n){super(Ve,e,t,n),this.core=e}dispose(){this.earlyDialog&&this.earlyDialog.dispose(),super.dispose()}accept(e={statusCode:200}){if(!this.acceptable)throw new ve(`${this.message.method} not acceptable in state ${this.transaction.state}.`);if(!this.confirmedDialog)if(this.earlyDialog)this.earlyDialog.confirm(),this.confirmedDialog=this.earlyDialog,this.earlyDialog=void 0;else{let e=this.transaction;if(!(e instanceof Ve))throw Error(`Transaction not instance of InviteClientTransaction.`);let t=We.initialDialogStateForUserAgentServer(this.message,this.toTag);this.confirmedDialog=new dt(e,this.core,t)}let t=this.message.getHeaders(`record-route`).map(e=>`Record-Route: ${e}`),n=`Contact: ${this.core.configuration.contact.toString()}`,r=`Allow: `+ye.toString();if(!e.body){if(this.confirmedDialog.signalingState===L.Stable)e.body=this.confirmedDialog.answer;else if(this.confirmedDialog.signalingState===L.Initial||this.confirmedDialog.signalingState===L.HaveRemoteOffer)throw Error(`Response must have a body.`)}e.statusCode=e.statusCode||200,e.extraHeaders=e.extraHeaders||[],e.extraHeaders=e.extraHeaders.concat(t),e.extraHeaders.push(r),e.extraHeaders.push(n);let i=super.accept(e),a=this.confirmedDialog,o=Object.assign(Object.assign({},i),{session:a});return e.body&&this.confirmedDialog.signalingState!==L.Stable&&this.confirmedDialog.signalingStateTransition(e.body),o}progress(e={statusCode:180}){if(!this.progressable)throw new ve(`${this.message.method} not progressable in state ${this.transaction.state}.`);if(!this.earlyDialog){let e=this.transaction;if(!(e instanceof Ve))throw Error(`Transaction not instance of InviteClientTransaction.`);let t=We.initialDialogStateForUserAgentServer(this.message,this.toTag,!0);this.earlyDialog=new dt(e,this.core,t)}let t=this.message.getHeaders(`record-route`).map(e=>`Record-Route: ${e}`),n=`Contact: ${this.core.configuration.contact}`;e.extraHeaders=e.extraHeaders||[],e.extraHeaders=e.extraHeaders.concat(t),e.extraHeaders.push(n);let r=super.progress(e),i=this.earlyDialog,a=Object.assign(Object.assign({},r),{session:i});return e.body&&this.earlyDialog.signalingState!==L.Stable&&this.earlyDialog.signalingStateTransition(e.body),a}redirect(e,t={statusCode:302}){return super.redirect(e,t)}reject(e={statusCode:486}){return super.reject(e)}},mt=class extends Ke{constructor(e,t,n){super(Ue,e,t,n)}},ht=class extends Ke{constructor(e,t,n){super(Ue,e,t,n)}},gt=class extends Ye{constructor(e,t,n){super(Je,e,t,n),this.core=e}},_t=class extends Ke{constructor(e,t,n){let r=e.createOutgoingRequestMessage(R.SUBSCRIBE,n);super(Ue,e.userAgentCore,r,t),this.dialog=e}waitNotifyStop(){}receiveResponse(e){if(e.statusCode&&e.statusCode>=200&&e.statusCode<300){let t=e.getHeader(`Expires`);if(!t)this.logger.warn(`Expires header missing in a 200-class response to SUBSCRIBE`);else{let e=Number(t);this.dialog.subscriptionExpires>e&&(this.dialog.subscriptionExpires=e)}}e.statusCode&&e.statusCode>=400&&e.statusCode<700&&[404,405,410,416,480,481,482,483,484,485,489,501,604].includes(e.statusCode)&&this.dialog.terminate(),super.receiveResponse(e)}},vt=class extends We{constructor(e,t,n,r,i,a){super(r,i),this.delegate=a,this._autoRefresh=!1,this._subscriptionEvent=e,this._subscriptionExpires=t,this._subscriptionExpiresInitial=t,this._subscriptionExpiresLastSet=Math.floor(Date.now()/1e3),this._subscriptionRefresh=void 0,this._subscriptionRefreshLastSet=void 0,this._subscriptionState=n,this.logger=r.loggerFactory.getLogger(`sip.subscribe-dialog`),this.logger.log(`SUBSCRIBE dialog ${this.id} constructed`)}static initialDialogStateForSubscription(e,t){let n=t.getHeaders(`record-route`),r=t.parseHeader(`contact`);if(!r)throw Error(`Contact undefined.`);if(!(r instanceof O))throw Error(`Contact not instance of NameAddrHeader.`);let i=r.uri,a=e.cseq,o=e.callId,s=e.fromTag,c=t.fromTag;if(!o)throw Error(`Call id undefined.`);if(!s)throw Error(`From tag undefined.`);if(!c)throw Error(`To tag undefined.`);if(!e.from)throw Error(`From undefined.`);if(!e.to)throw Error(`To undefined.`);let l=e.from.uri,u=e.to.uri;return{id:o+s+c,early:!1,callId:o,localTag:s,remoteTag:c,localSequenceNumber:a,remoteSequenceNumber:void 0,localURI:l,remoteURI:u,remoteTarget:i,routeSet:n,secure:!1}}dispose(){super.dispose(),this.N&&=(clearTimeout(this.N),void 0),this.refreshTimerClear(),this.logger.log(`SUBSCRIBE dialog ${this.id} destroyed`)}get autoRefresh(){return this._autoRefresh}set autoRefresh(e){this._autoRefresh=!0,this.refreshTimerSet()}get subscriptionEvent(){return this._subscriptionEvent}get subscriptionExpires(){let e=Math.floor(Date.now()/1e3)-this._subscriptionExpiresLastSet,t=this._subscriptionExpires-e;return Math.max(t,0)}set subscriptionExpires(e){if(e<0)throw Error(`Expires must be greater than or equal to zero.`);if(this._subscriptionExpires=e,this._subscriptionExpiresLastSet=Math.floor(Date.now()/1e3),this.autoRefresh){let t=this.subscriptionRefresh;(t===void 0||t>=e)&&this.refreshTimerSet()}}get subscriptionExpiresInitial(){return this._subscriptionExpiresInitial}get subscriptionRefresh(){if(this._subscriptionRefresh===void 0||this._subscriptionRefreshLastSet===void 0)return;let e=Math.floor(Date.now()/1e3)-this._subscriptionRefreshLastSet,t=this._subscriptionRefresh-e;return Math.max(t,0)}get subscriptionState(){return this._subscriptionState}receiveRequest(e){if(this.logger.log(`SUBSCRIBE dialog ${this.id} received ${e.method} request`),!this.sequenceGuard(e)){this.logger.log(`SUBSCRIBE dialog ${this.id} rejected out of order ${e.method} request.`);return}switch(super.receiveRequest(e),e.method){case R.NOTIFY:this.onNotify(e);break;default:this.logger.log(`SUBSCRIBE dialog ${this.id} received unimplemented ${e.method} request`),this.core.replyStateless(e,{statusCode:501});break}}refresh(){let e=`Allow: `+ye.toString(),t={};return t.extraHeaders=(t.extraHeaders||[]).slice(),t.extraHeaders.push(e),t.extraHeaders.push(`Event: `+this.subscriptionEvent),t.extraHeaders.push(`Expires: `+this.subscriptionExpiresInitial),t.extraHeaders.push(`Contact: `+this.core.configuration.contact.toString()),this.subscribe(void 0,t)}subscribe(e,t={}){if(this.subscriptionState!==V.Pending&&this.subscriptionState!==V.Active)throw Error(`Invalid state ${this.subscriptionState}. May only re-subscribe while in state "pending" or "active".`);this.logger.log(`SUBSCRIBE dialog ${this.id} sending SUBSCRIBE request`);let n=new _t(this,e,t);return this.N&&=(clearTimeout(this.N),void 0),t.extraHeaders?.includes(`Expires: 0`)||(this.N=setTimeout(()=>this.timerN(),_e.TIMER_N)),n}terminate(){this.stateTransition(V.Terminated),this.onTerminated()}unsubscribe(){let e=`Allow: `+ye.toString(),t={};return t.extraHeaders=(t.extraHeaders||[]).slice(),t.extraHeaders.push(e),t.extraHeaders.push(`Event: `+this.subscriptionEvent),t.extraHeaders.push(`Expires: 0`),t.extraHeaders.push(`Contact: `+this.core.configuration.contact.toString()),this.subscribe(void 0,t)}onNotify(e){let t=e.parseHeader(`Event`).event;if(!t||t!==this.subscriptionEvent){this.core.replyStateless(e,{statusCode:489});return}this.N&&=(clearTimeout(this.N),void 0);let n=e.parseHeader(`Subscription-State`);if(!n||!n.state){this.core.replyStateless(e,{statusCode:489});return}let r=n.state,i=n.expires?Math.max(n.expires,0):void 0;switch(r){case`pending`:this.stateTransition(V.Pending,i);break;case`active`:this.stateTransition(V.Active,i);break;case`terminated`:this.stateTransition(V.Terminated,i);break;default:this.logger.warn(`Unrecognized subscription state.`);break}let a=new rt(this,e);this.delegate&&this.delegate.onNotify?this.delegate.onNotify(a):a.accept()}onRefresh(e){this.delegate&&this.delegate.onRefresh&&this.delegate.onRefresh(e)}onTerminated(){this.delegate&&this.delegate.onTerminated&&this.delegate.onTerminated()}refreshTimerClear(){this.refreshTimer&&=(clearTimeout(this.refreshTimer),void 0)}refreshTimerSet(){if(this.refreshTimerClear(),this.autoRefresh&&this.subscriptionExpires>0){let e=this.subscriptionExpires*900;this._subscriptionRefresh=Math.floor(e/1e3),this._subscriptionRefreshLastSet=Math.floor(Date.now()/1e3),this.refreshTimer=setTimeout(()=>{this.refreshTimer=void 0,this._subscriptionRefresh=void 0,this._subscriptionRefreshLastSet=void 0,this.onRefresh(this.refresh())},e)}}stateTransition(e,t){let n=()=>{this.logger.warn(`Invalid subscription state transition from ${this.subscriptionState} to ${e}`)};switch(e){case V.Initial:n();return;case V.NotifyWait:n();return;case V.Pending:if(this.subscriptionState!==V.NotifyWait&&this.subscriptionState!==V.Pending){n();return}break;case V.Active:if(this.subscriptionState!==V.NotifyWait&&this.subscriptionState!==V.Pending&&this.subscriptionState!==V.Active){n();return}break;case V.Terminated:if(this.subscriptionState!==V.NotifyWait&&this.subscriptionState!==V.Pending&&this.subscriptionState!==V.Active){n();return}break;default:n();return}e===V.Pending&&t&&(this.subscriptionExpires=t),e===V.Active&&t&&(this.subscriptionExpires=t),e===V.Terminated&&this.dispose(),this._subscriptionState=e}timerN(){this.logger.warn(`Timer N expired for SUBSCRIBE dialog. Timed out waiting for NOTIFY.`),this.subscriptionState!==V.Terminated&&(this.stateTransition(V.Terminated),this.onTerminated())}},yt=class extends Ke{constructor(e,t,n){let r=t.getHeader(`Event`);if(!r)throw Error(`Event undefined`);let i=t.getHeader(`Expires`);if(!i)throw Error(`Expires undefined`);super(Ue,e,t,n),this.delegate=n,this.subscriberId=t.callId+t.fromTag+r,this.subscriptionExpiresRequested=this.subscriptionExpires=Number(i),this.subscriptionEvent=r,this.subscriptionState=V.NotifyWait,this.waitNotifyStart()}dispose(){super.dispose()}onNotify(e){let t=e.message.parseHeader(`Event`).event;if(!t||t!==this.subscriptionEvent){this.logger.warn(`Failed to parse event.`),e.reject({statusCode:489});return}let n=e.message.parseHeader(`Subscription-State`);if(!n||!n.state){this.logger.warn(`Failed to parse subscription state.`),e.reject({statusCode:489});return}let r=n.state;switch(r){case`pending`:break;case`active`:break;case`terminated`:break;default:this.logger.warn(`Invalid subscription state ${r}`),e.reject({statusCode:489});return}if(r!==`terminated`&&!e.message.parseHeader(`contact`)){this.logger.warn(`Failed to parse contact.`),e.reject({statusCode:489});return}if(this.dialog)throw Error(`Dialog already created. This implementation only supports install of single subscriptions.`);switch(this.waitNotifyStop(),this.subscriptionExpires=n.expires?Math.min(this.subscriptionExpires,Math.max(n.expires,0)):this.subscriptionExpires,r){case`pending`:this.subscriptionState=V.Pending;break;case`active`:this.subscriptionState=V.Active;break;case`terminated`:this.subscriptionState=V.Terminated;break;default:throw Error(`Unrecognized state ${r}.`)}if(this.subscriptionState!==V.Terminated){let t=vt.initialDialogStateForSubscription(this.message,e.message);this.dialog=new vt(this.subscriptionEvent,this.subscriptionExpires,this.subscriptionState,this.core,t)}if(this.delegate&&this.delegate.onNotify){let t=e,n=this.dialog;this.delegate.onNotify({request:t,subscription:n})}else e.accept()}waitNotifyStart(){this.N||=(this.core.subscribers.set(this.subscriberId,this),setTimeout(()=>this.timerN(),_e.TIMER_N))}waitNotifyStop(){this.N&&=(this.core.subscribers.delete(this.subscriberId),clearTimeout(this.N),void 0)}receiveResponse(e){if(this.authenticationGuard(e)){if(e.statusCode&&e.statusCode>=200&&e.statusCode<300){let t=e.getHeader(`Expires`);if(!t)this.logger.warn(`Expires header missing in a 200-class response to SUBSCRIBE`);else{let e=Number(t);e>this.subscriptionExpiresRequested&&this.logger.warn(`Expires header in a 200-class response to SUBSCRIBE with a higher value than the one in the request`),e<this.subscriptionExpires&&(this.subscriptionExpires=e)}this.dialog&&this.dialog.subscriptionExpires>this.subscriptionExpires&&(this.dialog.subscriptionExpires=this.subscriptionExpires)}e.statusCode&&e.statusCode>=300&&e.statusCode<700&&this.waitNotifyStop(),super.receiveResponse(e)}}timerN(){this.logger.warn(`Timer N expired for SUBSCRIBE user agent client. Timed out waiting for NOTIFY.`),this.waitNotifyStop(),this.delegate&&this.delegate.onNotifyTimeout&&this.delegate.onNotifyTimeout()}},bt=class extends Ye{constructor(e,t,n){super(Je,e,t,n),this.core=e}},xt=[`application/sdp`,`application/dtmf-relay`],St=class{constructor(e,t={}){this.userAgentClients=new Map,this.userAgentServers=new Map,this.configuration=e,this.delegate=t,this.dialogs=new Map,this.subscribers=new Map,this.logger=e.loggerFactory.getLogger(`sip.user-agent-core`)}dispose(){this.reset()}reset(){this.dialogs.forEach(e=>e.dispose()),this.dialogs.clear(),this.subscribers.forEach(e=>e.dispose()),this.subscribers.clear(),this.userAgentClients.forEach(e=>e.dispose()),this.userAgentClients.clear(),this.userAgentServers.forEach(e=>e.dispose()),this.userAgentServers.clear()}get loggerFactory(){return this.configuration.loggerFactory}get transport(){let e=this.configuration.transportAccessor();if(!e)throw Error(`Transport undefined.`);return e}invite(e,t){return new ft(this,e,t)}message(e,t){return new $e(this,e,t)}publish(e,t){return new mt(this,e,t)}register(e,t){return new ht(this,e,t)}subscribe(e,t){return new yt(this,e,t)}request(e,t){return new Ke(Ue,this,e,t)}makeOutgoingRequestMessage(e,t,n,r,i,a,o){let s=this.configuration.sipjsId,c=this.configuration.displayName,l=this.configuration.viaForceRport,u=this.configuration.hackViaTcp,d=this.configuration.supportedOptionTags.slice();e===R.REGISTER&&d.push(`path`,`gruu`),e===R.INVITE&&(this.configuration.contact.pubGruu||this.configuration.contact.tempGruu)&&d.push(`gruu`);let f={callIdPrefix:s,forceRport:l,fromDisplayName:c,hackViaTcp:u,optionTags:d,routeSet:this.configuration.routeSet,userAgentString:this.configuration.userAgentHeaderFieldValue,viaHost:this.configuration.viaHost};return new ce(e,t,n,r,Object.assign(Object.assign({},f),i),a,o)}receiveIncomingRequestFromTransport(e){this.receiveRequestFromTransport(e)}receiveIncomingResponseFromTransport(e){this.receiveResponseFromTransport(e)}replyStateless(e,t){let n=this.configuration.userAgentHeaderFieldValue,r=this.configuration.supportedOptionTagsResponse;t=Object.assign(Object.assign({},t),{userAgent:n,supported:r});let i=Le(e,t);return this.transport.send(i.message).catch(t=>{t instanceof Error&&this.logger.error(t.message),this.logger.error(`Transport error occurred sending stateless reply to ${e.method} request.`)}),i}receiveRequestFromTransport(e){let t=e.viaBranch,n=this.userAgentServers.get(t);if(e.method===R.ACK&&n&&n.transaction.state===U.Accepted&&n instanceof pt){this.logger.warn(`Discarding out of dialog ACK after 2xx response sent on transaction ${t}.`);return}if(e.method===R.CANCEL){n?(this.replyStateless(e,{statusCode:200}),n.transaction instanceof Ve&&n.transaction.state===U.Proceeding&&n instanceof pt&&n.receiveCancel(e)):this.replyStateless(e,{statusCode:481});return}if(n){n.transaction.receiveRequest(e);return}this.receiveRequest(e)}receiveRequest(e){if(!ye.includes(e.method)){let t=`Allow: `+ye.toString();this.replyStateless(e,{statusCode:405,extraHeaders:[t]});return}if(!e.ruri)throw Error(`Request-URI undefined.`);if(e.ruri.scheme!==`sip`){this.replyStateless(e,{statusCode:416});return}let t=e.ruri,n=e=>!!e&&e.user===t.user;if(!n(this.configuration.aor)&&!(n(this.configuration.contact.uri)||n(this.configuration.contact.pubGruu)||n(this.configuration.contact.tempGruu))){this.logger.warn(`Request-URI does not point to us.`),e.method!==R.ACK&&this.replyStateless(e,{statusCode:404});return}if(e.method===R.INVITE&&!e.hasHeader(`Contact`)){this.replyStateless(e,{statusCode:400,reasonPhrase:`Missing Contact Header`});return}if(!e.toTag){let t=e.viaBranch;if(!this.userAgentServers.has(t)&&Array.from(this.userAgentServers.values()).some(t=>t.transaction.request.fromTag===e.fromTag&&t.transaction.request.callId===e.callId&&t.transaction.request.cseq===e.cseq)){this.replyStateless(e,{statusCode:482});return}}e.toTag?this.receiveInsideDialogRequest(e):this.receiveOutsideDialogRequest(e)}receiveInsideDialogRequest(e){if(e.method===R.NOTIFY){let t=e.parseHeader(`Event`);if(!t||!t.event){this.replyStateless(e,{statusCode:489});return}let n=e.callId+e.toTag+t.event,r=this.subscribers.get(n);if(r){let t=new rt(this,e);r.onNotify(t);return}}let t=e.callId+e.toTag+e.fromTag,n=this.dialogs.get(t);if(n){if(e.method===R.OPTIONS){let t=`Allow: `+ye.toString(),n=`Accept: `+xt.toString();this.replyStateless(e,{statusCode:200,extraHeaders:[t,n]});return}n.receiveRequest(e);return}e.method!==R.ACK&&this.replyStateless(e,{statusCode:481})}receiveOutsideDialogRequest(e){switch(e.method){case R.ACK:break;case R.BYE:this.replyStateless(e,{statusCode:481});break;case R.CANCEL:throw Error(`Unexpected out of dialog request method ${e.method}.`);case R.INFO:this.replyStateless(e,{statusCode:405});break;case R.INVITE:{let t=new pt(this,e);this.delegate.onInvite?this.delegate.onInvite(t):t.reject()}break;case R.MESSAGE:{let t=new et(this,e);this.delegate.onMessage?this.delegate.onMessage(t):t.accept()}break;case R.NOTIFY:{let t=new rt(this,e);this.delegate.onNotify?this.delegate.onNotify(t):t.reject({statusCode:405})}break;case R.OPTIONS:{let t=`Allow: `+ye.toString(),n=`Accept: `+xt.toString();this.replyStateless(e,{statusCode:200,extraHeaders:[t,n]})}break;case R.REFER:{let t=new ut(this,e);this.delegate.onRefer?this.delegate.onRefer(t):t.reject({statusCode:405})}break;case R.REGISTER:{let t=new gt(this,e);this.delegate.onRegister?this.delegate.onRegister(t):t.reject({statusCode:405})}break;case R.SUBSCRIBE:{let t=new bt(this,e);this.delegate.onSubscribe?this.delegate.onSubscribe(t):t.reject({statusCode:480})}break;default:throw Error(`Unexpected out of dialog request method ${e.method}.`)}}receiveResponseFromTransport(e){if(e.getHeaders(`via`).length>1){this.logger.warn(`More than one Via header field present in the response, dropping`);return}let t=e.viaBranch+e.method,n=this.userAgentClients.get(t);n?n.transaction.receiveResponse(e):this.logger.warn(`Discarding unmatched ${e.statusCode} response to ${e.method} ${t}.`)}};function Ct(){return e=>!e.audio&&!e.video?Promise.resolve(new MediaStream):navigator.mediaDevices===void 0?Promise.reject(Error(`Media devices not available in insecure contexts.`)):navigator.mediaDevices.getUserMedia.call(navigator.mediaDevices,e)}function wt(){return{bundlePolicy:`balanced`,certificates:void 0,iceCandidatePoolSize:0,iceServers:[{urls:`stun:stun.l.google.com:19302`}],iceTransportPolicy:`all`,rtcpMuxPolicy:`require`}}var Tt=class e{constructor(e,t,n){e.debug(`SessionDescriptionHandler.constructor`),this.logger=e,this.mediaStreamFactory=t,this.sessionDescriptionHandlerConfiguration=n,this._localMediaStream=new MediaStream,this._remoteMediaStream=new MediaStream,this._peerConnection=new RTCPeerConnection(n?.peerConnectionConfiguration),this.initPeerConnectionEventHandlers()}get localMediaStream(){return this._localMediaStream}get remoteMediaStream(){return this._remoteMediaStream}get dataChannel(){return this._dataChannel}get peerConnection(){return this._peerConnection}get peerConnectionDelegate(){return this._peerConnectionDelegate}set peerConnectionDelegate(e){this._peerConnectionDelegate=e}static dispatchAddTrackEvent(e,t){e.dispatchEvent(new MediaStreamTrackEvent(`addtrack`,{track:t}))}static dispatchRemoveTrackEvent(e,t){e.dispatchEvent(new MediaStreamTrackEvent(`removetrack`,{track:t}))}close(){this.logger.debug(`SessionDescriptionHandler.close`),this._peerConnection!==void 0&&(this._peerConnection.getReceivers().forEach(e=>{e.track&&e.track.stop()}),this._peerConnection.getSenders().forEach(e=>{e.track&&e.track.stop()}),this._dataChannel&&this._dataChannel.close(),this._peerConnection.close(),this._peerConnection=void 0)}enableReceiverTracks(e){let t=this.peerConnection;if(!t)throw Error(`Peer connection closed.`);t.getReceivers().forEach(t=>{t.track&&(t.track.enabled=e)})}enableSenderTracks(e){let t=this.peerConnection;if(!t)throw Error(`Peer connection closed.`);t.getSenders().forEach(t=>{t.track&&(t.track.enabled=e)})}getDescription(e,t){if(this.logger.debug(`SessionDescriptionHandler.getDescription`),this._peerConnection===void 0)return Promise.reject(Error(`Peer connection closed.`));this.onDataChannel=e?.onDataChannel;let n=e?.offerOptions?.iceRestart,r=e?.iceGatheringTimeout===void 0?this.sessionDescriptionHandlerConfiguration?.iceGatheringTimeout:e?.iceGatheringTimeout;return this.getLocalMediaStream(e).then(()=>this.updateDirection(e)).then(()=>this.createDataChannel(e)).then(()=>this.createLocalOfferOrAnswer(e)).then(e=>this.applyModifiers(e,t)).then(e=>this.setLocalSessionDescription(e)).then(()=>this.waitForIceGatheringComplete(n,r)).then(()=>this.getLocalSessionDescription()).then(e=>({body:e.sdp,contentType:`application/sdp`})).catch(e=>{throw this.logger.error(`SessionDescriptionHandler.getDescription failed - `+e),e})}hasDescription(e){return this.logger.debug(`SessionDescriptionHandler.hasDescription`),e===`application/sdp`}iceGatheringComplete(){this.logger.debug(`SessionDescriptionHandler.iceGatheringComplete`),this.iceGatheringCompleteTimeoutId!==void 0&&(this.logger.debug(`SessionDescriptionHandler.iceGatheringComplete - clearing timeout`),clearTimeout(this.iceGatheringCompleteTimeoutId),this.iceGatheringCompleteTimeoutId=void 0),this.iceGatheringCompletePromise!==void 0&&(this.logger.debug(`SessionDescriptionHandler.iceGatheringComplete - resolving promise`),this.iceGatheringCompleteResolve&&this.iceGatheringCompleteResolve(),this.iceGatheringCompletePromise=void 0,this.iceGatheringCompleteResolve=void 0,this.iceGatheringCompleteReject=void 0)}sendDtmf(e,t){if(this.logger.debug(`SessionDescriptionHandler.sendDtmf`),this._peerConnection===void 0)return this.logger.error(`SessionDescriptionHandler.sendDtmf failed - peer connection closed`),!1;let n=this._peerConnection.getSenders();if(n.length===0)return this.logger.error(`SessionDescriptionHandler.sendDtmf failed - no senders`),!1;let r=n[0].dtmf;if(!r)return this.logger.error(`SessionDescriptionHandler.sendDtmf failed - no DTMF sender`),!1;let i=t?.duration,a=t?.interToneGap;try{r.insertDTMF(e,i,a)}catch(e){return this.logger.error(e.toString()),!1}return this.logger.log(`SessionDescriptionHandler.sendDtmf sent via RTP: `+e.toString()),!0}setDescription(e,t,n){if(this.logger.debug(`SessionDescriptionHandler.setDescription`),this._peerConnection===void 0)return Promise.reject(Error(`Peer connection closed.`));this.onDataChannel=t?.onDataChannel;let r=this._peerConnection.signalingState===`have-local-offer`?`answer`:`offer`;return this.getLocalMediaStream(t).then(()=>this.applyModifiers({sdp:e,type:r},n)).then(e=>this.setRemoteSessionDescription(e)).catch(e=>{throw this.logger.error(`SessionDescriptionHandler.setDescription failed - `+e),e})}applyModifiers(e,t){return this.logger.debug(`SessionDescriptionHandler.applyModifiers`),!t||t.length===0?Promise.resolve(e):t.reduce((e,t)=>e.then(t),Promise.resolve(e)).then(e=>{if(this.logger.debug(`SessionDescriptionHandler.applyModifiers - modified sdp`),!e.sdp||!e.type)throw Error(`Invalid SDP.`);return{sdp:e.sdp,type:e.type}})}createDataChannel(e){if(this._peerConnection===void 0)return Promise.reject(Error(`Peer connection closed.`));if(e?.dataChannel!==!0||this._dataChannel)return Promise.resolve();switch(this._peerConnection.signalingState){case`stable`:this.logger.debug(`SessionDescriptionHandler.createDataChannel - creating data channel`);try{return this._dataChannel=this._peerConnection.createDataChannel(e?.dataChannelLabel||``,e?.dataChannelOptions),this.onDataChannel&&this.onDataChannel(this._dataChannel),Promise.resolve()}catch(e){return Promise.reject(e)}case`have-remote-offer`:return Promise.resolve();case`have-local-offer`:case`have-local-pranswer`:case`have-remote-pranswer`:case`closed`:default:return Promise.reject(Error(`Invalid signaling state `+this._peerConnection.signalingState))}}createLocalOfferOrAnswer(e){if(this._peerConnection===void 0)return Promise.reject(Error(`Peer connection closed.`));switch(this._peerConnection.signalingState){case`stable`:return this.logger.debug(`SessionDescriptionHandler.createLocalOfferOrAnswer - creating SDP offer`),this._peerConnection.createOffer(e?.offerOptions);case`have-remote-offer`:return this.logger.debug(`SessionDescriptionHandler.createLocalOfferOrAnswer - creating SDP answer`),this._peerConnection.createAnswer(e?.answerOptions);case`have-local-offer`:case`have-local-pranswer`:case`have-remote-pranswer`:case`closed`:default:return Promise.reject(Error(`Invalid signaling state `+this._peerConnection.signalingState))}}getLocalMediaStream(e){if(this.logger.debug(`SessionDescriptionHandler.getLocalMediaStream`),this._peerConnection===void 0)return Promise.reject(Error(`Peer connection closed.`));let t=Object.assign({},e?.constraints);if(this.localMediaStreamConstraints){if(t.audio=t.audio||this.localMediaStreamConstraints.audio,t.video=t.video||this.localMediaStreamConstraints.video,JSON.stringify(this.localMediaStreamConstraints.audio)===JSON.stringify(t.audio)&&JSON.stringify(this.localMediaStreamConstraints.video)===JSON.stringify(t.video))return Promise.resolve()}else t.audio===void 0&&t.video===void 0&&(t={audio:!0});return this.localMediaStreamConstraints=t,this.mediaStreamFactory(t,this,e).then(e=>this.setLocalMediaStream(e))}setLocalMediaStream(t){if(this.logger.debug(`SessionDescriptionHandler.setLocalMediaStream`),!this._peerConnection)throw Error(`Peer connection undefined.`);let n=this._peerConnection,r=this._localMediaStream,i=[],a=t=>{let a=t.kind;if(a!==`audio`&&a!==`video`)throw Error(`Unknown new track kind ${a}.`);let o=n.getSenders().find(e=>e.track&&e.track.kind===a);o?i.push(new Promise(e=>{this.logger.debug(`SessionDescriptionHandler.setLocalMediaStream - replacing sender ${a} track`),e()}).then(()=>o.replaceTrack(t).then(()=>{let n=r.getTracks().find(e=>e.kind===a);n&&(n.stop(),r.removeTrack(n),e.dispatchRemoveTrackEvent(r,n)),r.addTrack(t),e.dispatchAddTrackEvent(r,t)}).catch(e=>{throw this.logger.error(`SessionDescriptionHandler.setLocalMediaStream - failed to replace sender ${a} track`),e}))):i.push(new Promise(e=>{this.logger.debug(`SessionDescriptionHandler.setLocalMediaStream - adding sender ${a} track`),e()}).then(()=>{try{n.addTrack(t,r)}catch(e){throw this.logger.error(`SessionDescriptionHandler.setLocalMediaStream - failed to add sender ${a} track`),e}r.addTrack(t),e.dispatchAddTrackEvent(r,t)}))},o=t.getAudioTracks();o.length&&a(o[0]);let s=t.getVideoTracks();return s.length&&a(s[0]),i.reduce((e,t)=>e.then(()=>t),Promise.resolve())}getLocalSessionDescription(){if(this.logger.debug(`SessionDescriptionHandler.getLocalSessionDescription`),this._peerConnection===void 0)return Promise.reject(Error(`Peer connection closed.`));let e=this._peerConnection.localDescription;return e?Promise.resolve(e):Promise.reject(Error(`Failed to get local session description`))}setLocalSessionDescription(e){return this.logger.debug(`SessionDescriptionHandler.setLocalSessionDescription`),this._peerConnection===void 0?Promise.reject(Error(`Peer connection closed.`)):this._peerConnection.setLocalDescription(e)}setRemoteSessionDescription(e){if(this.logger.debug(`SessionDescriptionHandler.setRemoteSessionDescription`),this._peerConnection===void 0)return Promise.reject(Error(`Peer connection closed.`));let t=e.sdp,n;switch(this._peerConnection.signalingState){case`stable`:n=`offer`;break;case`have-local-offer`:n=`answer`;break;case`have-local-pranswer`:case`have-remote-offer`:case`have-remote-pranswer`:case`closed`:default:return Promise.reject(Error(`Invalid signaling state `+this._peerConnection.signalingState))}return t?this._peerConnection.setRemoteDescription({sdp:t,type:n}):(this.logger.error(`SessionDescriptionHandler.setRemoteSessionDescription failed - cannot set null sdp`),Promise.reject(Error(`SDP is undefined`)))}setRemoteTrack(t){this.logger.debug(`SessionDescriptionHandler.setRemoteTrack`);let n=this._remoteMediaStream;n.getTrackById(t.id)?this.logger.debug(`SessionDescriptionHandler.setRemoteTrack - have remote ${t.kind} track`):t.kind===`audio`?(this.logger.debug(`SessionDescriptionHandler.setRemoteTrack - adding remote ${t.kind} track`),n.getAudioTracks().forEach(t=>{t.stop(),n.removeTrack(t),e.dispatchRemoveTrackEvent(n,t)}),n.addTrack(t),e.dispatchAddTrackEvent(n,t)):t.kind===`video`&&(this.logger.debug(`SessionDescriptionHandler.setRemoteTrack - adding remote ${t.kind} track`),n.getVideoTracks().forEach(t=>{t.stop(),n.removeTrack(t),e.dispatchRemoveTrackEvent(n,t)}),n.addTrack(t),e.dispatchAddTrackEvent(n,t))}updateDirection(e){if(this._peerConnection===void 0)return Promise.reject(Error(`Peer connection closed.`));switch(this._peerConnection.signalingState){case`stable`:this.logger.debug(`SessionDescriptionHandler.updateDirection - setting offer direction`);{let t=t=>{switch(t){case`inactive`:return e?.hold?`inactive`:`recvonly`;case`recvonly`:return e?.hold?`inactive`:`recvonly`;case`sendonly`:return e?.hold?`sendonly`:`sendrecv`;case`sendrecv`:return e?.hold?`sendonly`:`sendrecv`;case`stopped`:return`stopped`;default:throw Error(`Should never happen`)}};this._peerConnection.getTransceivers().forEach(e=>{if(e.direction){let n=t(e.direction);e.direction!==n&&(e.direction=n)}})}break;case`have-remote-offer`:this.logger.debug(`SessionDescriptionHandler.updateDirection - setting answer direction`);{let t=(()=>{let e=this._peerConnection.remoteDescription;if(!e)throw Error(`Failed to read remote offer`);let t=/a=sendrecv\r\n|a=sendonly\r\n|a=recvonly\r\n|a=inactive\r\n/.exec(e.sdp);if(t)switch(t[0]){case`a=inactive\r
|
|
44
|
+
`:return`inactive`;case`a=recvonly\r
|
|
45
|
+
`:return`recvonly`;case`a=sendonly\r
|
|
46
|
+
`:return`sendonly`;case`a=sendrecv\r
|
|
47
|
+
`:return`sendrecv`;default:throw Error(`Should never happen`)}return`sendrecv`})(),n=(()=>{switch(t){case`inactive`:return`inactive`;case`recvonly`:return`sendonly`;case`sendonly`:return e?.hold?`inactive`:`recvonly`;case`sendrecv`:return e?.hold?`sendonly`:`sendrecv`;default:throw Error(`Should never happen`)}})();this._peerConnection.getTransceivers().forEach(e=>{e.direction&&e.direction!==`stopped`&&e.direction!==n&&(e.direction=n)})}break;case`have-local-offer`:case`have-local-pranswer`:case`have-remote-pranswer`:case`closed`:default:return Promise.reject(Error(`Invalid signaling state `+this._peerConnection.signalingState))}return Promise.resolve()}waitForIceGatheringComplete(e=!1,t=0){return this.logger.debug(`SessionDescriptionHandler.waitForIceGatheringToComplete`),this._peerConnection===void 0?Promise.reject(`Peer connection closed.`):!e&&this._peerConnection.iceGatheringState===`complete`?(this.logger.debug(`SessionDescriptionHandler.waitForIceGatheringToComplete - already complete`),Promise.resolve()):(this.iceGatheringCompletePromise!==void 0&&(this.logger.debug(`SessionDescriptionHandler.waitForIceGatheringToComplete - rejecting prior waiting promise`),this.iceGatheringCompleteReject&&this.iceGatheringCompleteReject(Error(`Promise superseded.`)),this.iceGatheringCompletePromise=void 0,this.iceGatheringCompleteResolve=void 0,this.iceGatheringCompleteReject=void 0),this.iceGatheringCompletePromise=new Promise((e,n)=>{this.iceGatheringCompleteResolve=e,this.iceGatheringCompleteReject=n,t>0&&(this.logger.debug(`SessionDescriptionHandler.waitForIceGatheringToComplete - timeout in `+t),this.iceGatheringCompleteTimeoutId=setTimeout(()=>{this.logger.debug(`SessionDescriptionHandler.waitForIceGatheringToComplete - timeout`),this.iceGatheringComplete()},t))}),this.iceGatheringCompletePromise)}initPeerConnectionEventHandlers(){if(this.logger.debug(`SessionDescriptionHandler.initPeerConnectionEventHandlers`),!this._peerConnection)throw Error(`Peer connection undefined.`);let e=this._peerConnection;e.onconnectionstatechange=t=>{let n=e.connectionState;this.logger.debug(`SessionDescriptionHandler.onconnectionstatechange ${n}`),this._peerConnectionDelegate?.onconnectionstatechange&&this._peerConnectionDelegate.onconnectionstatechange(t)},e.ondatachannel=e=>{this.logger.debug(`SessionDescriptionHandler.ondatachannel`),this._dataChannel=e.channel,this.onDataChannel&&this.onDataChannel(this._dataChannel),this._peerConnectionDelegate?.ondatachannel&&this._peerConnectionDelegate.ondatachannel(e)},e.onicecandidate=e=>{this.logger.debug(`SessionDescriptionHandler.onicecandidate`),this._peerConnectionDelegate?.onicecandidate&&this._peerConnectionDelegate.onicecandidate(e)},e.onicecandidateerror=e=>{this.logger.debug(`SessionDescriptionHandler.onicecandidateerror`),this._peerConnectionDelegate?.onicecandidateerror&&this._peerConnectionDelegate.onicecandidateerror(e)},e.oniceconnectionstatechange=t=>{let n=e.iceConnectionState;this.logger.debug(`SessionDescriptionHandler.oniceconnectionstatechange ${n}`),this._peerConnectionDelegate?.oniceconnectionstatechange&&this._peerConnectionDelegate.oniceconnectionstatechange(t)},e.onicegatheringstatechange=t=>{let n=e.iceGatheringState;this.logger.debug(`SessionDescriptionHandler.onicegatheringstatechange ${n}`),n===`complete`&&this.iceGatheringComplete(),this._peerConnectionDelegate?.onicegatheringstatechange&&this._peerConnectionDelegate.onicegatheringstatechange(t)},e.onnegotiationneeded=e=>{this.logger.debug(`SessionDescriptionHandler.onnegotiationneeded`),this._peerConnectionDelegate?.onnegotiationneeded&&this._peerConnectionDelegate.onnegotiationneeded(e)},e.onsignalingstatechange=t=>{let n=e.signalingState;this.logger.debug(`SessionDescriptionHandler.onsignalingstatechange ${n}`),this._peerConnectionDelegate?.onsignalingstatechange&&this._peerConnectionDelegate.onsignalingstatechange(t)},e.ontrack=e=>{let t=e.track.kind,n=e.track.enabled?`enabled`:`disabled`;this.logger.debug(`SessionDescriptionHandler.ontrack ${t} ${n}`),this.setRemoteTrack(e.track),this._peerConnectionDelegate?.ontrack&&this._peerConnectionDelegate.ontrack(e)}}};function Et(e){return(t,n)=>{e===void 0&&(e=Ct());let r={iceGatheringTimeout:n?.iceGatheringTimeout===void 0?5e3:n?.iceGatheringTimeout,peerConnectionConfiguration:Object.assign(Object.assign({},wt()),n?.peerConnectionConfiguration)};return new Tt(t.userAgent.getLogger(`sip.SessionDescriptionHandler`),e,r)}}var Dt=class e{constructor(t,n){if(this._state=H.Disconnected,this.transitioningState=!1,this._stateEventEmitter=new T,this.logger=t,n){let e=n,t=e?.wsServers,r=e?.maxReconnectionAttempts;t!==void 0&&this.logger.warn(`The transport option "wsServers" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.`),r!==void 0&&this.logger.warn(`The transport option "maxReconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.`),t&&!n.server&&(typeof t==`string`&&(n.server=t),t instanceof Array&&(n.server=t[0]))}this.configuration=Object.assign(Object.assign({},e.defaultOptions),n);let r=this.configuration.server,i=N.parse(r,`absoluteURI`);if(i===-1)throw this.logger.error(`Invalid WebSocket Server URL "${r}"`),Error(`Invalid WebSocket Server URL`);if(![`wss`,`ws`,`udp`].includes(i.scheme))throw this.logger.error(`Invalid scheme in WebSocket Server URL "${r}"`),Error(`Invalid scheme in WebSocket Server URL`);this._protocol=i.scheme.toUpperCase()}dispose(){return this.disconnect()}get protocol(){return this._protocol}get server(){return this.configuration.server}get state(){return this._state}get stateChange(){return this._stateEventEmitter}get ws(){return this._ws}connect(){return this._connect()}disconnect(){return this._disconnect()}isConnected(){return this.state===H.Connected}send(e){return this._send(e)}_connect(){switch(this.logger.log(`Connecting ${this.server}`),this.state){case H.Connecting:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(H.Connecting));if(!this.connectPromise)throw Error(`Connect promise must be defined.`);return this.connectPromise;case H.Connected:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(H.Connecting));if(this.connectPromise)throw Error(`Connect promise must not be defined.`);return Promise.resolve();case H.Disconnecting:if(this.connectPromise)throw Error(`Connect promise must not be defined.`);try{this.transitionState(H.Connecting)}catch(e){if(e instanceof x)return Promise.reject(e);throw e}break;case H.Disconnected:if(this.connectPromise)throw Error(`Connect promise must not be defined.`);try{this.transitionState(H.Connecting)}catch(e){if(e instanceof x)return Promise.reject(e);throw e}break;default:throw Error(`Unknown state`)}let e;try{e=new WebSocket(this.server,`sip`),e.binaryType=`arraybuffer`,e.addEventListener(`close`,t=>this.onWebSocketClose(t,e)),e.addEventListener(`error`,t=>this.onWebSocketError(t,e)),e.addEventListener(`open`,t=>this.onWebSocketOpen(t,e)),e.addEventListener(`message`,t=>this.onWebSocketMessage(t,e)),this._ws=e}catch(e){return this._ws=void 0,this.logger.error(`WebSocket construction failed.`),this.logger.error(e.toString()),new Promise((t,n)=>{this.connectResolve=t,this.connectReject=n,this.transitionState(H.Disconnected,e)})}return this.connectPromise=new Promise((t,n)=>{this.connectResolve=t,this.connectReject=n,this.connectTimeout=setTimeout(()=>{this.logger.warn(`Connect timed out. Exceeded time set in configuration.connectionTimeout: `+this.configuration.connectionTimeout+`s.`),e.close(1e3)},this.configuration.connectionTimeout*1e3)}),this.connectPromise}_disconnect(){switch(this.logger.log(`Disconnecting ${this.server}`),this.state){case H.Connecting:if(this.disconnectPromise)throw Error(`Disconnect promise must not be defined.`);try{this.transitionState(H.Disconnecting)}catch(e){if(e instanceof x)return Promise.reject(e);throw e}break;case H.Connected:if(this.disconnectPromise)throw Error(`Disconnect promise must not be defined.`);try{this.transitionState(H.Disconnecting)}catch(e){if(e instanceof x)return Promise.reject(e);throw e}break;case H.Disconnecting:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(H.Disconnecting));if(!this.disconnectPromise)throw Error(`Disconnect promise must be defined.`);return this.disconnectPromise;case H.Disconnected:if(this.transitioningState)return Promise.reject(this.transitionLoopDetectedError(H.Disconnecting));if(this.disconnectPromise)throw Error(`Disconnect promise must not be defined.`);return Promise.resolve();default:throw Error(`Unknown state`)}if(!this._ws)throw Error(`WebSocket must be defined.`);let e=this._ws;return this.disconnectPromise=new Promise((t,n)=>{this.disconnectResolve=t,this.disconnectReject=n;try{e.close(1e3)}catch(e){throw this.logger.error(`WebSocket close failed.`),this.logger.error(e.toString()),e}}),this.disconnectPromise}_send(e){if(this.configuration.traceSip===!0&&this.logger.log(`Sending WebSocket message:
|
|
48
|
+
|
|
49
|
+
`+e+`
|
|
50
|
+
`),this._state!==H.Connected)return Promise.reject(Error(`Not connected.`));if(!this._ws)throw Error(`WebSocket undefined.`);try{this._ws.send(e)}catch(e){return e instanceof Error?Promise.reject(e):Promise.reject(Error(`WebSocket send failed.`))}return Promise.resolve()}onWebSocketClose(e,t){if(t!==this._ws)return;let n=`WebSocket closed ${this.server} (code: ${e.code})`,r=this.disconnectPromise?void 0:Error(n);r&&this.logger.warn(`WebSocket closed unexpectedly`),this.logger.log(n),this._ws=void 0,this.transitionState(H.Disconnected,r)}onWebSocketError(e,t){t===this._ws&&this.logger.error(`WebSocket error occurred.`)}onWebSocketMessage(e,t){if(t!==this._ws)return;let n=e.data,r;if(/^(\r\n)+$/.test(n)){this.clearKeepAliveTimeout(),this.configuration.traceSip===!0&&this.logger.log(`Received WebSocket message with CRLF Keep Alive response`);return}if(!n){this.logger.warn(`Received empty message, discarding...`);return}if(typeof n!=`string`){try{r=new TextDecoder().decode(new Uint8Array(n))}catch(e){this.logger.error(e.toString()),this.logger.error(`Received WebSocket binary message failed to be converted into string, message discarded`);return}this.configuration.traceSip===!0&&this.logger.log(`Received WebSocket binary message:
|
|
51
|
+
|
|
52
|
+
`+r+`
|
|
53
|
+
`)}else r=n,this.configuration.traceSip===!0&&this.logger.log(`Received WebSocket text message:
|
|
54
|
+
|
|
55
|
+
`+r+`
|
|
56
|
+
`);if(this.state!==H.Connected){this.logger.warn(`Received message while not connected, discarding...`);return}if(this.onMessage)try{this.onMessage(r)}catch(e){throw this.logger.error(e.toString()),this.logger.error(`Exception thrown by onMessage callback`),e}}onWebSocketOpen(e,t){t===this._ws&&this._state===H.Connecting&&(this.logger.log(`WebSocket opened ${this.server}`),this.transitionState(H.Connected))}transitionLoopDetectedError(e){let t=`A state transition loop has been detected.`;return t+=` An attempt to transition from ${this._state} to ${e} before the prior transition completed.`,t+=` Perhaps you are synchronously calling connect() or disconnect() from a callback or state change handler?`,this.logger.error(t),new x(`Loop detected.`)}transitionState(e,t){let n=()=>{throw Error(`Invalid state transition from ${this._state} to ${e}`)};if(this.transitioningState)throw this.transitionLoopDetectedError(e);switch(this.transitioningState=!0,this._state){case H.Connecting:e!==H.Connected&&e!==H.Disconnecting&&e!==H.Disconnected&&n();break;case H.Connected:e!==H.Disconnecting&&e!==H.Disconnected&&n();break;case H.Disconnecting:e!==H.Connecting&&e!==H.Disconnected&&n();break;case H.Disconnected:e!==H.Connecting&&n();break;default:throw Error(`Unknown state.`)}let r=this._state;this._state=e;let i=this.connectResolve,a=this.connectReject;r===H.Connecting&&(this.connectPromise=void 0,this.connectResolve=void 0,this.connectReject=void 0);let o=this.disconnectResolve,s=this.disconnectReject;if(r===H.Disconnecting&&(this.disconnectPromise=void 0,this.disconnectResolve=void 0,this.disconnectReject=void 0),this.connectTimeout&&=(clearTimeout(this.connectTimeout),void 0),this.logger.log(`Transitioned from ${r} to ${this._state}`),this._stateEventEmitter.emit(this._state),e===H.Connected&&(this.startSendingKeepAlives(),this.onConnect))try{this.onConnect()}catch(e){throw this.logger.error(e.toString()),this.logger.error(`Exception thrown by onConnect callback`),e}if(r===H.Connected&&(this.stopSendingKeepAlives(),this.onDisconnect))try{t?this.onDisconnect(t):this.onDisconnect()}catch(e){throw this.logger.error(e.toString()),this.logger.error(`Exception thrown by onDisconnect callback`),e}if(r===H.Connecting){if(!i)throw Error(`Connect resolve undefined.`);if(!a)throw Error(`Connect reject undefined.`);e===H.Connected?i():a(t||Error(`Connect aborted.`))}if(r===H.Disconnecting){if(!o)throw Error(`Disconnect resolve undefined.`);if(!s)throw Error(`Disconnect reject undefined.`);e===H.Disconnected?o():s(t||Error(`Disconnect aborted.`))}this.transitioningState=!1}clearKeepAliveTimeout(){this.keepAliveDebounceTimeout&&clearTimeout(this.keepAliveDebounceTimeout),this.keepAliveDebounceTimeout=void 0}sendKeepAlive(){return this.keepAliveDebounceTimeout?Promise.resolve():(this.keepAliveDebounceTimeout=setTimeout(()=>{this.clearKeepAliveTimeout()},this.configuration.keepAliveDebounce*1e3),this.send(`\r
|
|
57
|
+
\r
|
|
58
|
+
`))}startSendingKeepAlives(){this.configuration.keepAliveInterval&&!this.keepAliveInterval&&(this.keepAliveInterval=setInterval(()=>{this.sendKeepAlive(),this.startSendingKeepAlives()},(e=>{let t=e*.8;return 1e3*(Math.random()*(e-t)+t)})(this.configuration.keepAliveInterval)))}stopSendingKeepAlives(){this.keepAliveInterval&&clearInterval(this.keepAliveInterval),this.keepAliveDebounceTimeout&&clearTimeout(this.keepAliveDebounceTimeout),this.keepAliveInterval=void 0,this.keepAliveDebounceTimeout=void 0}};Dt.defaultOptions={server:``,connectionTimeout:5,keepAliveInterval:0,keepAliveDebounce:10,traceSip:!0};var Ot=class e{constructor(t={}){if(this._publishers={},this._registerers={},this._sessions={},this._subscriptions={},this._state=ke.Stopped,this._stateEventEmitter=new T,this.delegate=t.delegate,this.options=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},e.defaultOptions()),{sipjsId:re(5)}),{uri:new ee(`sip`,`anonymous.`+re(6),`anonymous.invalid`)}),{viaHost:re(12)+`.invalid`}),e.stripUndefinedProperties(t)),this.options.hackIpInContact)if(typeof this.options.hackIpInContact==`boolean`&&this.options.hackIpInContact){let e=Math.floor(Math.random()*254+1);this.options.viaHost=`192.0.2.`+e}else this.options.hackIpInContact&&(this.options.viaHost=this.options.hackIpInContact);switch(this.loggerFactory=new Fe,this.logger=this.loggerFactory.getLogger(`sip.UserAgent`),this.loggerFactory.builtinEnabled=this.options.logBuiltinEnabled,this.loggerFactory.connector=this.options.logConnector,this.options.logLevel){case`error`:this.loggerFactory.level=Ne.error;break;case`warn`:this.loggerFactory.level=Ne.warn;break;case`log`:this.loggerFactory.level=Ne.log;break;case`debug`:this.loggerFactory.level=Ne.debug;break;default:break}if(this.options.logConfiguration&&(this.logger.log(`Configuration:`),Object.keys(this.options).forEach(e=>{let t=this.options[e];switch(e){case`uri`:case`sessionDescriptionHandlerFactory`:this.logger.log(`· `+e+`: `+t);break;case`authorizationPassword`:this.logger.log(`· `+e+`: NOT SHOWN`);break;case`transportConstructor`:this.logger.log(`· `+e+`: `+t.name);break;default:this.logger.log(`· `+e+`: `+JSON.stringify(t))}})),this.options.transportOptions){let e=this.options.transportOptions,n=e.maxReconnectionAttempts,r=e.reconnectionTimeout;n!==void 0&&this.logger.warn(`The transport option "maxReconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.`),r!==void 0&&this.logger.warn(`The transport option "reconnectionTimeout" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.`),t.reconnectionDelay===void 0&&r!==void 0&&(this.options.reconnectionDelay=r),t.reconnectionAttempts===void 0&&n!==void 0&&(this.options.reconnectionAttempts=n)}if(t.reconnectionDelay!==void 0&&this.logger.warn(`The user agent option "reconnectionDelay" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.`),t.reconnectionAttempts!==void 0&&this.logger.warn(`The user agent option "reconnectionAttempts" as has apparently been specified and has been deprecated. It will no longer be available starting with SIP.js release 0.16.0. Please update accordingly.`),this._transport=new this.options.transportConstructor(this.getLogger(`sip.Transport`),this.options.transportOptions),this.initTransportCallbacks(),this._contact=this.initContact(),this._instanceId=this.options.instanceId?this.options.instanceId:e.newUUID(),N.parse(this._instanceId,`uuid`)===-1)throw Error(`Invalid instanceId.`);this._userAgentCore=this.initCore()}static makeURI(e){return N.URIParse(e)}static defaultOptions(){return{allowLegacyNotifications:!1,authorizationHa1:``,authorizationPassword:``,authorizationUsername:``,delegate:{},contactName:``,contactParams:{transport:`ws`},displayName:``,forceRport:!1,gracefulShutdown:!0,hackAllowUnregisteredOptionTags:!1,hackIpInContact:!1,hackViaTcp:!1,instanceId:``,instanceIdAlwaysAdded:!1,logBuiltinEnabled:!0,logConfiguration:!0,logConnector:()=>{},logLevel:`log`,noAnswerTimeout:60,preloadedRouteSet:[],reconnectionAttempts:0,reconnectionDelay:4,sendInitialProvisionalResponse:!0,sessionDescriptionHandlerFactory:Et(),sessionDescriptionHandlerFactoryOptions:{},sipExtension100rel:we.Unsupported,sipExtensionReplaces:we.Unsupported,sipExtensionExtraSupported:[],sipjsId:``,transportConstructor:Dt,transportOptions:{},uri:new ee(`sip`,`anonymous`,`anonymous.invalid`),userAgentString:`SIP.js/0.21.1`,viaHost:``}}static newUUID(){return`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.floor(Math.random()*16);return(e===`x`?t:t%4+8).toString(16)})}static stripUndefinedProperties(e){return Object.keys(e).reduce((t,n)=>(e[n]!==void 0&&(t[n]=e[n]),t),{})}get configuration(){return this.options}get contact(){return this._contact}get instanceId(){return this._instanceId}get state(){return this._state}get stateChange(){return this._stateEventEmitter}get transport(){return this._transport}get userAgentCore(){return this._userAgentCore}getLogger(e,t){return this.loggerFactory.getLogger(e,t)}getLoggerFactory(){return this.loggerFactory}isConnected(){return this.transport.isConnected()}reconnect(){return this.state===ke.Stopped?Promise.reject(Error(`User agent stopped.`)):Promise.resolve().then(()=>this.transport.connect())}start(){return this.state===ke.Started?(this.logger.warn(`User agent already started`),Promise.resolve()):(this.logger.log(`Starting ${this.configuration.uri}`),this.transitionState(ke.Started),this.transport.connect())}async stop(){if(this.state===ke.Stopped)return this.logger.warn(`User agent already stopped`),Promise.resolve();if(this.logger.log(`Stopping ${this.configuration.uri}`),!this.options.gracefulShutdown)return this.logger.log(`Dispose of transport`),this.transport.dispose().catch(e=>{throw this.logger.error(e.message),e}),this.logger.log(`Dispose of core`),this.userAgentCore.dispose(),this._publishers={},this._registerers={},this._sessions={},this._subscriptions={},this.transitionState(ke.Stopped),Promise.resolve();let e=Object.assign({},this._publishers),t=Object.assign({},this._registerers),n=Object.assign({},this._sessions),r=Object.assign({},this._subscriptions),i=this.transport,a=this.userAgentCore;for(let e in this.logger.log(`Dispose of registerers`),t)t[e]&&await t[e].dispose().catch(t=>{throw this.logger.error(t.message),delete this._registerers[e],t});for(let e in this.logger.log(`Dispose of sessions`),n)n[e]&&await n[e].dispose().catch(t=>{throw this.logger.error(t.message),delete this._sessions[e],t});for(let e in this.logger.log(`Dispose of subscriptions`),r)r[e]&&await r[e].dispose().catch(t=>{throw this.logger.error(t.message),delete this._subscriptions[e],t});for(let t in this.logger.log(`Dispose of publishers`),e)e[t]&&await e[t].dispose().catch(e=>{throw this.logger.error(e.message),delete this._publishers[t],e});this.logger.log(`Dispose of transport`),await i.dispose().catch(e=>{throw this.logger.error(e.message),e}),this.logger.log(`Dispose of core`),a.dispose(),this.transitionState(ke.Stopped)}_makeInviter(e,t){return new De(this,e,t)}attemptReconnection(e=1){let t=this.options.reconnectionAttempts,n=this.options.reconnectionDelay;if(e>t){this.logger.log(`Maximum reconnection attempts reached`);return}this.logger.log(`Reconnection attempt ${e} of ${t} - trying`),setTimeout(()=>{this.reconnect().then(()=>{this.logger.log(`Reconnection attempt ${e} of ${t} - succeeded`)}).catch(n=>{this.logger.error(n.message),this.logger.log(`Reconnection attempt ${e} of ${t} - failed`),this.attemptReconnection(++e)})},e===1?0:n*1e3)}initContact(){let e=this.options.contactName===``?re(8):this.options.contactName,t=this.options.contactParams;return{pubGruu:void 0,tempGruu:void 0,uri:new ee(`sip`,e,this.options.viaHost,void 0,t),toString:(e={})=>{let n=e.anonymous||!1,r=e.outbound||!1,i=e.register||!1,a=`<`;return n?a+=this.contact.tempGruu||`sip:anonymous@anonymous.invalid;transport=${t.transport?t.transport:`ws`}`:i?a+=this.contact.uri:a+=this.contact.pubGruu||this.contact.uri,r&&(a+=`;ob`),a+=`>`,this.options.instanceIdAlwaysAdded&&(a+=`;+sip.instance="<urn:uuid:`+this._instanceId+`>"`),a}}}initCore(){let e=[];e.push(`outbound`),this.options.sipExtension100rel===we.Supported&&e.push(`100rel`),this.options.sipExtensionReplaces===we.Supported&&e.push(`replaces`),this.options.sipExtensionExtraSupported&&e.push(...this.options.sipExtensionExtraSupported),this.options.hackAllowUnregisteredOptionTags||(e=e.filter(e=>Te[e])),e=Array.from(new Set(e));let t=e.slice();return(this.contact.pubGruu||this.contact.tempGruu)&&t.push(`gruu`),new St({aor:this.options.uri,contact:this.contact,displayName:this.options.displayName,loggerFactory:this.loggerFactory,hackViaTcp:this.options.hackViaTcp,routeSet:this.options.preloadedRouteSet,supportedOptionTags:e,supportedOptionTagsResponse:t,sipjsId:this.options.sipjsId,userAgentHeaderFieldValue:this.options.userAgentString,viaForceRport:this.options.forceRport,viaHost:this.options.viaHost,authenticationFactory:()=>{let e=this.options.authorizationUsername?this.options.authorizationUsername:this.options.uri.user,t=this.options.authorizationPassword?this.options.authorizationPassword:void 0,n=this.options.authorizationHa1?this.options.authorizationHa1:void 0;return new Me(this.getLoggerFactory(),n,e,t)},transportAccessor:()=>this.transport},{onInvite:e=>{let t=new Ee(this,e);if(e.delegate={onCancel:e=>{t._onCancel(e)},onTransportError:e=>{this.logger.error(`A transport error has occurred while handling an incoming INVITE request.`)}},e.trying(),this.options.sipExtensionReplaces!==we.Unsupported){let n=e.message.parseHeader(`replaces`);if(n){let e=n.call_id;if(typeof e!=`string`)throw Error(`Type of call id is not string`);let r=n.replaces_to_tag;if(typeof r!=`string`)throw Error(`Type of to tag is not string`);let i=n.replaces_from_tag;if(typeof i!=`string`)throw Error(`type of from tag is not string`);let a=e+r+i,o=this.userAgentCore.dialogs.get(a);if(!o){t.reject({statusCode:481});return}if(!o.early&&n.early_only===!0){t.reject({statusCode:486});return}let s=this._sessions[e+i]||this._sessions[e+r]||void 0;if(!s)throw Error(`Session does not exist.`);t._replacee=s}}if(this.delegate?.onInvite){if(t.autoSendAnInitialProvisionalResponse){t.progress().then(()=>{if(this.delegate?.onInvite===void 0)throw Error(`onInvite undefined.`);this.delegate.onInvite(t)});return}this.delegate.onInvite(t);return}t.reject({statusCode:486})},onMessage:e=>{if(this.delegate&&this.delegate.onMessage){let t=new be(e);this.delegate.onMessage(t)}else e.accept()},onNotify:e=>{if(this.delegate&&this.delegate.onNotify){let t=new xe(e);this.delegate.onNotify(t)}else this.options.allowLegacyNotifications?e.accept():e.reject({statusCode:481})},onRefer:e=>{this.logger.warn(`Received an out of dialog REFER request`),this.delegate&&this.delegate.onReferRequest?this.delegate.onReferRequest(e):e.reject({statusCode:405})},onRegister:e=>{this.logger.warn(`Received an out of dialog REGISTER request`),this.delegate&&this.delegate.onRegisterRequest?this.delegate.onRegisterRequest(e):e.reject({statusCode:405})},onSubscribe:e=>{this.logger.warn(`Received an out of dialog SUBSCRIBE request`),this.delegate&&this.delegate.onSubscribeRequest?this.delegate.onSubscribeRequest(e):e.reject({statusCode:405})}})}initTransportCallbacks(){this.transport.onConnect=()=>this.onTransportConnect(),this.transport.onDisconnect=e=>this.onTransportDisconnect(e),this.transport.onMessage=e=>this.onTransportMessage(e)}onTransportConnect(){this.state!==ke.Stopped&&this.delegate&&this.delegate.onConnect&&this.delegate.onConnect()}onTransportDisconnect(e){this.state!==ke.Stopped&&(this.delegate&&this.delegate.onDisconnect&&this.delegate.onDisconnect(e),e&&this.options.reconnectionAttempts>0&&this.attemptReconnection())}onTransportMessage(e){let t=Ie.parseMessage(e,this.getLogger(`sip.Parser`));if(!t){this.logger.warn(`Failed to parse incoming message. Dropping.`);return}if(this.state===ke.Stopped&&t instanceof I){this.logger.warn(`Received ${t.method} request while stopped. Dropping.`);return}let n=()=>{for(let e of[`from`,`to`,`call_id`,`cseq`,`via`])if(!t.hasHeader(e))return this.logger.warn(`Missing mandatory header field : ${e}.`),!1;return!0};if(t instanceof I){if(!n()){this.logger.warn(`Request missing mandatory header field. Dropping.`);return}if(!t.toTag&&t.callId.substr(0,5)===this.options.sipjsId){this.userAgentCore.replyStateless(t,{statusCode:482});return}let e=ae(t.body),r=t.getHeader(`content-length`);if(r&&e<Number(r)){this.userAgentCore.replyStateless(t,{statusCode:400});return}}if(t instanceof se){if(!n()){this.logger.warn(`Response missing mandatory header field. Dropping.`);return}if(t.getHeaders(`via`).length>1){this.logger.warn(`More than one Via header field present in the response. Dropping.`);return}if(t.via.host!==this.options.viaHost||t.via.port!==void 0){this.logger.warn(`Via sent-by in the response does not match UA Via host value. Dropping.`);return}let e=ae(t.body),r=t.getHeader(`content-length`);if(r&&e<Number(r)){this.logger.warn(`Message body length is lower than the value in Content-Length header field. Dropping.`);return}}if(t instanceof I){this.userAgentCore.receiveIncomingRequestFromTransport(t);return}if(t instanceof se){this.userAgentCore.receiveIncomingResponseFromTransport(t);return}throw Error(`Invalid message type.`)}transitionState(e,t){let n=()=>{throw Error(`Invalid state transition from ${this._state} to ${e}`)};switch(this._state){case ke.Started:e!==ke.Stopped&&n();break;case ke.Stopped:e!==ke.Started&&n();break;default:throw Error(`Unknown state.`)}this.logger.log(`Transitioned from ${this._state} to ${e}`),this._state=e,this._stateEventEmitter.emit(this._state)}},kt=new window.AudioContext,At={1:[697,1209],2:[697,1336],3:[697,1477],A:[697,1633],4:[770,1209],5:[770,1336],6:[770,1477],B:[770,1633],7:[852,1209],8:[852,1336],9:[852,1477],C:[852,1633],"*":[941,1209],0:[941,1336],"#":[941,1477],D:[941,1633]},jt=(0,t.ref)(null),Mt=(0,t.ref)(null),Nt=(0,t.ref)(.5);let Pt=()=>({playDtmf:(e,t=150)=>{kt.state===`suspended`&&kt.resume();let n=At[e.toUpperCase()];if(!n)return;let r=kt.createOscillator(),i=kt.createOscillator(),a=kt.createGain();r.frequency.value=n[0],i.frequency.value=n[1],r.type=`sine`,i.type=`sine`,a.gain.value=.1*Nt.value,r.connect(a),i.connect(a),a.connect(kt.destination),r.start(),i.start(),setTimeout(()=>{r.stop(),i.stop(),r.disconnect(),i.disconnect(),a.disconnect()},t)},startRingtone:()=>{if(jt.value)return;kt.state===`suspended`&&kt.resume();let e=()=>{let e=kt.currentTime,t=kt.createOscillator(),n=kt.createGain();t.type=`sine`,t.frequency.setValueAtTime(523.25,e),t.frequency.setValueAtTime(659.25,e+.1),t.frequency.setValueAtTime(783.99,e+.2),n.gain.setValueAtTime(.1*Nt.value,e),n.gain.exponentialRampToValueAtTime(.001,e+.5),t.connect(n),n.connect(kt.destination),t.start(e),t.stop(e+.5)};e(),jt.value=window.setInterval(()=>{e(),setTimeout(e,400)},3e3)},stopRingtone:()=>{jt.value&&=(clearInterval(jt.value),null)},startRingback:()=>{if(Mt.value)return;kt.state===`suspended`&&kt.resume();let e=()=>{let e=kt.currentTime,t=kt.createOscillator(),n=kt.createGain();t.type=`sine`,t.frequency.value=425,n.gain.setValueAtTime(.1*Nt.value,e),n.gain.linearRampToValueAtTime(.1*Nt.value,e+1),n.gain.linearRampToValueAtTime(0,e+1.1),t.connect(n),n.connect(kt.destination),t.start(e),t.stop(e+1.1)};e(),Mt.value=window.setInterval(()=>{e()},4e3)},stopRingback:()=>{Mt.value&&=(clearInterval(Mt.value),null)},setNotificationVolume:e=>{Nt.value=Math.max(0,Math.min(1,e/100))}}),Ft=e=>{let n=(0,t.shallowRef)(null),r=(0,t.shallowRef)(null),i=(0,t.shallowRef)(new Map),a=new Audio;a.autoplay=!0;let o=(0,t.shallowRef)(void 0),s=(0,t.shallowRef)(null),c=(0,t.shallowRef)(null),l=(0,t.computed)(()=>n.value?.configuration.uri?.user||``),{startRingtone:u,stopRingtone:d,startRingback:f,stopRingback:p,setNotificationVolume:m}=Pt(),h=()=>{e.channels.value.some(e=>e.status===`incoming`)?u():d();let t=e.activeChannel.value;t?.status===`calling`&&!t.hasEarlyMedia?f():p()},g=e=>{a.volume=e/100},_=async e=>{typeof a.setSinkId==`function`&&await a.setSinkId(e)},v=e=>{o.value=e},y=(e=!1)=>{let t={echoCancellation:{ideal:!0},noiseSuppression:{ideal:!0},autoGainControl:{ideal:!0},channelCount:1,voiceIsolation:{ideal:!0}};return o.value&&(t.deviceId={exact:o.value}),{audio:t,video:e}},b=async t=>{if(!n.value){try{(await navigator.mediaDevices.getUserMedia({audio:!0})).getTracks().forEach(e=>e.stop())}catch(e){console.error(`Microphone permission denied`,e);return}try{let i=Ot.makeURI(t.uri);if(!i)throw Error(`Invalid URI`);n.value=new Ot({uri:i,logLevel:`error`,transportOptions:{server:t.transportOptions.server},authorizationUsername:t.authorizationUsername,authorizationPassword:t.authorizationPassword,reconnectionDelay:5,reconnectionAttempts:3,delegate:{onConnect:()=>e.setConnected(!0),onDisconnect:()=>e.setConnected(!1),onInvite:e=>C(e)}}),await n.value.start(),r.value=new Oe(n.value),await r.value.register(),x()}catch{}}},x=()=>{let t=null,n=Date.now(),r=5e3,i=(e=1e3)=>{t&&clearTimeout(t),t=setTimeout(async()=>{t=null,await S()},e)},a=()=>{if(document.visibilityState===`visible`){let e=Date.now()-n;e>r?(console.log(`[SipJs] Device was suspended for ${Math.round(e/1e3)}s, reconnecting...`),i(1500)):i(500)}n=Date.now()},o=()=>{console.log(`[SipJs] Network online, reconnecting...`),i(1e3)},s=()=>{console.log(`[SipJs] Network offline`),e.setConnected(!1),t&&=(clearTimeout(t),null)},c=null,l=()=>{c=setInterval(()=>{let e=Date.now(),t=e-n;t>r+1e3&&(console.log(`[SipJs] Heartbeat drift detected (${Math.round(t/1e3)}s), device may have woken from sleep`),i(1500)),n=e},1e3)};document.addEventListener(`visibilitychange`,a),window.addEventListener(`online`,o),window.addEventListener(`offline`,s),document.addEventListener(`freeze`,()=>{console.log(`[SipJs] Page frozen`),c&&=(clearInterval(c),null)}),document.addEventListener(`resume`,()=>{console.log(`[SipJs] Page resumed`),n=Date.now(),l(),i(1e3)}),l()},S=async()=>{if(n.value){if(!navigator.onLine){console.log(`[SipJs] Skipping reconnect, device is offline`);return}try{if(n.value.isConnected()||(console.log(`[SipJs] Reconnecting...`),await n.value.reconnect()),r.value&&n.value.isConnected())try{await r.value.register()}catch{}}catch(e){console.error(`[SipJs] Reconnection failed:`,e)}}},C=t=>{let n=e.channels.value.find(e=>e.status===`idle`);if(!n){t.reject();return}let r=n.id;i.value.set(r,t);let a=t.body?t.body.includes(`m=video`):!1;e.updateChannelState(r,{status:`incoming`,remoteNumber:t.remoteIdentity.uri.user||`Unknown`,hasVideo:a}),h(),t.stateChange.addListener(n=>{switch(n){case z.Terminated:{let n=e.channels.value.find(e=>e.id===r),a=t.remoteIdentity.uri.user||`Unknown`;if(n?.status===`connected`){let t=Math.floor((Date.now()-(n.startTime||Date.now()))/1e3);e.addCallLog({number:a,direction:`incoming`,status:`answered`,startTime:n.startTime||Date.now(),duration:t})}else n?.status===`incoming`&&e.addCallLog({number:a,direction:`incoming`,status:`missed`,startTime:Date.now(),duration:0});e.updateChannelState(r,{status:`idle`,remoteNumber:``,isMuted:!1,isHeld:!1,hasVideo:!1,hasEarlyMedia:!1}),i.value.delete(r),e.activeChannelId.value===r&&M(),h();break}case z.Established:e.updateChannelState(r,{status:`connected`,startTime:Date.now()}),e.activeChannelId.value===r&&j(t),h();break}})},w=async(t,r=!1)=>{if(!n.value)return;let a=e.activeChannelId.value;if(i.value.has(a))return;let o=Ot.makeURI(t);if(!o&&n.value.configuration.uri){let e=n.value.configuration.uri.host;o=Ot.makeURI(`sip:${t}@${e}`)}if(!o)return;let s=new De(n.value,o);i.value.set(a,s),e.updateChannelState(a,{status:`calling`,remoteNumber:t,hasVideo:r}),e.setLastDialedNumber(t),h(),s.stateChange.addListener(n=>{switch(n){case z.Established:e.channels.value.find(e=>e.id===a)?.status!==`connected`&&(e.updateChannelState(a,{status:`connected`,startTime:Date.now()}),j(s),h());break;case z.Terminated:{let n=e.channels.value.find(e=>e.id===a);if(n?.status===`connected`){let r=Math.floor((Date.now()-(n.startTime||Date.now()))/1e3);e.addCallLog({number:t,direction:`outgoing`,status:`answered`,startTime:n.startTime||Date.now(),duration:r})}else e.addCallLog({number:t,direction:`outgoing`,status:`cancelled`,startTime:Date.now(),duration:0});e.updateChannelState(a,{status:`idle`,remoteNumber:``,isMuted:!1,isHeld:!1,startTime:void 0,keypadValue:``,hasVideo:!1}),i.value.delete(a),e.activeChannelId.value===a&&M(),h();break}}});let c={sessionDescriptionHandlerOptions:{constraints:y(r)},requestDelegate:{onProgress:t=>{(t.message.statusCode===180||t.message.statusCode===183)&&(t.message.body&&(e.updateChannelState(a,{hasEarlyMedia:!0}),j(s)),h())},onAccept:t=>{e.channels.value.find(e=>e.id===a)?.status!==`connected`&&(e.updateChannelState(a,{status:`connected`,startTime:Date.now()}),j(s),h())}}};await s.invite(c)},T=async(t=!1)=>{let n=i.value.get(e.activeChannelId.value);if(n instanceof Ee&&n.state===z.Initial){let e={sessionDescriptionHandlerOptions:{constraints:y(t)}};await n.accept(e),h()}},E=async()=>{let t=i.value.get(e.activeChannelId.value);if(t)switch(t.state){case z.Initial:case z.Establishing:t instanceof De?await t.cancel():t instanceof Ee&&await t.reject();break;case z.Established:await t.bye();break}},D=()=>{let t=i.value.get(e.activeChannelId.value);if(!t)return;let n=!e.isMuted.value,r=!1,a=t.sessionDescriptionHandler;a?.peerConnection&&a.peerConnection.getSenders().forEach(e=>{e.track&&e.track.kind===`audio`&&(e.track.enabled=!n,r=!0)}),c.value&&c.value.getAudioTracks().forEach(e=>{e.enabled=!n,r=!0}),r||console.warn(`[SipJs] No audio tracks found to mute/unmute`),e.setMuted(n)},O=async(e,t)=>{let n={sessionDescriptionHandlerOptions:{hold:t}};await e.invite(n)},ee=async()=>{let t=i.value.get(e.activeChannelId.value);if(t?.state!==z.Established)return;let n=!e.isHeld.value;try{await O(t,n),e.setHeld(n)}catch{}},k=async t=>{let n=e.activeChannelId.value;if(n===t)return;let r=i.value.get(n),a=i.value.get(t),o=e.channels.value.find(e=>e.id===n),s=e.channels.value.find(e=>e.id===t);if(r&&r.state===z.Established&&!o?.isHeld)try{await O(r,!0),e.updateChannelState(n,{isHeld:!0})}catch{}if(e.setActiveChannelId(t),h(),a&&a.state===z.Established){if(s?.isHeld)try{await O(a,!1),e.updateChannelState(t,{isHeld:!1})}catch{}if(s?.isMuted){let e=a.sessionDescriptionHandler;e?.peerConnection&&e.peerConnection.getSenders().forEach(e=>{e.track&&e.track.kind===`audio`&&(e.track.enabled=!1)}),c.value&&c.value.getAudioTracks().forEach(e=>{e.enabled=!1})}j(a)}else M()},te=t=>{let n=i.value.get(e.activeChannelId.value);if(n?.state!==z.Established)return;let r={requestOptions:{body:{content:`Signal=${t}\r\nDuration=160`,contentType:`application/dtmf-relay`,contentDisposition:`signal`}}};n.info(r)},A=async t=>{let r=i.value.get(e.activeChannelId.value);if(r?.state!==z.Established)return;let a=Ot.makeURI(t);if(!a&&n.value?.configuration.uri){let e=n.value.configuration.uri.host;a=Ot.makeURI(`sip:${t}@${e}`)}a&&await r.refer(a)},j=e=>{let t=e.sessionDescriptionHandler?.peerConnection;if(!t)return;let n=t.getReceivers(),r=t.getSenders(),i=n.map(e=>e.track).filter(e=>!!e);if(s.value){let e=s.value.getTracks();if(e.length===i.length&&i.every(t=>e.some(e=>e.id===t.id)))return}a.pause(),a.srcObject=null;let o=new MediaStream(i),l=new MediaStream;r.forEach(e=>{e.track&&l.addTrack(e.track)}),c.value=l,s.value=o,a.srcObject=o,a.play().catch(e=>{e.name!==`AbortError`&&console.warn(e)})},M=()=>{a.pause(),a.srcObject=null,s.value?.getTracks().forEach(e=>e.stop()),c.value?.getTracks().forEach(e=>e.stop()),s.value=null,c.value=null};return{initUserAgent:b,makeCall:w,answerCall:T,hangupCall:E,toggleMute:D,toggleHold:ee,sendDTMF:te,transferCall:A,switchChannel:k,extension:l,setVolume:g,setNotificationVolume:m,setOutputDevice:_,setInputDevice:v,remoteStream:s,localStream:c}};function It(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=It(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function Lt(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=It(e))&&(r&&(r+=` `),r+=t);return r}var Rt=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e;let zt=Lt,Bt=(e,t)=>n=>{if(t?.variants==null)return zt(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=Rt(t)||Rt(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return zt(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};function Vt(e){return typeof e==`string`?`'${e}'`:new Ht().serialize(e)}var Ht=function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?e.localeCompare(t):n===`number`&&r===`number`?e-t:String.prototype.localeCompare.call(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}return this.serializeObjectEntries(r,Object.entries(e))}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t?.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e}();function Ut(e,t){return e===t||Vt(e)===Vt(t)}function Wt(e,t,n){let r=e.findIndex(e=>Ut(e,t)),i=e.findIndex(e=>Ut(e,n));if(r===-1||i===-1)return[];let[a,o]=[r,i].sort((e,t)=>e-t);return e.slice(a,o+1)}function Gt(e,t=-1/0,n=1/0){return Math.min(n,Math.max(t,e))}function W(e,n){let r=typeof e==`string`&&!n?`${e}Context`:n,i=Symbol(r);return[n=>{let r=(0,t.inject)(i,n);if(r||r===null)return r;throw Error(`Injection \`${i.toString()}\` not found. Component must be used within ${Array.isArray(e)?`one of the following components: ${e.join(`, `)}`:`\`${e}\``}`)},e=>((0,t.provide)(i,e),e)]}function Kt(){let e=document.activeElement;if(e==null)return null;for(;e!=null&&e.shadowRoot!=null&&e.shadowRoot.activeElement!=null;)e=e.shadowRoot.activeElement;return e}function qt(e,t,n){let r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),r.dispatchEvent(i)}function Jt(e){return e==null}function Yt(e,t){return Jt(e)?!1:Array.isArray(e)?e.some(e=>Ut(e,t)):Ut(e,t)}function Xt(e){return e?e.flatMap(e=>e.type===t.Fragment?Xt(e.children):[e]):[]}var[Zt,Qt]=W(`ConfigProvider`);function $t(e){return(0,t.getCurrentScope)()?((0,t.onScopeDispose)(e),!0):!1}function en(e){return(0,t.isRef)(e)?(0,t.reactive)(new Proxy({},{get(n,r,i){return(0,t.unref)(Reflect.get(e.value,r,i))},set(n,r,i){return(0,t.isRef)(e.value[r])&&!(0,t.isRef)(i)?e.value[r].value=i:e.value[r]=i,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return Reflect.has(e.value,n)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}})):(0,t.reactive)(e)}function tn(e){return en((0,t.computed)(e))}function nn(e,...n){let r=n.flat(),i=r[0];return tn(()=>typeof i==`function`?Object.fromEntries(Object.entries((0,t.toRefs)(e)).filter(([e,n])=>!i((0,t.toValue)(n),e))):Object.fromEntries(Object.entries((0,t.toRefs)(e)).filter(e=>!r.includes(e[0]))))}var rn=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var an=on();function on(){return rn&&(window==null?void 0:window.navigator)?.userAgent&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||(window==null?void 0:window.navigator)?.maxTouchPoints>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function sn(e){return e||(0,t.getCurrentInstance)()}function cn(e,n=1e4){return(0,t.customRef)((r,i)=>{let a=(0,t.toValue)(e),o,s=()=>setTimeout(()=>{a=(0,t.toValue)(e),i()},(0,t.toValue)(n));return $t(()=>{clearTimeout(o)}),{get(){return r(),a},set(e){a=e,i(),clearTimeout(o),o=s()}}})}function ln(e,n){sn(n)&&(0,t.onBeforeUnmount)(e,n)}function un(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function dn(e,t,n=`.`,r){if(!un(t))return dn(e,{},n,r);let i=Object.assign({},t);for(let t in e){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(Array.isArray(a)&&Array.isArray(i[t])?i[t]=[...a,...i[t]]:un(a)&&un(i[t])?i[t]=dn(a,i[t],(n?`${n}.`:``)+t.toString(),r):i[t]=a))}return i}function fn(e){return(...t)=>t.reduce((t,n)=>dn(t,n,``,e),{})}var pn=fn(),mn=(0,n.createSharedComposable)(()=>{let e=(0,t.ref)(new Map),r=(0,t.ref)(),i=(0,t.computed)(()=>{for(let t of e.value.values())if(t)return!0;return!1}),a=Zt({scrollBody:(0,t.ref)(!0)}),o=null,s=()=>{document.body.style.paddingRight=``,document.body.style.marginRight=``,document.body.style.pointerEvents=``,document.documentElement.style.removeProperty(`--scrollbar-width`),document.body.style.overflow=r.value??``,an&&o?.(),r.value=void 0};return(0,t.watch)(i,(e,i)=>{if(!rn)return;if(!e){i&&s();return}r.value===void 0&&(r.value=document.body.style.overflow);let c=window.innerWidth-document.documentElement.clientWidth,l={padding:c,margin:0},u=a.scrollBody?.value?typeof a.scrollBody.value==`object`?pn({padding:a.scrollBody.value.padding===!0?c:a.scrollBody.value.padding,margin:a.scrollBody.value.margin===!0?c:a.scrollBody.value.margin},l):l:{padding:0,margin:0};c>0&&(document.body.style.paddingRight=typeof u.padding==`number`?`${u.padding}px`:String(u.padding),document.body.style.marginRight=typeof u.margin==`number`?`${u.margin}px`:String(u.margin),document.documentElement.style.setProperty(`--scrollbar-width`,`${c}px`),document.body.style.overflow=`hidden`),an&&(o=(0,n.useEventListener)(document,`touchmove`,e=>_n(e),{passive:!1})),(0,t.nextTick)(()=>{document.body.style.pointerEvents=`none`,document.body.style.overflow=`hidden`})},{immediate:!0,flush:`sync`}),e});function hn(e){let n=Math.random().toString(36).substring(2,7),r=mn();r.value.set(n,e??!1);let i=(0,t.computed)({get:()=>r.value.get(n)??!1,set:e=>r.value.set(n,e)});return ln(()=>{r.value.delete(n)}),i}function gn(e){let t=window.getComputedStyle(e);if(t.overflowX===`scroll`||t.overflowY===`scroll`||t.overflowX===`auto`&&e.clientWidth<e.scrollWidth||t.overflowY===`auto`&&e.clientHeight<e.scrollHeight)return!0;{let t=e.parentNode;return!(t instanceof Element)||t.tagName===`BODY`?!1:gn(t)}}function _n(e){let t=e||window.event,n=t.target;return n instanceof Element&&gn(n)?!1:t.touches.length>1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}function vn(e){let n=Zt({dir:(0,t.ref)(`ltr`)});return(0,t.computed)(()=>e?.value||n.dir?.value||`ltr`)}function yn(e){let n=(0,t.getCurrentInstance)(),r=n?.type.emits,i={};return r?.length||console.warn(`No emitted event found. Please check component: ${n?.type.__name}`),r?.forEach(n=>{i[(0,t.toHandlerKey)((0,t.camelize)(n))]=(...t)=>e(n,...t)}),i}function bn(e){let n=(0,t.computed)(()=>(0,t.unref)(e)),r=(0,t.computed)(()=>new Intl.Collator(`en`,{usage:`search`,...n.value}));return{startsWith:(e,t)=>t.length===0?!0:(e=e.normalize(`NFC`),t=t.normalize(`NFC`),r.value.compare(e.slice(0,t.length),t)===0),endsWith:(e,t)=>t.length===0?!0:(e=e.normalize(`NFC`),t=t.normalize(`NFC`),r.value.compare(e.slice(-t.length),t)===0),contains:(e,t)=>{if(t.length===0)return!0;e=e.normalize(`NFC`),t=t.normalize(`NFC`);let n=0,i=t.length;for(;n+i<=e.length;n++){let a=e.slice(n,n+i);if(r.value.compare(t,a)===0)return!0}return!1}}}var xn=0;function Sn(){(0,t.watchEffect)(e=>{if(!rn)return;let t=document.querySelectorAll(`[data-reka-focus-guard]`);document.body.insertAdjacentElement(`afterbegin`,t[0]??Cn()),document.body.insertAdjacentElement(`beforeend`,t[1]??Cn()),xn++,e(()=>{xn===1&&document.querySelectorAll(`[data-reka-focus-guard]`).forEach(e=>e.remove()),xn--})})}function Cn(){let e=document.createElement(`span`);return e.setAttribute(`data-reka-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}function wn(e){return(0,t.computed)(()=>(0,t.toValue)(e)?!!(0,n.unrefElement)(e)?.closest(`form`):!0)}function G(){let e=(0,t.getCurrentInstance)(),r=(0,t.ref)(),i=(0,t.computed)(()=>[`#text`,`#comment`].includes(r.value?.$el.nodeName)?r.value?.$el.nextElementSibling:(0,n.unrefElement)(r)),a=Object.assign({},e.exposed),o={};for(let t in e.props)Object.defineProperty(o,t,{enumerable:!0,configurable:!0,get:()=>e.props[t]});if(Object.keys(a).length>0)for(let e in a)Object.defineProperty(o,e,{enumerable:!0,configurable:!0,get:()=>a[e]});Object.defineProperty(o,`$el`,{enumerable:!0,configurable:!0,get:()=>e.vnode.el}),e.exposed=o;function s(t){r.value=t,t&&(Object.defineProperty(o,`$el`,{enumerable:!0,configurable:!0,get:()=>t instanceof Element?t:t.$el}),e.exposed=o)}return{forwardRef:s,currentRef:r,currentElement:i}}function Tn(e){let n=(0,t.getCurrentInstance)(),r=Object.keys(n?.type.props??{}).reduce((e,t)=>{let r=(n?.type.props[t]).default;return r!==void 0&&(e[t]=r),e},{}),i=(0,t.toRef)(e);return(0,t.computed)(()=>{let e={},a=n?.vnode.props??{};return Object.keys(a).forEach(n=>{e[(0,t.camelize)(n)]=a[n]}),Object.keys({...r,...e}).reduce((e,t)=>(i.value[t]!==void 0&&(e[t]=i.value[t]),e),{})})}function En(e,n){let r=Tn(e),i=n?yn(n):{};return(0,t.computed)(()=>({...r.value,...i}))}var Dn=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},On=new WeakMap,kn=new WeakMap,An={},jn=0,Mn=function(e){return e&&(e.host||Mn(e.parentNode))},Nn=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=Mn(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Pn=function(e,t,n,r){var i=Nn(t,Array.isArray(e)?e:[e]);An[n]||(An[n]=new WeakMap);var a=An[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(On.get(e)||0)+1,l=(a.get(e)||0)+1;On.set(e,c),a.set(e,l),o.push(e),c===1&&i&&kn.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),jn++,function(){o.forEach(function(e){var t=On.get(e)-1,i=a.get(e)-1;On.set(e,t),a.set(e,i),t||(kn.has(e)||e.removeAttribute(r),kn.delete(e)),i||e.removeAttribute(n)}),jn--,jn||(On=new WeakMap,On=new WeakMap,kn=new WeakMap,An={})}},Fn=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Dn(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Pn(r,i,n,`aria-hidden`)):function(){return null}};function In(e){let r;(0,t.watch)(()=>(0,n.unrefElement)(e),e=>{e?r=Fn(e):r&&r()}),(0,t.onUnmounted)(()=>{r&&r()})}var Ln=0;function Rn(e,n=`reka`){if(e)return e;if(`useId`in t)return`${n}-${t.useId?.()}`;let r=Zt({useId:void 0});return r.useId?`${n}-${r.useId()}`:`${n}-${++Ln}`}function zn(){return{ALT:`Alt`,ARROW_DOWN:`ArrowDown`,ARROW_LEFT:`ArrowLeft`,ARROW_RIGHT:`ArrowRight`,ARROW_UP:`ArrowUp`,BACKSPACE:`Backspace`,CAPS_LOCK:`CapsLock`,CONTROL:`Control`,DELETE:`Delete`,END:`End`,ENTER:`Enter`,ESCAPE:`Escape`,F1:`F1`,F10:`F10`,F11:`F11`,F12:`F12`,F2:`F2`,F3:`F3`,F4:`F4`,F5:`F5`,F6:`F6`,F7:`F7`,F8:`F8`,F9:`F9`,HOME:`Home`,META:`Meta`,PAGE_DOWN:`PageDown`,PAGE_UP:`PageUp`,SHIFT:`Shift`,SPACE:` `,TAB:`Tab`,CTRL:`Control`,ASTERISK:`*`,SPACE_CODE:`Space`}}function Bn(e){let r=(0,t.ref)(),i=(0,t.computed)(()=>r.value?.width??0),a=(0,t.computed)(()=>r.value?.height??0);return(0,t.onMounted)(()=>{let t=(0,n.unrefElement)(e);if(t){r.value={width:t.offsetWidth,height:t.offsetHeight};let e=new ResizeObserver(e=>{if(!Array.isArray(e)||!e.length)return;let n=e[0],i,a;if(`borderBoxSize`in n){let e=n.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=t.offsetWidth,a=t.offsetHeight;r.value={width:i,height:a}});return e.observe(t,{box:`border-box`}),()=>e.unobserve(t)}else r.value=void 0}),{width:i,height:a}}function Vn(e,n){let r=(0,t.ref)(e);function i(e){return n[r.value][e]??r.value}return{state:r,dispatch:e=>{r.value=i(e)}}}function Hn(e){let t=cn(``,1e3);return{search:t,handleTypeaheadSearch:(n,r)=>{if(t.value+=n,e)e(n);else{let e=Kt(),n=r.map(e=>({...e,textValue:e.value?.textValue??e.ref.textContent?.trim()??``})),i=n.find(t=>t.ref===e),a=Wn(n.map(e=>e.textValue),t.value,i?.textValue),o=n.find(e=>e.textValue===a);return o&&o.ref.focus(),o?.ref}},resetTypeahead:()=>{t.value=``}}}function Un(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Wn(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Un(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Gn(e,r){let i=(0,t.ref)({}),a=(0,t.ref)(`none`),o=(0,t.ref)(e),s=e.value?`mounted`:`unmounted`,c,l=r.value?.ownerDocument.defaultView??n.defaultWindow,{state:u,dispatch:d}=Vn(s,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}}),f=e=>{if(rn){let t=new CustomEvent(e,{bubbles:!1,cancelable:!1});r.value?.dispatchEvent(t)}};(0,t.watch)(e,async(e,n)=>{let o=n!==e;if(await(0,t.nextTick)(),o){let t=a.value,o=Kn(r.value);e?(d(`MOUNT`),f(`enter`),o===`none`&&f(`after-enter`)):o===`none`||o===`undefined`||i.value?.display===`none`?(d(`UNMOUNT`),f(`leave`),f(`after-leave`)):n&&t!==o?(d(`ANIMATION_OUT`),f(`leave`)):(d(`UNMOUNT`),f(`after-leave`))}},{immediate:!0});let p=e=>{let t=Kn(r.value),n=t.includes(CSS.escape(e.animationName)),i=u.value===`mounted`?`enter`:`leave`;if(e.target===r.value&&n&&(f(`after-${i}`),d(`ANIMATION_END`),!o.value)){let e=r.value.style.animationFillMode;r.value.style.animationFillMode=`forwards`,c=l?.setTimeout(()=>{r.value?.style.animationFillMode===`forwards`&&(r.value.style.animationFillMode=e)})}e.target===r.value&&t===`none`&&d(`ANIMATION_END`)},m=e=>{e.target===r.value&&(a.value=Kn(r.value))},h=(0,t.watch)(r,(e,t)=>{e?(i.value=getComputedStyle(e),e.addEventListener(`animationstart`,m),e.addEventListener(`animationcancel`,p),e.addEventListener(`animationend`,p)):(d(`ANIMATION_END`),c!==void 0&&l?.clearTimeout(c),t?.removeEventListener(`animationstart`,m),t?.removeEventListener(`animationcancel`,p),t?.removeEventListener(`animationend`,p))},{immediate:!0}),g=(0,t.watch)(u,()=>{let e=Kn(r.value);a.value=u.value===`mounted`?e:`none`});return(0,t.onUnmounted)(()=>{h(),g()}),{isPresent:(0,t.computed)(()=>[`mounted`,`unmountSuspended`].includes(u.value))}}function Kn(e){return e&&getComputedStyle(e).animationName||`none`}var qn=(0,t.defineComponent)({name:`Presence`,props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:r,expose:i}){let{present:a,forceMount:o}=(0,t.toRefs)(e),s=(0,t.ref)(),{isPresent:c}=Gn(a,s);i({present:c});let l=r.default({present:c.value});l=Xt(l||[]);let u=(0,t.getCurrentInstance)();if(l&&l?.length>1){let e=u?.parent?.type.name?`<${u.parent.type.name} />`:`component`;throw Error([`Detected an invalid children for \`${e}\` for \`Presence\` component.`,``,"Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.",`You can apply a few solutions:`,["Provide a single child element so that `presence` directive attach correctly.",`Ensure the first child is an actual element instead of a raw text node or comment node.`].map(e=>` - ${e}`).join(`
|
|
59
|
+
`)].join(`
|
|
60
|
+
`))}return()=>o.value||a.value||c.value?(0,t.h)(r.default({present:c.value})[0],{ref:e=>{let t=(0,n.unrefElement)(e);return t?.hasAttribute===void 0||(t?.hasAttribute(`data-reka-popper-content-wrapper`)?s.value=t.firstElementChild:s.value=t),t}}):null}}),Jn=(0,t.defineComponent)({name:`PrimitiveSlot`,inheritAttrs:!1,setup(e,{attrs:n,slots:r}){return()=>{if(!r.default)return null;let e=Xt(r.default()),i=e.findIndex(e=>e.type!==t.Comment);if(i===-1)return e;let a=e[i];delete a.props?.ref;let o=a.props?(0,t.mergeProps)(n,a.props):n,s=(0,t.cloneVNode)({...a,props:{}},o);return e.length===1?s:(e[i]=s,e)}}}),Yn=[`area`,`img`,`input`],K=(0,t.defineComponent)({name:`Primitive`,inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},as:{type:[String,Object],default:`div`}},setup(e,{attrs:n,slots:r}){let i=e.asChild?`template`:e.as;return typeof i==`string`&&Yn.includes(i)?()=>(0,t.h)(i,n):i===`template`?()=>(0,t.h)(Jn,n,{default:r.default}):()=>(0,t.h)(e.as,n,{default:r.default})}});function Xn(){let e=(0,t.ref)();return{primitiveElement:e,currentElement:(0,t.computed)(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:(0,n.unrefElement)(e))}}function Zn({type:e,defaultValue:t,modelValue:n}){let r=n||t;return n!==void 0||t!==void 0?Array.isArray(r)?`multiple`:`single`:e??`single`}function Qn({type:e,defaultValue:t,modelValue:n}){return e||Zn({type:e,defaultValue:t,modelValue:n})}function $n({type:e,defaultValue:t}){return t===void 0?e===`single`?void 0:[]:t}function er(e,r){let i=(0,t.computed)(()=>Qn(e)),a=(0,n.useVModel)(e,`modelValue`,r,{defaultValue:$n(e),passive:e.modelValue===void 0,deep:!0});function o(e){if(i.value===`single`)a.value=Ut(e,a.value)?void 0:e;else{let t=Array.isArray(a.value)?[...a.value||[]]:[a.value].filter(Boolean);if(Yt(t,e)){let n=t.findIndex(t=>Ut(t,e));t.splice(n,1)}else t.push(e);a.value=t}}return{modelValue:a,changeModelValue:o,isSingle:(0,t.computed)(()=>i.value===`single`)}}var[tr,nr]=W(`DialogRoot`),rr=(0,t.defineComponent)({inheritAttrs:!1,__name:`DialogRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1,default:!1},modal:{type:Boolean,required:!1,default:!0}},emits:[`update:open`],setup(e,{emit:r}){let i=e,a=(0,n.useVModel)(i,`open`,r,{defaultValue:i.defaultOpen,passive:i.open===void 0}),o=(0,t.ref)(),s=(0,t.ref)(),{modal:c}=(0,t.toRefs)(i);return nr({open:a,modal:c,openModal:()=>{a.value=!0},onOpenChange:e=>{a.value=e},onOpenToggle:()=>{a.value=!a.value},contentId:``,titleId:``,descriptionId:``,triggerElement:o,contentElement:s}),(e,n)=>(0,t.renderSlot)(e.$slots,`default`,{open:(0,t.unref)(a),close:()=>a.value=!1})}}),ir=(0,t.defineComponent)({__name:`DialogClose`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let n=e;G();let r=tr();return(e,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)(n,{type:e.as===`button`?`button`:void 0,onClick:i[0]||=e=>(0,t.unref)(r).onOpenChange(!1)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`type`]))}}),ar=`dismissableLayer.pointerDownOutside`,or=`dismissableLayer.focusOutside`;function sr(e,t){let n=t.closest(`[data-dismissable-layer]`),r=e.dataset.dismissableLayer===``?e:e.querySelector(`[data-dismissable-layer]`),i=Array.from(e.ownerDocument.querySelectorAll(`[data-dismissable-layer]`));return!!(n&&(r===n||i.indexOf(r)<i.indexOf(n)))}function cr(e,n,r=!0){let i=n?.value?.ownerDocument??globalThis?.document,a=(0,t.ref)(!1),o=(0,t.ref)(()=>{});return(0,t.watchEffect)(s=>{if(!rn||!(0,t.toValue)(r))return;let c=async t=>{let r=t.target;if(!(!n?.value||!r)){if(sr(n.value,r)){a.value=!1;return}if(t.target&&!a.value){let n={originalEvent:t};function r(){qt(ar,e,n)}t.pointerType===`touch`?(i.removeEventListener(`click`,o.value),o.value=r,i.addEventListener(`click`,o.value,{once:!0})):r()}else i.removeEventListener(`click`,o.value);a.value=!1}},l=window.setTimeout(()=>{i.addEventListener(`pointerdown`,c)},0);s(()=>{window.clearTimeout(l),i.removeEventListener(`pointerdown`,c),i.removeEventListener(`click`,o.value)})}),{onPointerDownCapture:()=>{(0,t.toValue)(r)&&(a.value=!0)}}}function lr(e,n,r=!0){let i=n?.value?.ownerDocument??globalThis?.document,a=(0,t.ref)(!1);return(0,t.watchEffect)(o=>{if(!rn||!(0,t.toValue)(r))return;let s=async r=>{if(!n?.value)return;await(0,t.nextTick)(),await(0,t.nextTick)();let i=r.target;!n.value||!i||sr(n.value,i)||r.target&&!a.value&&qt(or,e,{originalEvent:r})};i.addEventListener(`focusin`,s),o(()=>i.removeEventListener(`focusin`,s))}),{onFocusCapture:()=>{(0,t.toValue)(r)&&(a.value=!0)},onBlurCapture:()=>{(0,t.toValue)(r)&&(a.value=!1)}}}var ur=(0,t.reactive)({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),dr=(0,t.defineComponent)({__name:`DismissableLayer`,props:{disableOutsidePointerEvents:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`dismiss`],setup(e,{emit:r}){let i=e,a=r,{forwardRef:o,currentElement:s}=G(),c=(0,t.computed)(()=>s.value?.ownerDocument??globalThis.document),l=(0,t.computed)(()=>ur.layersRoot),u=(0,t.computed)(()=>s.value?Array.from(l.value).indexOf(s.value):-1),d=(0,t.computed)(()=>ur.layersWithOutsidePointerEventsDisabled.size>0),f=(0,t.computed)(()=>{let e=Array.from(l.value),[t]=[...ur.layersWithOutsidePointerEventsDisabled].slice(-1),n=e.indexOf(t);return u.value>=n}),p=cr(async e=>{let n=[...ur.branches].some(t=>t?.contains(e.target));!f.value||n||(a(`pointerDownOutside`,e),a(`interactOutside`,e),await(0,t.nextTick)(),e.defaultPrevented||a(`dismiss`))},s),m=lr(e=>{[...ur.branches].some(t=>t?.contains(e.target))||(a(`focusOutside`,e),a(`interactOutside`,e),e.defaultPrevented||a(`dismiss`))},s);(0,n.onKeyStroke)(`Escape`,e=>{u.value===l.value.size-1&&(a(`escapeKeyDown`,e),e.defaultPrevented||a(`dismiss`))});let h;return(0,t.watchEffect)(e=>{s.value&&(i.disableOutsidePointerEvents&&(ur.layersWithOutsidePointerEventsDisabled.size===0&&(h=c.value.body.style.pointerEvents,c.value.body.style.pointerEvents=`none`),ur.layersWithOutsidePointerEventsDisabled.add(s.value)),l.value.add(s.value),e(()=>{i.disableOutsidePointerEvents&&ur.layersWithOutsidePointerEventsDisabled.size===1&&(c.value.body.style.pointerEvents=h)}))}),(0,t.watchEffect)(e=>{e(()=>{s.value&&(l.value.delete(s.value),ur.layersWithOutsidePointerEventsDisabled.delete(s.value))})}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{ref:(0,t.unref)(o),"as-child":e.asChild,as:e.as,"data-dismissable-layer":``,style:(0,t.normalizeStyle)({pointerEvents:d.value?f.value?`auto`:`none`:void 0}),onFocusCapture:(0,t.unref)(m).onFocusCapture,onBlurCapture:(0,t.unref)(m).onBlurCapture,onPointerdownCapture:(0,t.unref)(p).onPointerDownCapture},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`style`,`onFocusCapture`,`onBlurCapture`,`onPointerdownCapture`]))}}),fr=(0,n.createGlobalState)(()=>(0,t.ref)([]));function pr(){let e=fr();return{add(t){let n=e.value[0];t!==n&&n?.pause(),e.value=mr(e.value,t),e.value.unshift(t)},remove(t){e.value=mr(e.value,t),e.value[0]?.resume()}}}function mr(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function hr(e){return e.filter(e=>e.tagName!==`A`)}var gr=`focusScope.autoFocusOnMount`,_r=`focusScope.autoFocusOnUnmount`,vr={bubbles:!1,cancelable:!0};function yr(e,{select:t=!1}={}){let n=Kt();for(let r of e)if(Tr(r,{select:t}),Kt()!==n)return!0}function br(e){let t=xr(e);return[Sr(t,e),Sr(t.reverse(),e)]}function xr(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Sr(e,t){for(let n of e)if(!Cr(n,{upTo:t}))return n}function Cr(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function wr(e){return e instanceof HTMLInputElement&&`select`in e}function Tr(e,{select:t=!1}={}){if(e&&e.focus){let n=Kt();e.focus({preventScroll:!0}),e!==n&&wr(e)&&t&&e.select()}}var Er=(0,t.defineComponent)({__name:`FocusScope`,props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`mountAutoFocus`,`unmountAutoFocus`],setup(e,{emit:n}){let r=e,i=n,{currentRef:a,currentElement:o}=G(),s=(0,t.ref)(null),c=pr(),l=(0,t.reactive)({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});(0,t.watchEffect)(e=>{if(!rn)return;let t=o.value;if(!r.trapped)return;function n(e){if(l.paused||!t)return;let n=e.target;t.contains(n)?s.value=n:Tr(s.value,{select:!0})}function i(e){if(l.paused||!t)return;let n=e.relatedTarget;n!==null&&(t.contains(n)||Tr(s.value,{select:!0}))}function a(e){t.contains(s.value)||Tr(t)}document.addEventListener(`focusin`,n),document.addEventListener(`focusout`,i);let c=new MutationObserver(a);t&&c.observe(t,{childList:!0,subtree:!0}),e(()=>{document.removeEventListener(`focusin`,n),document.removeEventListener(`focusout`,i),c.disconnect()})}),(0,t.watchEffect)(async e=>{let n=o.value;if(await(0,t.nextTick)(),!n)return;c.add(l);let r=Kt();if(!n.contains(r)){let e=new CustomEvent(gr,vr);n.addEventListener(gr,e=>i(`mountAutoFocus`,e)),n.dispatchEvent(e),e.defaultPrevented||(yr(hr(xr(n)),{select:!0}),Kt()===r&&Tr(n))}e(()=>{n.removeEventListener(gr,e=>i(`mountAutoFocus`,e));let e=new CustomEvent(_r,vr),t=e=>{i(`unmountAutoFocus`,e)};n.addEventListener(_r,t),n.dispatchEvent(e),setTimeout(()=>{e.defaultPrevented||Tr(r??document.body,{select:!0}),n.removeEventListener(_r,t),c.remove(l)},0)})});function u(e){if(!r.loop&&!r.trapped||l.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=Kt();if(t&&n){let t=e.currentTarget,[i,a]=br(t);i&&a?!e.shiftKey&&n===a?(e.preventDefault(),r.loop&&Tr(i,{select:!0})):e.shiftKey&&n===i&&(e.preventDefault(),r.loop&&Tr(a,{select:!0})):n===t&&e.preventDefault()}}return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{ref_key:`currentRef`,ref:a,tabindex:`-1`,"as-child":e.asChild,as:e.as,onKeydown:u},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`as-child`,`as`]))}}),Dr=[`Enter`,` `],Or=[`ArrowDown`,`PageUp`,`Home`],kr=[`ArrowUp`,`PageDown`,`End`];[...Or,...kr],[...Dr],[...Dr];function Ar(e){return e?`open`:`closed`}function jr(e){let t=Kt();for(let n of e)if(n===t||(n.focus(),Kt()!==t))return}var Mr=`DialogTitle`,Nr=`DialogContent`;function Pr({titleName:e=Mr,contentName:n=Nr,componentLink:r=`dialog.html#title`,titleId:i,descriptionId:a,contentElement:o}){let s=`Warning: \`${n}\` requires a \`${e}\` for the component to be accessible for screen reader users.
|
|
61
|
+
|
|
62
|
+
If you want to hide the \`${e}\`, you can wrap it with our VisuallyHidden component.
|
|
63
|
+
|
|
64
|
+
For more information, see https://www.reka-ui.com/docs/components/${r}`,c=`Warning: Missing \`Description\` or \`aria-describedby="undefined"\` for ${n}.`;(0,t.onMounted)(()=>{document.getElementById(i)||console.warn(s);let e=o.value?.getAttribute(`aria-describedby`);a&&e&&(document.getElementById(a)||console.warn(c))})}var Fr=(0,t.defineComponent)({__name:`DialogContentImpl`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:n}){let r=e,i=n,a=tr(),{forwardRef:o,currentElement:s}=G();return a.titleId||=Rn(void 0,`reka-dialog-title`),a.descriptionId||=Rn(void 0,`reka-dialog-description`),(0,t.onMounted)(()=>{a.contentElement=s,Kt()!==document.body&&(a.triggerElement.value=Kt())}),process.env.NODE_ENV!==`production`&&Pr({titleName:`DialogTitle`,contentName:`DialogContent`,componentLink:`dialog.html#title`,titleId:a.titleId,descriptionId:a.descriptionId,contentElement:s}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Er),{"as-child":``,loop:``,trapped:r.trapFocus,onMountAutoFocus:n[5]||=e=>i(`openAutoFocus`,e),onUnmountAutoFocus:n[6]||=e=>i(`closeAutoFocus`,e)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(dr),(0,t.mergeProps)({id:(0,t.unref)(a).contentId,ref:(0,t.unref)(o),as:e.as,"as-child":e.asChild,"disable-outside-pointer-events":e.disableOutsidePointerEvents,role:`dialog`,"aria-describedby":(0,t.unref)(a).descriptionId,"aria-labelledby":(0,t.unref)(a).titleId,"data-state":(0,t.unref)(Ar)((0,t.unref)(a).open.value)},e.$attrs,{onDismiss:n[0]||=e=>(0,t.unref)(a).onOpenChange(!1),onEscapeKeyDown:n[1]||=e=>i(`escapeKeyDown`,e),onFocusOutside:n[2]||=e=>i(`focusOutside`,e),onInteractOutside:n[3]||=e=>i(`interactOutside`,e),onPointerDownOutside:n[4]||=e=>i(`pointerDownOutside`,e)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`id`,`as`,`as-child`,`disable-outside-pointer-events`,`aria-describedby`,`aria-labelledby`,`data-state`])]),_:3},8,[`trapped`]))}}),Ir=(0,t.defineComponent)({__name:`DialogContentModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:n}){let r=e,i=n,a=tr(),o=yn(i),{forwardRef:s,currentElement:c}=G();return In(c),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(Fr,(0,t.mergeProps)({...r,...(0,t.unref)(o)},{ref:(0,t.unref)(s),"trap-focus":(0,t.unref)(a).open.value,"disable-outside-pointer-events":!0,onCloseAutoFocus:n[0]||=e=>{e.defaultPrevented||(e.preventDefault(),(0,t.unref)(a).triggerElement.value?.focus())},onPointerDownOutside:n[1]||=e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()},onFocusOutside:n[2]||=e=>{e.preventDefault()}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`trap-focus`]))}}),Lr=(0,t.defineComponent)({__name:`DialogContentNonModal`,props:{forceMount:{type:Boolean,required:!1},trapFocus:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:n}){let r=e,i=yn(n);G();let a=tr(),o=(0,t.ref)(!1),s=(0,t.ref)(!1);return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(Fr,(0,t.mergeProps)({...r,...(0,t.unref)(i)},{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:n[0]||=e=>{e.defaultPrevented||(o.value||(0,t.unref)(a).triggerElement.value?.focus(),e.preventDefault()),o.value=!1,s.value=!1},onInteractOutside:n[1]||=e=>{e.defaultPrevented||(o.value=!0,e.detail.originalEvent.type===`pointerdown`&&(s.value=!0));let n=e.target;(0,t.unref)(a).triggerElement.value?.contains(n)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&s.value&&e.preventDefault()}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),Rr=(0,t.defineComponent)({__name:`DialogContent`,props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:n}){let r=e,i=n,a=tr(),o=yn(i),{forwardRef:s}=G();return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(qn),{present:e.forceMount||(0,t.unref)(a).open.value},{default:(0,t.withCtx)(()=>[(0,t.unref)(a).modal.value?((0,t.openBlock)(),(0,t.createBlock)(Ir,(0,t.mergeProps)({key:0,ref:(0,t.unref)(s)},{...r,...(0,t.unref)(o),...e.$attrs}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16)):((0,t.openBlock)(),(0,t.createBlock)(Lr,(0,t.mergeProps)({key:1,ref:(0,t.unref)(s)},{...r,...(0,t.unref)(o),...e.$attrs}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),zr=(0,t.defineComponent)({__name:`DialogOverlayImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=tr();return hn(!0),G(),(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{as:e.as,"as-child":e.asChild,"data-state":(0,t.unref)(n).open.value?`open`:`closed`,style:{"pointer-events":`auto`}},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`data-state`]))}}),Br=(0,t.defineComponent)({__name:`DialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=tr(),{forwardRef:r}=G();return(e,i)=>(0,t.unref)(n)?.modal.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(qn),{key:0,present:e.forceMount||(0,t.unref)(n).open.value},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(zr,(0,t.mergeProps)(e.$attrs,{ref:(0,t.unref)(r),as:e.as,"as-child":e.asChild}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`as`,`as-child`])]),_:3},8,[`present`])):(0,t.createCommentVNode)(`v-if`,!0)}}),Vr=(0,t.defineComponent)({__name:`Teleport`,props:{to:{type:null,required:!1,default:`body`},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let r=(0,n.useMounted)();return(e,n)=>(0,t.unref)(r)||e.forceMount?((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{key:0,to:e.to,disabled:e.disabled,defer:e.defer},[(0,t.renderSlot)(e.$slots,`default`)],8,[`to`,`disabled`,`defer`])):(0,t.createCommentVNode)(`v-if`,!0)}}),Hr=(0,t.defineComponent)({__name:`DialogPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let n=e;return(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Vr),(0,t.normalizeProps)((0,t.guardReactiveProps)(n)),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),Ur=(0,t.defineComponent)({__name:`DialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(e){let n=e,r=tr();return G(),(e,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)(n,{id:(0,t.unref)(r).titleId}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`id`]))}}),Wr=`data-reka-collection-item`;function Gr(e={}){let{key:n=``,isProvider:r=!1}=e,i=`${n}CollectionProvider`,a;if(r){let e=(0,t.ref)(new Map);a={collectionRef:(0,t.ref)(),itemMap:e},(0,t.provide)(i,a)}else a=(0,t.inject)(i);let o=(e=!1)=>{let t=a.collectionRef.value;if(!t)return[];let n=Array.from(t.querySelectorAll(`[${Wr}]`)),r=Array.from(a.itemMap.value.values()).sort((e,t)=>n.indexOf(e.ref)-n.indexOf(t.ref));return e?r:r.filter(e=>e.ref.dataset.disabled!==``)},s=(0,t.defineComponent)({name:`CollectionSlot`,setup(e,{slots:n}){let{primitiveElement:r,currentElement:i}=Xn();return(0,t.watch)(i,()=>{a.collectionRef.value=i.value}),()=>(0,t.h)(Jn,{ref:r},n)}}),c=(0,t.defineComponent)({name:`CollectionItem`,inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(e,{slots:n,attrs:r}){let{primitiveElement:i,currentElement:o}=Xn();return(0,t.watchEffect)(n=>{if(o.value){let r=(0,t.markRaw)(o.value);a.itemMap.value.set(r,{ref:o.value,value:e.value}),n(()=>a.itemMap.value.delete(r))}}),()=>(0,t.h)(Jn,{...r,[Wr]:``,ref:i},n)}});return{getItems:o,reactiveItems:(0,t.computed)(()=>Array.from(a.itemMap.value.values())),itemMapSize:(0,t.computed)(()=>a.itemMap.value.size),CollectionSlot:s,CollectionItem:c}}var Kr=`rovingFocusGroup.onEntryFocus`,qr={bubbles:!1,cancelable:!0},Jr={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Yr(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Xr(e,t,n){let r=Yr(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return Jr[r]}function Zr(e,t=!1){let n=Kt();for(let r of e)if(r===n||(r.focus({preventScroll:t}),Kt()!==n))return}function Qr(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[$r,ei]=W(`RovingFocusGroup`),ti=(0,t.defineComponent)({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:r,emit:i}){let a=e,o=i,{loop:s,orientation:c,dir:l}=(0,t.toRefs)(a),u=vn(l),d=(0,n.useVModel)(a,`currentTabStopId`,o,{defaultValue:a.defaultCurrentTabStopId,passive:a.currentTabStopId===void 0}),f=(0,t.ref)(!1),p=(0,t.ref)(!1),m=(0,t.ref)(0),{getItems:h,CollectionSlot:g}=Gr({isProvider:!0});function _(e){let t=!p.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!f.value){let t=new CustomEvent(Kr,qr);if(e.currentTarget.dispatchEvent(t),o(`entryFocus`,t),!t.defaultPrevented){let e=h().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);Zr([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===d.value),...e].filter(Boolean),a.preventScrollOnEntryFocus)}}p.value=!1}function v(){setTimeout(()=>{p.value=!1},1)}return r({getItems:h}),ei({loop:s,dir:u,orientation:c,currentTabStopId:d,onItemFocus:e=>{d.value=e},onItemShiftTab:()=>{f.value=!0},onFocusableItemAdd:()=>{m.value++},onFocusableItemRemove:()=>{m.value--}}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(g),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(K),{tabindex:f.value||m.value===0?-1:0,"data-orientation":(0,t.unref)(c),as:e.as,"as-child":e.asChild,dir:(0,t.unref)(u),style:{outline:`none`},onMousedown:n[0]||=e=>p.value=!0,onMouseup:v,onFocus:_,onBlur:n[1]||=e=>f.value=!1},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),ni=(0,t.defineComponent)({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let n=e,r=$r(),i=Rn(),a=(0,t.computed)(()=>n.tabStopId||i),o=(0,t.computed)(()=>r.currentTabStopId.value===a.value),{getItems:s,CollectionItem:c}=Gr();(0,t.onMounted)(()=>{n.focusable&&r.onFocusableItemAdd()}),(0,t.onUnmounted)(()=>{n.focusable&&r.onFocusableItemRemove()});function l(e){if(e.key===`Tab`&&e.shiftKey){r.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let i=Xr(e,r.orientation.value,r.dir.value);if(i!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!n.allowShiftKey&&e.shiftKey)return;e.preventDefault();let a=[...s().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(i===`last`)a.reverse();else if(i===`prev`||i===`next`){i===`prev`&&a.reverse();let t=a.indexOf(e.currentTarget);a=r.loop.value?Qr(a,t+1):a.slice(t+1)}(0,t.nextTick)(()=>Zr(a))}}return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(c),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(K),{tabindex:o.value?0:-1,"data-orientation":(0,t.unref)(r).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:n[0]||=n=>{e.focusable?(0,t.unref)(r).onItemFocus(a.value):n.preventDefault()},onFocus:n[1]||=e=>(0,t.unref)(r).onItemFocus(a.value),onKeydown:l},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}}),ri=(0,t.defineComponent)({__name:`VisuallyHidden`,props:{feature:{type:String,required:!1,default:`focusable`},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{as:e.as,"as-child":e.asChild,"aria-hidden":e.feature===`focusable`?`true`:void 0,"data-hidden":e.feature===`fully-hidden`?``:void 0,tabindex:e.feature===`fully-hidden`?`-1`:void 0,style:{position:`absolute`,border:0,width:`1px`,height:`1px`,padding:0,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,clipPath:`inset(50%)`,whiteSpace:`nowrap`,wordWrap:`normal`,top:`-1px`,left:`-1px`}},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`aria-hidden`,`data-hidden`,`tabindex`]))}}),ii=(0,t.defineComponent)({inheritAttrs:!1,__name:`VisuallyHiddenInputBubble`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(e){let n=e,{primitiveElement:r,currentElement:i}=Xn();return(0,t.watch)((0,t.computed)(()=>n.checked??n.value),(e,t)=>{if(!i.value)return;let n=i.value,r=window.HTMLInputElement.prototype,a=Object.getOwnPropertyDescriptor(r,`value`).set;if(a&&e!==t){let t=new Event(`input`,{bubbles:!0}),r=new Event(`change`,{bubbles:!0});a.call(n,e),n.dispatchEvent(t),n.dispatchEvent(r)}}),(e,i)=>((0,t.openBlock)(),(0,t.createBlock)(ri,(0,t.mergeProps)({ref_key:`primitiveElement`,ref:r},{...n,...e.$attrs},{as:`input`}),null,16))}}),ai=(0,t.defineComponent)({inheritAttrs:!1,__name:`VisuallyHiddenInput`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(e){let n=e,r=(0,t.computed)(()=>typeof n.value==`object`&&Array.isArray(n.value)&&n.value.length===0&&n.required),i=(0,t.computed)(()=>typeof n.value==`string`||typeof n.value==`number`||typeof n.value==`boolean`||n.value===null||n.value===void 0?[{name:n.name,value:n.value}]:typeof n.value==`object`&&Array.isArray(n.value)?n.value.flatMap((e,t)=>typeof e==`object`?Object.entries(e).map(([e,r])=>({name:`${n.name}[${t}][${e}]`,value:r})):{name:`${n.name}[${t}]`,value:e}):n.value!==null&&typeof n.value==`object`&&!Array.isArray(n.value)?Object.entries(n.value).map(([e,t])=>({name:`${n.name}[${e}]`,value:t})):[]);return(e,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createCommentVNode)(` We render single input if it's required `),r.value?((0,t.openBlock)(),(0,t.createBlock)(ii,(0,t.mergeProps)({key:e.name},{...n,...e.$attrs},{name:e.name,value:e.value}),null,16,[`name`,`value`])):((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:1},(0,t.renderList)(i.value,r=>((0,t.openBlock)(),(0,t.createBlock)(ii,(0,t.mergeProps)({key:r.name},{ref_for:!0},{...n,...e.$attrs},{name:r.name,value:r.value}),null,16,[`name`,`value`]))),128))],2112))}}),[oi,si]=W(`PopperRoot`),ci=(0,t.defineComponent)({inheritAttrs:!1,__name:`PopperRoot`,setup(e){let n=(0,t.ref)();return si({anchor:n,onAnchorChange:e=>n.value=e}),(e,n)=>(0,t.renderSlot)(e.$slots,`default`)}}),li=(0,t.defineComponent)({__name:`PopperAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=e,{forwardRef:r,currentElement:i}=G(),a=oi();return(0,t.watchPostEffect)(()=>{a.onAnchorChange(n.reference??i.value)}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{ref:(0,t.unref)(r),as:e.as,"as-child":e.asChild},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}});function ui(e){return e!==null}function di(e){return{name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=fi(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}}function fi(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var pi=[`top`,`right`,`bottom`,`left`],mi=Math.min,hi=Math.max,gi=Math.round,_i=Math.floor,vi=e=>({x:e,y:e}),yi={left:`right`,right:`left`,bottom:`top`,top:`bottom`},bi={start:`end`,end:`start`};function xi(e,t,n){return hi(e,mi(t,n))}function Si(e,t){return typeof e==`function`?e(t):e}function Ci(e){return e.split(`-`)[0]}function wi(e){return e.split(`-`)[1]}function Ti(e){return e===`x`?`y`:`x`}function Ei(e){return e===`y`?`height`:`width`}var Di=new Set([`top`,`bottom`]);function Oi(e){return Di.has(Ci(e))?`y`:`x`}function ki(e){return Ti(Oi(e))}function Ai(e,t,n){n===void 0&&(n=!1);let r=wi(e),i=ki(e),a=Ei(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=zi(o)),[o,zi(o)]}function ji(e){let t=zi(e);return[Mi(e),t,Mi(t)]}function Mi(e){return e.replace(/start|end/g,e=>bi[e])}var Ni=[`left`,`right`],Pi=[`right`,`left`],Fi=[`top`,`bottom`],Ii=[`bottom`,`top`];function Li(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Pi:Ni:t?Ni:Pi;case`left`:case`right`:return t?Fi:Ii;default:return[]}}function Ri(e,t,n,r){let i=wi(e),a=Li(Ci(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(Mi)))),a}function zi(e){return e.replace(/left|right|bottom|top/g,e=>yi[e])}function Bi(e){return{top:0,right:0,bottom:0,left:0,...e}}function Vi(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Bi(e)}function Hi(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Ui(e,t,n){let{reference:r,floating:i}=e,a=Oi(t),o=ki(t),s=Ei(o),c=Ci(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(wi(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}var Wi=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=a.filter(Boolean),c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Ui(l,r,c),f=r,p={},m=0;for(let n=0;n<s.length;n++){let{name:a,fn:h}=s[n],{x:g,y:_,data:v,reset:y}=await h({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:p,rects:l,platform:o,elements:{reference:e,floating:t}});u=g??u,d=_??d,p={...p,[a]:{...p[a],...v}},y&&m<=50&&(m++,typeof y==`object`&&(y.placement&&(f=y.placement),y.rects&&(l=y.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):y.rects),{x:u,y:d}=Ui(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:p}};async function Gi(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Si(t,e),p=Vi(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Hi(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Hi(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Ki=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=Si(e,t)||{};if(l==null)return{};let d=Vi(u),f={x:n,y:r},p=ki(i),m=Ei(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=mi(d[_],T),D=mi(d[v],T),O=E,ee=C-h[m]-D,k=C/2-h[m]/2+w,te=xi(O,k,ee),A=!c.arrow&&wi(i)!=null&&k!==te&&a.reference[m]/2-(k<O?E:D)-h[m]/2<0,j=A?k<O?k-O:k-ee:0;return{[p]:f[p]+j,data:{[p]:te,centerOffset:k-te-j,...A&&{alignmentOffset:j}},reset:A}}}),qi=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Si(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=Ci(r),_=Oi(o),v=Ci(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[zi(o)]:ji(o)),x=p!==`none`;!d&&x&&b.push(...Ri(o,m,p,y));let S=[o,...b],C=await Gi(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=Ai(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==Oi(t))||T.every(e=>Oi(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=Oi(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function Ji(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Yi(e){return pi.some(t=>e[t]>=0)}var Xi=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n}=t,{strategy:r=`referenceHidden`,...i}=Si(e,t);switch(r){case`referenceHidden`:{let e=Ji(await Gi(t,{...i,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:Yi(e)}}}case`escaped`:{let e=Ji(await Gi(t,{...i,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:Yi(e)}}}default:return{}}}}},Zi=new Set([`left`,`top`]);async function Qi(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Ci(n),s=wi(n),c=Oi(n)===`y`,l=Zi.has(o)?-1:1,u=a&&c?-1:1,d=Si(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var $i=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Qi(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},ea=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i}=t,{mainAxis:a=!0,crossAxis:o=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=Si(e,t),l={x:n,y:r},u=await Gi(t,c),d=Oi(Ci(i)),f=Ti(d),p=l[f],m=l[d];if(a){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=p+u[e],r=p-u[t];p=xi(n,p,r)}if(o){let e=d===`y`?`top`:`left`,t=d===`y`?`bottom`:`right`,n=m+u[e],r=m-u[t];m=xi(n,m,r)}let h=s.fn({...t,[f]:p,[d]:m});return{...h,data:{x:h.x-n,y:h.y-r,enabled:{[f]:a,[d]:o}}}}}},ta=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=Si(e,t),u={x:n,y:r},d=Oi(i),f=Ti(d),p=u[f],m=u[d],h=Si(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Zi.has(Ci(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},na=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=Si(e,t),u=await Gi(t,l),d=Ci(i),f=wi(i),p=Oi(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=mi(h-u[g],v),x=mi(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=hi(u.left,0),t=hi(u.right,0),n=hi(u.top,0),r=hi(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:hi(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:hi(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function ra(){return typeof window<`u`}function ia(e){return sa(e)?(e.nodeName||``).toLowerCase():`#document`}function aa(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function oa(e){return((sa(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function sa(e){return ra()?e instanceof Node||e instanceof aa(e).Node:!1}function ca(e){return ra()?e instanceof Element||e instanceof aa(e).Element:!1}function la(e){return ra()?e instanceof HTMLElement||e instanceof aa(e).HTMLElement:!1}function ua(e){return!ra()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof aa(e).ShadowRoot}var da=new Set([`inline`,`contents`]);function fa(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Ta(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!da.has(i)}var pa=new Set([`table`,`td`,`th`]);function ma(e){return pa.has(ia(e))}var ha=[`:popover-open`,`:modal`];function ga(e){return ha.some(t=>{try{return e.matches(t)}catch{return!1}})}var _a=[`transform`,`translate`,`scale`,`rotate`,`perspective`],va=[`transform`,`translate`,`scale`,`rotate`,`perspective`,`filter`],ya=[`paint`,`layout`,`strict`,`content`];function ba(e){let t=Sa(),n=ca(e)?Ta(e):e;return _a.some(e=>n[e]?n[e]!==`none`:!1)||(n.containerType?n.containerType!==`normal`:!1)||!t&&(n.backdropFilter?n.backdropFilter!==`none`:!1)||!t&&(n.filter?n.filter!==`none`:!1)||va.some(e=>(n.willChange||``).includes(e))||ya.some(e=>(n.contain||``).includes(e))}function xa(e){let t=Da(e);for(;la(t)&&!wa(t);){if(ba(t))return t;if(ga(t))return null;t=Da(t)}return null}function Sa(){return typeof CSS>`u`||!CSS.supports?!1:CSS.supports(`-webkit-backdrop-filter`,`none`)}var Ca=new Set([`html`,`body`,`#document`]);function wa(e){return Ca.has(ia(e))}function Ta(e){return aa(e).getComputedStyle(e)}function Ea(e){return ca(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Da(e){if(ia(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||ua(e)&&e.host||oa(e);return ua(t)?t.host:t}function Oa(e){let t=Da(e);return wa(t)?e.ownerDocument?e.ownerDocument.body:e.body:la(t)&&fa(t)?t:Oa(t)}function ka(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=Oa(e),i=r===e.ownerDocument?.body,a=aa(r);if(i){let e=Aa(a);return t.concat(a,a.visualViewport||[],fa(r)?r:[],e&&n?ka(e):[])}return t.concat(r,ka(r,[],n))}function Aa(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function ja(e){let t=Ta(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=la(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=gi(n)!==a||gi(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Ma(e){return ca(e)?e:e.contextElement}function Na(e){let t=Ma(e);if(!la(t))return vi(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=ja(t),o=(a?gi(n.width):n.width)/r,s=(a?gi(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var Pa=vi(0);function Fa(e){let t=aa(e);return!Sa()||!t.visualViewport?Pa:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Ia(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==aa(e)?!1:t}function La(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Ma(e),o=vi(1);t&&(r?ca(r)&&(o=Na(r)):o=Na(e));let s=Ia(a,n,r)?Fa(a):vi(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=aa(a),t=r&&ca(r)?aa(r):r,n=e,i=Aa(n);for(;i&&r&&t!==n;){let e=Na(i),t=i.getBoundingClientRect(),r=Ta(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=aa(i),i=Aa(n)}}return Hi({width:u,height:d,x:c,y:l})}function Ra(e,t){let n=Ea(e).scrollLeft;return t?t.left+n:La(oa(e)).left+n}function za(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Ra(e,n),y:n.top+t.scrollTop}}function Ba(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=oa(r),s=t?ga(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=vi(1),u=vi(0),d=la(r);if((d||!d&&!a)&&((ia(r)!==`body`||fa(o))&&(c=Ea(r)),la(r))){let e=La(r);l=Na(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?za(o,c):vi(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Va(e){return Array.from(e.getClientRects())}function Ha(e){let t=oa(e),n=Ea(e),r=e.ownerDocument.body,i=hi(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=hi(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+Ra(e),s=-n.scrollTop;return Ta(r).direction===`rtl`&&(o+=hi(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var Ua=25;function Wa(e,t){let n=aa(e),r=oa(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Sa();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=Ra(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=Ua&&(a-=o)}else l<=Ua&&(a+=l);return{width:a,height:o,x:s,y:c}}var Ga=new Set([`absolute`,`fixed`]);function Ka(e,t){let n=La(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=la(e)?Na(e):vi(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function qa(e,t,n){let r;if(t===`viewport`)r=Wa(e,n);else if(t===`document`)r=Ha(oa(e));else if(ca(t))r=Ka(t,n);else{let n=Fa(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Hi(r)}function Ja(e,t){let n=Da(e);return n===t||!ca(n)||wa(n)?!1:Ta(n).position===`fixed`||Ja(n,t)}function Ya(e,t){let n=t.get(e);if(n)return n;let r=ka(e,[],!1).filter(e=>ca(e)&&ia(e)!==`body`),i=null,a=Ta(e).position===`fixed`,o=a?Da(e):e;for(;ca(o)&&!wa(o);){let t=Ta(o),n=ba(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&Ga.has(i.position)||fa(o)&&!n&&Ja(e,o))?r=r.filter(e=>e!==o):i=t,o=Da(o)}return t.set(e,r),r}function Xa(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?ga(t)?[]:Ya(t,this._c):[].concat(n),r],o=a[0],s=a.reduce((e,n)=>{let r=qa(t,n,i);return e.top=hi(r.top,e.top),e.right=mi(r.right,e.right),e.bottom=mi(r.bottom,e.bottom),e.left=hi(r.left,e.left),e},qa(t,o,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function Za(e){let{width:t,height:n}=ja(e);return{width:t,height:n}}function Qa(e,t,n){let r=la(t),i=oa(t),a=n===`fixed`,o=La(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=vi(0);function l(){c.x=Ra(i)}if(r||!r&&!a)if((ia(t)!==`body`||fa(i))&&(s=Ea(t)),r){let e=La(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?za(i,s):vi(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function $a(e){return Ta(e).position===`static`}function eo(e,t){if(!la(e)||Ta(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return oa(e)===n&&(n=n.ownerDocument.body),n}function to(e,t){let n=aa(e);if(ga(e))return n;if(!la(e)){let t=Da(e);for(;t&&!wa(t);){if(ca(t)&&!$a(t))return t;t=Da(t)}return n}let r=eo(e,t);for(;r&&ma(r)&&$a(r);)r=eo(r,t);return r&&wa(r)&&$a(r)&&!ba(r)?n:r||xa(e)||n}var no=async function(e){let t=this.getOffsetParent||to,n=this.getDimensions,r=await n(e.floating);return{reference:Qa(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function ro(e){return Ta(e).direction===`rtl`}var io={convertOffsetParentRelativeRectToViewportRelativeRect:Ba,getDocumentElement:oa,getClippingRect:Xa,getOffsetParent:to,getElementRects:no,getClientRects:Va,getDimensions:Za,getScale:Na,isElement:ca,isRTL:ro};function ao(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function oo(e,t){let n=null,r,i=oa(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=_i(d),h=_i(i.clientWidth-(u+f)),g=_i(i.clientHeight-(d+p)),_=_i(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:hi(0,mi(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!ao(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function so(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=Ma(e),u=i||a?[...l?ka(l):[],...ka(t)]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?oo(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),p.observe(t));let m,h=c?La(e):null;c&&g();function g(){let t=La(e);h&&!ao(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var co=$i,lo=ea,uo=qi,fo=na,po=Xi,mo=Ki,ho=ta,go=(e,t,n)=>{let r=new Map,i={platform:io,...n},a={...i.platform,_c:r};return Wi(e,t,{...i,platform:a})},q=l({Vue:()=>t,Vue2:()=>void 0,del:()=>yo,install:()=>_o,isVue2:()=>!1,isVue3:()=>!0,set:()=>vo},1);d(q,require(`vue`),void 0,1);function _o(){}function vo(e,t,n){return Array.isArray(e)?(e.length=Math.max(e.length,t),e.splice(t,1,n),n):(e[t]=n,n)}function yo(e,t){if(Array.isArray(e)){e.splice(t,1);return}delete e[t]}function bo(e){return typeof e==`object`&&!!e&&`$el`in e}function xo(e){if(bo(e)){let t=e.$el;return sa(t)&&ia(t)===`#comment`?null:t}return e}function So(e){return typeof e==`function`?e():(0,q.unref)(e)}function Co(e){return{name:`arrow`,options:e,fn(t){let n=xo(So(e.element));return n==null?{}:mo({element:n,padding:e.padding}).fn(t)}}}function wo(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function To(e,t){let n=wo(e);return Math.round(t*n)/n}function Eo(e,t,n){n===void 0&&(n={});let r=n.whileElementsMounted,i=(0,q.computed)(()=>So(n.open)??!0),a=(0,q.computed)(()=>So(n.middleware)),o=(0,q.computed)(()=>So(n.placement)??`bottom`),s=(0,q.computed)(()=>So(n.strategy)??`absolute`),c=(0,q.computed)(()=>So(n.transform)??!0),l=(0,q.computed)(()=>xo(e.value)),u=(0,q.computed)(()=>xo(t.value)),d=(0,q.ref)(0),f=(0,q.ref)(0),p=(0,q.ref)(s.value),m=(0,q.ref)(o.value),h=(0,q.shallowRef)({}),g=(0,q.ref)(!1),_=(0,q.computed)(()=>{let e={position:p.value,left:`0`,top:`0`};if(!u.value)return e;let t=To(u.value,d.value),n=To(u.value,f.value);return c.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...wo(u.value)>=1.5&&{willChange:`transform`}}:{position:p.value,left:t+`px`,top:n+`px`}}),v;function y(){if(l.value==null||u.value==null)return;let e=i.value;go(l.value,u.value,{middleware:a.value,placement:o.value,strategy:s.value}).then(t=>{d.value=t.x,f.value=t.y,p.value=t.strategy,m.value=t.placement,h.value=t.middlewareData,g.value=e!==!1})}function b(){typeof v==`function`&&(v(),v=void 0)}function x(){if(b(),r===void 0){y();return}if(l.value!=null&&u.value!=null){v=r(l.value,u.value,y);return}}function S(){i.value||(g.value=!1)}return(0,q.watch)([a,o,s,i],y,{flush:`sync`}),(0,q.watch)([l,u],x,{flush:`sync`}),(0,q.watch)(i,S,{flush:`sync`}),(0,q.getCurrentScope)()&&(0,q.onScopeDispose)(b),{x:(0,q.shallowReadonly)(d),y:(0,q.shallowReadonly)(f),strategy:(0,q.shallowReadonly)(p),placement:(0,q.shallowReadonly)(m),middlewareData:(0,q.shallowReadonly)(h),isPositioned:(0,q.shallowReadonly)(g),floatingStyles:_,update:y}}var Do={side:`bottom`,sideOffset:0,sideFlip:!0,align:`center`,alignOffset:0,alignFlip:!0,arrowPadding:0,avoidCollisions:!0,collisionBoundary:()=>[],collisionPadding:0,sticky:`partial`,hideWhenDetached:!1,positionStrategy:`fixed`,updatePositionStrategy:`optimized`,prioritizePosition:!1},[Oo,ko]=W(`PopperContent`),Ao=(0,t.defineComponent)({inheritAttrs:!1,__name:`PopperContent`,props:(0,t.mergeDefaults)({side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...Do}),emits:[`placed`],setup(e,{emit:r}){let i=e,a=r,o=oi(),{forwardRef:s,currentElement:c}=G(),l=(0,t.ref)(),u=(0,t.ref)(),{width:d,height:f}=Bn(u),p=(0,t.computed)(()=>i.side+(i.align===`center`?``:`-${i.align}`)),m=(0,t.computed)(()=>typeof i.collisionPadding==`number`?i.collisionPadding:{top:0,right:0,bottom:0,left:0,...i.collisionPadding}),h=(0,t.computed)(()=>Array.isArray(i.collisionBoundary)?i.collisionBoundary:[i.collisionBoundary]),g=(0,t.computed)(()=>({padding:m.value,boundary:h.value.filter(ui),altBoundary:h.value.length>0})),_=(0,t.computed)(()=>({mainAxis:i.sideFlip,crossAxis:i.alignFlip})),v=(0,n.computedEager)(()=>[co({mainAxis:i.sideOffset+f.value,alignmentAxis:i.alignOffset}),i.prioritizePosition&&i.avoidCollisions&&uo({...g.value,..._.value}),i.avoidCollisions&&lo({mainAxis:!0,crossAxis:!!i.prioritizePosition,limiter:i.sticky===`partial`?ho():void 0,...g.value}),!i.prioritizePosition&&i.avoidCollisions&&uo({...g.value,..._.value}),fo({...g.value,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--reka-popper-available-width`,`${n}px`),o.setProperty(`--reka-popper-available-height`,`${r}px`),o.setProperty(`--reka-popper-anchor-width`,`${i}px`),o.setProperty(`--reka-popper-anchor-height`,`${a}px`)}}),u.value&&Co({element:u.value,padding:i.arrowPadding}),di({arrowWidth:d.value,arrowHeight:f.value}),i.hideWhenDetached&&po({strategy:`referenceHidden`,...g.value})]),{floatingStyles:y,placement:b,isPositioned:x,middlewareData:S,update:C}=Eo((0,t.computed)(()=>i.reference??o.anchor.value),l,{strategy:i.positionStrategy,placement:p,whileElementsMounted:(...e)=>so(...e,{layoutShift:!i.disableUpdateOnLayoutShift,animationFrame:i.updatePositionStrategy===`always`}),middleware:v}),w=(0,t.computed)(()=>fi(b.value)[0]),T=(0,t.computed)(()=>fi(b.value)[1]);(0,t.watchPostEffect)(()=>{x.value&&a(`placed`)});let E=(0,t.computed)(()=>S.value.arrow?.centerOffset!==0),D=(0,t.ref)(``);return(0,t.watchEffect)(()=>{c.value&&(D.value=window.getComputedStyle(c.value).zIndex)}),ko({placedSide:w,onArrowChange:e=>u.value=e,arrowX:(0,t.computed)(()=>S.value.arrow?.x??0),arrowY:(0,t.computed)(()=>S.value.arrow?.y??0),shouldHideArrow:E}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`floatingRef`,ref:l,"data-reka-popper-content-wrapper":``,style:(0,t.normalizeStyle)({...(0,t.unref)(y),transform:(0,t.unref)(x)?(0,t.unref)(y).transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:D.value,"--reka-popper-transform-origin":[(0,t.unref)(S).transformOrigin?.x,(0,t.unref)(S).transformOrigin?.y].join(` `),...(0,t.unref)(S).hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}})},[(0,t.createVNode)((0,t.unref)(K),(0,t.mergeProps)({ref:(0,t.unref)(s)},e.$attrs,{"as-child":i.asChild,as:e.as,"data-side":w.value,"data-align":T.value,style:{animation:(0,t.unref)(x)?void 0:`none`}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`style`])],4))}});function jo(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>Mo(e,t,n)):Mo(e,t,n)}function Mo(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:Ut(e,t)}var[No,Po]=W(`ListboxRoot`),Fo=(0,t.defineComponent)({__name:`ListboxRoot`,props:{modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1},multiple:{type:Boolean,required:!1},orientation:{type:String,required:!1,default:`vertical`},dir:{type:String,required:!1},disabled:{type:Boolean,required:!1},selectionBehavior:{type:String,required:!1,default:`toggle`},highlightOnHover:{type:Boolean,required:!1},by:{type:[String,Function],required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`],setup(e,{expose:r,emit:i}){let a=e,o=i,{multiple:s,highlightOnHover:c,orientation:l,disabled:u,selectionBehavior:d,dir:f}=(0,t.toRefs)(a),{getItems:p}=Gr({isProvider:!0}),{handleTypeaheadSearch:m}=Hn(),{primitiveElement:h,currentElement:g}=Xn(),_=zn(),v=vn(f),y=wn(g),b=(0,t.ref)(),x=(0,t.ref)(!1),S=(0,t.ref)(!0),C=(0,n.useVModel)(a,`modelValue`,o,{defaultValue:a.defaultValue??(s.value?[]:void 0),passive:a.modelValue===void 0,deep:!0});function w(e){if(x.value=!0,a.multiple){let t=Array.isArray(C.value)?[...C.value]:[],n=t.findIndex(t=>Mo(t,e,a.by));a.selectionBehavior===`toggle`?(n===-1?t.push(e):t.splice(n,1),C.value=t):(C.value=[e],b.value=e)}else a.selectionBehavior===`toggle`&&Mo(C.value,e,a.by)?C.value=void 0:C.value=e;setTimeout(()=>{x.value=!1},1)}let T=(0,t.ref)(null),E=(0,t.ref)(null),D=(0,t.ref)(!1),O=(0,t.ref)(!1),ee=(0,n.createEventHook)(),k=(0,n.createEventHook)(),te=(0,n.createEventHook)();function A(){return p().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)}function j(e,t=!0){e&&(T.value=e,S.value&&T.value.focus(),t&&T.value.scrollIntoView({block:`nearest`}),o(`highlight`,p().find(t=>t.ref===e)))}function M(e){if(D.value)te.trigger(e);else{let t=p().find(t=>Mo(t.value,e,a.by));t&&(T.value=t.ref,j(t.ref))}}function N(e){T.value&&T.value.isConnected&&(e.preventDefault(),e.stopPropagation(),O.value||T.value.click())}function ne(e){if(S.value){if(x.value=!0,D.value)k.trigger(e);else{let t=e.altKey||e.ctrlKey||e.metaKey;if(t&&e.key===`a`&&s.value){let t=p();C.value=[...t.map(e=>e.value)],e.preventDefault(),j(t[t.length-1].ref)}else if(!t){let t=m(e.key,p());t&&j(t)}}setTimeout(()=>{x.value=!1},1)}}function re(){O.value=!0}function ie(){(0,t.nextTick)(()=>{O.value=!1})}function P(){(0,t.nextTick)(()=>{oe(new KeyboardEvent(`keydown`,{key:`PageUp`}))})}function F(e){let t=T.value;t?.isConnected&&(E.value=t),T.value=null,o(`leave`,e)}function ae(e){let t=new CustomEvent(`listbox.entryFocus`,{bubbles:!1,cancelable:!0});if(e.currentTarget?.dispatchEvent(t),o(`entryFocus`,t),!t.defaultPrevented)if(E.value)j(E.value);else{let e=A()?.[0];j(e)}}function oe(e){let t=Xr(e,l.value,v.value);if(!t)return;let n=A();if(T.value){if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let e=n.indexOf(T.value);n=n.slice(e+1)}I(e,n[0])}if(n.length){let e=!T.value&&t===`prev`?n.length-1:0;j(n[e])}if(D.value)return k.trigger(e)}function I(e,t){if(!(D.value||a.selectionBehavior!==`replace`||!s.value||!Array.isArray(C.value))&&!((e.altKey||e.ctrlKey||e.metaKey)&&!e.shiftKey)&&e.shiftKey){let n=p().filter(e=>e.ref.dataset.disabled!==``),r=n.find(e=>e.ref===t)?.value;if(e.key===_.END?r=n[n.length-1].value:e.key===_.HOME&&(r=n[0].value),!r||!b.value)return;C.value=Wt(n.map(e=>e.value),b.value,r)}}async function se(e){if(await(0,t.nextTick)(),D.value)ee.trigger(e);else{let e=A(),t=e.find(e=>e.dataset.state===`checked`);t?j(t):e.length&&j(e[0])}}return(0,t.watch)(C,()=>{x.value||(0,t.nextTick)(()=>{se()})},{immediate:!0,deep:!0}),r({highlightedElement:T,highlightItem:M,highlightFirstItem:P,highlightSelected:se,getItems:p}),Po({modelValue:C,onValueChange:w,multiple:s,orientation:l,dir:v,disabled:u,highlightOnHover:c,highlightedElement:T,isVirtual:D,virtualFocusHook:ee,virtualKeydownHook:k,virtualHighlightHook:te,by:a.by,firstValue:b,selectionBehavior:d,focusable:S,onLeave:F,onEnter:ae,changeHighlight:j,onKeydownEnter:N,onKeydownNavigation:oe,onKeydownTypeAhead:ne,onCompositionStart:re,onCompositionEnd:ie,highlightFirstItem:P}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{ref_key:`primitiveElement`,ref:h,as:e.as,"as-child":e.asChild,dir:(0,t.unref)(v),"data-disabled":(0,t.unref)(u)?``:void 0,onPointerleave:F,onFocusout:n[0]||=async e=>{let n=e.relatedTarget||e.target;await(0,t.nextTick)(),T.value&&(0,t.unref)(g)&&!(0,t.unref)(g).contains(n)&&F(e)}},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`,{modelValue:(0,t.unref)(C)}),(0,t.unref)(y)&&e.name?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ai),{key:0,name:e.name,value:(0,t.unref)(C),disabled:(0,t.unref)(u),required:e.required},null,8,[`name`,`value`,`disabled`,`required`])):(0,t.createCommentVNode)(`v-if`,!0)]),_:3},8,[`as`,`as-child`,`dir`,`data-disabled`]))}}),Io=(0,t.defineComponent)({__name:`ListboxContent`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{CollectionSlot:n}=Gr(),r=No(),i=cn(!1,10);return(e,a)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(K),{role:`listbox`,as:e.as,"as-child":e.asChild,tabindex:(0,t.unref)(r).focusable.value?(0,t.unref)(r).highlightedElement.value?`-1`:`0`:`-1`,"aria-orientation":(0,t.unref)(r).orientation.value,"aria-multiselectable":!!(0,t.unref)(r).multiple.value,"data-orientation":(0,t.unref)(r).orientation.value,onMousedown:a[0]||=(0,t.withModifiers)(e=>i.value=!0,[`left`]),onFocus:a[1]||=e=>{(0,t.unref)(i)||(0,t.unref)(r).onEnter(e)},onKeydown:[a[2]||=(0,t.withKeys)(e=>{(0,t.unref)(r).orientation.value===`vertical`&&(e.key===`ArrowLeft`||e.key===`ArrowRight`)||(0,t.unref)(r).orientation.value===`horizontal`&&(e.key===`ArrowUp`||e.key===`ArrowDown`)||(e.preventDefault(),(0,t.unref)(r).focusable.value&&(0,t.unref)(r).onKeydownNavigation(e))},[`down`,`up`,`left`,`right`,`home`,`end`]),(0,t.withKeys)((0,t.unref)(r).onKeydownEnter,[`enter`]),(0,t.unref)(r).onKeydownTypeAhead]},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`tabindex`,`aria-orientation`,`aria-multiselectable`,`data-orientation`,`onKeydown`])]),_:3}))}}),Lo=(0,t.defineComponent)({__name:`ListboxFilter`,props:{modelValue:{type:String,required:!1},autoFocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`input`}},emits:[`update:modelValue`],setup(e,{emit:r}){let i=e,a=(0,n.useVModel)(i,`modelValue`,r,{defaultValue:``,passive:i.modelValue===void 0}),o=No(),{primitiveElement:s,currentElement:c}=Xn(),l=(0,t.computed)(()=>i.disabled||o.disabled.value||!1),u=(0,t.ref)();return(0,t.watchSyncEffect)(()=>u.value=o.highlightedElement.value?.id),(0,t.onMounted)(()=>{o.focusable.value=!1,setTimeout(()=>{i.autoFocus&&c.value?.focus()},1)}),(0,t.onUnmounted)(()=>{o.focusable.value=!0}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{ref_key:`primitiveElement`,ref:s,as:e.as,"as-child":e.asChild,value:(0,t.unref)(a),disabled:l.value?``:void 0,"data-disabled":l.value?``:void 0,"aria-disabled":l.value??void 0,"aria-activedescendant":u.value,type:`text`,onKeydown:[(0,t.withKeys)((0,t.withModifiers)((0,t.unref)(o).onKeydownNavigation,[`prevent`]),[`down`,`up`,`home`,`end`]),(0,t.withKeys)((0,t.unref)(o).onKeydownEnter,[`enter`])],onInput:n[0]||=e=>{a.value=e.target.value,(0,t.unref)(o).highlightFirstItem()},onCompositionstart:(0,t.unref)(o).onCompositionStart,onCompositionend:(0,t.unref)(o).onCompositionEnd},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`,{modelValue:(0,t.unref)(a)})]),_:3},8,[`as`,`as-child`,`value`,`disabled`,`data-disabled`,`aria-disabled`,`aria-activedescendant`,`onKeydown`,`onCompositionstart`,`onCompositionend`]))}}),[Ro,zo]=W(`ListboxGroup`),Bo=(0,t.defineComponent)({__name:`ListboxGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=e,r=Rn(void 0,`reka-listbox-group`);return zo({id:r}),(e,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)({role:`group`},n,{"aria-labelledby":(0,t.unref)(r)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`aria-labelledby`]))}}),Vo=(0,t.defineComponent)({__name:`ListboxGroupLabel`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let n=e,r=Ro({id:``});return(e,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)(n,{id:(0,t.unref)(r).id}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`id`]))}}),Ho=`listbox.select`,[Uo,Wo]=W(`ListboxItem`),Go=(0,t.defineComponent)({__name:`ListboxItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},emits:[`select`],setup(e,{emit:n}){let r=e,i=n,a=Rn(void 0,`reka-listbox-item`),{CollectionItem:o}=Gr(),{forwardRef:s,currentElement:c}=G(),l=No(),u=(0,t.computed)(()=>c.value===l.highlightedElement.value),d=(0,t.computed)(()=>jo(l.modelValue.value,r.value,l.by)),f=(0,t.computed)(()=>l.disabled.value||r.disabled);async function p(e){i(`select`,e),!e?.defaultPrevented&&!f.value&&e&&(l.onValueChange(r.value),l.changeHighlight(c.value))}function m(e){qt(Ho,p,{originalEvent:e,value:r.value})}return Wo({isSelected:d}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(o),{value:e.value},{default:(0,t.withCtx)(()=>[(0,t.withMemo)([u.value,d.value],()=>(0,t.createVNode)((0,t.unref)(K),(0,t.mergeProps)({id:(0,t.unref)(a)},e.$attrs,{ref:(0,t.unref)(s),role:`option`,tabindex:(0,t.unref)(l).focusable.value?u.value?`0`:`-1`:-1,"aria-selected":d.value,as:e.as,"as-child":e.asChild,disabled:f.value?``:void 0,"data-disabled":f.value?``:void 0,"data-highlighted":u.value?``:void 0,"data-state":d.value?`checked`:`unchecked`,onClick:m,onKeydown:(0,t.withKeys)((0,t.withModifiers)(m,[`prevent`]),[`space`]),onPointermove:n[0]||=()=>{(0,t.unref)(l).highlightedElement.value!==(0,t.unref)(c)&&(0,t.unref)(l).highlightOnHover.value&&!(0,t.unref)(l).focusable.value&&(0,t.unref)(l).changeHighlight((0,t.unref)(c),!1)}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`id`,`tabindex`,`aria-selected`,`as`,`as-child`,`disabled`,`data-disabled`,`data-highlighted`,`data-state`,`onKeydown`]),n,1)]),_:3},8,[`value`]))}});function Ko(e){let n=Zt({nonce:(0,t.ref)()});return(0,t.computed)(()=>e?.value||n.nonce?.value)}var[qo,Jo]=W(`PopoverRoot`),Yo=(0,t.defineComponent)({__name:`PopoverRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},modal:{type:Boolean,required:!1,default:!1}},emits:[`update:open`],setup(e,{emit:r}){let i=e,a=r,{modal:o}=(0,t.toRefs)(i),s=(0,n.useVModel)(i,`open`,a,{defaultValue:i.defaultOpen,passive:i.open===void 0});return Jo({contentId:``,triggerId:``,modal:o,open:s,onOpenChange:e=>{s.value=e},onOpenToggle:()=>{s.value=!s.value},triggerElement:(0,t.ref)(),hasCustomAnchor:(0,t.ref)(!1)}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ci),null,{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`,{open:(0,t.unref)(s),close:()=>s.value=!1})]),_:3}))}}),Xo=(0,t.defineComponent)({__name:`PopoverContentImpl`,props:{trapFocus:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:n}){let r=e,i=n,a=Tn(nn(r,`trapFocus`,`disableOutsidePointerEvents`)),{forwardRef:o}=G(),s=qo();return Sn(),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Er),{"as-child":``,loop:``,trapped:e.trapFocus,onMountAutoFocus:n[5]||=e=>i(`openAutoFocus`,e),onUnmountAutoFocus:n[6]||=e=>i(`closeAutoFocus`,e)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(dr),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onPointerDownOutside:n[0]||=e=>i(`pointerDownOutside`,e),onInteractOutside:n[1]||=e=>i(`interactOutside`,e),onEscapeKeyDown:n[2]||=e=>i(`escapeKeyDown`,e),onFocusOutside:n[3]||=e=>i(`focusOutside`,e),onDismiss:n[4]||=e=>(0,t.unref)(s).onOpenChange(!1)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Ao),(0,t.mergeProps)((0,t.unref)(a),{id:(0,t.unref)(s).contentId,ref:(0,t.unref)(o),"data-state":(0,t.unref)(s).open.value?`open`:`closed`,"aria-labelledby":(0,t.unref)(s).triggerId,style:{"--reka-popover-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-popover-content-available-width":`var(--reka-popper-available-width)`,"--reka-popover-content-available-height":`var(--reka-popper-available-height)`,"--reka-popover-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-popover-trigger-height":`var(--reka-popper-anchor-height)`},role:`dialog`}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`aria-labelledby`])]),_:3},8,[`disable-outside-pointer-events`])]),_:3},8,[`trapped`]))}}),Zo=(0,t.defineComponent)({__name:`PopoverContentModal`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:n}){let r=e,i=n,a=qo(),o=(0,t.ref)(!1);hn(!0);let s=En(r,i),{forwardRef:c,currentElement:l}=G();return In(l),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(Xo,(0,t.mergeProps)((0,t.unref)(s),{ref:(0,t.unref)(c),"trap-focus":(0,t.unref)(a).open.value,"disable-outside-pointer-events":``,onCloseAutoFocus:n[0]||=(0,t.withModifiers)(e=>{i(`closeAutoFocus`,e),o.value||(0,t.unref)(a).triggerElement.value?.focus()},[`prevent`]),onPointerDownOutside:n[1]||=e=>{i(`pointerDownOutside`,e);let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;o.value=t.button===2||n},onFocusOutside:n[2]||=(0,t.withModifiers)(()=>{},[`prevent`])}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`trap-focus`]))}}),Qo=(0,t.defineComponent)({__name:`PopoverContentNonModal`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:n}){let r=e,i=n,a=qo(),o=(0,t.ref)(!1),s=(0,t.ref)(!1),c=En(r,i);return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(Xo,(0,t.mergeProps)((0,t.unref)(c),{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:n[0]||=e=>{i(`closeAutoFocus`,e),e.defaultPrevented||(o.value||(0,t.unref)(a).triggerElement.value?.focus(),e.preventDefault()),o.value=!1,s.value=!1},onInteractOutside:n[1]||=async e=>{i(`interactOutside`,e),e.defaultPrevented||(o.value=!0,e.detail.originalEvent.type===`pointerdown`&&(s.value=!0));let n=e.target;(0,t.unref)(a).triggerElement.value?.contains(n)&&e.preventDefault(),e.detail.originalEvent.type===`focusin`&&s.value&&e.preventDefault()}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),$o=(0,t.defineComponent)({__name:`PopoverContent`,props:{forceMount:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:n}){let r=e,i=n,a=qo(),o=En(r,i),{forwardRef:s}=G();return a.contentId||=Rn(void 0,`reka-popover-content`),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(qn),{present:e.forceMount||(0,t.unref)(a).open.value},{default:(0,t.withCtx)(()=>[(0,t.unref)(a).modal.value?((0,t.openBlock)(),(0,t.createBlock)(Zo,(0,t.mergeProps)({key:0},(0,t.unref)(o),{ref:(0,t.unref)(s)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16)):((0,t.openBlock)(),(0,t.createBlock)(Qo,(0,t.mergeProps)({key:1},(0,t.unref)(o),{ref:(0,t.unref)(s)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),es=(0,t.defineComponent)({__name:`PopoverPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let n=e;return(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Vr),(0,t.normalizeProps)((0,t.guardReactiveProps)(n)),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),ts=(0,t.defineComponent)({__name:`PopoverTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let n=e,r=qo(),{forwardRef:i,currentElement:a}=G();return r.triggerId||=Rn(void 0,`reka-popover-trigger`),(0,t.onMounted)(()=>{r.triggerElement.value=a.value}),(e,a)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(r).hasCustomAnchor.value?(0,t.unref)(K):(0,t.unref)(li)),{"as-child":``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(K),{id:(0,t.unref)(r).triggerId,ref:(0,t.unref)(i),type:e.as===`button`?`button`:void 0,"aria-haspopup":`dialog`,"aria-expanded":(0,t.unref)(r).open.value,"aria-controls":(0,t.unref)(r).contentId,"data-state":(0,t.unref)(r).open.value?`open`:`closed`,as:e.as,"as-child":n.asChild,onClick:(0,t.unref)(r).onOpenToggle},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`id`,`type`,`aria-expanded`,`aria-controls`,`data-state`,`as`,`as-child`,`onClick`])]),_:3}))}}),ns=(0,t.defineComponent)({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(e){let n=e;return G(),(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)(n,{onMousedown:r[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),[rs,is]=W(`ScrollAreaRoot`),as=(0,t.defineComponent)({__name:`ScrollAreaRoot`,props:{type:{type:String,required:!1,default:`hover`},dir:{type:String,required:!1},scrollHideDelay:{type:Number,required:!1,default:600},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e,{expose:n}){let r=e,i=(0,t.ref)(0),a=(0,t.ref)(0),o=(0,t.ref)(),s=(0,t.ref)(),c=(0,t.ref)(),l=(0,t.ref)(),u=(0,t.ref)(!1),d=(0,t.ref)(!1),{type:f,dir:p,scrollHideDelay:m}=(0,t.toRefs)(r),h=vn(p);function g(){o.value?.scrollTo({top:0})}function _(){o.value?.scrollTo({top:0,left:0})}n({viewport:o,scrollTop:g,scrollTopLeft:_});let{forwardRef:v,currentElement:y}=G();return is({type:f,dir:h,scrollHideDelay:m,scrollArea:y,viewport:o,onViewportChange:e=>{o.value=e||void 0},content:s,onContentChange:e=>{s.value=e},scrollbarX:c,scrollbarXEnabled:u,scrollbarY:l,scrollbarYEnabled:d,onScrollbarXChange:e=>{c.value=e||void 0},onScrollbarYChange:e=>{l.value=e||void 0},onScrollbarXEnabledChange:e=>{u.value=e},onScrollbarYEnabledChange:e=>{d.value=e},onCornerWidthChange:e=>{i.value=e},onCornerHeightChange:e=>{a.value=e}}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{ref:(0,t.unref)(v),"as-child":r.asChild,as:e.as,dir:(0,t.unref)(h),style:(0,t.normalizeStyle)({position:`relative`,"--reka-scroll-area-corner-width":`${i.value}px`,"--reka-scroll-area-corner-height":`${a.value}px`})},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`dir`,`style`]))}}),os=(0,t.defineComponent)({__name:`ScrollAreaCornerImpl`,setup(e){let r=rs(),i=(0,t.ref)(0),a=(0,t.ref)(0),o=(0,t.computed)(()=>!!i.value&&!!a.value);function s(){let e=r.scrollbarX.value?.offsetHeight||0;r.onCornerHeightChange(e),a.value=e}function c(){let e=r.scrollbarY.value?.offsetWidth||0;r.onCornerWidthChange(e),i.value=e}return(0,n.useResizeObserver)(r.scrollbarX.value,s),(0,n.useResizeObserver)(r.scrollbarY.value,c),(0,t.watch)(()=>r.scrollbarX.value,s),(0,t.watch)(()=>r.scrollbarY.value,c),(e,n)=>o.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)({key:0,style:{width:`${i.value}px`,height:`${a.value}px`,position:`absolute`,right:(0,t.unref)(r).dir.value===`ltr`?0:void 0,left:(0,t.unref)(r).dir.value===`rtl`?0:void 0,bottom:0}},e.$parent?.$props),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`style`])):(0,t.createCommentVNode)(`v-if`,!0)}}),ss=(0,t.defineComponent)({__name:`ScrollAreaCorner`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=e,{forwardRef:r}=G(),i=rs(),a=(0,t.computed)(()=>!!i.scrollbarX.value&&!!i.scrollbarY.value),o=(0,t.computed)(()=>i.type.value!==`scroll`&&a.value);return(e,i)=>o.value?((0,t.openBlock)(),(0,t.createBlock)(os,(0,t.mergeProps)({key:0},n,{ref:(0,t.unref)(r)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16)):(0,t.createCommentVNode)(`v-if`,!0)}});function cs(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function ls(e){let t=us(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function us(e,t){let n=e/t;return Number.isNaN(n)?0:n}function ds(e,t=()=>{}){let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)}function fs(e,t,n=`ltr`){let r=ls(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=n===`ltr`?[0,o]:[o*-1,0],l=Gt(e,c[0],c[1]);return cs([0,o],[0,s])(l)}function ps(e){return e?Number.parseInt(e,10):0}function ms(e,t,n,r=`ltr`){let i=ls(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return cs([c,l],d)(e)}function hs(e,t){return e>0&&e<t}var gs=(0,t.defineComponent)({__name:`ScrollAreaScrollbarX`,setup(e){let n=rs(),r=ws(),{forwardRef:i,currentElement:a}=G();(0,t.onMounted)(()=>{a.value&&n.onScrollbarXChange(a.value)});let o=(0,t.computed)(()=>r.sizes.value);return(e,a)=>((0,t.openBlock)(),(0,t.createBlock)(Ds,{ref:(0,t.unref)(i),"is-horizontal":!0,"data-orientation":`horizontal`,style:(0,t.normalizeStyle)({bottom:0,left:(0,t.unref)(n).dir.value===`rtl`?`var(--reka-scroll-area-corner-width)`:0,right:(0,t.unref)(n).dir.value===`ltr`?`var(--reka-scroll-area-corner-width)`:0,"--reka-scroll-area-thumb-width":o.value?`${(0,t.unref)(ls)(o.value)}px`:void 0}),onOnDragScroll:a[0]||=e=>(0,t.unref)(r).onDragScroll(e.x)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`style`]))}}),_s=(0,t.defineComponent)({__name:`ScrollAreaScrollbarY`,setup(e){let n=rs(),r=ws(),{forwardRef:i,currentElement:a}=G();(0,t.onMounted)(()=>{a.value&&n.onScrollbarYChange(a.value)});let o=(0,t.computed)(()=>r.sizes.value);return(e,a)=>((0,t.openBlock)(),(0,t.createBlock)(Ds,{ref:(0,t.unref)(i),"is-horizontal":!1,"data-orientation":`vertical`,style:(0,t.normalizeStyle)({top:0,right:(0,t.unref)(n).dir.value===`ltr`?0:void 0,left:(0,t.unref)(n).dir.value===`rtl`?0:void 0,bottom:`var(--reka-scroll-area-corner-height)`,"--reka-scroll-area-thumb-height":o.value?`${(0,t.unref)(ls)(o.value)}px`:void 0}),onOnDragScroll:a[0]||=e=>(0,t.unref)(r).onDragScroll(e.y)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`style`]))}}),vs=(0,t.defineComponent)({__name:`ScrollAreaScrollbarAuto`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let r=rs(),i=xs(),{forwardRef:a}=G(),o=(0,t.ref)(!1),s=(0,n.useDebounceFn)(()=>{if(r.viewport.value){let e=r.viewport.value.offsetWidth<r.viewport.value.scrollWidth,t=r.viewport.value.offsetHeight<r.viewport.value.scrollHeight;o.value=i.isHorizontal.value?e:t}},10);return(0,t.onMounted)(()=>s()),(0,n.useResizeObserver)(r.viewport,s),(0,n.useResizeObserver)(r.content,s),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(qn),{present:e.forceMount||o.value},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(Es,(0,t.mergeProps)(e.$attrs,{ref:(0,t.unref)(a),"data-state":o.value?`visible`:`hidden`}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),ys=(0,t.defineComponent)({inheritAttrs:!1,__name:`ScrollAreaScrollbarHover`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let n=rs(),{forwardRef:r}=G(),i,a=(0,t.ref)(!1);function o(){window.clearTimeout(i),a.value=!0}function s(){i=window.setTimeout(()=>{a.value=!1},n.scrollHideDelay.value)}return(0,t.onMounted)(()=>{let e=n.scrollArea.value;e&&(e.addEventListener(`pointerenter`,o),e.addEventListener(`pointerleave`,s))}),(0,t.onUnmounted)(()=>{let e=n.scrollArea.value;e&&(window.clearTimeout(i),e.removeEventListener(`pointerenter`,o),e.removeEventListener(`pointerleave`,s))}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(qn),{present:e.forceMount||a.value},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(vs,(0,t.mergeProps)(e.$attrs,{ref:(0,t.unref)(r),"data-state":a.value?`visible`:`hidden`}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),bs=(0,t.defineComponent)({__name:`ScrollAreaScrollbarScroll`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let r=rs(),i=xs(),{forwardRef:a}=G(),{state:o,dispatch:s}=Vn(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}}),c=(0,t.computed)(()=>o.value!==`hidden`);(0,t.watchEffect)(e=>{if(o.value===`idle`){let t=window.setTimeout(()=>s(`HIDE`),r.scrollHideDelay.value);e(()=>{window.clearTimeout(t)})}});let l=(0,n.useDebounceFn)(()=>s(`SCROLL_END`),100);return(0,t.watchEffect)(e=>{let t=r.viewport.value,n=i.isHorizontal.value?`scrollLeft`:`scrollTop`;if(t){let r=t[n],i=()=>{let e=t[n];r!==e&&(s(`SCROLL`),l()),r=e};t.addEventListener(`scroll`,i),e(()=>{t.removeEventListener(`scroll`,i)})}}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(qn),{present:e.forceMount||c.value},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(Es,(0,t.mergeProps)(e.$attrs,{ref:(0,t.unref)(a),"data-state":c.value?`visible`:`hidden`}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),[xs,Ss]=W(`ScrollAreaScrollbar`),Cs=(0,t.defineComponent)({inheritAttrs:!1,__name:`ScrollAreaScrollbar`,props:{orientation:{type:String,required:!1,default:`vertical`},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let n=e,{forwardRef:r}=G(),i=rs(),a=(0,t.computed)(()=>n.orientation===`horizontal`);(0,t.watch)(a,()=>{a.value?i.onScrollbarXEnabledChange(!0):i.onScrollbarYEnabledChange(!0)},{immediate:!0}),(0,t.onUnmounted)(()=>{i.onScrollbarXEnabledChange(!1),i.onScrollbarYEnabledChange(!1)});let{orientation:o,forceMount:s,asChild:c,as:l}=(0,t.toRefs)(n);return Ss({orientation:o,forceMount:s,isHorizontal:a,as:l,asChild:c}),(e,n)=>(0,t.unref)(i).type.value===`hover`?((0,t.openBlock)(),(0,t.createBlock)(ys,(0,t.mergeProps)({key:0},e.$attrs,{ref:(0,t.unref)(r),"force-mount":(0,t.unref)(s)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`force-mount`])):(0,t.unref)(i).type.value===`scroll`?((0,t.openBlock)(),(0,t.createBlock)(bs,(0,t.mergeProps)({key:1},e.$attrs,{ref:(0,t.unref)(r),"force-mount":(0,t.unref)(s)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`force-mount`])):(0,t.unref)(i).type.value===`auto`?((0,t.openBlock)(),(0,t.createBlock)(vs,(0,t.mergeProps)({key:2},e.$attrs,{ref:(0,t.unref)(r),"force-mount":(0,t.unref)(s)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`force-mount`])):(0,t.unref)(i).type.value===`always`?((0,t.openBlock)(),(0,t.createBlock)(Es,(0,t.mergeProps)({key:3},e.$attrs,{ref:(0,t.unref)(r),"data-state":`visible`}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16)):(0,t.createCommentVNode)(`v-if`,!0)}}),[ws,Ts]=W(`ScrollAreaScrollbarVisible`),Es=(0,t.defineComponent)({__name:`ScrollAreaScrollbarVisible`,setup(e){let n=rs(),r=xs(),{forwardRef:i}=G(),a=(0,t.ref)({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),o=(0,t.computed)(()=>{let e=us(a.value.viewport,a.value.content);return e>0&&e<1}),s=(0,t.ref)(),c=(0,t.ref)(0);function l(e,t){if(m.value){let r=n.viewport.value.scrollLeft+e.deltaY;n.viewport.value.scrollLeft=r,hs(r,t)&&e.preventDefault()}else{let r=n.viewport.value.scrollTop+e.deltaY;n.viewport.value.scrollTop=r,hs(r,t)&&e.preventDefault()}}function u(e,t){m.value?c.value=t.x:c.value=t.y}function d(e){c.value=0}function f(e){a.value=e}function p(e,t){return ms(e,c.value,a.value,t)}let m=(0,t.computed)(()=>r.isHorizontal.value);function h(e){m.value?n.viewport.value.scrollLeft=p(e,n.dir.value):n.viewport.value.scrollTop=p(e)}function g(){if(m.value){if(n.viewport.value&&s.value){let e=n.viewport.value.scrollLeft,t=fs(e,a.value,n.dir.value);s.value.style.transform=`translate3d(${t}px, 0, 0)`}}else if(n.viewport.value&&s.value){let e=n.viewport.value.scrollTop,t=fs(e,a.value);s.value.style.transform=`translate3d(0, ${t}px, 0)`}}function _(e){s.value=e}return Ts({sizes:a,hasThumb:o,handleWheelScroll:l,handleThumbDown:u,handleThumbUp:d,handleSizeChange:f,onThumbPositionChange:g,onThumbChange:_,onDragScroll:h}),(e,n)=>m.value?((0,t.openBlock)(),(0,t.createBlock)(gs,(0,t.mergeProps)({key:0},e.$attrs,{ref:(0,t.unref)(i)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16)):((0,t.openBlock)(),(0,t.createBlock)(_s,(0,t.mergeProps)({key:1},e.$attrs,{ref:(0,t.unref)(i)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),Ds=(0,t.defineComponent)({__name:`ScrollAreaScrollbarImpl`,props:{isHorizontal:{type:Boolean,required:!0}},emits:[`onDragScroll`,`onWheelScroll`,`onThumbPointerDown`],setup(e,{emit:r}){let i=e,a=r,o=rs(),s=ws(),c=xs(),{forwardRef:l,currentElement:u}=G(),d=(0,t.ref)(``),f=(0,t.ref)();function p(e){f.value&&a(`onDragScroll`,{x:e.clientX-f.value?.left,y:e.clientY-f.value?.top})}function m(e){e.button===0&&(e.target.setPointerCapture(e.pointerId),f.value=u.value.getBoundingClientRect(),d.value=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,o.viewport&&(o.viewport.value.style.scrollBehavior=`auto`),p(e))}function h(e){p(e)}function g(e){let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=d.value,o.viewport&&(o.viewport.value.style.scrollBehavior=``),f.value=void 0}function _(e){let t=e.target,n=u.value?.contains(t),r=s.sizes.value.content-s.sizes.value.viewport;n&&s.handleWheelScroll(e,r)}(0,t.onMounted)(()=>{document.addEventListener(`wheel`,_,{passive:!1})}),(0,t.onUnmounted)(()=>{document.removeEventListener(`wheel`,_)});function v(){u.value&&(i.isHorizontal?s.handleSizeChange({content:o.viewport.value?.scrollWidth??0,viewport:o.viewport.value?.offsetWidth??0,scrollbar:{size:u.value.clientWidth??0,paddingStart:ps(getComputedStyle(u.value).paddingLeft),paddingEnd:ps(getComputedStyle(u.value).paddingRight)}}):s.handleSizeChange({content:o.viewport.value?.scrollHeight??0,viewport:o.viewport.value?.offsetHeight??0,scrollbar:{size:u.value?.clientHeight??0,paddingStart:ps(getComputedStyle(u.value).paddingTop),paddingEnd:ps(getComputedStyle(u.value).paddingBottom)}}),s.onThumbPositionChange())}return(0,n.useResizeObserver)(u,v),(0,n.useResizeObserver)(o.content,v),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{ref:(0,t.unref)(l),style:{position:`absolute`},"data-scrollbarimpl":``,as:(0,t.unref)(c).as.value,"as-child":(0,t.unref)(c).asChild.value,onPointerdown:m,onPointermove:h,onPointerup:g},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}}),Os=(0,t.defineComponent)({__name:`ScrollAreaThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let r=e,i=rs(),a=ws();function o(e){let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;a.handleThumbDown(e,{x:n,y:r})}function s(e){a.handleThumbUp(e)}let{forwardRef:c,currentElement:l}=G(),u=(0,t.ref)(),d=(0,t.computed)(()=>i.viewport.value);function f(){u.value||(u.value=ds(d.value,a.onThumbPositionChange),a.onThumbPositionChange())}return(0,n.watchOnce)((0,t.computed)(()=>a.sizes.value),()=>{a.onThumbChange(l.value),d.value&&(a.onThumbPositionChange(),d.value.addEventListener(`scroll`,f))}),(0,t.onUnmounted)(()=>{d.value.removeEventListener(`scroll`,f),i.viewport.value?.removeEventListener(`scroll`,f)}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{ref:(0,t.unref)(c),"data-state":(0,t.unref)(a).hasThumb?`visible`:`hidden`,style:{width:`var(--reka-scroll-area-thumb-width)`,height:`var(--reka-scroll-area-thumb-height)`},"as-child":r.asChild,as:e.as,onPointerdown:o,onPointerup:s},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`data-state`,`as-child`,`as`]))}}),ks=(0,t.defineComponent)({inheritAttrs:!1,__name:`ScrollAreaViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e,{expose:n}){let r=e,{nonce:i}=(0,t.toRefs)(r),a=Ko(i),o=rs(),s=(0,t.ref)();(0,t.onMounted)(()=>{o.onViewportChange(s.value),o.onContentChange(l.value)}),n({viewportElement:s});let{forwardRef:c,currentElement:l}=G();return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`div`,(0,t.mergeProps)({ref_key:`viewportElement`,ref:s,"data-reka-scroll-area-viewport":``,style:{overflowX:(0,t.unref)(o).scrollbarXEnabled.value?`scroll`:`hidden`,overflowY:(0,t.unref)(o).scrollbarYEnabled.value?`scroll`:`hidden`}},e.$attrs,{tabindex:0}),[(0,t.createVNode)((0,t.unref)(K),{ref:(0,t.unref)(c),style:(0,t.normalizeStyle)({minWidth:(0,t.unref)(o).scrollbarXEnabled.value?`fit-content`:void 0}),"as-child":r.asChild,as:e.as},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`style`,`as-child`,`as`])],16),(0,t.createVNode)((0,t.unref)(K),{as:`style`,nonce:(0,t.unref)(a)},{default:(0,t.withCtx)(()=>n[0]||=[(0,t.createTextVNode)(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-scroll-area-viewport] { scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch; } [data-reka-scroll-area-viewport]::-webkit-scrollbar { display:none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),As=[` `,`Enter`,`ArrowUp`,`ArrowDown`],js=[` `,`Enter`];function Ms(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>Ns(e,t,n)):Ns(e,t,n)}function Ns(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:Ut(e,t)}function Ps(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var Fs={key:0,value:``},[Is,Ls]=W(`SelectRoot`),Rs=(0,t.defineComponent)({inheritAttrs:!1,__name:`SelectRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`update:open`],setup(e,{emit:r}){let i=e,a=r,{required:o,disabled:s,multiple:c,dir:l}=(0,t.toRefs)(i),u=(0,n.useVModel)(i,`modelValue`,a,{defaultValue:i.defaultValue??(c.value?[]:void 0),passive:i.modelValue===void 0,deep:!0}),d=(0,n.useVModel)(i,`open`,a,{defaultValue:i.defaultOpen,passive:i.open===void 0}),f=(0,t.ref)(),p=(0,t.ref)(),m=(0,t.ref)({x:0,y:0}),h=(0,t.computed)(()=>c.value&&Array.isArray(u.value)?u.value?.length===0:Jt(u.value));Gr({isProvider:!0});let g=vn(l),_=wn(f),v=(0,t.ref)(new Set),y=(0,t.computed)(()=>Array.from(v.value).map(e=>e.value).join(`;`));function b(e){if(c.value){let t=Array.isArray(u.value)?[...u.value]:[],n=t.findIndex(t=>Ns(t,e,i.by));n===-1?t.push(e):t.splice(n,1),u.value=[...t]}else u.value=e}function x(e){return Array.from(v.value).find(t=>Ms(e,t.value,i.by))}return Ls({triggerElement:f,onTriggerChange:e=>{f.value=e},valueElement:p,onValueElementChange:e=>{p.value=e},contentId:``,modelValue:u,onValueChange:b,by:i.by,open:d,multiple:c,required:o,onOpenChange:e=>{d.value=e},dir:g,triggerPointerDownPosRef:m,disabled:s,isEmptyModelValue:h,optionsSet:v,onOptionAdd:e=>{let t=x(e.value);t&&v.value.delete(t),v.value.add(e)},onOptionRemove:e=>{let t=x(e.value);t&&v.value.delete(t)}}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ci),null,{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`,{modelValue:(0,t.unref)(u),open:(0,t.unref)(d)}),(0,t.unref)(_)?((0,t.openBlock)(),(0,t.createBlock)(zs,{key:y.value,"aria-hidden":`true`,tabindex:`-1`,multiple:(0,t.unref)(c),required:(0,t.unref)(o),name:e.name,autocomplete:e.autocomplete,disabled:(0,t.unref)(s),value:(0,t.unref)(u)},{default:(0,t.withCtx)(()=>[(0,t.unref)(Jt)((0,t.unref)(u))?((0,t.openBlock)(),(0,t.createElementBlock)(`option`,Fs)):(0,t.createCommentVNode)(`v-if`,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(Array.from(v.value),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`option`,(0,t.mergeProps)({key:e.value??``},{ref_for:!0},e),null,16))),128))]),_:1},8,[`multiple`,`required`,`name`,`autocomplete`,`disabled`,`value`])):(0,t.createCommentVNode)(`v-if`,!0)]),_:3}))}}),zs=(0,t.defineComponent)({__name:`BubbleSelect`,props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(e){let n=e,r=(0,t.ref)(),i=Is();(0,t.watch)(()=>n.value,(e,t)=>{let n=window.HTMLSelectElement.prototype,i=Object.getOwnPropertyDescriptor(n,`value`).set;if(e!==t&&i&&r.value){let t=new Event(`change`,{bubbles:!0});i.call(r.value,e),r.value.dispatchEvent(t)}});function a(e){i.onValueChange(e.target.value)}return(e,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ri),{"as-child":``},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`select`,(0,t.mergeProps)({ref_key:`selectElement`,ref:r},n,{onInput:a}),[(0,t.renderSlot)(e.$slots,`default`)],16)]),_:3}))}}),Bs=(0,t.defineComponent)({__name:`SelectPopperPosition`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:10},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=Tn(e);return(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Ao),(0,t.mergeProps)((0,t.unref)(n),{style:{boxSizing:`border-box`,"--reka-select-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-select-content-available-width":`var(--reka-popper-available-width)`,"--reka-select-content-available-height":`var(--reka-popper-available-height)`,"--reka-select-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-select-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),Vs={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[Hs,Us]=W(`SelectContent`),Ws=(0,t.defineComponent)({__name:`SelectContentImpl`,props:{position:{type:String,required:!1,default:`item-aligned`},bodyLock:{type:Boolean,required:!1,default:!0},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:r}){let i=e,a=r,o=Is();Sn(),hn(i.bodyLock);let{CollectionSlot:s,getItems:c}=Gr(),l=(0,t.ref)();In(l);let{search:u,handleTypeaheadSearch:d}=Hn(),f=(0,t.ref)(),p=(0,t.ref)(),m=(0,t.ref)(),h=(0,t.ref)(!1),g=(0,t.ref)(!1),_=(0,t.ref)(!1);function v(){p.value&&l.value&&jr([p.value,l.value])}(0,t.watch)(h,()=>{v()});let{onOpenChange:y,triggerPointerDownPosRef:b}=o;(0,t.watchEffect)(e=>{if(!l.value)return;let t={x:0,y:0},n=e=>{t={x:Math.abs(Math.round(e.pageX)-(b.value?.x??0)),y:Math.abs(Math.round(e.pageY)-(b.value?.y??0))}},r=e=>{e.pointerType!==`touch`&&(t.x<=10&&t.y<=10?e.preventDefault():l.value?.contains(e.target)||y(!1),document.removeEventListener(`pointermove`,n),b.value=null)};b.value!==null&&(document.addEventListener(`pointermove`,n),document.addEventListener(`pointerup`,r,{capture:!0,once:!0})),e(()=>{document.removeEventListener(`pointermove`,n),document.removeEventListener(`pointerup`,r,{capture:!0})})});function x(e){let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&d(e.key,c()),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=[...c().map(e=>e.ref)];if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>jr(t)),e.preventDefault()}}let S=Tn((0,t.computed)(()=>i.position===`popper`?i:{}).value);return Us({content:l,viewport:f,onViewportChange:e=>{f.value=e},itemRefCallback:(e,t,n)=>{let r=!g.value&&!n,i=Ms(o.modelValue.value,t,o.by);if(o.multiple.value){if(_.value)return;(i||r)&&(p.value=e,i&&(_.value=!0))}else (i||r)&&(p.value=e);r&&(g.value=!0)},selectedItem:p,selectedItemText:m,onItemLeave:()=>{l.value?.focus()},itemTextRefCallback:(e,t,n)=>{let r=!g.value&&!n;(Ms(o.modelValue.value,t,o.by)||r)&&(m.value=e)},focusSelectedItem:v,position:i.position,isPositioned:h,searchRef:u}),(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(s),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Er),{"as-child":``,onMountAutoFocus:r[6]||=(0,t.withModifiers)(()=>{},[`prevent`]),onUnmountAutoFocus:r[7]||=e=>{a(`closeAutoFocus`,e),!e.defaultPrevented&&((0,t.unref)(o).triggerElement.value?.focus({preventScroll:!0}),e.preventDefault())}},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(dr),{"as-child":``,"disable-outside-pointer-events":``,onFocusOutside:r[2]||=(0,t.withModifiers)(()=>{},[`prevent`]),onDismiss:r[3]||=e=>(0,t.unref)(o).onOpenChange(!1),onEscapeKeyDown:r[4]||=e=>a(`escapeKeyDown`,e),onPointerDownOutside:r[5]||=e=>a(`pointerDownOutside`,e)},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.position===`popper`?Bs:qs),(0,t.mergeProps)({...e.$attrs,...(0,t.unref)(S)},{id:(0,t.unref)(o).contentId,ref:e=>{let r=(0,t.unref)(n.unrefElement)(e);r?.hasAttribute(`data-reka-popper-content-wrapper`)?l.value=r.firstElementChild:l.value=r},role:`listbox`,"data-state":(0,t.unref)(o).open.value?`open`:`closed`,dir:(0,t.unref)(o).dir.value,style:{display:`flex`,flexDirection:`column`,outline:`none`},onContextmenu:r[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onPlaced:r[1]||=e=>h.value=!0,onKeydown:x}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`dir`,`onKeydown`]))]),_:3})]),_:3})]),_:3}))}}),[Gs,Ks]=W(`SelectItemAlignedPosition`),qs=(0,t.defineComponent)({inheritAttrs:!1,__name:`SelectItemAlignedPosition`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`placed`],setup(e,{emit:r}){let i=e,a=r,{getItems:o}=Gr(),s=Is(),c=Hs(),l=(0,t.ref)(!1),u=(0,t.ref)(!0),d=(0,t.ref)(),{forwardRef:f,currentElement:p}=G(),{viewport:m,selectedItem:h,selectedItemText:g,focusSelectedItem:_}=c;function v(){if(s.triggerElement.value&&s.valueElement.value&&d.value&&p.value&&m?.value&&h?.value&&g?.value){let e=s.triggerElement.value.getBoundingClientRect(),t=p.value.getBoundingClientRect(),n=s.valueElement.value.getBoundingClientRect(),r=g.value.getBoundingClientRect();if(s.dir.value!==`rtl`){let i=r.left-t.left,a=n.left-i,o=e.left-a,s=e.width+o,c=Math.max(s,t.width),l=window.innerWidth-10,u=Gt(a,10,Math.max(10,l-c));d.value.style.minWidth=`${s}px`,d.value.style.left=`${u}px`}else{let i=t.right-r.right,a=window.innerWidth-n.right-i,o=window.innerWidth-e.right-a,s=e.width+o,c=Math.max(s,t.width),l=window.innerWidth-10,u=Gt(a,10,Math.max(10,l-c));d.value.style.minWidth=`${s}px`,d.value.style.right=`${u}px`}let i=o().map(e=>e.ref),c=window.innerHeight-20,u=m.value.scrollHeight,f=window.getComputedStyle(p.value),_=Number.parseInt(f.borderTopWidth,10),v=Number.parseInt(f.paddingTop,10),y=Number.parseInt(f.borderBottomWidth,10),b=Number.parseInt(f.paddingBottom,10),x=_+v+u+b+y,S=Math.min(h.value.offsetHeight*5,x),C=window.getComputedStyle(m.value),w=Number.parseInt(C.paddingTop,10),T=Number.parseInt(C.paddingBottom,10),E=e.top+e.height/2-10,D=c-E,O=h.value.offsetHeight/2,ee=h.value.offsetTop+O,k=_+v+ee,te=x-k;if(k<=E){let e=h.value===i[i.length-1];d.value.style.bottom=`0px`;let t=p.value.clientHeight-m.value.offsetTop-m.value.offsetHeight,n=k+Math.max(D,O+(e?T:0)+t+y);d.value.style.height=`${n}px`}else{let e=h.value===i[0];d.value.style.top=`0px`;let t=Math.max(E,_+m.value.offsetTop+(e?w:0)+O)+te;d.value.style.height=`${t}px`,m.value.scrollTop=k-E+m.value.offsetTop}d.value.style.margin=`10px 0`,d.value.style.minHeight=`${S}px`,d.value.style.maxHeight=`${c}px`,a(`placed`),requestAnimationFrame(()=>l.value=!0)}}let y=(0,t.ref)(``);(0,t.onMounted)(async()=>{await(0,t.nextTick)(),v(),p.value&&(y.value=window.getComputedStyle(p.value).zIndex)});function b(e){e&&u.value===!0&&(v(),_?.(),u.value=!1)}return(0,n.useResizeObserver)(s.triggerElement,()=>{v()}),Ks({contentWrapper:d,shouldExpandOnScrollRef:l,onScrollButtonChange:b}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`contentWrapperElement`,ref:d,style:(0,t.normalizeStyle)({display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:y.value})},[(0,t.createVNode)((0,t.unref)(K),(0,t.mergeProps)({ref:(0,t.unref)(f),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...e.$attrs,...i}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16)],4))}}),Js=(0,t.defineComponent)({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return Ls(e.context),Us(Vs),(e,n)=>(0,t.renderSlot)(e.$slots,`default`)}}),Ys={key:1},Xs=(0,t.defineComponent)({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:n}){let r=e,i=En(r,n),a=Is(),o=(0,t.ref)();(0,t.onMounted)(()=>{o.value=new DocumentFragment});let s=(0,t.ref)(),c=(0,t.computed)(()=>r.forceMount||a.open.value),l=(0,t.ref)(c.value);return(0,t.watch)(c,()=>{setTimeout(()=>l.value=c.value)}),(e,n)=>c.value||l.value||s.value?.present?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(qn),{key:0,ref_key:`presenceRef`,ref:s,present:c.value},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(Ws,(0,t.normalizeProps)((0,t.guardReactiveProps)({...(0,t.unref)(i),...e.$attrs})),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):o.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ys,[((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:o.value},[(0,t.createVNode)(Js,{context:(0,t.unref)(a)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):(0,t.createCommentVNode)(`v-if`,!0)}}),[Zs,Qs]=W(`SelectGroup`),$s=(0,t.defineComponent)({__name:`SelectGroup`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=e,r=Rn(void 0,`reka-select-group`);return Qs({id:r}),(e,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)({role:`group`},n,{"aria-labelledby":(0,t.unref)(r)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`aria-labelledby`]))}}),ec=(0,t.defineComponent)({__name:`SelectIcon`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{"aria-hidden":`true`,as:e.as,"as-child":e.asChild},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`,{},()=>[n[0]||=(0,t.createTextVNode)(`▼`)])]),_:3},8,[`as`,`as-child`]))}}),[tc,nc]=W(`SelectItem`),rc=(0,t.defineComponent)({__name:`SelectItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:n}){let r=e,i=n,{disabled:a}=(0,t.toRefs)(r),o=Is(),s=Hs(),{forwardRef:c,currentElement:l}=G(),{CollectionItem:u}=Gr(),d=(0,t.computed)(()=>Ms(o.modelValue?.value,r.value,o.by)),f=(0,t.ref)(!1),p=(0,t.ref)(r.textValue??``),m=Rn(void 0,`reka-select-item-text`);async function h(e){e.defaultPrevented||qt(`select.select`,g,{originalEvent:e,value:r.value})}async function g(e){await(0,t.nextTick)(),i(`select`,e),!e.defaultPrevented&&(a.value||(o.onValueChange(r.value),o.multiple.value||o.onOpenChange(!1)))}async function _(e){await(0,t.nextTick)(),!e.defaultPrevented&&(a.value?s.onItemLeave?.():e.currentTarget?.focus({preventScroll:!0}))}async function v(e){await(0,t.nextTick)(),!e.defaultPrevented&&e.currentTarget===Kt()&&s.onItemLeave?.()}async function y(e){await(0,t.nextTick)(),!e.defaultPrevented&&(s.searchRef?.value!==``&&e.key===` `||(js.includes(e.key)&&h(e),e.key===` `&&e.preventDefault()))}if(r.value===``)throw Error(`A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,t.onMounted)(()=>{l.value&&s.itemRefCallback(l.value,r.value,r.disabled)}),nc({value:r.value,disabled:a,textId:m,isSelected:d,onItemTextChange:e=>{p.value=((p.value||e?.textContent)??``).trim()}}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(u),{value:{textValue:p.value}},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(K),{ref:(0,t.unref)(c),role:`option`,"aria-labelledby":(0,t.unref)(m),"data-highlighted":f.value?``:void 0,"aria-selected":d.value,"data-state":d.value?`checked`:`unchecked`,"aria-disabled":(0,t.unref)(a)||void 0,"data-disabled":(0,t.unref)(a)?``:void 0,tabindex:(0,t.unref)(a)?void 0:-1,as:e.as,"as-child":e.asChild,onFocus:n[0]||=e=>f.value=!0,onBlur:n[1]||=e=>f.value=!1,onPointerup:h,onPointerdown:n[2]||=e=>{e.currentTarget.focus({preventScroll:!0})},onTouchend:n[3]||=(0,t.withModifiers)(()=>{},[`prevent`,`stop`]),onPointermove:_,onPointerleave:v,onKeydown:y},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`aria-labelledby`,`data-highlighted`,`aria-selected`,`data-state`,`aria-disabled`,`data-disabled`,`tabindex`,`as`,`as-child`])]),_:3},8,[`value`]))}}),ic=(0,t.defineComponent)({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let n=e,r=tc();return(e,i)=>(0,t.unref)(r).isSelected.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)({key:0,"aria-hidden":`true`},n),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16)):(0,t.createCommentVNode)(`v-if`,!0)}}),ac=(0,t.defineComponent)({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let n=e,r=Is(),i=Hs(),a=tc(),{forwardRef:o,currentElement:s}=G(),c=(0,t.computed)(()=>({value:a.value,disabled:a.disabled.value,textContent:s.value?.textContent??a.value?.toString()??``}));return(0,t.onMounted)(()=>{s.value&&(a.onItemTextChange(s.value),i.itemTextRefCallback(s.value,a.value,a.disabled.value),r.onOptionAdd(c.value))}),(0,t.onUnmounted)(()=>{r.onOptionRemove(c.value)}),(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)({id:(0,t.unref)(a).textId,ref:(0,t.unref)(o)},{...n,...e.$attrs}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`id`]))}}),oc=(0,t.defineComponent)({__name:`SelectPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let n=e;return(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Vr),(0,t.normalizeProps)((0,t.guardReactiveProps)(n)),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),sc=(0,t.defineComponent)({__name:`SelectScrollButtonImpl`,emits:[`autoScroll`],setup(e,{emit:n}){let r=n,{getItems:i}=Gr(),a=Hs(),o=(0,t.ref)(null);function s(){o.value!==null&&(window.clearInterval(o.value),o.value=null)}(0,t.watchEffect)(()=>{i().map(e=>e.ref).find(e=>e===Kt())?.scrollIntoView({block:`nearest`})});function c(){o.value===null&&(o.value=window.setInterval(()=>{r(`autoScroll`)},50))}function l(){a.onItemLeave?.(),o.value===null&&(o.value=window.setInterval(()=>{r(`autoScroll`)},50))}return(0,t.onBeforeUnmount)(()=>s()),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)({"aria-hidden":`true`,style:{flexShrink:0}},e.$parent?.$props,{onPointerdown:c,onPointermove:l,onPointerleave:n[0]||=()=>{s()}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),cc=(0,t.defineComponent)({__name:`SelectScrollDownButton`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=Hs(),r=n.position===`item-aligned`?Gs():void 0,{forwardRef:i,currentElement:a}=G(),o=(0,t.ref)(!1);return(0,t.watchEffect)(e=>{if(n.viewport?.value&&n.isPositioned?.value){let t=n.viewport.value;function r(){let e=t.scrollHeight-t.clientHeight;o.value=Math.ceil(t.scrollTop)<e}r(),t.addEventListener(`scroll`,r),e(()=>t.removeEventListener(`scroll`,r))}}),(0,t.watch)(a,()=>{a.value&&r?.onScrollButtonChange(a.value)}),(e,r)=>o.value?((0,t.openBlock)(),(0,t.createBlock)(sc,{key:0,ref:(0,t.unref)(i),onAutoScroll:r[0]||=()=>{let{viewport:e,selectedItem:r}=(0,t.unref)(n);e?.value&&r?.value&&(e.value.scrollTop=e.value.scrollTop+r.value.offsetHeight)}},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},512)):(0,t.createCommentVNode)(`v-if`,!0)}}),lc=(0,t.defineComponent)({__name:`SelectScrollUpButton`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=Hs(),r=n.position===`item-aligned`?Gs():void 0,{forwardRef:i,currentElement:a}=G(),o=(0,t.ref)(!1);return(0,t.watchEffect)(e=>{if(n.viewport?.value&&n.isPositioned?.value){let t=n.viewport.value;function r(){o.value=t.scrollTop>0}r(),t.addEventListener(`scroll`,r),e(()=>t.removeEventListener(`scroll`,r))}}),(0,t.watch)(a,()=>{a.value&&r?.onScrollButtonChange(a.value)}),(e,r)=>o.value?((0,t.openBlock)(),(0,t.createBlock)(sc,{key:0,ref:(0,t.unref)(i),onAutoScroll:r[0]||=()=>{let{viewport:e,selectedItem:r}=(0,t.unref)(n);e?.value&&r?.value&&(e.value.scrollTop=e.value.scrollTop-r.value.offsetHeight)}},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},512)):(0,t.createCommentVNode)(`v-if`,!0)}}),uc=(0,t.defineComponent)({__name:`SelectTrigger`,props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let n=e,r=Is(),{forwardRef:i,currentElement:a}=G(),o=(0,t.computed)(()=>r.disabled?.value||n.disabled);r.contentId||=Rn(void 0,`reka-select-content`),(0,t.onMounted)(()=>{r.onTriggerChange(a.value)});let{getItems:s}=Gr(),{search:c,handleTypeaheadSearch:l,resetTypeahead:u}=Hn();function d(){o.value||(r.onOpenChange(!0),u())}function f(e){d(),r.triggerPointerDownPosRef.value={x:Math.round(e.pageX),y:Math.round(e.pageY)}}return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(li),{"as-child":``,reference:e.reference},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(K),{ref:(0,t.unref)(i),role:`combobox`,type:e.as===`button`?`button`:void 0,"aria-controls":(0,t.unref)(r).contentId,"aria-expanded":(0,t.unref)(r).open.value||!1,"aria-required":(0,t.unref)(r).required?.value,"aria-autocomplete":`none`,disabled:o.value,dir:(0,t.unref)(r)?.dir.value,"data-state":(0,t.unref)(r)?.open.value?`open`:`closed`,"data-disabled":o.value?``:void 0,"data-placeholder":(0,t.unref)(Ps)((0,t.unref)(r).modelValue?.value)?``:void 0,"as-child":e.asChild,as:e.as,onClick:n[0]||=e=>{(e?.currentTarget)?.focus()},onPointerdown:n[1]||=e=>{if(e.pointerType===`touch`)return e.preventDefault();let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&(f(e),e.preventDefault())},onPointerup:n[2]||=(0,t.withModifiers)(e=>{e.pointerType===`touch`&&f(e)},[`prevent`]),onKeydown:n[3]||=e=>{let n=(0,t.unref)(c)!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&n&&e.key===` `||((0,t.unref)(l)(e.key,(0,t.unref)(s)()),(0,t.unref)(As).includes(e.key)&&(d(),e.preventDefault()))}},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`type`,`aria-controls`,`aria-expanded`,`aria-required`,`disabled`,`dir`,`data-state`,`data-disabled`,`data-placeholder`,`as-child`,`as`])]),_:3},8,[`reference`]))}}),dc=(0,t.defineComponent)({__name:`SelectValue`,props:{placeholder:{type:String,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let n=e,{forwardRef:r,currentElement:i}=G(),a=Is();(0,t.onMounted)(()=>{a.valueElement=i});let o=(0,t.computed)(()=>{let e=[],t=Array.from(a.optionsSet.value),n=e=>t.find(t=>Ms(e,t.value,a.by));return e=Array.isArray(a.modelValue.value)?a.modelValue.value.map(e=>n(e)?.textContent??``):[n(a.modelValue.value)?.textContent??``],e.filter(Boolean)}),s=(0,t.computed)(()=>o.value.length?o.value.join(`, `):n.placeholder);return(e,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{ref:(0,t.unref)(r),as:e.as,"as-child":e.asChild,style:{pointerEvents:`none`},"data-placeholder":o.value.length?void 0:n.placeholder},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`,{selectedLabel:o.value,modelValue:(0,t.unref)(a).modelValue.value},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(s.value),1)])]),_:3},8,[`as`,`as-child`,`data-placeholder`]))}}),fc=(0,t.defineComponent)({__name:`SelectViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=e,{nonce:r}=(0,t.toRefs)(n),i=Ko(r),a=Hs(),o=a.position===`item-aligned`?Gs():void 0,{forwardRef:s,currentElement:c}=G();(0,t.onMounted)(()=>{a?.onViewportChange(c.value)});let l=(0,t.ref)(0);function u(e){let t=e.currentTarget,{shouldExpandOnScrollRef:n,contentWrapper:r}=o??{};if(n?.value&&r?.value){let e=Math.abs(l.value-t.scrollTop);if(e>0){let n=window.innerHeight-20,i=Number.parseFloat(r.value.style.minHeight),a=Number.parseFloat(r.value.style.height),o=Math.max(i,a);if(o<n){let i=o+e,a=Math.min(n,i),s=i-a;r.value.style.height=`${a}px`,r.value.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,r.value.style.justifyContent=`flex-end`)}}}l.value=t.scrollTop}return(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createVNode)((0,t.unref)(K),(0,t.mergeProps)({ref:(0,t.unref)(s),"data-reka-select-viewport":``,role:`presentation`},{...e.$attrs,...n},{style:{position:`relative`,flex:1,overflow:`hidden auto`},onScroll:u}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16),(0,t.createVNode)((0,t.unref)(K),{as:`style`,nonce:(0,t.unref)(i)},{default:(0,t.withCtx)(()=>r[0]||=[(0,t.createTextVNode)(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}});function pc(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}function mc(e,t,n){return Gt(100/(n-t)*(e-t),0,100)}function hc(e,t){if(t>2)return`Value ${e+1} of ${t}`;if(t===2)return[`Minimum`,`Maximum`][e]}function gc(e,t){if(e.length===1)return 0;let n=e.map(e=>Math.abs(e-t)),r=Math.min(...n);return n.indexOf(r)}function _c(e,t,n){let r=e/2;return(r-bc([0,50],[0,r])(t)*n)*n}function vc(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function yc(e,t){if(t>0){let n=vc(e);return Math.min(...n)>=t}return!0}function bc(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function xc(e){return(String(e).split(`.`)[1]||``).length}function Sc(e,t){let n=10**t;return Math.round(e*n)/n}var Cc=[`PageUp`,`PageDown`],wc=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],Tc={"from-left":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-right":[`Home`,`PageDown`,`ArrowDown`,`ArrowRight`],"from-bottom":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-top":[`Home`,`PageUp`,`ArrowUp`,`ArrowLeft`]},[Ec,Dc]=W([`SliderVertical`,`SliderHorizontal`]),Oc=(0,t.defineComponent)({__name:`SliderHorizontal`,props:{dir:{type:String,required:!1},min:{type:Number,required:!0},max:{type:Number,required:!0},inverted:{type:Boolean,required:!0}},emits:[`slideEnd`,`slideStart`,`slideMove`,`homeKeyDown`,`endKeyDown`,`stepKeyDown`],setup(e,{emit:n}){let r=e,i=n,{max:a,min:o,dir:s,inverted:c}=(0,t.toRefs)(r),{forwardRef:l,currentElement:u}=G(),d=Ac(),f=(0,t.ref)(),p=(0,t.ref)(),m=(0,t.computed)(()=>s?.value!==`rtl`&&!c.value||s?.value!==`ltr`&&c.value);function h(e,t){let n=p.value||u.value.getBoundingClientRect(),r=[...d.thumbElements.value][d.valueIndexToChangeRef.value],i=d.thumbAlignment.value===`contain`?r.clientWidth:0;!f.value&&!t&&d.thumbAlignment.value===`contain`&&(f.value=e.clientX-r.getBoundingClientRect().left);let s=bc([0,n.width-i],m.value?[o.value,a.value]:[a.value,o.value]);return p.value=n,s(t?e.clientX-n.left-i/2:e.clientX-n.left-(f.value??0))}return Dc({startEdge:(0,t.computed)(()=>m.value?`left`:`right`),endEdge:(0,t.computed)(()=>m.value?`right`:`left`),direction:(0,t.computed)(()=>m.value?1:-1),size:`width`}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(Nc,{ref:(0,t.unref)(l),dir:(0,t.unref)(s),"data-orientation":`horizontal`,style:(0,t.normalizeStyle)({"--reka-slider-thumb-transform":!m.value&&(0,t.unref)(d).thumbAlignment.value===`overflow`?`translateX(50%)`:`translateX(-50%)`}),onSlideStart:n[0]||=e=>{i(`slideStart`,h(e,!0))},onSlideMove:n[1]||=e=>{i(`slideMove`,h(e))},onSlideEnd:n[2]||=()=>{p.value=void 0,f.value=void 0,i(`slideEnd`)},onStepKeyDown:n[3]||=e=>{let n=m.value?`from-left`:`from-right`;i(`stepKeyDown`,e,(0,t.unref)(Tc)[n].includes(e.key)?-1:1)},onEndKeyDown:n[4]||=e=>i(`endKeyDown`,e),onHomeKeyDown:n[5]||=e=>i(`homeKeyDown`,e)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`dir`,`style`]))}}),kc=(0,t.defineComponent)({__name:`SliderVertical`,props:{min:{type:Number,required:!0},max:{type:Number,required:!0},inverted:{type:Boolean,required:!0}},emits:[`slideEnd`,`slideStart`,`slideMove`,`homeKeyDown`,`endKeyDown`,`stepKeyDown`],setup(e,{emit:n}){let r=e,i=n,{max:a,min:o,inverted:s}=(0,t.toRefs)(r),c=Ac(),{forwardRef:l,currentElement:u}=G(),d=(0,t.ref)(),f=(0,t.ref)(),p=(0,t.computed)(()=>!s.value);function m(e,t){let n=f.value||u.value.getBoundingClientRect(),r=[...c.thumbElements.value][c.valueIndexToChangeRef.value],i=c.thumbAlignment.value===`contain`?r.clientHeight:0;!d.value&&!t&&c.thumbAlignment.value===`contain`&&(d.value=e.clientY-r.getBoundingClientRect().top);let s=bc([0,n.height-i],p.value?[a.value,o.value]:[o.value,a.value]),l=t?e.clientY-n.top-i/2:e.clientY-n.top-(d.value??0);return f.value=n,s(l)}return Dc({startEdge:(0,t.computed)(()=>p.value?`bottom`:`top`),endEdge:(0,t.computed)(()=>p.value?`top`:`bottom`),direction:(0,t.computed)(()=>p.value?1:-1),size:`height`}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(Nc,{ref:(0,t.unref)(l),"data-orientation":`vertical`,style:(0,t.normalizeStyle)({"--reka-slider-thumb-transform":!p.value&&(0,t.unref)(c).thumbAlignment.value===`overflow`?`translateY(-50%)`:`translateY(50%)`}),onSlideStart:n[0]||=e=>{i(`slideStart`,m(e,!0))},onSlideMove:n[1]||=e=>{i(`slideMove`,m(e))},onSlideEnd:n[2]||=()=>{f.value=void 0,d.value=void 0,i(`slideEnd`)},onStepKeyDown:n[3]||=e=>{let n=p.value?`from-bottom`:`from-top`;i(`stepKeyDown`,e,(0,t.unref)(Tc)[n].includes(e.key)?-1:1)},onEndKeyDown:n[4]||=e=>i(`endKeyDown`,e),onHomeKeyDown:n[5]||=e=>i(`homeKeyDown`,e)},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`style`]))}}),[Ac,jc]=W(`SliderRoot`),Mc=(0,t.defineComponent)({inheritAttrs:!1,__name:`SliderRoot`,props:{defaultValue:{type:Array,required:!1,default:()=>[0]},modelValue:{type:[Array,null],required:!1},disabled:{type:Boolean,required:!1,default:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},inverted:{type:Boolean,required:!1,default:!1},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},minStepsBetweenThumbs:{type:Number,required:!1,default:0},thumbAlignment:{type:String,required:!1,default:`contain`},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`valueCommit`],setup(e,{emit:r}){let i=e,a=r,{min:o,max:s,step:c,minStepsBetweenThumbs:l,orientation:u,disabled:d,thumbAlignment:f,dir:p}=(0,t.toRefs)(i),m=vn(p),{forwardRef:h,currentElement:g}=G(),_=wn(g),{CollectionSlot:v}=Gr({isProvider:!0}),y=(0,n.useVModel)(i,`modelValue`,a,{defaultValue:i.defaultValue,passive:i.modelValue===void 0}),b=(0,t.computed)(()=>Array.isArray(y.value)?[...y.value]:[]),x=(0,t.ref)(0),S=(0,t.ref)(b.value);function C(e){E(e,gc(b.value,e))}function w(e){E(e,x.value)}function T(){let e=S.value[x.value];b.value[x.value]!==e&&a(`valueCommit`,(0,t.toRaw)(b.value))}function E(e,t,{commit:n}={commit:!1}){let r=xc(c.value),i=Gt(Sc(Math.round((e-o.value)/c.value)*c.value+o.value,r),o.value,s.value),u=pc(b.value,i,t);if(yc(u,l.value*c.value)){x.value=u.indexOf(i);let e=String(u)!==String(y.value);e&&n&&a(`valueCommit`,u),e&&(D.value[x.value]?.focus(),y.value=u)}}let D=(0,t.ref)([]);return jc({modelValue:y,currentModelValue:b,valueIndexToChangeRef:x,thumbElements:D,orientation:u,min:o,max:s,disabled:d,thumbAlignment:f}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(v),null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(u)===`horizontal`?Oc:kc),(0,t.mergeProps)(e.$attrs,{ref:(0,t.unref)(h),"as-child":e.asChild,as:e.as,min:(0,t.unref)(o),max:(0,t.unref)(s),dir:(0,t.unref)(m),inverted:e.inverted,"aria-disabled":(0,t.unref)(d),"data-disabled":(0,t.unref)(d)?``:void 0,onPointerdown:n[0]||=()=>{(0,t.unref)(d)||(S.value=b.value)},onSlideStart:n[1]||=e=>!(0,t.unref)(d)&&C(e),onSlideMove:n[2]||=e=>!(0,t.unref)(d)&&w(e),onSlideEnd:n[3]||=e=>!(0,t.unref)(d)&&T(),onHomeKeyDown:n[4]||=e=>!(0,t.unref)(d)&&E((0,t.unref)(o),0,{commit:!0}),onEndKeyDown:n[5]||=e=>!(0,t.unref)(d)&&E((0,t.unref)(s),b.value.length-1,{commit:!0}),onStepKeyDown:n[6]||=(e,n)=>{if(!(0,t.unref)(d)){let r=(0,t.unref)(Cc).includes(e.key)||e.shiftKey&&(0,t.unref)(wc).includes(e.key)?10:1,i=x.value,a=b.value[i];E(a+(0,t.unref)(c)*r*n,i,{commit:!0})}}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`,{modelValue:(0,t.unref)(y)}),(0,t.unref)(_)&&e.name?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ai),{key:0,type:`number`,value:(0,t.unref)(y),name:e.name,required:e.required,disabled:(0,t.unref)(d),step:(0,t.unref)(c)},null,8,[`value`,`name`,`required`,`disabled`,`step`])):(0,t.createCommentVNode)(`v-if`,!0)]),_:3},16,[`as-child`,`as`,`min`,`max`,`dir`,`inverted`,`aria-disabled`,`data-disabled`]))]),_:3}))}}),Nc=(0,t.defineComponent)({__name:`SliderImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},emits:[`slideStart`,`slideMove`,`slideEnd`,`homeKeyDown`,`endKeyDown`,`stepKeyDown`],setup(e,{emit:n}){let r=e,i=n,a=Ac();return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)({"data-slider-impl":``},r,{onKeydown:n[0]||=e=>{e.key===`Home`?(i(`homeKeyDown`,e),e.preventDefault()):e.key===`End`?(i(`endKeyDown`,e),e.preventDefault()):(0,t.unref)(Cc).concat((0,t.unref)(wc)).includes(e.key)&&(i(`stepKeyDown`,e),e.preventDefault())},onPointerdown:n[1]||=e=>{let n=e.target;n.setPointerCapture(e.pointerId),e.preventDefault(),(0,t.unref)(a).thumbElements.value.includes(n)?n.focus():i(`slideStart`,e)},onPointermove:n[2]||=e=>{e.target.hasPointerCapture(e.pointerId)&&i(`slideMove`,e)},onPointerup:n[3]||=e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),i(`slideEnd`,e))}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),Pc=(0,t.defineComponent)({__name:`SliderRange`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let n=Ac(),r=Ec();G();let i=(0,t.computed)(()=>n.currentModelValue.value.map(e=>mc(e,n.min.value,n.max.value))),a=(0,t.computed)(()=>n.currentModelValue.value.length>1?Math.min(...i.value):0),o=(0,t.computed)(()=>100-Math.max(...i.value,0));return(e,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{"data-disabled":(0,t.unref)(n).disabled.value?``:void 0,"data-orientation":(0,t.unref)(n).orientation.value,"as-child":e.asChild,as:e.as,style:(0,t.normalizeStyle)({[(0,t.unref)(r).startEdge.value]:`${a.value}%`,[(0,t.unref)(r).endEdge.value]:`${o.value}%`})},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`data-disabled`,`data-orientation`,`as-child`,`as`,`style`]))}}),Fc=(0,t.defineComponent)({inheritAttrs:!1,__name:`SliderThumbImpl`,props:{index:{type:Number,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let r=e,i=Ac(),a=Ec(),{forwardRef:o,currentElement:s}=G(),{CollectionItem:c}=Gr(),l=(0,t.computed)(()=>i.modelValue?.value?.[r.index]),u=(0,t.computed)(()=>l.value===void 0?0:mc(l.value,i.min.value??0,i.max.value??100)),d=(0,t.computed)(()=>hc(r.index,i.modelValue?.value?.length??0)),f=Bn(s),p=(0,t.computed)(()=>f[a.size].value),m=(0,t.computed)(()=>i.thumbAlignment.value===`overflow`||!p.value?0:_c(p.value,u.value,a.direction.value)),h=(0,n.useMounted)();return(0,t.onMounted)(()=>{i.thumbElements.value.push(s.value)}),(0,t.onUnmounted)(()=>{let e=i.thumbElements.value.findIndex(e=>e===s.value)??-1;i.thumbElements.value.splice(e,1)}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(c),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(K),(0,t.mergeProps)(e.$attrs,{ref:(0,t.unref)(o),role:`slider`,tabindex:(0,t.unref)(i).disabled.value?void 0:0,"aria-label":e.$attrs[`aria-label`]||d.value,"data-disabled":(0,t.unref)(i).disabled.value?``:void 0,"data-orientation":(0,t.unref)(i).orientation.value,"aria-valuenow":l.value,"aria-valuemin":(0,t.unref)(i).min.value,"aria-valuemax":(0,t.unref)(i).max.value,"aria-orientation":(0,t.unref)(i).orientation.value,"as-child":e.asChild,as:e.as,style:{transform:`var(--reka-slider-thumb-transform)`,position:`absolute`,[(0,t.unref)(a).startEdge.value]:`calc(${u.value}% + ${m.value}px)`,display:!(0,t.unref)(h)&&l.value===void 0?`none`:void 0},onFocus:n[0]||=()=>{(0,t.unref)(i).valueIndexToChangeRef.value=e.index}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`tabindex`,`aria-label`,`data-disabled`,`data-orientation`,`aria-valuenow`,`aria-valuemin`,`aria-valuemax`,`aria-orientation`,`as-child`,`as`,`style`])]),_:3}))}}),Ic=(0,t.defineComponent)({__name:`SliderThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let n=e,{getItems:r}=Gr(),{forwardRef:i,currentElement:a}=G(),o=(0,t.computed)(()=>a.value?r(!0).findIndex(e=>e.ref===a.value):-1);return(e,r)=>((0,t.openBlock)(),(0,t.createBlock)(Fc,(0,t.mergeProps)({ref:(0,t.unref)(i)},n,{index:o.value}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`index`]))}}),Lc=(0,t.defineComponent)({__name:`SliderTrack`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let n=Ac();return G(),(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{"as-child":e.asChild,as:e.as,"data-disabled":(0,t.unref)(n).disabled.value?``:void 0,"data-orientation":(0,t.unref)(n).orientation.value},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`data-disabled`,`data-orientation`]))}}),[Rc,zc]=W(`ToggleGroupRoot`),Bc=(0,t.defineComponent)({__name:`ToggleGroupRoot`,props:{rovingFocus:{type:Boolean,required:!1,default:!0},disabled:{type:Boolean,required:!1,default:!1},orientation:{type:String,required:!1},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},type:{type:String,required:!1},modelValue:{type:null,required:!1},defaultValue:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:n}){let r=e,i=n,{loop:a,rovingFocus:o,disabled:s,dir:c}=(0,t.toRefs)(r),l=vn(c),{forwardRef:u,currentElement:d}=G(),{modelValue:f,changeModelValue:p,isSingle:m}=er(r,i),h=wn(d);return zc({isSingle:m,modelValue:f,changeModelValue:p,dir:l,orientation:r.orientation,loop:a,rovingFocus:o,disabled:s}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(o)?(0,t.unref)(ti):(0,t.unref)(K)),{"as-child":``,orientation:(0,t.unref)(o)?e.orientation:void 0,dir:(0,t.unref)(l),loop:(0,t.unref)(o)?(0,t.unref)(a):void 0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(K),{ref:(0,t.unref)(u),role:`group`,"as-child":e.asChild,as:e.as},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`,{modelValue:(0,t.unref)(f)}),(0,t.unref)(h)&&e.name?((0,t.openBlock)(),(0,t.createBlock)(ai,{key:0,name:e.name,required:e.required,value:(0,t.unref)(f)},null,8,[`name`,`required`,`value`])):(0,t.createCommentVNode)(`v-if`,!0)]),_:3},8,[`as-child`,`as`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),Vc=(0,t.defineComponent)({__name:`Toggle`,props:{defaultValue:{type:Boolean,required:!1},modelValue:{type:[Boolean,null],required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(e,{emit:r}){let i=e,a=r,{forwardRef:o,currentElement:s}=G(),c=Rc(null),l=(0,n.useVModel)(i,`modelValue`,a,{defaultValue:i.defaultValue,passive:i.modelValue===void 0});function u(){l.value=!l.value}let d=(0,t.computed)(()=>l.value?`on`:`off`),f=wn(s);return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{ref:(0,t.unref)(o),type:e.as===`button`?`button`:void 0,"as-child":i.asChild,as:e.as,"aria-pressed":(0,t.unref)(l),"data-state":d.value,"data-disabled":e.disabled?``:void 0,disabled:e.disabled,onClick:u},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`,{modelValue:(0,t.unref)(l),disabled:e.disabled,pressed:(0,t.unref)(l),state:d.value}),(0,t.unref)(f)&&e.name&&!(0,t.unref)(c)?((0,t.openBlock)(),(0,t.createBlock)(ai,{key:0,type:`checkbox`,name:e.name,value:(0,t.unref)(l),required:e.required},null,8,[`name`,`value`,`required`])):(0,t.createCommentVNode)(`v-if`,!0)]),_:3},8,[`type`,`as-child`,`as`,`aria-pressed`,`data-state`,`data-disabled`,`disabled`]))}}),Hc=(0,t.defineComponent)({__name:`ToggleGroupItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let n=e,r=Rc(),i=(0,t.computed)(()=>r.disabled?.value||n.disabled),a=(0,t.computed)(()=>Yt(r.modelValue.value,n.value)),{forwardRef:o}=G();return(e,s)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(r).rovingFocus.value?(0,t.unref)(ni):(0,t.unref)(K)),(0,t.mergeProps)({"as-child":``},(0,t.unref)(r).rovingFocus.value?{focusable:!i.value,active:a.value}:{}),{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Vc),(0,t.mergeProps)(n,{ref:(0,t.unref)(o),disabled:i.value,"model-value":a.value,"onUpdate:modelValue":s[0]||=n=>(0,t.unref)(r).changeModelValue(e.value)}),{default:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`default`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)))]),_:3},16,[`disabled`,`model-value`])]),_:3},16))}}),Uc=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},Wc=(e,t)=>({classGroupId:e,validator:t}),Gc=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),Kc=`-`,qc=[],Jc=`arbitrary..`,Yc=e=>{let t=Qc(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return Zc(e);let n=e.split(Kc);return Xc(n,n[0]===``&&n.length>1?1:0,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?Uc(i,t):t:i||qc}return n[e]||qc}}},Xc=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=Xc(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(Kc):e.slice(t).join(Kc),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},Zc=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?Jc+r:void 0})(),Qc=e=>{let{theme:t,classGroups:n}=e;return $c(n,t)},$c=(e,t)=>{let n=Gc();for(let r in e){let i=e[r];el(i,n,r,t)}return n},el=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];tl(i,t,n,r)}},tl=(e,t,n,r)=>{if(typeof e==`string`){nl(e,t,n);return}if(typeof e==`function`){rl(e,t,n,r);return}il(e,t,n,r)},nl=(e,t,n)=>{let r=e===``?t:al(t,e);r.classGroupId=n},rl=(e,t,n,r)=>{if(ol(e)){el(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(Wc(n,e))},il=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];el(o,al(t,a),n,r)}},al=(e,t)=>{let n=e,r=t.split(Kc),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=Gc(),n.nextPart.set(t,i)),n=i}return n},ol=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,sl=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},cl=`!`,ll=`:`,ul=[],dl=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),fl=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===ll){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(cl)?(c=s.slice(0,-1),l=!0):s.startsWith(cl)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return dl(t,l,c,u)};if(t){let e=t+ll,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):dl(ul,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},pl=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},ml=e=>({cache:sl(e.cacheSize),parseClassName:fl(e),sortModifiers:pl(e),...Yc(e)}),hl=/\s+/,gl=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a}=t,o=[],s=e.trim().split(hl),c=``;for(let e=s.length-1;e>=0;--e){let t=s[e],{isExternal:l,modifiers:u,hasImportantModifier:d,baseClassName:f,maybePostfixModifierPosition:p}=n(t);if(l){c=t+(c.length>0?` `+c:c);continue}let m=!!p,h=r(m?f.substring(0,p):f);if(!h){if(!m){c=t+(c.length>0?` `+c:c);continue}if(h=r(f),!h){c=t+(c.length>0?` `+c:c);continue}m=!1}let g=u.length===0?``:u.length===1?u[0]:a(u).join(`:`),_=d?g+cl:g,v=_+h;if(o.indexOf(v)>-1)continue;o.push(v);let y=i(h,m);for(let e=0;e<y.length;++e){let t=y[e];o.push(_+t)}c=t+(c.length>0?` `+c:c)}return c},_l=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=vl(n))&&(i&&(i+=` `),i+=r);return i},vl=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=vl(e[r]))&&(n&&(n+=` `),n+=t);return n},yl=(e,...t)=>{let n,r,i,a,o=o=>(n=ml(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=gl(e,n);return i(e,a),a};return a=o,(...e)=>a(_l(...e))},bl=[],xl=e=>{let t=t=>t[e]||bl;return t.isThemeGetter=!0,t},Sl=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Cl=/^\((?:(\w[\w-]*):)?(.+)\)$/i,wl=/^\d+\/\d+$/,Tl=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,El=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Dl=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ol=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,kl=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Al=e=>wl.test(e),J=e=>!!e&&!Number.isNaN(Number(e)),jl=e=>!!e&&Number.isInteger(Number(e)),Ml=e=>e.endsWith(`%`)&&J(e.slice(0,-1)),Nl=e=>Tl.test(e),Pl=()=>!0,Fl=e=>El.test(e)&&!Dl.test(e),Il=()=>!1,Ll=e=>Ol.test(e),Rl=e=>kl.test(e),zl=e=>!Y(e)&&!X(e),Bl=e=>Ql(e,nu,Il),Y=e=>Sl.test(e),Vl=e=>Ql(e,ru,Fl),Hl=e=>Ql(e,iu,J),Ul=e=>Ql(e,eu,Il),Wl=e=>Ql(e,tu,Rl),Gl=e=>Ql(e,ou,Ll),X=e=>Cl.test(e),Kl=e=>$l(e,ru),ql=e=>$l(e,au),Jl=e=>$l(e,eu),Yl=e=>$l(e,nu),Xl=e=>$l(e,tu),Zl=e=>$l(e,ou,!0),Ql=(e,t,n)=>{let r=Sl.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},$l=(e,t,n=!1)=>{let r=Cl.exec(e);return r?r[1]?t(r[1]):n:!1},eu=e=>e===`position`||e===`percentage`,tu=e=>e===`image`||e===`url`,nu=e=>e===`length`||e===`size`||e===`bg-size`,ru=e=>e===`length`,iu=e=>e===`number`,au=e=>e===`family-name`,ou=e=>e===`shadow`,su=yl(()=>{let e=xl(`color`),t=xl(`font`),n=xl(`text`),r=xl(`font-weight`),i=xl(`tracking`),a=xl(`leading`),o=xl(`breakpoint`),s=xl(`container`),c=xl(`spacing`),l=xl(`radius`),u=xl(`shadow`),d=xl(`inset-shadow`),f=xl(`text-shadow`),p=xl(`drop-shadow`),m=xl(`blur`),h=xl(`perspective`),g=xl(`aspect`),_=xl(`ease`),v=xl(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),X,Y],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[X,Y,c],T=()=>[Al,`full`,`auto`,...w()],E=()=>[jl,`none`,`subgrid`,X,Y],D=()=>[`auto`,{span:[`full`,jl,X,Y]},jl,X,Y],O=()=>[jl,`auto`,X,Y],ee=()=>[`auto`,`min`,`max`,`fr`,X,Y],k=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],te=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],A=()=>[`auto`,...w()],j=()=>[Al,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],M=()=>[e,X,Y],N=()=>[...b(),Jl,Ul,{position:[X,Y]}],ne=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],re=()=>[`auto`,`cover`,`contain`,Yl,Bl,{size:[X,Y]}],ie=()=>[Ml,Kl,Vl],P=()=>[``,`none`,`full`,l,X,Y],F=()=>[``,J,Kl,Vl],ae=()=>[`solid`,`dashed`,`dotted`,`double`],oe=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],I=()=>[J,Ml,Jl,Ul],se=()=>[``,`none`,m,X,Y],ce=()=>[`none`,J,X,Y],le=()=>[`none`,J,X,Y],ue=()=>[J,X,Y],de=()=>[Al,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[Nl],breakpoint:[Nl],color:[Pl],container:[Nl],"drop-shadow":[Nl],ease:[`in`,`out`,`in-out`],font:[zl],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[Nl],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[Nl],shadow:[Nl],spacing:[`px`,J],text:[Nl],"text-shadow":[Nl],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,Al,Y,X,g]}],container:[`container`],columns:[{columns:[J,Y,X,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{start:T()}],end:[{end:T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[jl,`auto`,X,Y]}],basis:[{basis:[Al,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[J,Al,`auto`,`initial`,`none`,Y]}],grow:[{grow:[``,J,X,Y]}],shrink:[{shrink:[``,J,X,Y]}],order:[{order:[jl,`first`,`last`,`none`,X,Y]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":ee()}],"auto-rows":[{"auto-rows":ee()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...k(),`normal`]}],"justify-items":[{"justify-items":[...te(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...te()]}],"align-content":[{content:[`normal`,...k()]}],"align-items":[{items:[...te(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...te(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":k()}],"place-items":[{"place-items":[...te(),`baseline`]}],"place-self":[{"place-self":[`auto`,...te()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:A()}],mx:[{mx:A()}],my:[{my:A()}],ms:[{ms:A()}],me:[{me:A()}],mt:[{mt:A()}],mr:[{mr:A()}],mb:[{mb:A()}],ml:[{ml:A()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:j()}],w:[{w:[s,`screen`,...j()]}],"min-w":[{"min-w":[s,`screen`,`none`,...j()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...j()]}],h:[{h:[`screen`,`lh`,...j()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...j()]}],"max-h":[{"max-h":[`screen`,`lh`,...j()]}],"font-size":[{text:[`base`,n,Kl,Vl]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,X,Hl]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Ml,Y]}],"font-family":[{font:[ql,Y,t]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,X,Y]}],"line-clamp":[{"line-clamp":[J,`none`,X,Hl]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,X,Y]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,X,Y]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:M()}],"text-color":[{text:M()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...ae(),`wavy`]}],"text-decoration-thickness":[{decoration:[J,`from-font`,`auto`,X,Vl]}],"text-decoration-color":[{decoration:M()}],"underline-offset":[{"underline-offset":[J,`auto`,X,Y]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,X,Y]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,X,Y]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:N()}],"bg-repeat":[{bg:ne()}],"bg-size":[{bg:re()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},jl,X,Y],radial:[``,X,Y],conic:[jl,X,Y]},Xl,Wl]}],"bg-color":[{bg:M()}],"gradient-from-pos":[{from:ie()}],"gradient-via-pos":[{via:ie()}],"gradient-to-pos":[{to:ie()}],"gradient-from":[{from:M()}],"gradient-via":[{via:M()}],"gradient-to":[{to:M()}],rounded:[{rounded:P()}],"rounded-s":[{"rounded-s":P()}],"rounded-e":[{"rounded-e":P()}],"rounded-t":[{"rounded-t":P()}],"rounded-r":[{"rounded-r":P()}],"rounded-b":[{"rounded-b":P()}],"rounded-l":[{"rounded-l":P()}],"rounded-ss":[{"rounded-ss":P()}],"rounded-se":[{"rounded-se":P()}],"rounded-ee":[{"rounded-ee":P()}],"rounded-es":[{"rounded-es":P()}],"rounded-tl":[{"rounded-tl":P()}],"rounded-tr":[{"rounded-tr":P()}],"rounded-br":[{"rounded-br":P()}],"rounded-bl":[{"rounded-bl":P()}],"border-w":[{border:F()}],"border-w-x":[{"border-x":F()}],"border-w-y":[{"border-y":F()}],"border-w-s":[{"border-s":F()}],"border-w-e":[{"border-e":F()}],"border-w-t":[{"border-t":F()}],"border-w-r":[{"border-r":F()}],"border-w-b":[{"border-b":F()}],"border-w-l":[{"border-l":F()}],"divide-x":[{"divide-x":F()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":F()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...ae(),`hidden`,`none`]}],"divide-style":[{divide:[...ae(),`hidden`,`none`]}],"border-color":[{border:M()}],"border-color-x":[{"border-x":M()}],"border-color-y":[{"border-y":M()}],"border-color-s":[{"border-s":M()}],"border-color-e":[{"border-e":M()}],"border-color-t":[{"border-t":M()}],"border-color-r":[{"border-r":M()}],"border-color-b":[{"border-b":M()}],"border-color-l":[{"border-l":M()}],"divide-color":[{divide:M()}],"outline-style":[{outline:[...ae(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[J,X,Y]}],"outline-w":[{outline:[``,J,Kl,Vl]}],"outline-color":[{outline:M()}],shadow:[{shadow:[``,`none`,u,Zl,Gl]}],"shadow-color":[{shadow:M()}],"inset-shadow":[{"inset-shadow":[`none`,d,Zl,Gl]}],"inset-shadow-color":[{"inset-shadow":M()}],"ring-w":[{ring:F()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:M()}],"ring-offset-w":[{"ring-offset":[J,Vl]}],"ring-offset-color":[{"ring-offset":M()}],"inset-ring-w":[{"inset-ring":F()}],"inset-ring-color":[{"inset-ring":M()}],"text-shadow":[{"text-shadow":[`none`,f,Zl,Gl]}],"text-shadow-color":[{"text-shadow":M()}],opacity:[{opacity:[J,X,Y]}],"mix-blend":[{"mix-blend":[...oe(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":oe()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[J]}],"mask-image-linear-from-pos":[{"mask-linear-from":I()}],"mask-image-linear-to-pos":[{"mask-linear-to":I()}],"mask-image-linear-from-color":[{"mask-linear-from":M()}],"mask-image-linear-to-color":[{"mask-linear-to":M()}],"mask-image-t-from-pos":[{"mask-t-from":I()}],"mask-image-t-to-pos":[{"mask-t-to":I()}],"mask-image-t-from-color":[{"mask-t-from":M()}],"mask-image-t-to-color":[{"mask-t-to":M()}],"mask-image-r-from-pos":[{"mask-r-from":I()}],"mask-image-r-to-pos":[{"mask-r-to":I()}],"mask-image-r-from-color":[{"mask-r-from":M()}],"mask-image-r-to-color":[{"mask-r-to":M()}],"mask-image-b-from-pos":[{"mask-b-from":I()}],"mask-image-b-to-pos":[{"mask-b-to":I()}],"mask-image-b-from-color":[{"mask-b-from":M()}],"mask-image-b-to-color":[{"mask-b-to":M()}],"mask-image-l-from-pos":[{"mask-l-from":I()}],"mask-image-l-to-pos":[{"mask-l-to":I()}],"mask-image-l-from-color":[{"mask-l-from":M()}],"mask-image-l-to-color":[{"mask-l-to":M()}],"mask-image-x-from-pos":[{"mask-x-from":I()}],"mask-image-x-to-pos":[{"mask-x-to":I()}],"mask-image-x-from-color":[{"mask-x-from":M()}],"mask-image-x-to-color":[{"mask-x-to":M()}],"mask-image-y-from-pos":[{"mask-y-from":I()}],"mask-image-y-to-pos":[{"mask-y-to":I()}],"mask-image-y-from-color":[{"mask-y-from":M()}],"mask-image-y-to-color":[{"mask-y-to":M()}],"mask-image-radial":[{"mask-radial":[X,Y]}],"mask-image-radial-from-pos":[{"mask-radial-from":I()}],"mask-image-radial-to-pos":[{"mask-radial-to":I()}],"mask-image-radial-from-color":[{"mask-radial-from":M()}],"mask-image-radial-to-color":[{"mask-radial-to":M()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[J]}],"mask-image-conic-from-pos":[{"mask-conic-from":I()}],"mask-image-conic-to-pos":[{"mask-conic-to":I()}],"mask-image-conic-from-color":[{"mask-conic-from":M()}],"mask-image-conic-to-color":[{"mask-conic-to":M()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:N()}],"mask-repeat":[{mask:ne()}],"mask-size":[{mask:re()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,X,Y]}],filter:[{filter:[``,`none`,X,Y]}],blur:[{blur:se()}],brightness:[{brightness:[J,X,Y]}],contrast:[{contrast:[J,X,Y]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,Zl,Gl]}],"drop-shadow-color":[{"drop-shadow":M()}],grayscale:[{grayscale:[``,J,X,Y]}],"hue-rotate":[{"hue-rotate":[J,X,Y]}],invert:[{invert:[``,J,X,Y]}],saturate:[{saturate:[J,X,Y]}],sepia:[{sepia:[``,J,X,Y]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,X,Y]}],"backdrop-blur":[{"backdrop-blur":se()}],"backdrop-brightness":[{"backdrop-brightness":[J,X,Y]}],"backdrop-contrast":[{"backdrop-contrast":[J,X,Y]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,J,X,Y]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[J,X,Y]}],"backdrop-invert":[{"backdrop-invert":[``,J,X,Y]}],"backdrop-opacity":[{"backdrop-opacity":[J,X,Y]}],"backdrop-saturate":[{"backdrop-saturate":[J,X,Y]}],"backdrop-sepia":[{"backdrop-sepia":[``,J,X,Y]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,X,Y]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[J,`initial`,X,Y]}],ease:[{ease:[`linear`,`initial`,_,X,Y]}],delay:[{delay:[J,X,Y]}],animate:[{animate:[`none`,v,X,Y]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,X,Y]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:ce()}],"rotate-x":[{"rotate-x":ce()}],"rotate-y":[{"rotate-y":ce()}],"rotate-z":[{"rotate-z":ce()}],scale:[{scale:le()}],"scale-x":[{"scale-x":le()}],"scale-y":[{"scale-y":le()}],"scale-z":[{"scale-z":le()}],"scale-3d":[`scale-3d`],skew:[{skew:ue()}],"skew-x":[{"skew-x":ue()}],"skew-y":[{"skew-y":ue()}],transform:[{transform:[X,Y,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:de()}],"translate-x":[{"translate-x":de()}],"translate-y":[{"translate-y":de()}],"translate-z":[{"translate-z":de()}],"translate-none":[`translate-none`],accent:[{accent:M()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:M()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,X,Y]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,X,Y]}],fill:[{fill:[`none`,...M()]}],"stroke-w":[{stroke:[J,Kl,Vl,Hl]}],stroke:[{stroke:[`none`,...M()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function Z(...e){return su(Lt(e))}var Q=(0,t.defineComponent)({__name:`Button`,props:{variant:{},size:{},class:{},asChild:{type:Boolean},as:{default:`button`}},setup(e){let n=e;return(r,i)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),{"data-slot":`button`,as:e.as,"as-child":e.asChild,class:(0,t.normalizeClass)((0,t.unref)(Z)((0,t.unref)(cu)({variant:e.variant,size:e.size}),n.class))},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(r.$slots,`default`)]),_:3},8,[`as`,`as-child`,`class`]))}});let cu=Bt(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60`,outline:`border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-9 px-4 py-2 has-[>svg]:px-3`,sm:`h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5`,lg:`h-10 rounded-md px-6 has-[>svg]:px-4`,icon:`size-9`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});var lu={class:`grid grid-cols-3 gap-x-6 gap-y-2 p-2 max-w-60 mx-auto`},uu=(0,t.defineComponent)({__name:`KeyPad`,setup(e){let n=(0,t.inject)(`webphone`),{sendDTMF:r}=(0,t.inject)(`sip`),{playDtmf:i}=Pt(),a=[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`*`,`0`,`#`],o=e=>{i(e),n.callStatus===`connected`?r(e):n.appendKeypad(e)};return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,lu,[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(a,e=>(0,t.createVNode)((0,t.unref)(Q),{key:e,onClick:t=>o(e),variant:`ghost`,size:`icon`,class:`h-12! w-12! rounded-full! text-lg font-medium bg-neutral-100 dark:bg-neutral-800 hover:bg-neutral-200 dark:hover:bg-neutral-700 text-neutral-900 dark:text-white transition-colors`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e),1)]),_:2},1032,[`onClick`])),64))]))}}),du=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),fu=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),pu=e=>{let t=fu(e);return t.charAt(0).toUpperCase()+t.slice(1)},mu=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),hu=e=>e===``,gu={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},_u=({name:e,iconNode:n,absoluteStrokeWidth:r,"absolute-stroke-width":i,strokeWidth:a,"stroke-width":o,size:s=gu.width,color:c=gu.stroke,...l},{slots:u})=>(0,t.h)(`svg`,{...gu,...l,width:s,height:s,stroke:c,"stroke-width":hu(r)||hu(i)||r===!0||i===!0?Number(a||o||gu[`stroke-width`])*24/Number(s):a||o||gu[`stroke-width`],class:mu(`lucide`,l.class,...e?[`lucide-${du(pu(e))}-icon`,`lucide-${du(e)}`]:[`lucide-icon`])},[...n.map(e=>(0,t.h)(...e)),...u.default?[u.default()]:[]]),$=(e,n)=>(r,{slots:i,attrs:a})=>(0,t.h)(_u,{...a,...r,iconNode:n,name:e},i),vu=$(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),yu=$(`arrow-right-left`,[[`path`,{d:`m16 3 4 4-4 4`,key:`1x1c3m`}],[`path`,{d:`M20 7H4`,key:`zbl0bi`}],[`path`,{d:`m8 21-4-4 4-4`,key:`h9nckh`}],[`path`,{d:`M4 17h16`,key:`g4d7ey`}]]),bu=$(`building-2`,[[`path`,{d:`M10 12h4`,key:`a56b0p`}],[`path`,{d:`M10 8h4`,key:`1sr2af`}],[`path`,{d:`M14 21v-3a2 2 0 0 0-4 0v3`,key:`1rgiei`}],[`path`,{d:`M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2`,key:`secmi2`}],[`path`,{d:`M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16`,key:`16ra0t`}]]),xu=$(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),Su=$(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),Cu=$(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),wu=$(`chevrons-up-down`,[[`path`,{d:`m7 15 5 5 5-5`,key:`1hf1tw`}],[`path`,{d:`m7 9 5-5 5 5`,key:`sgt6xg`}]]),Tu=$(`circle-user`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}],[`path`,{d:`M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662`,key:`154egf`}]]),Eu=$(`delete`,[[`path`,{d:`M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z`,key:`1yo7s0`}],[`path`,{d:`m12 9 6 6`,key:`anjzzh`}],[`path`,{d:`m18 9-6 6`,key:`1fp51s`}]]),Du=$(`disc`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),Ou=$(`grip`,[[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`19`,cy:`5`,r:`1`,key:`w8mnmm`}],[`circle`,{cx:`5`,cy:`5`,r:`1`,key:`lttvr7`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}],[`circle`,{cx:`19`,cy:`19`,r:`1`,key:`shf9b7`}],[`circle`,{cx:`5`,cy:`19`,r:`1`,key:`bfqh0e`}]]),ku=$(`history`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]]),Au=$(`mic-off`,[[`path`,{d:`M12 19v3`,key:`npa21l`}],[`path`,{d:`M15 9.34V5a3 3 0 0 0-5.68-1.33`,key:`1gzdoj`}],[`path`,{d:`M16.95 16.95A7 7 0 0 1 5 12v-2`,key:`cqa7eg`}],[`path`,{d:`M18.89 13.23A7 7 0 0 0 19 12v-2`,key:`16hl24`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M9 9v3a3 3 0 0 0 5.12 2.12`,key:`r2i35w`}]]),ju=$(`mic`,[[`path`,{d:`M12 19v3`,key:`npa21l`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`,key:`1vc78b`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`13`,rx:`3`,key:`s6n7sd`}]]),Mu=$(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),Nu=$(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),Pu=$(`phone-incoming`,[[`path`,{d:`M16 2v6h6`,key:`1mfrl5`}],[`path`,{d:`m22 2-6 6`,key:`6f0sa0`}],[`path`,{d:`M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384`,key:`9njp5v`}]]),Fu=$(`phone-missed`,[[`path`,{d:`m16 2 6 6`,key:`1gw87d`}],[`path`,{d:`m22 2-6 6`,key:`6f0sa0`}],[`path`,{d:`M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384`,key:`9njp5v`}]]),Iu=$(`phone-off`,[[`path`,{d:`M10.1 13.9a14 14 0 0 0 3.732 2.668 1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2 18 18 0 0 1-12.728-5.272`,key:`1wngk7`}],[`path`,{d:`M22 2 2 22`,key:`y4kqgn`}],[`path`,{d:`M4.76 13.582A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 .244.473`,key:`10hv5p`}]]),Lu=$(`phone-outgoing`,[[`path`,{d:`m16 8 6-6`,key:`oawc05`}],[`path`,{d:`M22 8V2h-6`,key:`oqy2zc`}],[`path`,{d:`M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384`,key:`9njp5v`}]]),Ru=$(`phone`,[[`path`,{d:`M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384`,key:`9njp5v`}]]),zu=$(`picture-in-picture-2`,[[`path`,{d:`M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4`,key:`daa4of`}],[`rect`,{width:`10`,height:`7`,x:`12`,y:`13`,rx:`2`,key:`1nb8gs`}]]),Bu=$(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Vu=$(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Hu=$(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Uu=$(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),Wu=$(`video`,[[`path`,{d:`m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5`,key:`ftymec`}],[`rect`,{x:`2`,y:`6`,width:`14`,height:`12`,rx:`2`,key:`158x01`}]]),Gu=$(`voicemail`,[[`circle`,{cx:`6`,cy:`12`,r:`4`,key:`1ehtga`}],[`circle`,{cx:`18`,cy:`12`,r:`4`,key:`4vafl8`}],[`line`,{x1:`6`,x2:`18`,y1:`16`,y2:`16`,key:`pmt8us`}]]),Ku=$(`wifi-off`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}],[`path`,{d:`M5 12.859a10 10 0 0 1 5.17-2.69`,key:`1dl1wf`}],[`path`,{d:`M19 12.859a10 10 0 0 0-2.007-1.523`,key:`4k23kn`}],[`path`,{d:`M2 8.82a15 15 0 0 1 4.177-2.643`,key:`1grhjp`}],[`path`,{d:`M22 8.82a15 15 0 0 0-11.288-3.764`,key:`z3jwby`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),qu=$(`wifi`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M2 8.82a15 15 0 0 1 20 0`,key:`dnpr2z`}],[`path`,{d:`M5 12.859a10 10 0 0 1 14 0`,key:`1x1e6c`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}]]),Ju=$(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]),Yu=$(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),Xu={class:`flex justify-center items-center gap-6 p-2`},Zu=(0,t.defineComponent)({__name:`CallActions`,props:{destination:{},isVideo:{type:Boolean}},emits:[`transfer`],setup(e,{emit:n}){let r=(0,t.inject)(`webphone`),{makeCall:i,hangupCall:a,answerCall:o,toggleMute:s,toggleHold:c}=(0,t.inject)(`sip`),l=e,u=n,d=e=>{l.destination?i(l.destination,e):r.keypadValue?i(r.keypadValue,e):r.lastDialedNumber&&(r.keypadValue=r.lastDialedNumber)},f=(e=!1)=>{o(e)};return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Xu,[(0,t.unref)(r).callStatus===`idle`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[l.isVideo?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Q),{key:0,variant:`default`,size:`icon`,onClick:n[0]||=e=>d(!0),disabled:!l.destination&&(!(0,t.unref)(r).keypadValue||!/^[0-9*#]+$/.test((0,t.unref)(r).keypadValue))&&!(0,t.unref)(r).lastDialedNumber,"aria-label":`Video Call`,class:`w-12 h-12 rounded-full bg-status-incall hover:bg-status-incall/90 text-white dark:text-neutral-800`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Wu),{class:`w-5 h-5`})]),_:1},8,[`disabled`])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)((0,t.unref)(Q),{variant:`default`,size:`icon`,onClick:n[1]||=e=>d(!1),disabled:!l.destination&&(!(0,t.unref)(r).keypadValue||!/^[0-9*#]+$/.test((0,t.unref)(r).keypadValue))&&!(0,t.unref)(r).lastDialedNumber,"aria-label":`Audio Call`,class:`w-12 h-12 rounded-full bg-status-available hover:bg-status-available/90 text-white dark:text-neutral-800`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Ru),{class:`w-5 h-5`})]),_:1},8,[`disabled`])],64)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(r).callStatus===`incoming`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.unref)(r).activeChannel?.hasVideo?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Q),{key:0,variant:`default`,size:`icon`,onClick:n[2]||=e=>f(!0),class:`animate-pulse w-12 h-12 rounded-full bg-status-available hover:bg-status-available/90 text-white dark:text-neutral-800`,"aria-label":`Answer Video`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Wu),{class:`w-5 h-5`})]),_:1})):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)((0,t.unref)(Q),{variant:`default`,size:`icon`,onClick:n[3]||=e=>f(!1),class:`animate-pulse w-12 h-12 rounded-full bg-status-available hover:bg-status-available/90 text-white dark:text-neutral-800`,"aria-label":`Answer`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Ru),{class:`w-5 h-5`})]),_:1}),(0,t.createVNode)((0,t.unref)(Q),{variant:`destructive`,size:`icon`,onClick:(0,t.unref)(a),"aria-label":`Reject`,class:`w-12 h-12 rounded-full bg-status-disconnected hover:bg-status-disconnected/90 text-white dark:text-neutral-800`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Iu),{class:`w-5 h-5`})]),_:1},8,[`onClick`])],64)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(r).callStatus===`connected`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createVNode)((0,t.unref)(Q),{variant:(0,t.unref)(r).isMuted?`destructive`:`secondary`,size:`icon`,onClick:(0,t.unref)(s),"aria-label":`Mute`,class:(0,t.normalizeClass)([`w-12 h-12 rounded-full`,{"bg-status-disconnected hover:bg-status-disconnected/90 text-white dark:text-neutral-800":(0,t.unref)(r).isMuted}])},{default:(0,t.withCtx)(()=>[(0,t.unref)(r).isMuted?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Au),{key:0,class:`w-5 h-5`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ju),{key:1,class:`w-5 h-5`}))]),_:1},8,[`variant`,`onClick`,`class`]),(0,t.createVNode)((0,t.unref)(Q),{variant:((0,t.unref)(r).isHeld,`secondary`),size:`icon`,onClick:(0,t.unref)(c),"aria-label":`Hold`,class:(0,t.normalizeClass)([`w-12 h-12 rounded-full`,{"bg-status-hold hover:bg-status-hold/90 text-white dark:text-neutral-800":(0,t.unref)(r).isHeld}])},{default:(0,t.withCtx)(()=>[(0,t.unref)(r).isHeld?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Bu),{key:0,class:`w-5 h-5`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Nu),{key:1,class:`w-5 h-5`}))]),_:1},8,[`variant`,`onClick`,`class`]),(0,t.createVNode)((0,t.unref)(Q),{variant:`secondary`,size:`icon`,onClick:n[4]||=e=>u(`transfer`),"aria-label":`Transfer`,class:`w-12 h-12 rounded-full`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(yu),{class:`w-5 h-5`})]),_:1}),(0,t.createVNode)((0,t.unref)(Q),{variant:`destructive`,size:`icon`,onClick:(0,t.unref)(a),"aria-label":`Hangup`,class:`w-12 h-12 rounded-full bg-status-disconnected hover:bg-status-disconnected/90 text-white dark:text-neutral-800`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Iu),{class:`w-5 h-5`})]),_:1},8,[`onClick`])],64)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(r).callStatus===`calling`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Q),{key:3,variant:`destructive`,size:`icon`,onClick:(0,t.unref)(a),"aria-label":`Cancel`,class:`w-12 h-12 rounded-full bg-status-disconnected hover:bg-status-disconnected/90 text-white dark:text-neutral-800`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Iu),{class:`w-5 h-5`})]),_:1},8,[`onClick`])):(0,t.createCommentVNode)(``,!0)]))}}),Qu=(0,t.defineComponent)({__name:`Command`,props:{modelValue:{default:``},defaultValue:{},multiple:{type:Boolean},orientation:{},dir:{},disabled:{type:Boolean},selectionBehavior:{},highlightOnHover:{type:Boolean},by:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{},searchTerm:{default:``}},emits:[`update:modelValue`,`highlight`,`entryFocus`,`leave`,`update:searchTerm`],setup(e,{emit:r}){let i=e,a=r,o=En((0,n.reactiveOmit)(i,`class`,`searchTerm`),a),s=(0,t.ref)(new Map),c=(0,t.ref)(new Map),{contains:l}=bn({sensitivity:`base`}),u=(0,t.reactive)({search:i.searchTerm,filtered:{count:0,items:new Map,groups:new Set}});(0,t.watch)(()=>i.searchTerm,e=>{u.search=e});function d(){if(!u.search){u.filtered.count=s.value.size;return}u.filtered.groups=new Set;let e=0;for(let[t,n]of s.value){let r=l(n,u.search);u.filtered.items.set(t,r?1:0),r&&e++}for(let[e,t]of c.value)for(let n of t)if(u.filtered.items.get(n)>0){u.filtered.groups.add(e);break}u.filtered.count=e}return(0,t.watch)(()=>u.search,e=>{a(`update:searchTerm`,e),d()}),pd({allItems:s,allGroups:c,filterState:u}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Fo),(0,t.mergeProps)({"data-slot":`command`},(0,t.unref)(o),{class:(0,t.unref)(Z)(`bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md`,i.class)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`class`]))}}),$u=(0,t.defineComponent)({__name:`Dialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:n}){let r=En(e,n);return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(rr),(0,t.mergeProps)({"data-slot":`dialog`},(0,t.unref)(r)),{default:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`default`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)))]),_:3},16))}}),ed=(0,t.defineComponent)({__name:`DialogOverlay`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let r=e,i=(0,n.reactiveOmit)(r,`class`);return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Br),(0,t.mergeProps)({"data-slot":`dialog-overlay`},(0,t.unref)(i),{class:(0,t.unref)(Z)(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80`,r.class)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`class`]))}}),td=(0,t.defineComponent)({inheritAttrs:!1,__name:`DialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{},showCloseButton:{type:Boolean,default:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:r}){let i=e,a=r,o=En((0,n.reactiveOmit)(i,`class`),a);return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Hr),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(ed),(0,t.createVNode)((0,t.unref)(Rr),(0,t.mergeProps)({"data-slot":`dialog-content`},{...n.$attrs,...(0,t.unref)(o)},{class:(0,t.unref)(Z)(`bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg`,i.class)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`),e.showCloseButton?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ir),{key:0,"data-slot":`dialog-close`,class:`ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Yu)),r[0]||=(0,t.createElementVNode)(`span`,{class:`sr-only`},`Close`,-1)]),_:1})):(0,t.createCommentVNode)(``,!0)]),_:3},16,[`class`])]),_:3}))}}),nd=(0,t.defineComponent)({__name:`DialogFooter`,props:{class:{}},setup(e){let n=e;return(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{"data-slot":`dialog-footer`,class:(0,t.normalizeClass)((0,t.unref)(Z)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,n.class))},[(0,t.renderSlot)(e.$slots,`default`)],2))}}),rd=(0,t.defineComponent)({__name:`DialogHeader`,props:{class:{}},setup(e){let n=e;return(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{"data-slot":`dialog-header`,class:(0,t.normalizeClass)((0,t.unref)(Z)(`flex flex-col gap-2 text-center sm:text-left`,n.class))},[(0,t.renderSlot)(e.$slots,`default`)],2))}}),id=(0,t.defineComponent)({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let r=e,i=Tn((0,n.reactiveOmit)(r,`class`));return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Ur),(0,t.mergeProps)({"data-slot":`dialog-title`},(0,t.unref)(i),{class:(0,t.unref)(Z)(`text-lg leading-none font-semibold`,r.class)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`class`]))}}),ad=(0,t.defineComponent)({__name:`CommandEmpty`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let r=e,i=(0,n.reactiveOmit)(r,`class`),{filterState:a}=fd(),o=(0,t.computed)(()=>!!a.search&&a.filtered.count===0);return(e,n)=>o.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(K),(0,t.mergeProps)({key:0,"data-slot":`command-empty`},(0,t.unref)(i),{class:(0,t.unref)(Z)(`py-6 text-center text-sm`,r.class)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`class`])):(0,t.createCommentVNode)(``,!0)}}),od=(0,t.defineComponent)({__name:`CommandGroup`,props:{asChild:{type:Boolean},as:{},class:{},heading:{}},setup(e){let r=e,i=(0,n.reactiveOmit)(r,`class`),{allGroups:a,filterState:o}=fd(),s=Rn(),c=(0,t.computed)(()=>o.search?o.filtered.groups.has(s):!0);return hd({id:s}),(0,t.onMounted)(()=>{a.value.has(s)||a.value.set(s,new Set)}),(0,t.onUnmounted)(()=>{a.value.delete(s)}),(n,a)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Bo),(0,t.mergeProps)((0,t.unref)(i),{id:(0,t.unref)(s),"data-slot":`command-group`,class:(0,t.unref)(Z)(`text-foreground overflow-hidden p-1`,r.class),hidden:c.value?void 0:!0}),{default:(0,t.withCtx)(()=>[e.heading?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Vo),{key:0,"data-slot":`command-group-heading`,class:`px-2 py-1.5 text-xs font-medium text-muted-foreground`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.heading),1)]),_:1})):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`)]),_:3},16,[`id`,`class`,`hidden`]))}}),sd={"data-slot":`command-input-wrapper`,class:`flex h-9 items-center gap-2 border-b px-3`},cd=(0,t.defineComponent)({inheritAttrs:!1,__name:`CommandInput`,props:{modelValue:{},autoFocus:{type:Boolean},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let r=e,i=Tn((0,n.reactiveOmit)(r,`class`)),{filterState:a}=fd();return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,sd,[(0,t.createVNode)((0,t.unref)(Vu),{class:`size-4 shrink-0 opacity-50`}),(0,t.createVNode)((0,t.unref)(Lo),(0,t.mergeProps)({...(0,t.unref)(i),...e.$attrs},{modelValue:(0,t.unref)(a).search,"onUpdate:modelValue":n[0]||=e=>(0,t.unref)(a).search=e,"data-slot":`command-input`,"auto-focus":``,class:(0,t.unref)(Z)(`placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50`,r.class)}),null,16,[`modelValue`,`class`])]))}}),ld=(0,t.defineComponent)({__name:`CommandItem`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:[`select`],setup(e,{emit:r}){let i=e,a=r,o=En((0,n.reactiveOmit)(i,`class`),a),s=Rn(),{filterState:c,allItems:l,allGroups:u}=fd(),d=md(),f=(0,t.computed)(()=>{if(c.search){let e=c.filtered.items.get(s);return e===void 0?!0:e>0}else return!0}),p=(0,t.ref)(),m=(0,n.useCurrentElement)(p);return(0,t.onMounted)(()=>{if(!(m.value instanceof HTMLElement))return;l.value.set(s,m.value.textContent??i.value?.toString()??``);let e=d?.id;e&&(u.value.has(e)?u.value.get(e)?.add(s):u.value.set(e,new Set([s])))}),(0,t.onUnmounted)(()=>{l.value.delete(s)}),(e,n)=>f.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Go),(0,t.mergeProps)({key:0},(0,t.unref)(o),{id:(0,t.unref)(s),ref_key:`itemRef`,ref:p,"data-slot":`command-item`,class:(0,t.unref)(Z)(`data-highlighted:bg-accent data-highlighted:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,i.class),onSelect:n[0]||=()=>{(0,t.unref)(c).search=``}}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`id`,`class`])):(0,t.createCommentVNode)(``,!0)}}),ud={role:`presentation`},dd=(0,t.defineComponent)({__name:`CommandList`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let r=e,i=Tn((0,n.reactiveOmit)(r,`class`));return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Io),(0,t.mergeProps)({"data-slot":`command-list`},(0,t.unref)(i),{class:(0,t.unref)(Z)(`max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto`,r.class)}),{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,ud,[(0,t.renderSlot)(e.$slots,`default`)])]),_:3},16,[`class`]))}});let[fd,pd]=W(`Command`),[md,hd]=W(`CommandGroup`);var gd={class:`flex flex-col items-center px-4 space-y-2`},_d={key:2,class:`w-full flex items-center justify-center gap-2 min-h-10`},vd={key:0,class:`absolute top-full left-0 w-full z-50 bg-popover text-popover-foreground shadow-md rounded-md border mt-1`},yd={class:`text-muted-foreground`},bd={key:1},xd={class:`flex flex-col text-left w-full overflow-hidden`},Sd={class:`font-medium truncate`},Cd={class:`text-xs text-muted-foreground truncate`},wd={key:3,class:`flex flex-col items-center justify-center gap-2 w-full`},Td={class:`flex items-center gap-2`},Ed={key:4,class:`flex items-center justify-center gap-4 min-h-10`},Dd={class:`text-xl font-bold text-neutral-800 dark:text-white`},Od=(0,t.defineComponent)({__name:`CallDisplay`,props:{allowInput:{type:Boolean,default:!0},isWebCall:{type:Boolean,default:!1},user:{},contacts:{default:()=>[]},channelId:{default:void 0}},setup(e){let r=(0,t.inject)(`webphone`),i=(0,t.inject)(`sip`),a=e,o=(0,t.computed)(()=>a.channelId===void 0?r.activeChannel:r.channels.find(e=>e.id===a.channelId)),s=(0,t.computed)(()=>{if(!r.isConnected)return`text-status-disconnected`;let e=o.value;return e&&e.status!==`idle`?e.isHeld||e.status===`held`?`text-status-hold`:e.status===`incoming`?`text-status-incoming`:`text-status-incall`:`text-status-available`}),c=(0,t.computed)(()=>{if(!r.isConnected)return`text-status-disconnected hover:text-status-disconnected/80`;let e=o.value;return e&&e.status!==`idle`?e.isHeld||e.status===`held`?`text-status-hold hover:text-status-hold/80`:e.status===`incoming`?`text-status-incoming hover:text-status-incoming/80`:`text-status-incall hover:text-status-incall/80`:`text-status-available hover:text-status-available/80`}),l=(0,t.ref)(!1),u=(0,t.ref)(null);(0,n.onClickOutside)(u,()=>{l.value=!1});let d=(0,t.computed)({get:()=>o.value?.keypadValue||``,set:e=>{o.value&&r.updateChannelState(o.value.id,{keypadValue:e}),l.value=!0}}),f=(0,t.computed)(()=>/^[0-9*#+]+$/.test(d.value)),p=e=>{o.value&&r.updateChannelState(o.value.id,{keypadValue:e.number}),l.value=!1,i.makeCall(e.number)},m=()=>{!d.value||!f.value||(l.value=!1,i.makeCall(d.value))},h=()=>{d.value&&f.value&&m()},g=(0,t.ref)(Date.now());(0,n.useIntervalFn)(()=>{g.value=Date.now()},1e3);let _=(0,t.computed)(()=>{let e=o.value?.startTime,t=o.value?.status||`idle`;if(!e||t!==`connected`)return`00:00`;let n=Math.floor((g.value-e)/1e3);return n<0?`00:00`:`${Math.floor(n/60).toString().padStart(2,`0`)}:${(n%60).toString().padStart(2,`0`)}`}),v=(0,t.computed)(()=>{let e=o.value,t=e?.status||`idle`;return t===`idle`?`Disponible`:t===`calling`?`Llamando...`:e?.isHeld?`En espera - ${e.remoteNumber||e.keypadValue||`Unknown`}`:t===`connected`?`Conectado`:t.charAt(0).toUpperCase()+t.slice(1)});return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,gd,[a.user?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)([s.value,`font-bold text-sm flex items-center gap-2 transition-colors duration-300`])},[i[3]||=(0,t.createElementVNode)(`div`,{class:`w-2 h-2 rounded-full bg-current shadow-[0_0_8px_currentColor]`},null,-1),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(a.user),1)],2)):(0,t.createCommentVNode)(``,!0),(o.value?.status||`idle`)===`connected`?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)([s.value,`font-medium tracking-wider min-h-4 text-xs normal-case`])},(0,t.toDisplayString)(v.value),3)),(o.value?.status||`idle`)===`idle`&&a.allowInput?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,_d,[(0,t.createElementVNode)(`div`,{class:`relative w-full max-w-75`,ref_key:`commandRef`,ref:u},[(0,t.createVNode)((0,t.unref)(Qu),{searchTerm:d.value,"onUpdate:searchTerm":i[1]||=e=>d.value=e,class:`rounded-lg border overflow-visible **:data-[slot=command-input-wrapper]:border-none [&_[data-slot=command-input-wrapper]_svg]:hidden **:data-[slot=command-input-wrapper]:px-2`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(cd),{placeholder:`Ingresar número...`,class:`h-9 border-none focus:ring-0 text-center`,onFocus:i[0]||=e=>l.value=!0,onKeydown:(0,t.withKeys)(h,[`enter`])}),l.value&&d.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,vd,[(0,t.createVNode)((0,t.unref)(dd),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(ad),{class:`py-2 px-4 text-sm`},{default:(0,t.withCtx)(()=>[f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`cursor-pointer hover:bg-accent hover:text-accent-foreground rounded-sm flex items-center gap-2 w-full p-2`,onClick:m},[(0,t.createVNode)((0,t.unref)(Ru),{class:`w-3 h-3`}),i[4]||=(0,t.createElementVNode)(`span`,{class:`font-medium`},`Marcar`,-1),(0,t.createElementVNode)(`span`,yd,(0,t.toDisplayString)(d.value),1)])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,bd,`Sin resultados`))]),_:1}),(0,t.createVNode)((0,t.unref)(od),{heading:`Sugerencias`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(a.contacts,e=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ld),{key:e.number,value:e.name+` `+e.number,onSelect:t=>p(e),class:`cursor-pointer w-full justify-start gap-3 px-3`},{default:(0,t.withCtx)(()=>[e.type?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)((0,t.unref)(Z)(`flex items-center justify-center w-6 h-6 rounded-full shrink-0`,e.type===`extension`?`bg-blue-100 text-blue-600 dark:bg-blue-900/30 dark:text-blue-400`:e.type===`contact`?`bg-emerald-100 text-emerald-600 dark:bg-emerald-900/30 dark:text-emerald-400`:e.type===`voicemail`?`bg-purple-100 text-purple-600 dark:bg-purple-900/30 dark:text-purple-400`:`bg-amber-100 text-amber-600 dark:bg-amber-900/30 dark:text-amber-400`))},[e.type===`extension`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(bu),{key:0,class:`w-3 h-3`})):e.type===`contact`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Tu),{key:1,class:`w-3 h-3`})):e.type===`voicemail`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Gu),{key:2,class:`w-3 h-3`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Ju),{key:3,class:`w-3 h-3`}))],2)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,xd,[(0,t.createElementVNode)(`span`,Sd,(0,t.toDisplayString)(e.name),1),(0,t.createElementVNode)(`span`,Cd,(0,t.toDisplayString)(e.number),1)])]),_:2},1032,[`value`,`onSelect`]))),128))]),_:1})]),_:1})])):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`searchTerm`]),o.value?.keypadValue?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`absolute right-2 top-1/2 -translate-y-1/2 z-10 cursor-pointer p-1 hover:bg-accent rounded-full`,onClick:i[2]||=(0,t.withModifiers)((...e)=>(0,t.unref)(r).backspaceKeypad&&(0,t.unref)(r).backspaceKeypad(...e),[`stop`])},[(0,t.createVNode)((0,t.unref)(Eu),{class:`w-4 h-4 text-neutral-400 hover:text-status-disconnected dark:text-neutral-500 dark:hover:text-status-disconnected transition-colors`})])):(0,t.createCommentVNode)(``,!0)],512),(0,t.createVNode)((0,t.unref)(Q),{onClick:(0,t.unref)(r).toggleKeypad,variant:`ghost`,size:`icon`,class:(0,t.normalizeClass)((0,t.unref)(Z)(`rounded-full`,c.value)),title:`Toggle Keypad`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Ou),{class:`w-5 h-5`})]),_:1},8,[`onClick`,`class`])])):(o.value?.status||`idle`)===`connected`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,wd,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([s.value,`flex items-center gap-2 text-3xl font-light`])},[(0,t.createVNode)((0,t.unref)(Du),{class:`w-6 h-6 animate-spin`,style:{"animation-duration":`3s`}}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(_.value),1)],2),(0,t.createElementVNode)(`div`,Td,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([s.value,`text-xs`])},` En llamada con `+(0,t.toDisplayString)(o.value?.remoteNumber||o.value?.keypadValue),3),e.isWebCall?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Q),{key:0,onClick:(0,t.unref)(r).toggleKeypad,variant:`ghost`,size:`icon`,class:(0,t.normalizeClass)((0,t.unref)(Z)(`h-6 w-6 rounded-full`,c.value)),title:`Toggle Keypad`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Ou),{class:`w-4 h-4`})]),_:1},8,[`onClick`,`class`]))])])):(o.value?.status||`idle`)===`idle`?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ed,[(0,t.createElementVNode)(`div`,Dd,(0,t.toDisplayString)(o.value?.remoteNumber||o.value?.keypadValue),1),(0,t.createVNode)((0,t.unref)(Q),{onClick:(0,t.unref)(r).toggleKeypad,variant:`ghost`,size:`icon`,class:(0,t.normalizeClass)((0,t.unref)(Z)(`rounded-full`,c.value)),title:`Toggle Keypad`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Ou),{class:`w-5 h-5`})]),_:1},8,[`onClick`,`class`])]))]))}}),kd=(0,t.defineComponent)({__name:`Select`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},defaultValue:{},modelValue:{},by:{type:[String,Function]},dir:{},multiple:{type:Boolean},autocomplete:{},disabled:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:open`],setup(e,{emit:n}){let r=En(e,n);return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Rs),(0,t.mergeProps)({"data-slot":`select`},(0,t.unref)(r)),{default:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`default`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)))]),_:3},16))}}),Ad=(0,t.defineComponent)({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean},position:{default:`popper`},bodyLock:{type:Boolean},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:r}){let i=e,a=r,o=En((0,n.reactiveOmit)(i,`class`),a);return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(oc),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Xs),(0,t.mergeProps)({"data-slot":`select-content`},{...n.$attrs,...(0,t.unref)(o)},{class:(0,t.unref)(Z)(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--reka-select-content-available-height) min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border shadow-md`,e.position===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,i.class)}),{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Fd)),(0,t.createVNode)((0,t.unref)(fc),{class:(0,t.normalizeClass)((0,t.unref)(Z)(`p-1`,e.position===`popper`&&`h-[var(--reka-select-trigger-height)] w-full min-w-[var(--reka-select-trigger-width)] scroll-my-1`))},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`)]),_:3},8,[`class`]),(0,t.createVNode)((0,t.unref)(Pd))]),_:3},16,[`class`])]),_:3}))}}),jd=(0,t.defineComponent)({__name:`SelectGroup`,props:{asChild:{type:Boolean},as:{}},setup(e){let n=e;return(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)($s),(0,t.mergeProps)({"data-slot":`select-group`},n),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),Md={class:`absolute right-2 flex size-3.5 items-center justify-center`},Nd=(0,t.defineComponent)({__name:`SelectItem`,props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let r=e,i=Tn((0,n.reactiveOmit)(r,`class`));return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(rc),(0,t.mergeProps)({"data-slot":`select-item`},(0,t.unref)(i),{class:(0,t.unref)(Z)(`focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,r.class)}),{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Md,[(0,t.createVNode)((0,t.unref)(ic),null,{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`indicator-icon`,{},()=>[(0,t.createVNode)((0,t.unref)(xu),{class:`size-4`})])]),_:3})]),(0,t.createVNode)((0,t.unref)(ac),null,{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3})]),_:3},16,[`class`]))}}),Pd=(0,t.defineComponent)({__name:`SelectScrollDownButton`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let r=e,i=Tn((0,n.reactiveOmit)(r,`class`));return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(cc),(0,t.mergeProps)({"data-slot":`select-scroll-down-button`},(0,t.unref)(i),{class:(0,t.unref)(Z)(`flex cursor-default items-center justify-center py-1`,r.class)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`,{},()=>[(0,t.createVNode)((0,t.unref)(Su),{class:`size-4`})])]),_:3},16,[`class`]))}}),Fd=(0,t.defineComponent)({__name:`SelectScrollUpButton`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let r=e,i=Tn((0,n.reactiveOmit)(r,`class`));return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(lc),(0,t.mergeProps)({"data-slot":`select-scroll-up-button`},(0,t.unref)(i),{class:(0,t.unref)(Z)(`flex cursor-default items-center justify-center py-1`,r.class)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`,{},()=>[(0,t.createVNode)((0,t.unref)(Cu),{class:`size-4`})])]),_:3},16,[`class`]))}}),Id=(0,t.defineComponent)({__name:`SelectTrigger`,props:{disabled:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{},size:{default:`default`}},setup(e){let r=e,i=Tn((0,n.reactiveOmit)(r,`class`,`size`));return(n,a)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(uc),(0,t.mergeProps)({"data-slot":`select-trigger`,"data-size":e.size},(0,t.unref)(i),{class:(0,t.unref)(Z)(`border-input data-placeholder:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:truncate *:data-[slot=select-value]:overflow-hidden *:data-[slot=select-value]:text-ellipsis *:data-[slot=select-value]:max-w-70 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,r.class)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`),(0,t.createVNode)((0,t.unref)(ec),{"as-child":``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Su),{class:`size-4 opacity-50`})]),_:1})]),_:3},16,[`data-size`,`class`]))}}),Ld=(0,t.defineComponent)({__name:`SelectValue`,props:{placeholder:{},asChild:{type:Boolean},as:{}},setup(e){let n=e;return(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(dc),(0,t.mergeProps)({"data-slot":`select-value`},n),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),Rd=(0,t.defineComponent)({__name:`Slider`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},orientation:{},dir:{},inverted:{type:Boolean},min:{},max:{},step:{},minStepsBetweenThumbs:{},thumbAlignment:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{}},emits:[`update:modelValue`,`valueCommit`],setup(e,{emit:r}){let i=e,a=r,o=En((0,n.reactiveOmit)(i,`class`),a);return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Mc),(0,t.mergeProps)({"data-slot":`slider`,class:(0,t.unref)(Z)(`relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col`,i.class)},(0,t.unref)(o)),{default:(0,t.withCtx)(({modelValue:e})=>[(0,t.createVNode)((0,t.unref)(Lc),{"data-slot":`slider-track`,class:`bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Pc),{"data-slot":`slider-range`,class:`bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full`})]),_:1}),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Ic),{key:n,"data-slot":`slider-thumb`,class:`bg-white border-primary ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50`}))),128))]),_:1},16,[`class`]))}}),zd=(0,t.defineComponent)({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let r=e,i=(0,n.reactiveOmit)(r,`class`);return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ns),(0,t.mergeProps)({"data-slot":`label`},(0,t.unref)(i),{class:(0,t.unref)(Z)(`flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,r.class)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`class`]))}}),Bd={class:`flex flex-col gap-6 py-4`},Vd={class:`flex flex-col gap-2`},Hd={class:`flex flex-col gap-2`},Ud={class:`flex flex-col gap-4`},Wd={class:`flex justify-between`},Gd={class:`text-sm text-muted-foreground`},Kd={class:`flex flex-col gap-4`},qd={class:`flex justify-between`},Jd={class:`text-sm text-muted-foreground`},Yd=(0,t.defineComponent)({__name:`AudioSettingsDialog`,props:{visible:{type:Boolean}},emits:[`update:visible`],setup(e,{emit:r}){let i=r,{setVolume:a,setOutputDevice:o,setInputDevice:s,setNotificationVolume:c}=(0,t.inject)(`sip`),l=(0,t.ref)([]),u=(0,t.ref)([]),d=(0,n.useStorage)(`webphone-input-device`,``),f=(0,n.useStorage)(`webphone-output-device`,``),p=(0,n.useStorage)(`webphone-volume`,100),m=(0,n.useStorage)(`webphone-notification-volume`,100),h=async()=>{try{await navigator.mediaDevices.getUserMedia({audio:!0});let e=await navigator.mediaDevices.enumerateDevices();l.value=e.filter(e=>e.kind===`audioinput`).map((e,t)=>({deviceId:e.deviceId,label:e.label||`Microphone ${t+1}`})),u.value=e.filter(e=>e.kind===`audiooutput`).map((e,t)=>({deviceId:e.deviceId,label:e.label||`Speaker ${t+1}`}));let t=l.value.some(e=>e.deviceId===d.value);(!d.value||!t)&&l.value.length>0&&(d.value=l.value[0]?.deviceId??``);let n=u.value.some(e=>e.deviceId===f.value);(!f.value||!n)&&u.value.length>0&&(f.value=u.value[0]?.deviceId??``),d.value&&s(d.value),f.value&&o(f.value)}catch(e){console.error(`Error loading devices`,e)}},g=e=>{let t=String(e);d.value=t,s(t)},_=e=>{let t=String(e);f.value=t,o(t)},v=(0,t.computed)({get:()=>[p.value],set:e=>{p.value=e[0],a(p.value)}}),y=(0,t.computed)({get:()=>[m.value],set:e=>{m.value=e[0],c(m.value)}});return(0,t.onMounted)(()=>{h(),a(p.value),c(m.value)}),(n,r)=>e.visible?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)($u),{key:0,open:e.visible,"onUpdate:open":r[5]||=e=>i(`update:visible`,e)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(td),{class:`sm:max-w-sm`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(rd),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(id),null,{default:(0,t.withCtx)(()=>[...r[6]||=[(0,t.createTextVNode)(`Audio Settings`,-1)]]),_:1})]),_:1}),(0,t.createElementVNode)(`div`,Bd,[(0,t.createElementVNode)(`div`,Vd,[(0,t.createVNode)((0,t.unref)(zd),null,{default:(0,t.withCtx)(()=>[...r[7]||=[(0,t.createTextVNode)(`Microphone`,-1)]]),_:1}),(0,t.createVNode)((0,t.unref)(kd),{modelValue:(0,t.unref)(d),"onUpdate:modelValue":[r[0]||=e=>(0,t.isRef)(d)?d.value=e:null,g]},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Id),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Ld),{placeholder:`Select Microphone`})]),_:1}),(0,t.createVNode)((0,t.unref)(Ad),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(jd),null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(l.value,e=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Nd),{key:e.deviceId,value:e.deviceId},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),(0,t.createElementVNode)(`div`,Hd,[(0,t.createVNode)((0,t.unref)(zd),null,{default:(0,t.withCtx)(()=>[...r[8]||=[(0,t.createTextVNode)(`Speaker`,-1)]]),_:1}),(0,t.createVNode)((0,t.unref)(kd),{modelValue:(0,t.unref)(f),"onUpdate:modelValue":[r[1]||=e=>(0,t.isRef)(f)?f.value=e:null,_]},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Id),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Ld),{placeholder:`Select Speaker`})]),_:1}),(0,t.createVNode)((0,t.unref)(Ad),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(jd),null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(u.value,e=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Nd),{key:e.deviceId,value:e.deviceId},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),(0,t.createElementVNode)(`div`,Ud,[(0,t.createElementVNode)(`div`,Wd,[(0,t.createVNode)((0,t.unref)(zd),null,{default:(0,t.withCtx)(()=>[...r[9]||=[(0,t.createTextVNode)(`Media Volume`,-1)]]),_:1}),(0,t.createElementVNode)(`span`,Gd,(0,t.toDisplayString)((0,t.unref)(p))+`%`,1)]),(0,t.createVNode)((0,t.unref)(Rd),{modelValue:v.value,"onUpdate:modelValue":r[2]||=e=>v.value=e,max:100,step:1},null,8,[`modelValue`])]),(0,t.createElementVNode)(`div`,Kd,[(0,t.createElementVNode)(`div`,qd,[(0,t.createVNode)((0,t.unref)(zd),null,{default:(0,t.withCtx)(()=>[...r[10]||=[(0,t.createTextVNode)(`Notification Volume`,-1)]]),_:1}),(0,t.createElementVNode)(`span`,Jd,(0,t.toDisplayString)((0,t.unref)(m))+`%`,1)]),(0,t.createVNode)((0,t.unref)(Rd),{modelValue:y.value,"onUpdate:modelValue":r[3]||=e=>y.value=e,max:100,step:1},null,8,[`modelValue`])])]),(0,t.createVNode)((0,t.unref)(nd),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Q),{variant:`secondary`,onClick:r[4]||=e=>i(`update:visible`,!1)},{default:(0,t.withCtx)(()=>[...r[11]||=[(0,t.createTextVNode)(`Close`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])):(0,t.createCommentVNode)(``,!0)}}),Xd=(0,t.defineComponent)({__name:`ScrollBar`,props:{orientation:{default:`vertical`},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let r=e,i=(0,n.reactiveOmit)(r,`class`);return(n,a)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Cs),(0,t.mergeProps)({"data-slot":`scroll-area-scrollbar`},(0,t.unref)(i),{class:(0,t.unref)(Z)(`flex touch-none p-px transition-colors select-none`,e.orientation===`vertical`&&`h-full w-2.5 border-l border-l-transparent`,e.orientation===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent`,r.class)}),{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Os),{"data-slot":`scroll-area-thumb`,class:`bg-border relative flex-1 rounded-full`})]),_:1},16,[`class`]))}}),Zd=(0,t.defineComponent)({__name:`ScrollArea`,props:{type:{},dir:{},scrollHideDelay:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let r=e,i=(0,n.reactiveOmit)(r,`class`);return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(as),(0,t.mergeProps)({"data-slot":`scroll-area`},(0,t.unref)(i),{class:(0,t.unref)(Z)(`relative`,r.class)}),{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(ks),{"data-slot":`scroll-area-viewport`,class:`focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1`},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3}),(0,t.createVNode)(Xd),(0,t.createVNode)((0,t.unref)(ss))]),_:3},16,[`class`]))}}),Qd=(0,t.defineComponent)({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{}},emits:[`update:modelValue`],setup(e,{emit:r}){let i=e,a=(0,n.useVModel)(i,`modelValue`,r,{passive:!0,defaultValue:i.defaultValue});return(e,n)=>(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{"onUpdate:modelValue":n[0]||=e=>(0,t.isRef)(a)?a.value=e:null,"data-slot":`input`,class:(0,t.normalizeClass)((0,t.unref)(Z)(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,i.class))},null,2)),[[t.vModelText,(0,t.unref)(a)]])}}),$d={class:`relative my-2`},ef={class:`flex flex-col gap-2`},tf=[`onClick`],nf={class:`flex items-center gap-3`},rf={class:`flex flex-col`},af={class:`text-sm font-medium`},of={class:`text-[10px] text-muted-foreground`},sf={class:`flex flex-col items-end`},cf={key:0,class:`text-xs font-mono text-muted-foreground`},lf={class:`text-[10px] text-muted-foreground capitalize`},uf={key:0,class:`text-center text-muted-foreground py-8`},df={key:1,class:`text-center text-muted-foreground py-8`},ff=(0,t.defineComponent)({__name:`CallHistoryDialog`,props:{visible:{type:Boolean},contacts:{}},emits:[`update:visible`,`call`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.inject)(`webphone`),o=(0,t.ref)(``),s=e=>{if(!r.contacts)return e;let t=r.contacts.find(t=>t.number===e);return t?t.name:e},c=(0,t.computed)(()=>{if(!o.value)return a.callHistory;let e=o.value.toLowerCase();return a.callHistory.filter(t=>{let n=s(t.number).toLowerCase(),r=t.number.toLowerCase();return n.includes(e)||r.includes(e)})}),l=e=>e===0?``:`${Math.floor(e/60)}:${(e%60).toString().padStart(2,`0`)}`,u=e=>e.direction===`incoming`?e.status===`missed`?Fu:Pu:Lu,d=e=>e.status===`missed`?`text-red-500`:e.direction===`incoming`?`text-green-500`:`text-blue-500`,f=e=>{i(`update:visible`,!1),i(`call`,e)};return(n,r)=>e.visible?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)($u),{key:0,open:e.visible,"onUpdate:open":r[1]||=e=>i(`update:visible`,e)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(td),{class:`sm:max-w-sm`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(rd),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(id),null,{default:(0,t.withCtx)(()=>[...r[2]||=[(0,t.createTextVNode)(`Call History`,-1)]]),_:1})]),_:1}),(0,t.createElementVNode)(`div`,$d,[(0,t.createVNode)((0,t.unref)(Vu),{class:`absolute left-2 top-2.5 h-4 w-4 text-muted-foreground`}),(0,t.createVNode)((0,t.unref)(Qd),{modelValue:o.value,"onUpdate:modelValue":r[0]||=e=>o.value=e,placeholder:`Search history...`,class:`pl-8`},null,8,[`modelValue`])]),(0,t.createVNode)((0,t.unref)(Zd),{class:`h-[60vh] pr-4`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,ef,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(c.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:`flex items-center justify-between p-2 rounded-lg hover:bg-accent cursor-pointer transition-colors`,onClick:t=>f(e.number)},[(0,t.createElementVNode)(`div`,nf,[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(u(e)),{class:(0,t.normalizeClass)([d(e),`w-4 h-4`])},null,8,[`class`])),(0,t.createElementVNode)(`div`,rf,[(0,t.createElementVNode)(`span`,af,(0,t.toDisplayString)(s(e.number)),1),(0,t.createElementVNode)(`span`,of,(0,t.toDisplayString)(new Date(e.startTime).toLocaleString()),1)])]),(0,t.createElementVNode)(`div`,sf,[e.duration>0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,cf,(0,t.toDisplayString)(l(e.duration)),1)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,lf,(0,t.toDisplayString)(e.status),1)])],8,tf))),128)),(0,t.unref)(a).callHistory.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,uf,` No call history `)):c.value.length===0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,df,` No results found `)):(0,t.createCommentVNode)(``,!0)])]),_:1})]),_:1})]),_:1},8,[`open`])):(0,t.createCommentVNode)(``,!0)}}),pf=(0,t.defineComponent)({__name:`Popover`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:n}){let r=En(e,n);return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Yo),(0,t.mergeProps)({"data-slot":`popover`},(0,t.unref)(r)),{default:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`default`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)))]),_:3},16))}}),mf=(0,t.defineComponent)({inheritAttrs:!1,__name:`PopoverContent`,props:{forceMount:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{default:`center`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:r}){let i=e,a=r,o=En((0,n.reactiveOmit)(i,`class`),a);return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(es),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)($o),(0,t.mergeProps)({"data-slot":`popover-content`},{...e.$attrs,...(0,t.unref)(o)},{class:(0,t.unref)(Z)(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md origin-(--reka-popover-content-transform-origin) outline-hidden`,i.class)}),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),hf=(0,t.defineComponent)({__name:`PopoverTrigger`,props:{asChild:{type:Boolean},as:{}},setup(e){let n=e;return(e,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ts),(0,t.mergeProps)({"data-slot":`popover-trigger`},n),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16))}}),gf={class:`grid gap-4 py-4`},_f={class:`grid gap-2`},vf={key:1},yf={class:`flex flex-col text-left w-full`},bf={class:`font-medium text-sm`},xf={class:`text-xs text-muted-foreground`},Sf=(0,t.defineComponent)({__name:`TransferDialog`,props:{visible:{type:Boolean},contacts:{default:()=>[]}},emits:[`update:visible`,`transfer`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1),o=(0,t.ref)(``),s=(0,t.ref)(``),c=(0,t.computed)(()=>{if(!s.value)return r.contacts;let e=s.value.toLowerCase();return r.contacts.filter(t=>t.name.toLowerCase().includes(e)||t.number.includes(e))}),l=(0,t.computed)(()=>{let e=r.contacts.find(e=>e.number===o.value);return e?e.name:o.value}),u=e=>{o.value=e.number,a.value=!1},d=()=>{o.value=s.value,a.value=!1},f=()=>{o.value&&(i(`transfer`,o.value),i(`update:visible`,!1),o.value=``,s.value=``)};return(n,r)=>e.visible?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)($u),{key:0,open:e.visible,"onUpdate:open":r[3]||=e=>i(`update:visible`,e)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(td),{class:`sm:max-w-sm`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(rd),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(id),null,{default:(0,t.withCtx)(()=>[...r[4]||=[(0,t.createTextVNode)(`Transfer Call`,-1)]]),_:1})]),_:1}),(0,t.createElementVNode)(`div`,gf,[(0,t.createElementVNode)(`div`,_f,[(0,t.createVNode)((0,t.unref)(zd),null,{default:(0,t.withCtx)(()=>[...r[5]||=[(0,t.createTextVNode)(`Destination`,-1)]]),_:1}),(0,t.createVNode)((0,t.unref)(pf),{open:a.value,"onUpdate:open":r[1]||=e=>a.value=e},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(hf),{"as-child":``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Q),{variant:`outline`,role:`combobox`,"aria-expanded":a.value,class:`w-full justify-between`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(l.value||`Enter number or name...`)+` `,1),(0,t.createVNode)((0,t.unref)(wu),{class:`ml-2 h-4 w-4 shrink-0 opacity-50`})]),_:1},8,[`aria-expanded`])]),_:1}),(0,t.createVNode)((0,t.unref)(mf),{class:`w-[300px] p-0`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Qu),{searchTerm:s.value,"onUpdate:searchTerm":r[0]||=e=>s.value=e},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(cd),{placeholder:`Search contact or enter number...`}),(0,t.createVNode)((0,t.unref)(ad),null,{default:(0,t.withCtx)(()=>[s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`p-2 text-sm cursor-pointer hover:bg-accent hover:text-accent-foreground rounded-sm`,onClick:d},` Use "`+(0,t.toDisplayString)(s.value)+`" `,1)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,vf,`No contact found.`))]),_:1}),(0,t.createVNode)((0,t.unref)(dd),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(od),null,{default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(c.value,e=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ld),{key:e.number,value:e.name,onSelect:t=>u(e)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(xu),{class:(0,t.normalizeClass)((0,t.unref)(Z)(`mr-2 h-4 w-4`,o.value===e.number?`opacity-100`:`opacity-0`))},null,8,[`class`]),e.type?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)((0,t.unref)(Z)(`flex items-center justify-center w-8 h-8 rounded-full mr-2 shrink-0`,e.type===`extension`?`bg-blue-100 text-blue-600 dark:bg-blue-900/30 dark:text-blue-400`:e.type===`contact`?`bg-emerald-100 text-emerald-600 dark:bg-emerald-900/30 dark:text-emerald-400`:e.type===`voicemail`?`bg-purple-100 text-purple-600 dark:bg-purple-900/30 dark:text-purple-400`:`bg-amber-100 text-amber-600 dark:bg-amber-900/30 dark:text-amber-400`))},[e.type===`extension`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(bu),{key:0,class:`w-4 h-4`})):e.type===`contact`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Tu),{key:1,class:`w-4 h-4`})):e.type===`voicemail`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Gu),{key:2,class:`w-4 h-4`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Ju),{key:3,class:`w-4 h-4`}))],2)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,yf,[(0,t.createElementVNode)(`span`,bf,(0,t.toDisplayString)(e.name),1),(0,t.createElementVNode)(`span`,xf,(0,t.toDisplayString)(e.number),1)])]),_:2},1032,[`value`,`onSelect`]))),128))]),_:1})]),_:1})]),_:1},8,[`searchTerm`])]),_:1})]),_:1},8,[`open`])])]),(0,t.createVNode)((0,t.unref)(nd),null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Q),{variant:`secondary`,onClick:r[2]||=e=>i(`update:visible`,!1)},{default:(0,t.withCtx)(()=>[...r[6]||=[(0,t.createTextVNode)(`Cancel`,-1)]]),_:1}),(0,t.createVNode)((0,t.unref)(Q),{onClick:f,disabled:!o.value},{default:(0,t.withCtx)(()=>[...r[7]||=[(0,t.createTextVNode)(`Transfer`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])):(0,t.createCommentVNode)(``,!0)}}),Cf=(0,t.defineComponent)({__name:`DocumentPip`,props:{remoteStream:{},localStream:{},hasVideo:{type:Boolean},remoteNumber:{},isConnected:{type:Boolean},callStatus:{},isMuted:{type:Boolean},isHeld:{type:Boolean},destination:{},isVideo:{type:Boolean},active:{type:Boolean},autoOpenOnBlur:{type:Boolean}},emits:[`transfer`,`update:active`,`hangup`,`answer`,`toggleMute`,`toggleHold`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(!1),s=(0,t.ref)(!1),c=(0,t.ref)(null),l=(0,t.ref)(0),u=(0,t.ref)(null),d=null;(0,t.onMounted)(()=>{o.value=`documentPictureInPicture`in window,document.addEventListener(`visibilitychange`,f)}),(0,t.onUnmounted)(()=>{document.removeEventListener(`visibilitychange`,f),m(),O()});let f=()=>{i.callStatus===`idle`||!o.value||document.hidden&&!s.value&&i.autoOpenOnBlur!==!1&&setTimeout(()=>{document.hidden&&!s.value&&D()},100)},p=()=>{u.value||=(l.value=0,setInterval(()=>{l.value++},1e3))},m=()=>{u.value&&=(clearInterval(u.value),null)},h=e=>{let t=Math.floor(e/60),n=e%60;return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}`};(0,t.watch)(()=>i.callStatus,(e,t)=>{e===`connected`&&t!==`connected`?p():e===`idle`&&t!==`idle`&&(m(),s.value&&O())},{immediate:!0}),(0,t.watch)(()=>i.isConnected,e=>{!e&&s.value&&(m(),O())}),(0,t.watch)(()=>[i.callStatus,i.isMuted,i.isHeld],()=>{c.value&&(C(c.value.document),x(c.value.document))});let g=(0,t.computed)(()=>o.value&&i.isConnected),_={phone:`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/></svg>`,phoneOff:`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z" transform="rotate(135 12 12)"/><line x1="1" y1="1" x2="23" y2="23"/></svg>`,mic:`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" x2="12" y1="19" y2="22"/></svg>`,micOff:`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="2" x2="22" y1="2" y2="22"/><path d="M18.89 13.23A7.12 7.12 0 0 0 19 12v-2"/><path d="M5 10v2a7 7 0 0 0 12 5"/><path d="M15 9.34V5a3 3 0 0 0-5.68-1.33"/><path d="M9 9v3a3 3 0 0 0 5.12 2.12"/><line x1="12" x2="12" y1="19" y2="22"/></svg>`,pause:`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="14" y="4" width="4" height="16" rx="1"/><rect x="6" y="4" width="4" height="16" rx="1"/></svg>`,play:`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="6 3 20 12 6 21 6 3"/></svg>`,transfer:`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m16 3 4 4-4 4"/><path d="M20 7H4"/><path d="m8 21-4-4 4-4"/><path d="M4 17h16"/></svg>`,video:`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5"/><rect x="2" y="6" width="14" height="12" rx="2"/></svg>`,user:`<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>`},v=e=>{let t=e.createElement(`style`);t.textContent=`
|
|
65
|
+
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
66
|
+
|
|
67
|
+
body {
|
|
68
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
69
|
+
background: #fff;
|
|
70
|
+
color: #171717;
|
|
71
|
+
overflow: hidden;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
:root {
|
|
75
|
+
--status-available: 142 76% 36%;
|
|
76
|
+
--status-disconnected: 0 84% 60%;
|
|
77
|
+
--status-hold: 45 93% 47%;
|
|
78
|
+
--status-incall: 217 91% 60%;
|
|
79
|
+
--status-incoming: 280 67% 60%;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.pip-wrapper {
|
|
83
|
+
display: flex;
|
|
84
|
+
flex-direction: column;
|
|
85
|
+
height: 100vh;
|
|
86
|
+
width: 100%;
|
|
87
|
+
background: #fff;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* Video Area */
|
|
91
|
+
.pip-video-area {
|
|
92
|
+
position: relative;
|
|
93
|
+
flex: 1;
|
|
94
|
+
background: #000;
|
|
95
|
+
overflow: hidden;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
#pip-remote-video {
|
|
99
|
+
width: 100%;
|
|
100
|
+
height: 100%;
|
|
101
|
+
object-fit: cover;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.pip-local-container {
|
|
105
|
+
position: absolute;
|
|
106
|
+
bottom: 8px;
|
|
107
|
+
right: 8px;
|
|
108
|
+
width: 72px;
|
|
109
|
+
aspect-ratio: 4/3;
|
|
110
|
+
border-radius: 8px;
|
|
111
|
+
overflow: hidden;
|
|
112
|
+
border: 2px solid rgba(255,255,255,0.2);
|
|
113
|
+
background: #27272a;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
#pip-local-video {
|
|
117
|
+
width: 100%;
|
|
118
|
+
height: 100%;
|
|
119
|
+
object-fit: cover;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.pip-overlay {
|
|
123
|
+
position: absolute;
|
|
124
|
+
top: 0;
|
|
125
|
+
left: 0;
|
|
126
|
+
right: 0;
|
|
127
|
+
padding: 8px 12px;
|
|
128
|
+
background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
|
|
129
|
+
display: flex;
|
|
130
|
+
justify-content: space-between;
|
|
131
|
+
align-items: center;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.pip-name {
|
|
135
|
+
font-size: 13px;
|
|
136
|
+
font-weight: 500;
|
|
137
|
+
color: #fff;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.pip-timer {
|
|
141
|
+
font-size: 12px;
|
|
142
|
+
color: #fff;
|
|
143
|
+
background: rgba(0,0,0,0.4);
|
|
144
|
+
padding: 2px 8px;
|
|
145
|
+
border-radius: 10px;
|
|
146
|
+
font-variant-numeric: tabular-nums;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* Audio Area - Like CallDisplay */
|
|
150
|
+
.pip-audio-area {
|
|
151
|
+
flex: 1;
|
|
152
|
+
display: flex;
|
|
153
|
+
flex-direction: column;
|
|
154
|
+
align-items: center;
|
|
155
|
+
justify-content: center;
|
|
156
|
+
gap: 4px;
|
|
157
|
+
padding: 16px;
|
|
158
|
+
background: #fff;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.pip-caller-name {
|
|
162
|
+
font-size: 18px;
|
|
163
|
+
font-weight: 600;
|
|
164
|
+
color: #171717;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.pip-status-text {
|
|
168
|
+
font-size: 12px;
|
|
169
|
+
font-weight: 500;
|
|
170
|
+
letter-spacing: 0.05em;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.pip-status-connected {
|
|
174
|
+
color: hsl(var(--status-incall));
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.pip-status-calling {
|
|
178
|
+
color: hsl(var(--status-incall));
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.pip-status-incoming {
|
|
182
|
+
color: hsl(var(--status-incoming));
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.pip-status-held {
|
|
186
|
+
color: hsl(var(--status-hold));
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.pip-duration {
|
|
190
|
+
font-size: 11px;
|
|
191
|
+
color: #737373;
|
|
192
|
+
font-variant-numeric: tabular-nums;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/* Actions - Same as CallActions */
|
|
196
|
+
.pip-actions {
|
|
197
|
+
display: flex;
|
|
198
|
+
justify-content: center;
|
|
199
|
+
align-items: center;
|
|
200
|
+
gap: 24px;
|
|
201
|
+
padding: 8px 16px 16px;
|
|
202
|
+
background: #fff;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.pip-btn {
|
|
206
|
+
width: 48px;
|
|
207
|
+
height: 48px;
|
|
208
|
+
border-radius: 50%;
|
|
209
|
+
border: none;
|
|
210
|
+
cursor: pointer;
|
|
211
|
+
display: flex;
|
|
212
|
+
align-items: center;
|
|
213
|
+
justify-content: center;
|
|
214
|
+
transition: all 0.15s ease;
|
|
215
|
+
color: #fff;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.pip-btn:hover {
|
|
219
|
+
opacity: 0.9;
|
|
220
|
+
transform: scale(1.02);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.pip-btn:active {
|
|
224
|
+
transform: scale(0.98);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.pip-btn-hangup {
|
|
228
|
+
background: hsl(var(--status-disconnected));
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.pip-btn-mute {
|
|
232
|
+
background: #f4f4f5;
|
|
233
|
+
color: #171717;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.pip-btn-mute.active {
|
|
237
|
+
background: hsl(var(--status-disconnected));
|
|
238
|
+
color: #fff;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.pip-btn-hold {
|
|
242
|
+
background: #f4f4f5;
|
|
243
|
+
color: #171717;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.pip-btn-hold.active {
|
|
247
|
+
background: hsl(var(--status-hold));
|
|
248
|
+
color: #fff;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
.pip-btn-transfer {
|
|
252
|
+
background: #f4f4f5;
|
|
253
|
+
color: #171717;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.pip-btn-answer {
|
|
257
|
+
background: hsl(var(--status-available));
|
|
258
|
+
animation: pulse 2s infinite;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.pip-btn-video {
|
|
262
|
+
background: hsl(var(--status-incall));
|
|
263
|
+
animation: pulse 2s infinite;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
@keyframes pulse {
|
|
267
|
+
0%, 100% { opacity: 1; }
|
|
268
|
+
50% { opacity: 0.7; }
|
|
269
|
+
}
|
|
270
|
+
`,e.head.appendChild(t)},y=()=>{switch(i.callStatus){case`calling`:return`Llamando...`;case`incoming`:return`Entrante`;case`connected`:return i.isHeld?`En espera`:`En llamada`;case`held`:return`En espera`;default:return``}},b=()=>{switch(i.callStatus){case`calling`:return`pip-status-calling`;case`incoming`:return`pip-status-incoming`;case`connected`:return i.isHeld?`pip-status-held`:`pip-status-connected`;case`held`:return`pip-status-held`;default:return``}},x=e=>{let t=e.querySelector(`.pip-status-text`);t&&(t.textContent=y(),t.className=`pip-status-text ${b()}`)},S=e=>{let t=e.createElement(`div`);return t.className=`pip-wrapper`,i.hasVideo?t.innerHTML=`
|
|
271
|
+
<div class="pip-video-area">
|
|
272
|
+
<video id="pip-remote-video" autoplay playsinline></video>
|
|
273
|
+
<div class="pip-local-container">
|
|
274
|
+
<video id="pip-local-video" autoplay playsinline muted></video>
|
|
275
|
+
</div>
|
|
276
|
+
<div class="pip-overlay">
|
|
277
|
+
<span class="pip-name">${i.remoteNumber||`Llamada`}</span>
|
|
278
|
+
<span id="pip-timer" class="pip-timer">${h(l.value)}</span>
|
|
279
|
+
</div>
|
|
280
|
+
</div>
|
|
281
|
+
<div class="pip-actions" id="pip-actions"></div>
|
|
282
|
+
`:t.innerHTML=`
|
|
283
|
+
<div class="pip-audio-area">
|
|
284
|
+
<div class="pip-caller-name">${i.remoteNumber||`Llamada`}</div>
|
|
285
|
+
<div class="pip-status-text ${b()}">${y()}</div>
|
|
286
|
+
<div class="pip-duration" id="pip-timer">${h(l.value)}</div>
|
|
287
|
+
</div>
|
|
288
|
+
<div class="pip-actions" id="pip-actions"></div>
|
|
289
|
+
`,t},C=e=>{let t=e.getElementById(`pip-actions`);if(t){if(t.innerHTML=``,i.callStatus===`incoming`){if(i.hasVideo){let n=e.createElement(`button`);n.className=`pip-btn pip-btn-video`,n.title=`Contestar con Video`,n.innerHTML=_.video,n.onclick=()=>a(`answer`,!0),t.appendChild(n)}let n=e.createElement(`button`);n.className=`pip-btn pip-btn-answer`,n.title=`Contestar`,n.innerHTML=_.phone,n.onclick=()=>a(`answer`,!1),t.appendChild(n);let r=e.createElement(`button`);r.className=`pip-btn pip-btn-hangup`,r.title=`Rechazar`,r.innerHTML=_.phoneOff,r.onclick=()=>{a(`hangup`),O()},t.appendChild(r)}else if(i.callStatus===`connected`){let n=e.createElement(`button`);n.className=`pip-btn pip-btn-mute ${i.isMuted?`active`:``}`,n.title=i.isMuted?`Activar micrófono`:`Silenciar`,n.innerHTML=i.isMuted?_.micOff:_.mic,n.onclick=()=>a(`toggleMute`),t.appendChild(n);let r=e.createElement(`button`);r.className=`pip-btn pip-btn-hold ${i.isHeld?`active`:``}`,r.title=i.isHeld?`Reanudar`:`Pausar`,r.innerHTML=i.isHeld?_.play:_.pause,r.onclick=()=>a(`toggleHold`),t.appendChild(r);let o=e.createElement(`button`);o.className=`pip-btn pip-btn-transfer`,o.title=`Transferir`,o.innerHTML=_.transfer,o.onclick=()=>a(`transfer`),t.appendChild(o);let s=e.createElement(`button`);s.className=`pip-btn pip-btn-hangup`,s.title=`Colgar`,s.innerHTML=_.phoneOff,s.onclick=()=>{a(`hangup`),O()},t.appendChild(s)}else if(i.callStatus===`calling`){let n=e.createElement(`button`);n.className=`pip-btn pip-btn-hangup`,n.title=`Cancelar`,n.innerHTML=_.phoneOff,n.onclick=()=>{a(`hangup`),O()},t.appendChild(n)}}},w=e=>{setTimeout(()=>{let t=e.getElementById(`pip-remote-video`),n=e.getElementById(`pip-local-video`);t&&i.remoteStream&&(t.srcObject=i.remoteStream,t.play().catch(()=>{})),n&&i.localStream&&(n.srcObject=i.localStream,n.play().catch(()=>{}))},50)},T=e=>{let t=e.getElementById(`pip-timer`);t&&(d=setInterval(()=>{t.textContent=h(l.value)},1e3))},E=()=>{d&&=(clearInterval(d),null)},D=async()=>{if(!(!o.value||s.value))try{let e=i.hasVideo?340:280,t=i.hasVideo?280:200,n=await window.documentPictureInPicture.requestWindow({width:e,height:t,preferInitialWindowPlacement:!0});c.value=n,s.value=!0,a(`update:active`,!0),v(n.document);let r=S(n.document);n.document.body.appendChild(r),i.hasVideo&&w(n.document),C(n.document),T(n.document),n.addEventListener(`pagehide`,()=>{E(),s.value=!1,c.value=null,a(`update:active`,!1)})}catch(e){console.error(`[DocumentPip] Error:`,e)}},O=()=>{E(),c.value&&(c.value.close(),c.value=null,s.value=!1,a(`update:active`,!1))};return n({open:D,close:O,toggle:()=>{s.value?O():D()},isActive:s,isSupported:o,canUsePip:g}),(e,n)=>(0,t.renderSlot)(e.$slots,`default`)}});let wf=()=>{let e=(0,n.useDark)({selector:`html`,attribute:`class`,valueDark:`dark`,valueLight:``});return{isDark:e,toggleDark:(0,n.useToggle)(e)}};var Tf=(0,t.defineComponent)({__name:`ToggleGroup`,props:{rovingFocus:{type:Boolean},disabled:{type:Boolean},orientation:{},dir:{},loop:{type:Boolean},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},type:{},modelValue:{},defaultValue:{},class:{},variant:{},size:{},spacing:{default:0}},emits:[`update:modelValue`],setup(e,{emit:r}){let i=e,a=r;(0,t.provide)(`toggleGroup`,{variant:i.variant,size:i.size,spacing:i.spacing});let o=En((0,n.reactiveOmit)(i,`class`,`size`,`variant`),a);return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Bc),(0,t.mergeProps)({"data-slot":`toggle-group`,"data-size":e.size,"data-variant":e.variant,"data-spacing":e.spacing,style:{"--gap":e.spacing}},(0,t.unref)(o),{class:(0,t.unref)(Z)(`group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs`,i.class)}),{default:(0,t.withCtx)(e=>[(0,t.renderSlot)(n.$slots,`default`,(0,t.normalizeProps)((0,t.guardReactiveProps)(e)))]),_:3},16,[`data-size`,`data-variant`,`data-spacing`,`style`,`class`]))}});let Ef=Bt(`inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground`},size:{default:`h-9 px-2 min-w-9`,sm:`h-8 px-1.5 min-w-8`,lg:`h-10 px-2.5 min-w-10`}},defaultVariants:{variant:`default`,size:`default`}});var Df=(0,t.defineComponent)({__name:`ToggleGroupItem`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{},variant:{},size:{}},setup(e){let r=e,i=(0,t.inject)(`toggleGroup`),a=Tn((0,n.reactiveOmit)(r,`class`,`size`,`variant`));return(n,o)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Hc),(0,t.mergeProps)({"data-slot":`toggle-group-item`,"data-variant":(0,t.unref)(i)?.variant||e.variant,"data-size":(0,t.unref)(i)?.size||e.size,"data-spacing":(0,t.unref)(i)?.spacing},(0,t.unref)(a),{class:(0,t.unref)(Z)((0,t.unref)(Ef)({variant:(0,t.unref)(i)?.variant||e.variant,size:(0,t.unref)(i)?.size||e.size}),`w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10`,`data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l`,r.class)}),{default:(0,t.withCtx)(e=>[(0,t.renderSlot)(n.$slots,`default`,(0,t.normalizeProps)((0,t.guardReactiveProps)(e)))]),_:3},16,[`data-variant`,`data-size`,`data-spacing`,`class`]))}}),Of={key:0,class:`flex flex-col items-center p-2 gap-2 text-neutral-900 dark:text-white`},kf={class:`flex items-center gap-1`},Af=[`title`],jf={class:`flex items-center gap-1`},Mf={key:1,class:`flex flex-col items-center p-2 gap-2 text-neutral-900 dark:text-white`},Nf={class:`flex items-center gap-1`},Pf=[`title`],Ff={class:`flex items-center gap-1`},If=[`src`],Lf={key:2,class:`relative w-full aspect-video bg-black`},Rf={class:`absolute bottom-2 right-2 w-24 aspect-video bg-neutral-800 rounded overflow-hidden border border-white/20 shadow-lg`},zf={class:`flex flex-col gap-1`},Bf={key:0,class:`flex flex-col items-center justify-center p-2 gap-2`},Vf={class:`flex items-center gap-2`},Hf={class:`py-1`},Uf={key:3,class:`flex flex-col items-center p-2 gap-0`};e.WebPhone=(0,t.defineComponent)({__name:`WebPhone`,props:{host:{},extension:{},password:{},to:{},mode:{default:`call`},logo:{},contacts:{default:()=>[]}},emits:[`back`],setup(e,{emit:r}){let i=e,a=r,o=(0,t.computed)(()=>{if(i.host)return`wss://${i.host}:8089/asterisk/ws`}),s=h({server:o.value,extension:i.extension}),c=(0,t.reactive)(s),l=Ft(s),{initUserAgent:u,switchChannel:d,remoteStream:f,localStream:p}=l;(0,t.provide)(`webphone`,c),(0,t.provide)(`sip`,l),(0,t.watchEffect)(()=>{i.mode===`webcall`&&(i.to||console.error(`WebPhone: "to" prop is required when mode is "webcall"`),i.logo||console.error(`WebPhone: "logo" prop is required when mode is "webcall"`))});let{isDark:m,toggleDark:g}=wf(),_=(0,t.ref)(!1),v=(0,t.ref)(!1),y=(0,t.ref)(!1),b=(0,t.ref)(null),x=(0,t.ref)(null),S=(0,t.ref)(null),C=(0,t.ref)(null),w=(0,t.ref)(null),T=(0,t.computed)(()=>i.mode===`webcall`),E=(0,t.computed)(()=>f.value&&f.value.getVideoTracks().length>0),{isOnline:D}=(0,n.useNetwork)(),O=(0,t.computed)(()=>D.value?c.isConnected?`connected`:`disconnected`:`offline`),ee=(0,t.ref)(null),k=(0,t.ref)(!1),te=(0,t.computed)(()=>{let e=c.callStatus!==`idle`;return(ee.value?.canUsePip??!1)&&e}),A=()=>{ee.value?.toggle()};(0,t.watchEffect)(()=>{C.value&&f.value&&(k.value?C.value.srcObject=null:C.value.srcObject=f.value),w.value&&p.value&&(k.value?w.value.srcObject=null:w.value.srcObject=p.value)});let j=(0,t.computed)(()=>T.value?S.value:x.value),{style:M}=(0,n.useDraggable)(b,{initialValue:{x:window.innerWidth/2-160,y:100},handle:j,preventDefault:!0}),N=[{label:`Line 1`,value:0},{label:`Line 2`,value:1},{label:`Line 3`,value:2}],ne=(0,t.ref)(!1),re=(0,t.computed)({get:()=>c.activeChannelId.toString(),set:async e=>{if(e&&!ne.value){ne.value=!0;try{await d(parseInt(e))}finally{ne.value=!1}}}}),ie=(0,t.computed)(()=>{let e={};return c.channels.forEach(t=>{t.status===`incoming`?e[t.id]=`bg-status-incoming animate-pulse`:t.isHeld||t.status===`held`?e[t.id]=`bg-status-hold`:t.status===`connected`?e[t.id]=`bg-status-incall`:t.status===`calling`?e[t.id]=`bg-status-incall animate-pulse`:e[t.id]=`bg-transparent`}),e});return(0,t.onMounted)(async()=>{i.mode===`webcall`&&(!i.to||!i.logo)||!i.host||!i.extension||!i.password||(await u({uri:`sip:${i.extension}@${i.host}`,transportOptions:{server:o.value},authorizationUsername:i.extension,authorizationPassword:i.password}),i.mode===`webcall`&&i.to&&l.makeCall(i.to))}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`div`,{ref_key:`phoneRef`,ref:b,style:(0,t.normalizeStyle)((0,t.unref)(M)),class:`bg-white dark:bg-neutral-900 rounded-2xl shadow-xl w-full max-w-75 border border-neutral-200 dark:border-neutral-800 fixed z-50`},[T.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Mf,[(0,t.createElementVNode)(`div`,Nf,[(0,t.createVNode)((0,t.unref)(Q),{variant:`ghost`,size:`icon`,class:`h-7 w-7 rounded-full`,onClick:r[3]||=e=>a(`back`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(vu),{class:`w-3.5 h-3.5`})]),_:1}),(0,t.createElementVNode)(`div`,{ref_key:`webcallHandleRef`,ref:S,class:(0,t.normalizeClass)((0,t.unref)(Z)((0,t.unref)(cu)({variant:`outline`,size:`sm`}),`cursor-move gap-2 h-7 px-2 text-xs`))},[(0,t.createVNode)((0,t.unref)(Ou),{class:`w-3.5 h-3.5 text-muted-foreground`}),r[21]||=(0,t.createElementVNode)(`span`,{class:`font-medium`},` WebCall`,-1),(0,t.createElementVNode)(`div`,{class:`relative flex items-center`,title:O.value===`connected`?`Conectado`:O.value===`disconnected`?`Desconectado del servidor`:`Sin conexión a Internet`},[O.value===`offline`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Ku),{key:0,class:`w-3 h-3 text-red-500`})):O.value===`disconnected`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(qu),{key:1,class:`w-3 h-3 text-amber-500 animate-pulse`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(qu),{key:2,class:`w-3 h-3 text-green-500`}))],8,Pf)],2),(0,t.createElementVNode)(`div`,Ff,[te.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Q),{key:0,variant:`ghost`,size:`icon`,class:(0,t.normalizeClass)([`h-7 w-7 rounded-full`,k.value?`text-primary`:``]),title:`Picture-in-Picture`,onClick:A},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(zu),{class:`w-3.5 h-3.5`})]),_:1},8,[`class`])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)((0,t.unref)(Q),{variant:`ghost`,size:`icon`,class:`h-7 w-7 rounded-full`,onClick:r[4]||=e=>(0,t.unref)(g)()},{default:(0,t.withCtx)(()=>[(0,t.unref)(m)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Uu),{key:0,class:`w-3.5 h-3.5`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Mu),{key:1,class:`w-3.5 h-3.5`}))]),_:1}),(0,t.createVNode)((0,t.unref)(Q),{variant:`ghost`,size:`icon`,class:`h-7 w-7 rounded-full`,onClick:r[5]||=e=>v.value=!0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(ku),{class:`w-3.5 h-3.5`})]),_:1}),(0,t.createVNode)((0,t.unref)(Q),{variant:`ghost`,size:`icon`,class:`h-7 w-7 rounded-full`,onClick:r[6]||=e=>_.value=!0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Hu),{class:`w-3.5 h-3.5`})]),_:1})])]),e.logo?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,src:e.logo,class:`w-16 h-16 object-contain mt-1 rounded-2xl`},null,8,If)):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Of,[(0,t.createElementVNode)(`div`,kf,[(0,t.createElementVNode)(`div`,{ref_key:`standardHandleRef`,ref:x,class:(0,t.normalizeClass)((0,t.unref)(Z)((0,t.unref)(cu)({variant:`outline`,size:`sm`}),`cursor-move gap-2 h-7 px-2 text-xs`))},[(0,t.createVNode)((0,t.unref)(Ou),{class:`w-3.5 h-3.5 text-muted-foreground`}),r[20]||=(0,t.createElementVNode)(`span`,{class:`font-medium`},`WebPhone`,-1),(0,t.createElementVNode)(`div`,{class:`relative flex items-center`,title:O.value===`connected`?`Conectado`:O.value===`disconnected`?`Desconectado del servidor`:`Sin conexión a Internet`},[O.value===`offline`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Ku),{key:0,class:`w-3 h-3 text-red-500`})):O.value===`disconnected`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(qu),{key:1,class:`w-3 h-3 text-amber-500 animate-pulse`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(qu),{key:2,class:`w-3 h-3 text-green-500`}))],8,Af)],2),(0,t.createElementVNode)(`div`,jf,[te.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Q),{key:0,variant:`ghost`,size:`icon`,class:(0,t.normalizeClass)([`h-7 w-7 rounded-full`,k.value?`text-primary`:``]),title:`Picture-in-Picture`,onClick:A},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(zu),{class:`w-3.5 h-3.5`})]),_:1},8,[`class`])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)((0,t.unref)(Q),{variant:`ghost`,size:`icon`,class:`h-7 w-7 rounded-full`,onClick:r[0]||=e=>(0,t.unref)(g)()},{default:(0,t.withCtx)(()=>[(0,t.unref)(m)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Uu),{key:0,class:`w-3.5 h-3.5`})):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Mu),{key:1,class:`w-3.5 h-3.5`}))]),_:1}),(0,t.createVNode)((0,t.unref)(Q),{variant:`ghost`,size:`icon`,class:`h-7 w-7 rounded-full`,onClick:r[1]||=e=>v.value=!0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(ku),{class:`w-3.5 h-3.5`})]),_:1}),(0,t.createVNode)((0,t.unref)(Q),{variant:`ghost`,size:`icon`,class:`h-7 w-7 rounded-full`,onClick:r[2]||=e=>_.value=!0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Hu),{class:`w-3.5 h-3.5`})]),_:1})])])])),E.value&&!k.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Lf,[(0,t.createElementVNode)(`video`,{ref_key:`remoteVideoRef`,ref:C,autoplay:``,playsinline:``,class:`w-full h-full object-cover`},null,512),(0,t.createElementVNode)(`div`,Rf,[(0,t.createElementVNode)(`video`,{ref_key:`localVideoRef`,ref:w,autoplay:``,playsinline:``,muted:``,class:`w-full h-full object-cover`},null,512)])])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,zf,[T.value?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Bf,[(0,t.createVNode)((0,t.unref)(Tf),{modelValue:re.value,"onUpdate:modelValue":r[7]||=e=>re.value=e,type:`single`,variant:`outline`,size:`sm`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(N,e=>(0,t.createVNode)((0,t.unref)(Df),{key:e.value,value:e.value.toString(),class:`h-8 px-3 text-xs`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Vf,[(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.label),1),ie.value[e.value]===`bg-transparent`?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([ie.value[e.value],`w-1.5 h-1.5 rounded-full`])},null,2))])]),_:2},1032,[`value`])),64))]),_:1},8,[`modelValue`])])),(0,t.createElementVNode)(`div`,Hf,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(c.channels,n=>(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)(Od,{key:n.id,"channel-id":n.id,"allow-input":!T.value,"is-web-call":T.value,contacts:e.contacts,user:i.extension},null,8,[`channel-id`,`allow-input`,`is-web-call`,`contacts`,`user`])),[[t.vShow,n.id===c.activeChannelId]])),128))]),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`transition-all duration-300 ease-in-out overflow-hidden`,c.isKeypadVisible?`max-h-[300px] opacity-100`:`max-h-0 opacity-0`])},[(0,t.createVNode)(uu)],2),(0,t.createVNode)(Zu,{destination:T.value?i.to:void 0,"is-video":i.mode===`video`,onTransfer:r[8]||=e=>y.value=!0},null,8,[`destination`,`is-video`])]),T.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Uf,[...r[22]||=[(0,t.createElementVNode)(`div`,{class:`text-[10px] text-primary`},`Powered By`,-1),(0,t.createElementVNode)(`div`,{class:`flex items-center gap-2`},[(0,t.createElementVNode)(`a`,{href:`https://www.nebula123.com`,target:`_blank`,class:`text-[10px] text-primary hover:underline`},` www.nebula123.com `)],-1)]])):(0,t.createCommentVNode)(``,!0)],4),(0,t.createVNode)(Yd,{visible:_.value,"onUpdate:visible":r[9]||=e=>_.value=e},null,8,[`visible`]),(0,t.createVNode)(ff,{visible:v.value,"onUpdate:visible":r[10]||=e=>v.value=e,contacts:e.contacts,onCall:r[11]||=e=>{c.keypadValue=e,(0,t.unref)(l).makeCall(e)}},null,8,[`visible`,`contacts`]),(0,t.createVNode)(Sf,{visible:y.value,"onUpdate:visible":r[12]||=e=>y.value=e,contacts:e.contacts,onTransfer:r[13]||=e=>(0,t.unref)(l).transferCall(e)},null,8,[`visible`,`contacts`]),(0,t.createVNode)(Cf,{ref_key:`documentPipRef`,ref:ee,active:k.value,"onUpdate:active":r[14]||=e=>k.value=e,"is-connected":c.isConnected,"remote-number":c.remoteNumber,"has-video":E.value??!1,"remote-stream":(0,t.unref)(f),"local-stream":(0,t.unref)(p),destination:T.value?i.to:void 0,"is-video":i.mode===`video`,"call-status":c.callStatus,"is-muted":c.isMuted,"is-held":c.isHeld,onTransfer:r[15]||=e=>y.value=!0,onHangup:r[16]||=e=>(0,t.unref)(l).hangupCall(),onAnswer:r[17]||=e=>(0,t.unref)(l).answerCall(e),onToggleMute:r[18]||=e=>(0,t.unref)(l).toggleMute(),onToggleHold:r[19]||=e=>(0,t.unref)(l).toggleHold()},null,8,[`active`,`is-connected`,`remote-number`,`has-video`,`remote-stream`,`local-stream`,`destination`,`is-video`,`call-status`,`is-muted`,`is-held`])],64))}})});
|