@mappedin/mappedin-js 6.0.0-alpha.9 → 6.0.1-alpha.10
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 +44 -157
- package/lib/esm/Arrival-7CH7MHGT.js +1 -0
- package/lib/esm/Chalet-HJY2RRWP.js +1 -0
- package/lib/esm/GLTFExporter-557DK237.js +1 -0
- package/lib/esm/HelveticaNeue-KYLSWWLS.js +1 -0
- package/lib/esm/Helvetiker-INS43MZX.js +1 -0
- package/lib/esm/Lato-ULDR5SED.js +1 -0
- package/lib/esm/MyriadPro-ZAEETUH5.js +1 -0
- package/lib/esm/PerformanceController-5OTIOYMZ.js +1 -0
- package/lib/esm/ProximaNova-Q6CVROCO.js +1 -0
- package/lib/esm/SimonCircular-I6ROXOEJ.js +1 -0
- package/lib/esm/browser-BBFNOQJI.js +1 -0
- package/lib/esm/chunk-57EUBQRS.js +1 -0
- package/lib/esm/chunk-J5IUISYU.js +1 -0
- package/lib/esm/chunk-L6WXUWZU.js +1 -0
- package/lib/esm/index.css +1 -0
- package/lib/esm/index.d.ts +14813 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/outdoor-context-BDJWNPA3.js +1 -0
- package/lib/index.css +1 -0
- package/package.json +18 -53
- package/lib/esm/get-venue/index.d.ts +0 -2466
- package/lib/esm/get-venue/index.js +0 -1
- package/lib/esm/navigator/index.d.ts +0 -243
- package/lib/esm/navigator/index.js +0 -1
- package/lib/esm/renderer/Arrival-JVXBAUFE.js +0 -1
- package/lib/esm/renderer/Chalet-7VKCGC5R.js +0 -1
- package/lib/esm/renderer/HelveticaNeue-M6HRIIGZ.js +0 -1
- package/lib/esm/renderer/Helvetiker-K2MS62IA.js +0 -1
- package/lib/esm/renderer/Lato-PKBWMAQE.js +0 -1
- package/lib/esm/renderer/MyriadPro-MKDHQECZ.js +0 -1
- package/lib/esm/renderer/ProximaNova-U6AQPIB5.js +0 -1
- package/lib/esm/renderer/SimonCircular-LDXYDCAN.js +0 -1
- package/lib/esm/renderer/browser-BW4IT6LG.js +0 -1
- package/lib/esm/renderer/chunk-GPLIHQI3.js +0 -1
- package/lib/esm/renderer/chunk-MWXS32IR.js +0 -1
- package/lib/esm/renderer/index.css +0 -1
- package/lib/esm/renderer/index.d.ts +0 -5261
- package/lib/esm/renderer/index.js +0 -1
- package/lib/mappedin.css +0 -1
- package/lib/mappedin.js +0 -1
- package/lib/node/index.js +0 -1
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as ni,Aa as AT,B as An,Ba as jl,C as nd,Ca as $a,D as Bl,Da as PT,E as rt,Ea as ST,F as ym,Fa as c4,G as Fl,Ga as Ar,H as Ul,Ha as IT,I as bm,Ia as Pn,J as xm,Ja as _T,K as Ja,Ka as OT,L as mt,La as DT,M as he,Ma as LT,Na as qT,O as na,P as r4,Pa as xe,Q as st,Qa as Xn,R as rd,Ra as RT,S as z,Sa as NT,T as Ye,Ta as kT,U as gT,Ua as BT,V as tt,W as Tm,X as Zt,Y as Ee,Z as Mm,_ as Oi,a as gm,aa as Cr,b as vm,ba as qe,c as ed,ca as Em,d as td,da as We,e as Yn,ea as vT,f as tn,fa as Vl,g as pT,ga as wm,h as t4,ha as nn,i as fi,ia as yT,ja as zl,ka as bT,l as mi,la as Wn,ma as a4,na as o4,o as ii,oa as fs,pa as xT,qa as s4,r as ki,ra as TT,s as kl,sa as ms,t as fT,ta as MT,u as id,ua as ET,v as i4,w as ps,wa as ad,x as n4,xa as wT,y as mT,ya as l4,za as CT}from"./chunk-L6WXUWZU.js";import{a as y,b as C}from"./chunk-57EUBQRS.js";import{a as l,c as pe,e as et,f as p,g as d,h as w,i as A,j as Z}from"./chunk-J5IUISYU.js";var q4=pe((dd,Dm)=>{y();(function(i,e){"use strict";var t="0.7.31",n="",r="?",a="function",o="undefined",s="object",c="string",u="major",h="model",m="name",f="type",g="vendor",b="version",M="architecture",x="console",T="mobile",E="tablet",S="smarttv",_="wearable",P="embedded",q=275,D="Amazon",U="Apple",R="ASUS",B="BlackBerry",j="Browser",G="Chrome",Q="Edge",X="Firefox",ne="Google",$="Huawei",ue="LG",be="Microsoft",ee="Motorola",ge="Opera",de="Samsung",Ae="Sony",Fe="Xiaomi",Ce="Zebra",He="Facebook",kt=l(function(se,ie){var oe={};for(var le in se)ie[le]&&ie[le].length%2===0?oe[le]=ie[le].concat(se[le]):oe[le]=se[le];return oe},"extend"),$e=l(function(se){for(var ie={},oe=0;oe<se.length;oe++)ie[se[oe].toUpperCase()]=se[oe];return ie},"enumerize"),ae=l(function(se,ie){return typeof se===c?ce(ie).indexOf(ce(se))!==-1:!1},"has"),ce=l(function(se){return se.toLowerCase()},"lowerize"),Le=l(function(se){return typeof se===c?se.replace(/[^\d\.]/g,n).split(".")[0]:e},"majorize"),St=l(function(se,ie){if(typeof se===c)return se=se.replace(/^\s\s*/,n).replace(/\s\s*$/,n),typeof ie===o?se:se.substring(0,q)},"trim"),I=l(function(se,ie){for(var oe=0,le,fe,Pe,Ke,Xe,Bt;oe<ie.length&&!Xe;){var Xt=ie[oe],br=ie[oe+1];for(le=fe=0;le<Xt.length&&!Xe;)if(Xe=Xt[le++].exec(se),Xe)for(Pe=0;Pe<br.length;Pe++)Bt=Xe[++fe],Ke=br[Pe],typeof Ke===s&&Ke.length>0?Ke.length===2?typeof Ke[1]==a?this[Ke[0]]=Ke[1].call(this,Bt):this[Ke[0]]=Ke[1]:Ke.length===3?typeof Ke[1]===a&&!(Ke[1].exec&&Ke[1].test)?this[Ke[0]]=Bt?Ke[1].call(this,Bt,Ke[2]):e:this[Ke[0]]=Bt?Bt.replace(Ke[1],Ke[2]):e:Ke.length===4&&(this[Ke[0]]=Bt?Ke[3].call(this,Bt.replace(Ke[1],Ke[2])):e):this[Ke]=Bt||e;oe+=2}},"rgxMapper"),N=l(function(se,ie){for(var oe in ie)if(typeof ie[oe]===s&&ie[oe].length>0){for(var le=0;le<ie[oe].length;le++)if(ae(ie[oe][le],se))return oe===r?e:oe}else if(ae(ie[oe],se))return oe===r?e:oe;return se},"strMapper"),O={"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},H={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},Y={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[b,[m,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[b,[m,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[m,b],[/opios[\/ ]+([\w\.]+)/i],[b,[m,ge+" Mini"]],[/\bopr\/([\w\.]+)/i],[b,[m,ge]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[m,b],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[b,[m,"UC"+j]],[/\bqbcore\/([\w\.]+)/i],[b,[m,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[b,[m,"WeChat"]],[/konqueror\/([\w\.]+)/i],[b,[m,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[b,[m,"IE"]],[/yabrowser\/([\w\.]+)/i],[b,[m,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[m,/(.+)/,"$1 Secure "+j],b],[/\bfocus\/([\w\.]+)/i],[b,[m,X+" Focus"]],[/\bopt\/([\w\.]+)/i],[b,[m,ge+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[b,[m,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[b,[m,"Dolphin"]],[/coast\/([\w\.]+)/i],[b,[m,ge+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[b,[m,"MIUI "+j]],[/fxios\/([-\w\.]+)/i],[b,[m,X]],[/\bqihu|(qi?ho?o?|360)browser/i],[[m,"360 "+j]],[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],[[m,/(.+)/,"$1 "+j],b],[/(comodo_dragon)\/([\w\.]+)/i],[[m,/_/g," "],b],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[m,b],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i],[m],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[m,He],b],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[m,b],[/\bgsa\/([\w\.]+) .*safari\//i],[b,[m,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[b,[m,G+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[m,G+" WebView"],b],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[b,[m,"Android "+j]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[m,b],[/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],[b,[m,"Mobile Safari"]],[/version\/([\w\.]+) .*(mobile ?safari|safari)/i],[b,m],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[m,[b,N,O]],[/(webkit|khtml)\/([\w\.]+)/i],[m,b],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[m,"Netscape"],b],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[b,[m,X+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[m,b]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[M,"amd64"]],[/(ia32(?=;))/i],[[M,ce]],[/((?:i[346]|x)86)[;\)]/i],[[M,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[M,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[M,"armhf"]],[/windows (ce|mobile); ppc;/i],[[M,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[M,/ower/,n,ce]],[/(sun4\w)[;\)]/i],[[M,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[M,ce]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[h,[g,de],[f,E]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[h,[g,de],[f,T]],[/((ipod|iphone)\d+,\d+)/i],[h,[g,U],[f,T]],[/(ipad\d+,\d+)/i],[h,[g,U],[f,E]],[/\((ip(?:hone|od)[\w ]*);/i],[h,[g,U],[f,T]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[h,[g,U],[f,E]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[h,[g,$],[f,E]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[h,[g,$],[f,T]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[h,/_/g," "],[g,Fe],[f,T]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[h,/_/g," "],[g,Fe],[f,E]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[h,[g,"OPPO"],[f,T]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[h,[g,"Vivo"],[f,T]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[h,[g,"Realme"],[f,T]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[h,[g,ee],[f,T]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[h,[g,ee],[f,E]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[h,[g,ue],[f,E]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[h,[g,ue],[f,T]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[h,[g,"Lenovo"],[f,E]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[h,/_/g," "],[g,"Nokia"],[f,T]],[/(pixel c)\b/i],[h,[g,ne],[f,E]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[h,[g,ne],[f,T]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[h,[g,Ae],[f,T]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[h,"Xperia Tablet"],[g,Ae],[f,E]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[h,[g,"OnePlus"],[f,T]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[h,[g,D],[f,E]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[h,/(.+)/g,"Fire Phone $1"],[g,D],[f,T]],[/(playbook);[-\w\),; ]+(rim)/i],[h,g,[f,E]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[h,[g,B],[f,T]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[h,[g,R],[f,E]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[h,[g,R],[f,T]],[/(nexus 9)/i],[h,[g,"HTC"],[f,E]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\w]*)/i],[g,[h,/_/g," "],[f,T]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[h,[g,"Acer"],[f,E]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[h,[g,"Meizu"],[f,T]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[h,[g,"Sharp"],[f,T]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[g,h,[f,T]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[g,h,[f,E]],[/(surface duo)/i],[h,[g,be],[f,E]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[h,[g,"Fairphone"],[f,T]],[/(u304aa)/i],[h,[g,"AT&T"],[f,T]],[/\bsie-(\w*)/i],[h,[g,"Siemens"],[f,T]],[/\b(rct\w+) b/i],[h,[g,"RCA"],[f,E]],[/\b(venue[\d ]{2,7}) b/i],[h,[g,"Dell"],[f,E]],[/\b(q(?:mv|ta)\w+) b/i],[h,[g,"Verizon"],[f,E]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[h,[g,"Barnes & Noble"],[f,E]],[/\b(tm\d{3}\w+) b/i],[h,[g,"NuVision"],[f,E]],[/\b(k88) b/i],[h,[g,"ZTE"],[f,E]],[/\b(nx\d{3}j) b/i],[h,[g,"ZTE"],[f,T]],[/\b(gen\d{3}) b.+49h/i],[h,[g,"Swiss"],[f,T]],[/\b(zur\d{3}) b/i],[h,[g,"Swiss"],[f,E]],[/\b((zeki)?tb.*\b) b/i],[h,[g,"Zeki"],[f,E]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[g,"Dragon Touch"],h,[f,E]],[/\b(ns-?\w{0,9}) b/i],[h,[g,"Insignia"],[f,E]],[/\b((nxa|next)-?\w{0,9}) b/i],[h,[g,"NextBook"],[f,E]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[g,"Voice"],h,[f,T]],[/\b(lvtel\-)?(v1[12]) b/i],[[g,"LvTel"],h,[f,T]],[/\b(ph-1) /i],[h,[g,"Essential"],[f,T]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[h,[g,"Envizen"],[f,E]],[/\b(trio[-\w\. ]+) b/i],[h,[g,"MachSpeed"],[f,E]],[/\btu_(1491) b/i],[h,[g,"Rotor"],[f,E]],[/(shield[\w ]+) b/i],[h,[g,"Nvidia"],[f,E]],[/(sprint) (\w+)/i],[g,h,[f,T]],[/(kin\.[onetw]{3})/i],[[h,/\./g," "],[g,be],[f,T]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[h,[g,Ce],[f,E]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[h,[g,Ce],[f,T]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[g,h,[f,x]],[/droid.+; (shield) bui/i],[h,[g,"Nvidia"],[f,x]],[/(playstation [345portablevi]+)/i],[h,[g,Ae],[f,x]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[h,[g,be],[f,x]],[/smart-tv.+(samsung)/i],[g,[f,S]],[/hbbtv.+maple;(\d+)/i],[[h,/^/,"SmartTV"],[g,de],[f,S]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[g,ue],[f,S]],[/(apple) ?tv/i],[g,[h,U+" TV"],[f,S]],[/crkey/i],[[h,G+"cast"],[g,ne],[f,S]],[/droid.+aft(\w)( bui|\))/i],[h,[g,D],[f,S]],[/\(dtv[\);].+(aquos)/i],[h,[g,"Sharp"],[f,S]],[/(bravia[\w- ]+) bui/i],[h,[g,Ae],[f,S]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[g,St],[h,St],[f,S]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[f,S]],[/((pebble))app/i],[g,h,[f,_]],[/droid.+; (glass) \d/i],[h,[g,ne],[f,_]],[/droid.+; (wt63?0{2,3})\)/i],[h,[g,Ce],[f,_]],[/(quest( 2)?)/i],[h,[g,He],[f,_]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[g,[f,P]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[h,[f,T]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[h,[f,E]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[f,E]],[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],[[f,T]],[/(android[-\w\. ]{0,9});.+buil/i],[h,[g,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[b,[m,Q+"HTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[b,[m,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[m,b],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[b,m]],os:[[/microsoft (windows) (vista|xp)/i],[m,b],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[m,[b,N,H]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[m,"Windows"],[b,N,H]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[b,/_/g,"."],[m,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[m,"Mac OS"],[b,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[b,m],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[m,b],[/\(bb(10);/i],[b,[m,B]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[b,[m,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[b,[m,X+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[b,[m,"webOS"]],[/crkey\/([\d\.]+)/i],[b,[m,G+"cast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[m,"Chromium OS"],b],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[m,b],[/(sunos) ?([\w\.\d]*)/i],[[m,"Solaris"],b],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[m,b]]},W=l(function(se,ie){if(typeof se===s&&(ie=se,se=e),!(this instanceof W))return new W(se,ie).getResult();var oe=se||(typeof i!==o&&i.navigator&&i.navigator.userAgent?i.navigator.userAgent:n),le=ie?kt(Y,ie):Y;return this.getBrowser=function(){var fe={};return fe[m]=e,fe[b]=e,I.call(fe,oe,le.browser),fe.major=Le(fe.version),fe},this.getCPU=function(){var fe={};return fe[M]=e,I.call(fe,oe,le.cpu),fe},this.getDevice=function(){var fe={};return fe[g]=e,fe[h]=e,fe[f]=e,I.call(fe,oe,le.device),fe},this.getEngine=function(){var fe={};return fe[m]=e,fe[b]=e,I.call(fe,oe,le.engine),fe},this.getOS=function(){var fe={};return fe[m]=e,fe[b]=e,I.call(fe,oe,le.os),fe},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return oe},this.setUA=function(fe){return oe=typeof fe===c&&fe.length>q?St(fe,q):fe,this},this.setUA(oe),this},"UAParser");W.VERSION=t,W.BROWSER=$e([m,b,u]),W.CPU=$e([M]),W.DEVICE=$e([h,g,f,x,T,S,E,_,P]),W.ENGINE=W.OS=$e([m,b]),typeof dd!==o?(typeof Dm!==o&&Dm.exports&&(dd=Dm.exports=W),dd.UAParser=W):typeof define===a&&define.amd?define(function(){return W}):typeof i!==o&&(i.UAParser=W);var J=typeof i!==o&&(i.jQuery||i.Zepto);if(J&&!J.ua){var Te=new W;J.ua=Te.getResult(),J.ua.get=function(){return Te.getUA()},J.ua.set=function(se){Te.setUA(se);var ie=Te.getResult();for(var oe in ie)J.ua[oe]=ie[oe]}}})(typeof window=="object"?window:dd)});var hE=pe((Ad,Xl)=>{y();var IO=200,qy="__lodash_hash_undefined__",J1=1,jM=2,GM=9007199254740991,H1="[object Arguments]",Py="[object Array]",_O="[object AsyncFunction]",HM="[object Boolean]",YM="[object Date]",WM="[object Error]",XM="[object Function]",OO="[object GeneratorFunction]",Y1="[object Map]",ZM="[object Number]",DO="[object Null]",Wl="[object Object]",DM="[object Promise]",LO="[object Proxy]",QM="[object RegExp]",W1="[object Set]",KM="[object String]",qO="[object Symbol]",RO="[object Undefined]",Sy="[object WeakMap]",JM="[object ArrayBuffer]",X1="[object DataView]",NO="[object Float32Array]",kO="[object Float64Array]",BO="[object Int8Array]",FO="[object Int16Array]",UO="[object Int32Array]",VO="[object Uint8Array]",zO="[object Uint8ClampedArray]",jO="[object Uint16Array]",GO="[object Uint32Array]",HO=/[\\^$.*+?()[\]{}|]/g,YO=/^\[object .+?Constructor\]$/,WO=/^(?:0|[1-9]\d*)$/,Et={};Et[NO]=Et[kO]=Et[BO]=Et[FO]=Et[UO]=Et[VO]=Et[zO]=Et[jO]=Et[GO]=!0;Et[H1]=Et[Py]=Et[JM]=Et[HM]=Et[X1]=Et[YM]=Et[WM]=Et[XM]=Et[Y1]=Et[ZM]=Et[Wl]=Et[QM]=Et[W1]=Et[KM]=Et[Sy]=!1;var $M=typeof global=="object"&&global&&global.Object===Object&&global,XO=typeof self=="object"&&self&&self.Object===Object&&self,sa=$M||XO||Function("return this")(),eE=typeof Ad=="object"&&Ad&&!Ad.nodeType&&Ad,LM=eE&&typeof Xl=="object"&&Xl&&!Xl.nodeType&&Xl,tE=LM&&LM.exports===eE,wy=tE&&$M.process,qM=function(){try{return wy&&wy.binding&&wy.binding("util")}catch{}}(),RM=qM&&qM.isTypedArray;function ZO(i,e){for(var t=-1,n=i==null?0:i.length,r=0,a=[];++t<n;){var o=i[t];e(o,t,i)&&(a[r++]=o)}return a}l(ZO,"arrayFilter");function QO(i,e){for(var t=-1,n=e.length,r=i.length;++t<n;)i[r+t]=e[t];return i}l(QO,"arrayPush");function KO(i,e){for(var t=-1,n=i==null?0:i.length;++t<n;)if(e(i[t],t,i))return!0;return!1}l(KO,"arraySome");function JO(i,e){for(var t=-1,n=Array(i);++t<i;)n[t]=e(t);return n}l(JO,"baseTimes");function $O(i){return function(e){return i(e)}}l($O,"baseUnary");function eD(i,e){return i.has(e)}l(eD,"cacheHas");function tD(i,e){return i==null?void 0:i[e]}l(tD,"getValue");function iD(i){var e=-1,t=Array(i.size);return i.forEach(function(n,r){t[++e]=[r,n]}),t}l(iD,"mapToArray");function nD(i,e){return function(t){return i(e(t))}}l(nD,"overArg");function rD(i){var e=-1,t=Array(i.size);return i.forEach(function(n){t[++e]=n}),t}l(rD,"setToArray");var aD=Array.prototype,oD=Function.prototype,$1=Object.prototype,Cy=sa["__core-js_shared__"],iE=oD.toString,Sr=$1.hasOwnProperty,NM=function(){var i=/[^.]+$/.exec(Cy&&Cy.keys&&Cy.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}(),nE=$1.toString,sD=RegExp("^"+iE.call(Sr).replace(HO,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),kM=tE?sa.Buffer:void 0,Z1=sa.Symbol,BM=sa.Uint8Array,rE=$1.propertyIsEnumerable,lD=aD.splice,bs=Z1?Z1.toStringTag:void 0,FM=Object.getOwnPropertySymbols,cD=kM?kM.isBuffer:void 0,uD=nD(Object.keys,Object),Iy=Zl(sa,"DataView"),Pd=Zl(sa,"Map"),_y=Zl(sa,"Promise"),Oy=Zl(sa,"Set"),Dy=Zl(sa,"WeakMap"),Sd=Zl(Object,"create"),dD=Ms(Iy),hD=Ms(Pd),pD=Ms(_y),fD=Ms(Oy),mD=Ms(Dy),UM=Z1?Z1.prototype:void 0,Ay=UM?UM.valueOf:void 0;function xs(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var n=i[e];this.set(n[0],n[1])}}l(xs,"Hash");function gD(){this.__data__=Sd?Sd(null):{},this.size=0}l(gD,"hashClear");function vD(i){var e=this.has(i)&&delete this.__data__[i];return this.size-=e?1:0,e}l(vD,"hashDelete");function yD(i){var e=this.__data__;if(Sd){var t=e[i];return t===qy?void 0:t}return Sr.call(e,i)?e[i]:void 0}l(yD,"hashGet");function bD(i){var e=this.__data__;return Sd?e[i]!==void 0:Sr.call(e,i)}l(bD,"hashHas");function xD(i,e){var t=this.__data__;return this.size+=this.has(i)?0:1,t[i]=Sd&&e===void 0?qy:e,this}l(xD,"hashSet");xs.prototype.clear=gD;xs.prototype.delete=vD;xs.prototype.get=yD;xs.prototype.has=bD;xs.prototype.set=xD;function la(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var n=i[e];this.set(n[0],n[1])}}l(la,"ListCache");function TD(){this.__data__=[],this.size=0}l(TD,"listCacheClear");function MD(i){var e=this.__data__,t=e0(e,i);if(t<0)return!1;var n=e.length-1;return t==n?e.pop():lD.call(e,t,1),--this.size,!0}l(MD,"listCacheDelete");function ED(i){var e=this.__data__,t=e0(e,i);return t<0?void 0:e[t][1]}l(ED,"listCacheGet");function wD(i){return e0(this.__data__,i)>-1}l(wD,"listCacheHas");function CD(i,e){var t=this.__data__,n=e0(t,i);return n<0?(++this.size,t.push([i,e])):t[n][1]=e,this}l(CD,"listCacheSet");la.prototype.clear=TD;la.prototype.delete=MD;la.prototype.get=ED;la.prototype.has=wD;la.prototype.set=CD;function Ts(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var n=i[e];this.set(n[0],n[1])}}l(Ts,"MapCache");function AD(){this.size=0,this.__data__={hash:new xs,map:new(Pd||la),string:new xs}}l(AD,"mapCacheClear");function PD(i){var e=t0(this,i).delete(i);return this.size-=e?1:0,e}l(PD,"mapCacheDelete");function SD(i){return t0(this,i).get(i)}l(SD,"mapCacheGet");function ID(i){return t0(this,i).has(i)}l(ID,"mapCacheHas");function _D(i,e){var t=t0(this,i),n=t.size;return t.set(i,e),this.size+=t.size==n?0:1,this}l(_D,"mapCacheSet");Ts.prototype.clear=AD;Ts.prototype.delete=PD;Ts.prototype.get=SD;Ts.prototype.has=ID;Ts.prototype.set=_D;function Q1(i){var e=-1,t=i==null?0:i.length;for(this.__data__=new Ts;++e<t;)this.add(i[e])}l(Q1,"SetCache");function OD(i){return this.__data__.set(i,qy),this}l(OD,"setCacheAdd");function DD(i){return this.__data__.has(i)}l(DD,"setCacheHas");Q1.prototype.add=Q1.prototype.push=OD;Q1.prototype.has=DD;function so(i){var e=this.__data__=new la(i);this.size=e.size}l(so,"Stack");function LD(){this.__data__=new la,this.size=0}l(LD,"stackClear");function qD(i){var e=this.__data__,t=e.delete(i);return this.size=e.size,t}l(qD,"stackDelete");function RD(i){return this.__data__.get(i)}l(RD,"stackGet");function ND(i){return this.__data__.has(i)}l(ND,"stackHas");function kD(i,e){var t=this.__data__;if(t instanceof la){var n=t.__data__;if(!Pd||n.length<IO-1)return n.push([i,e]),this.size=++t.size,this;t=this.__data__=new Ts(n)}return t.set(i,e),this.size=t.size,this}l(kD,"stackSet");so.prototype.clear=LD;so.prototype.delete=qD;so.prototype.get=RD;so.prototype.has=ND;so.prototype.set=kD;function BD(i,e){var t=K1(i),n=!t&&$D(i),r=!t&&!n&&Ly(i),a=!t&&!n&&!r&&dE(i),o=t||n||r||a,s=o?JO(i.length,String):[],c=s.length;for(var u in i)(e||Sr.call(i,u))&&!(o&&(u=="length"||r&&(u=="offset"||u=="parent")||a&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||XD(u,c)))&&s.push(u);return s}l(BD,"arrayLikeKeys");function e0(i,e){for(var t=i.length;t--;)if(sE(i[t][0],e))return t;return-1}l(e0,"assocIndexOf");function FD(i,e,t){var n=e(i);return K1(i)?n:QO(n,t(i))}l(FD,"baseGetAllKeys");function _d(i){return i==null?i===void 0?RO:DO:bs&&bs in Object(i)?YD(i):JD(i)}l(_d,"baseGetTag");function VM(i){return Id(i)&&_d(i)==H1}l(VM,"baseIsArguments");function aE(i,e,t,n,r){return i===e?!0:i==null||e==null||!Id(i)&&!Id(e)?i!==i&&e!==e:UD(i,e,t,n,aE,r)}l(aE,"baseIsEqual");function UD(i,e,t,n,r,a){var o=K1(i),s=K1(e),c=o?Py:oo(i),u=s?Py:oo(e);c=c==H1?Wl:c,u=u==H1?Wl:u;var h=c==Wl,m=u==Wl,f=c==u;if(f&&Ly(i)){if(!Ly(e))return!1;o=!0,h=!1}if(f&&!h)return a||(a=new so),o||dE(i)?oE(i,e,t,n,r,a):GD(i,e,c,t,n,r,a);if(!(t&J1)){var g=h&&Sr.call(i,"__wrapped__"),b=m&&Sr.call(e,"__wrapped__");if(g||b){var M=g?i.value():i,x=b?e.value():e;return a||(a=new so),r(M,x,t,n,a)}}return f?(a||(a=new so),HD(i,e,t,n,r,a)):!1}l(UD,"baseIsEqualDeep");function VD(i){if(!uE(i)||QD(i))return!1;var e=lE(i)?sD:YO;return e.test(Ms(i))}l(VD,"baseIsNative");function zD(i){return Id(i)&&cE(i.length)&&!!Et[_d(i)]}l(zD,"baseIsTypedArray");function jD(i){if(!KD(i))return uD(i);var e=[];for(var t in Object(i))Sr.call(i,t)&&t!="constructor"&&e.push(t);return e}l(jD,"baseKeys");function oE(i,e,t,n,r,a){var o=t&J1,s=i.length,c=e.length;if(s!=c&&!(o&&c>s))return!1;var u=a.get(i);if(u&&a.get(e))return u==e;var h=-1,m=!0,f=t&jM?new Q1:void 0;for(a.set(i,e),a.set(e,i);++h<s;){var g=i[h],b=e[h];if(n)var M=o?n(b,g,h,e,i,a):n(g,b,h,i,e,a);if(M!==void 0){if(M)continue;m=!1;break}if(f){if(!KO(e,function(x,T){if(!eD(f,T)&&(g===x||r(g,x,t,n,a)))return f.push(T)})){m=!1;break}}else if(!(g===b||r(g,b,t,n,a))){m=!1;break}}return a.delete(i),a.delete(e),m}l(oE,"equalArrays");function GD(i,e,t,n,r,a,o){switch(t){case X1:if(i.byteLength!=e.byteLength||i.byteOffset!=e.byteOffset)return!1;i=i.buffer,e=e.buffer;case JM:return!(i.byteLength!=e.byteLength||!a(new BM(i),new BM(e)));case HM:case YM:case ZM:return sE(+i,+e);case WM:return i.name==e.name&&i.message==e.message;case QM:case KM:return i==e+"";case Y1:var s=iD;case W1:var c=n&J1;if(s||(s=rD),i.size!=e.size&&!c)return!1;var u=o.get(i);if(u)return u==e;n|=jM,o.set(i,e);var h=oE(s(i),s(e),n,r,a,o);return o.delete(i),h;case qO:if(Ay)return Ay.call(i)==Ay.call(e)}return!1}l(GD,"equalByTag");function HD(i,e,t,n,r,a){var o=t&J1,s=zM(i),c=s.length,u=zM(e),h=u.length;if(c!=h&&!o)return!1;for(var m=c;m--;){var f=s[m];if(!(o?f in e:Sr.call(e,f)))return!1}var g=a.get(i);if(g&&a.get(e))return g==e;var b=!0;a.set(i,e),a.set(e,i);for(var M=o;++m<c;){f=s[m];var x=i[f],T=e[f];if(n)var E=o?n(T,x,f,e,i,a):n(x,T,f,i,e,a);if(!(E===void 0?x===T||r(x,T,t,n,a):E)){b=!1;break}M||(M=f=="constructor")}if(b&&!M){var S=i.constructor,_=e.constructor;S!=_&&"constructor"in i&&"constructor"in e&&!(typeof S=="function"&&S instanceof S&&typeof _=="function"&&_ instanceof _)&&(b=!1)}return a.delete(i),a.delete(e),b}l(HD,"equalObjects");function zM(i){return FD(i,iL,WD)}l(zM,"getAllKeys");function t0(i,e){var t=i.__data__;return ZD(e)?t[typeof e=="string"?"string":"hash"]:t.map}l(t0,"getMapData");function Zl(i,e){var t=tD(i,e);return VD(t)?t:void 0}l(Zl,"getNative");function YD(i){var e=Sr.call(i,bs),t=i[bs];try{i[bs]=void 0;var n=!0}catch{}var r=nE.call(i);return n&&(e?i[bs]=t:delete i[bs]),r}l(YD,"getRawTag");var WD=FM?function(i){return i==null?[]:(i=Object(i),ZO(FM(i),function(e){return rE.call(i,e)}))}:nL,oo=_d;(Iy&&oo(new Iy(new ArrayBuffer(1)))!=X1||Pd&&oo(new Pd)!=Y1||_y&&oo(_y.resolve())!=DM||Oy&&oo(new Oy)!=W1||Dy&&oo(new Dy)!=Sy)&&(oo=l(function(i){var e=_d(i),t=e==Wl?i.constructor:void 0,n=t?Ms(t):"";if(n)switch(n){case dD:return X1;case hD:return Y1;case pD:return DM;case fD:return W1;case mD:return Sy}return e},"getTag"));function XD(i,e){return e=e==null?GM:e,!!e&&(typeof i=="number"||WO.test(i))&&i>-1&&i%1==0&&i<e}l(XD,"isIndex");function ZD(i){var e=typeof i;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?i!=="__proto__":i===null}l(ZD,"isKeyable");function QD(i){return!!NM&&NM in i}l(QD,"isMasked");function KD(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||$1;return i===t}l(KD,"isPrototype");function JD(i){return nE.call(i)}l(JD,"objectToString");function Ms(i){if(i!=null){try{return iE.call(i)}catch{}try{return i+""}catch{}}return""}l(Ms,"toSource");function sE(i,e){return i===e||i!==i&&e!==e}l(sE,"eq");var $D=VM(function(){return arguments}())?VM:function(i){return Id(i)&&Sr.call(i,"callee")&&!rE.call(i,"callee")},K1=Array.isArray;function eL(i){return i!=null&&cE(i.length)&&!lE(i)}l(eL,"isArrayLike");var Ly=cD||rL;function tL(i,e){return aE(i,e)}l(tL,"isEqual");function lE(i){if(!uE(i))return!1;var e=_d(i);return e==XM||e==OO||e==_O||e==LO}l(lE,"isFunction");function cE(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=GM}l(cE,"isLength");function uE(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}l(uE,"isObject");function Id(i){return i!=null&&typeof i=="object"}l(Id,"isObjectLike");var dE=RM?$O(RM):zD;function iL(i){return eL(i)?BD(i):jD(i)}l(iL,"keys");function nL(){return[]}l(nL,"stubArray");function rL(){return!1}l(rL,"stubFalse");Xl.exports=tL});var Hy=pe((Od,Ql)=>{y();var aL=200,ME="__lodash_hash_undefined__",oL=800,sL=16,EE=9007199254740991,wE="[object Arguments]",lL="[object Array]",cL="[object AsyncFunction]",uL="[object Boolean]",dL="[object Date]",hL="[object Error]",CE="[object Function]",pL="[object GeneratorFunction]",fL="[object Map]",mL="[object Number]",gL="[object Null]",AE="[object Object]",vL="[object Proxy]",yL="[object RegExp]",bL="[object Set]",xL="[object String]",TL="[object Undefined]",ML="[object WeakMap]",EL="[object ArrayBuffer]",wL="[object DataView]",CL="[object Float32Array]",AL="[object Float64Array]",PL="[object Int8Array]",SL="[object Int16Array]",IL="[object Int32Array]",_L="[object Uint8Array]",OL="[object Uint8ClampedArray]",DL="[object Uint16Array]",LL="[object Uint32Array]",qL=/[\\^$.*+?()[\]{}|]/g,RL=/^\[object .+?Constructor\]$/,NL=/^(?:0|[1-9]\d*)$/,wt={};wt[CL]=wt[AL]=wt[PL]=wt[SL]=wt[IL]=wt[_L]=wt[OL]=wt[DL]=wt[LL]=!0;wt[wE]=wt[lL]=wt[EL]=wt[uL]=wt[wL]=wt[dL]=wt[hL]=wt[CE]=wt[fL]=wt[mL]=wt[AE]=wt[yL]=wt[bL]=wt[xL]=wt[ML]=!1;var PE=typeof global=="object"&&global&&global.Object===Object&&global,kL=typeof self=="object"&&self&&self.Object===Object&&self,qd=PE||kL||Function("return this")(),SE=typeof Od=="object"&&Od&&!Od.nodeType&&Od,Dd=SE&&typeof Ql=="object"&&Ql&&!Ql.nodeType&&Ql,IE=Dd&&Dd.exports===SE,Ry=IE&&PE.process,pE=function(){try{var i=Dd&&Dd.require&&Dd.require("util").types;return i||Ry&&Ry.binding&&Ry.binding("util")}catch{}}(),fE=pE&&pE.isTypedArray;function BL(i,e,t){switch(t.length){case 0:return i.call(e);case 1:return i.call(e,t[0]);case 2:return i.call(e,t[0],t[1]);case 3:return i.call(e,t[0],t[1],t[2])}return i.apply(e,t)}l(BL,"apply");function FL(i,e){for(var t=-1,n=Array(i);++t<i;)n[t]=e(t);return n}l(FL,"baseTimes");function UL(i){return function(e){return i(e)}}l(UL,"baseUnary");function VL(i,e){return i==null?void 0:i[e]}l(VL,"getValue");function zL(i,e){return function(t){return i(e(t))}}l(zL,"overArg");var jL=Array.prototype,GL=Function.prototype,r0=Object.prototype,Ny=qd["__core-js_shared__"],a0=GL.toString,ca=r0.hasOwnProperty,mE=function(){var i=/[^.]+$/.exec(Ny&&Ny.keys&&Ny.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}(),_E=r0.toString,HL=a0.call(Object),YL=RegExp("^"+a0.call(ca).replace(qL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),i0=IE?qd.Buffer:void 0,gE=qd.Symbol,vE=qd.Uint8Array,yE=i0?i0.allocUnsafe:void 0,OE=zL(Object.getPrototypeOf,Object),bE=Object.create,WL=r0.propertyIsEnumerable,XL=jL.splice,Es=gE?gE.toStringTag:void 0,n0=function(){try{var i=zy(Object,"defineProperty");return i({},"",{}),i}catch{}}(),ZL=i0?i0.isBuffer:void 0,xE=Math.max,QL=Date.now,DE=zy(qd,"Map"),Ld=zy(Object,"create"),KL=function(){function i(){}return l(i,"object"),function(e){if(!Cs(e))return{};if(bE)return bE(e);i.prototype=e;var t=new i;return i.prototype=void 0,t}}();function ws(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var n=i[e];this.set(n[0],n[1])}}l(ws,"Hash");function JL(){this.__data__=Ld?Ld(null):{},this.size=0}l(JL,"hashClear");function $L(i){var e=this.has(i)&&delete this.__data__[i];return this.size-=e?1:0,e}l($L,"hashDelete");function eq(i){var e=this.__data__;if(Ld){var t=e[i];return t===ME?void 0:t}return ca.call(e,i)?e[i]:void 0}l(eq,"hashGet");function tq(i){var e=this.__data__;return Ld?e[i]!==void 0:ca.call(e,i)}l(tq,"hashHas");function iq(i,e){var t=this.__data__;return this.size+=this.has(i)?0:1,t[i]=Ld&&e===void 0?ME:e,this}l(iq,"hashSet");ws.prototype.clear=JL;ws.prototype.delete=$L;ws.prototype.get=eq;ws.prototype.has=tq;ws.prototype.set=iq;function ua(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var n=i[e];this.set(n[0],n[1])}}l(ua,"ListCache");function nq(){this.__data__=[],this.size=0}l(nq,"listCacheClear");function rq(i){var e=this.__data__,t=o0(e,i);if(t<0)return!1;var n=e.length-1;return t==n?e.pop():XL.call(e,t,1),--this.size,!0}l(rq,"listCacheDelete");function aq(i){var e=this.__data__,t=o0(e,i);return t<0?void 0:e[t][1]}l(aq,"listCacheGet");function oq(i){return o0(this.__data__,i)>-1}l(oq,"listCacheHas");function sq(i,e){var t=this.__data__,n=o0(t,i);return n<0?(++this.size,t.push([i,e])):t[n][1]=e,this}l(sq,"listCacheSet");ua.prototype.clear=nq;ua.prototype.delete=rq;ua.prototype.get=aq;ua.prototype.has=oq;ua.prototype.set=sq;function Kl(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var n=i[e];this.set(n[0],n[1])}}l(Kl,"MapCache");function lq(){this.size=0,this.__data__={hash:new ws,map:new(DE||ua),string:new ws}}l(lq,"mapCacheClear");function cq(i){var e=l0(this,i).delete(i);return this.size-=e?1:0,e}l(cq,"mapCacheDelete");function uq(i){return l0(this,i).get(i)}l(uq,"mapCacheGet");function dq(i){return l0(this,i).has(i)}l(dq,"mapCacheHas");function hq(i,e){var t=l0(this,i),n=t.size;return t.set(i,e),this.size+=t.size==n?0:1,this}l(hq,"mapCacheSet");Kl.prototype.clear=lq;Kl.prototype.delete=cq;Kl.prototype.get=uq;Kl.prototype.has=dq;Kl.prototype.set=hq;function Jl(i){var e=this.__data__=new ua(i);this.size=e.size}l(Jl,"Stack");function pq(){this.__data__=new ua,this.size=0}l(pq,"stackClear");function fq(i){var e=this.__data__,t=e.delete(i);return this.size=e.size,t}l(fq,"stackDelete");function mq(i){return this.__data__.get(i)}l(mq,"stackGet");function gq(i){return this.__data__.has(i)}l(gq,"stackHas");function vq(i,e){var t=this.__data__;if(t instanceof ua){var n=t.__data__;if(!DE||n.length<aL-1)return n.push([i,e]),this.size=++t.size,this;t=this.__data__=new Kl(n)}return t.set(i,e),this.size=t.size,this}l(vq,"stackSet");Jl.prototype.clear=pq;Jl.prototype.delete=fq;Jl.prototype.get=mq;Jl.prototype.has=gq;Jl.prototype.set=vq;function yq(i,e){var t=Uy(i),n=!t&&Fy(i),r=!t&&!n&&NE(i),a=!t&&!n&&!r&&BE(i),o=t||n||r||a,s=o?FL(i.length,String):[],c=s.length;for(var u in i)(e||ca.call(i,u))&&!(o&&(u=="length"||r&&(u=="offset"||u=="parent")||a&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||qE(u,c)))&&s.push(u);return s}l(yq,"arrayLikeKeys");function ky(i,e,t){(t!==void 0&&!c0(i[e],t)||t===void 0&&!(e in i))&&Vy(i,e,t)}l(ky,"assignMergeValue");function bq(i,e,t){var n=i[e];(!(ca.call(i,e)&&c0(n,t))||t===void 0&&!(e in i))&&Vy(i,e,t)}l(bq,"assignValue");function o0(i,e){for(var t=i.length;t--;)if(c0(i[t][0],e))return t;return-1}l(o0,"assocIndexOf");function Vy(i,e,t){e=="__proto__"&&n0?n0(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):i[e]=t}l(Vy,"baseAssignValue");var xq=Lq();function s0(i){return i==null?i===void 0?TL:gL:Es&&Es in Object(i)?qq(i):Uq(i)}l(s0,"baseGetTag");function TE(i){return Rd(i)&&s0(i)==wE}l(TE,"baseIsArguments");function Tq(i){if(!Cs(i)||Bq(i))return!1;var e=Gy(i)?YL:RL;return e.test(Gq(i))}l(Tq,"baseIsNative");function Mq(i){return Rd(i)&&kE(i.length)&&!!wt[s0(i)]}l(Mq,"baseIsTypedArray");function Eq(i){if(!Cs(i))return Fq(i);var e=RE(i),t=[];for(var n in i)n=="constructor"&&(e||!ca.call(i,n))||t.push(n);return t}l(Eq,"baseKeysIn");function LE(i,e,t,n,r){i!==e&&xq(e,function(a,o){if(r||(r=new Jl),Cs(a))wq(i,e,o,t,LE,n,r);else{var s=n?n(By(i,o),a,o+"",i,e,r):void 0;s===void 0&&(s=a),ky(i,o,s)}},FE)}l(LE,"baseMerge");function wq(i,e,t,n,r,a,o){var s=By(i,t),c=By(e,t),u=o.get(c);if(u){ky(i,t,u);return}var h=a?a(s,c,t+"",i,e,o):void 0,m=h===void 0;if(m){var f=Uy(c),g=!f&&NE(c),b=!f&&!g&&BE(c);h=c,f||g||b?Uy(s)?h=s:Hq(s)?h=_q(s):g?(m=!1,h=Pq(c,!0)):b?(m=!1,h=Iq(c,!0)):h=[]:Yq(c)||Fy(c)?(h=s,Fy(s)?h=Wq(s):(!Cs(s)||Gy(s))&&(h=Rq(c))):m=!1}m&&(o.set(c,h),r(h,c,n,a,o),o.delete(c)),ky(i,t,h)}l(wq,"baseMergeDeep");function Cq(i,e){return zq(Vq(i,e,UE),i+"")}l(Cq,"baseRest");var Aq=n0?function(i,e){return n0(i,"toString",{configurable:!0,enumerable:!1,value:Zq(e),writable:!0})}:UE;function Pq(i,e){if(e)return i.slice();var t=i.length,n=yE?yE(t):new i.constructor(t);return i.copy(n),n}l(Pq,"cloneBuffer");function Sq(i){var e=new i.constructor(i.byteLength);return new vE(e).set(new vE(i)),e}l(Sq,"cloneArrayBuffer");function Iq(i,e){var t=e?Sq(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.length)}l(Iq,"cloneTypedArray");function _q(i,e){var t=-1,n=i.length;for(e||(e=Array(n));++t<n;)e[t]=i[t];return e}l(_q,"copyArray");function Oq(i,e,t,n){var r=!t;t||(t={});for(var a=-1,o=e.length;++a<o;){var s=e[a],c=n?n(t[s],i[s],s,t,i):void 0;c===void 0&&(c=i[s]),r?Vy(t,s,c):bq(t,s,c)}return t}l(Oq,"copyObject");function Dq(i){return Cq(function(e,t){var n=-1,r=t.length,a=r>1?t[r-1]:void 0,o=r>2?t[2]:void 0;for(a=i.length>3&&typeof a=="function"?(r--,a):void 0,o&&Nq(t[0],t[1],o)&&(a=r<3?void 0:a,r=1),e=Object(e);++n<r;){var s=t[n];s&&i(e,s,n,a)}return e})}l(Dq,"createAssigner");function Lq(i){return function(e,t,n){for(var r=-1,a=Object(e),o=n(e),s=o.length;s--;){var c=o[i?s:++r];if(t(a[c],c,a)===!1)break}return e}}l(Lq,"createBaseFor");function l0(i,e){var t=i.__data__;return kq(e)?t[typeof e=="string"?"string":"hash"]:t.map}l(l0,"getMapData");function zy(i,e){var t=VL(i,e);return Tq(t)?t:void 0}l(zy,"getNative");function qq(i){var e=ca.call(i,Es),t=i[Es];try{i[Es]=void 0;var n=!0}catch{}var r=_E.call(i);return n&&(e?i[Es]=t:delete i[Es]),r}l(qq,"getRawTag");function Rq(i){return typeof i.constructor=="function"&&!RE(i)?KL(OE(i)):{}}l(Rq,"initCloneObject");function qE(i,e){var t=typeof i;return e=e==null?EE:e,!!e&&(t=="number"||t!="symbol"&&NL.test(i))&&i>-1&&i%1==0&&i<e}l(qE,"isIndex");function Nq(i,e,t){if(!Cs(t))return!1;var n=typeof e;return(n=="number"?jy(t)&&qE(e,t.length):n=="string"&&e in t)?c0(t[e],i):!1}l(Nq,"isIterateeCall");function kq(i){var e=typeof i;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?i!=="__proto__":i===null}l(kq,"isKeyable");function Bq(i){return!!mE&&mE in i}l(Bq,"isMasked");function RE(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||r0;return i===t}l(RE,"isPrototype");function Fq(i){var e=[];if(i!=null)for(var t in Object(i))e.push(t);return e}l(Fq,"nativeKeysIn");function Uq(i){return _E.call(i)}l(Uq,"objectToString");function Vq(i,e,t){return e=xE(e===void 0?i.length-1:e,0),function(){for(var n=arguments,r=-1,a=xE(n.length-e,0),o=Array(a);++r<a;)o[r]=n[e+r];r=-1;for(var s=Array(e+1);++r<e;)s[r]=n[r];return s[e]=t(o),BL(i,this,s)}}l(Vq,"overRest");function By(i,e){if(!(e==="constructor"&&typeof i[e]=="function")&&e!="__proto__")return i[e]}l(By,"safeGet");var zq=jq(Aq);function jq(i){var e=0,t=0;return function(){var n=QL(),r=sL-(n-t);if(t=n,r>0){if(++e>=oL)return arguments[0]}else e=0;return i.apply(void 0,arguments)}}l(jq,"shortOut");function Gq(i){if(i!=null){try{return a0.call(i)}catch{}try{return i+""}catch{}}return""}l(Gq,"toSource");function c0(i,e){return i===e||i!==i&&e!==e}l(c0,"eq");var Fy=TE(function(){return arguments}())?TE:function(i){return Rd(i)&&ca.call(i,"callee")&&!WL.call(i,"callee")},Uy=Array.isArray;function jy(i){return i!=null&&kE(i.length)&&!Gy(i)}l(jy,"isArrayLike");function Hq(i){return Rd(i)&&jy(i)}l(Hq,"isArrayLikeObject");var NE=ZL||Qq;function Gy(i){if(!Cs(i))return!1;var e=s0(i);return e==CE||e==pL||e==cL||e==vL}l(Gy,"isFunction");function kE(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=EE}l(kE,"isLength");function Cs(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}l(Cs,"isObject");function Rd(i){return i!=null&&typeof i=="object"}l(Rd,"isObjectLike");function Yq(i){if(!Rd(i)||s0(i)!=AE)return!1;var e=OE(i);if(e===null)return!0;var t=ca.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&a0.call(t)==HL}l(Yq,"isPlainObject");var BE=fE?UL(fE):Mq;function Wq(i){return Oq(i,FE(i))}l(Wq,"toPlainObject");function FE(i){return jy(i)?yq(i,!0):Eq(i)}l(FE,"keysIn");var Xq=Dq(function(i,e,t){LE(i,e,t)});function Zq(i){return function(){return i}}l(Zq,"constant");function UE(i){return i}l(UE,"identity");function Qq(){return!1}l(Qq,"stubFalse");Ql.exports=Xq});var VE=pe((u0,Nd)=>{y();(function(i){var e=typeof u0=="object"&&u0,t=typeof Nd=="object"&&Nd&&Nd.exports==e&&Nd,n=typeof global=="object"&&global;(n.global===n||n.window===n)&&(i=n);var r=l(function(f){this.message=f},"InvalidCharacterError");r.prototype=new Error,r.prototype.name="InvalidCharacterError";var a=l(function(f){throw new r(f)},"error"),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=/[\t\n\f\r ]/g,c=l(function(f){f=String(f).replace(s,"");var g=f.length;g%4==0&&(f=f.replace(/==?$/,""),g=f.length),(g%4==1||/[^+a-zA-Z0-9/]/.test(f))&&a("Invalid character: the string to be decoded is not correctly encoded.");for(var b=0,M,x,T="",E=-1;++E<g;)x=o.indexOf(f.charAt(E)),M=b%4?M*64+x:x,b++%4&&(T+=String.fromCharCode(255&M>>(-2*b&6)));return T},"decode"),u=l(function(f){f=String(f),/[^\0-\xFF]/.test(f)&&a("The string to be encoded contains characters outside of the Latin1 range.");for(var g=f.length%3,b="",M=-1,x,T,E,S,_=f.length-g;++M<_;)x=f.charCodeAt(M)<<16,T=f.charCodeAt(++M)<<8,E=f.charCodeAt(++M),S=x+T+E,b+=o.charAt(S>>18&63)+o.charAt(S>>12&63)+o.charAt(S>>6&63)+o.charAt(S&63);return g==2?(x=f.charCodeAt(M)<<8,T=f.charCodeAt(++M),S=x+T,b+=o.charAt(S>>10)+o.charAt(S>>4&63)+o.charAt(S<<2&63)+"="):g==1&&(S=f.charCodeAt(M),b+=o.charAt(S>>2)+o.charAt(S<<4&63)+"=="),b},"encode"),h={encode:u,decode:c,version:"1.0.0"};if(typeof define=="function"&&typeof define.amd=="object"&&define.amd)define(function(){return h});else if(e&&!e.nodeType)if(t)t.exports=h;else for(var m in h)h.hasOwnProperty(m)&&(e[m]=h[m]);else i.base64=h})(u0)});var Ei=pe(yt=>{"use strict";y();Object.defineProperty(yt,"__esModule",{value:!0});yt.areaConversion=yt.timeConversion=yt.distanceConversion=yt.altitudeKeys=yt.latitudeKeys=yt.longitudeKeys=yt.MAXLON=yt.MINLON=yt.MAXLAT=yt.MINLAT=yt.earthRadius=yt.sexagesimalPattern=void 0;var Kq=/^([0-9]{1,3})°\s*([0-9]{1,3}(?:\.(?:[0-9]{1,}))?)['′]\s*(([0-9]{1,3}(\.([0-9]{1,}))?)["″]\s*)?([NEOSW]?)$/;yt.sexagesimalPattern=Kq;var Jq=6378137;yt.earthRadius=Jq;var $q=-90;yt.MINLAT=$q;var eR=90;yt.MAXLAT=eR;var tR=-180;yt.MINLON=tR;var iR=180;yt.MAXLON=iR;var nR=["lng","lon","longitude",0];yt.longitudeKeys=nR;var rR=["lat","latitude",1];yt.latitudeKeys=rR;var aR=["alt","altitude","elevation","elev",2];yt.altitudeKeys=aR;var oR={m:1,km:.001,cm:100,mm:1e3,mi:1/1609.344,sm:1/1852.216,ft:100/30.48,in:100/2.54,yd:1/.9144};yt.distanceConversion=oR;var sR={m:60,h:3600,d:86400};yt.timeConversion=sR;var Kn={m2:1,km2:1e-6,ha:1e-4,a:.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};yt.areaConversion=Kn;Kn.sqm=Kn.m2;Kn.sqkm=Kn.km2;Kn.sqft=Kn.ft2;Kn.sqyd=Kn.yd2;Kn.sqin=Kn.in2});var kd=pe(d0=>{"use strict";y();Object.defineProperty(d0,"__esModule",{value:!0});d0.default=void 0;var lR=l(function(e,t){return t.reduce(function(n,r){if(typeof e>"u"||e===null)throw new Error("'".concat(e,"' is no valid coordinate."));return Object.prototype.hasOwnProperty.call(e,r)&&typeof r<"u"&&typeof n>"u"?(n=r,r):n},void 0)},"getCoordinateKey"),cR=lR;d0.default=cR});var Bd=pe(h0=>{"use strict";y();Object.defineProperty(h0,"__esModule",{value:!0});h0.default=void 0;var uR=l(function(e){var t=e.toString().trim();return isNaN(parseFloat(t))?!1:parseFloat(t)===Number(t)},"isDecimal"),dR=uR;h0.default=dR});var Fd=pe(p0=>{"use strict";y();Object.defineProperty(p0,"__esModule",{value:!0});p0.default=void 0;var hR=Ei(),pR=l(function(e){return hR.sexagesimalPattern.test(e.toString().trim())},"isSexagesimal"),fR=pR;p0.default=fR});var Ud=pe(f0=>{"use strict";y();Object.defineProperty(f0,"__esModule",{value:!0});f0.default=void 0;var mR=Ei(),gR=l(function(e){var t=new RegExp(mR.sexagesimalPattern).exec(e);if(typeof t>"u"||t===null)throw new Error("Given value is not in sexagesimal format");var n=Number(t[2])/60||0,r=Number(t[4])/3600||0,a=parseFloat(t[1])+n+r;return["S","W"].includes(t[7])?-a:a},"sexagesimalToDecimal"),vR=gR;f0.default=vR});var g0=pe(m0=>{"use strict";y();Object.defineProperty(m0,"__esModule",{value:!0});m0.default=void 0;var Yy=Ei(),Wy=yR(kd());function yR(i){return i&&i.__esModule?i:{default:i}}l(yR,"_interopRequireDefault");function zE(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}l(zE,"ownKeys");function bR(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?zE(Object(t),!0).forEach(function(n){xR(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):zE(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}l(bR,"_objectSpread");function xR(i,e,t){return e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}l(xR,"_defineProperty");var TR=l(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{longitude:Yy.longitudeKeys,latitude:Yy.latitudeKeys,altitude:Yy.altitudeKeys},n=(0,Wy.default)(e,t.longitude),r=(0,Wy.default)(e,t.latitude),a=(0,Wy.default)(e,t.altitude);return bR({latitude:r,longitude:n},a?{altitude:a}:{})},"getCoordinateKeys"),MR=TR;m0.default=MR});var Zy=pe(v0=>{"use strict";y();Object.defineProperty(v0,"__esModule",{value:!0});v0.default=void 0;var ER=Xy(Bd()),wR=Xy(Fd()),CR=Xy(Ud()),jE=Ei();function Xy(i){return i&&i.__esModule?i:{default:i}}l(Xy,"_interopRequireDefault");var AR=l(function i(e){return(0,ER.default)(e)?!(parseFloat(e)>jE.MAXLAT||e<jE.MINLAT):(0,wR.default)(e)?i((0,CR.default)(e)):!1},"isValidLatitude"),PR=AR;v0.default=PR});var Ky=pe(y0=>{"use strict";y();Object.defineProperty(y0,"__esModule",{value:!0});y0.default=void 0;var SR=Qy(Bd()),IR=Qy(Fd()),_R=Qy(Ud()),GE=Ei();function Qy(i){return i&&i.__esModule?i:{default:i}}l(Qy,"_interopRequireDefault");var OR=l(function i(e){return(0,SR.default)(e)?!(parseFloat(e)>GE.MAXLON||e<GE.MINLON):(0,IR.default)(e)?i((0,_R.default)(e)):!1},"isValidLongitude"),DR=OR;y0.default=DR});var $y=pe(b0=>{"use strict";y();Object.defineProperty(b0,"__esModule",{value:!0});b0.default=void 0;var LR=Jy(g0()),HE=Jy(Zy()),YE=Jy(Ky());function Jy(i){return i&&i.__esModule?i:{default:i}}l(Jy,"_interopRequireDefault");var qR=l(function(e){var t=(0,LR.default)(e),n=t.latitude,r=t.longitude;if(Array.isArray(e)&&e.length>=2)return(0,YE.default)(e[0])&&(0,HE.default)(e[1]);if(typeof n>"u"||typeof r>"u")return!1;var a=e[r],o=e[n];return!(typeof o>"u"||typeof a>"u"||(0,HE.default)(o)===!1||(0,YE.default)(a)===!1)},"isValidCoordinate"),RR=qR;b0.default=RR});var T0=pe(x0=>{"use strict";y();Object.defineProperty(x0,"__esModule",{value:!0});x0.default=void 0;var NR=Vd(Bd()),kR=Vd(Fd()),BR=Vd(Ud()),WE=Vd($y()),FR=Vd(g0());function Vd(i){return i&&i.__esModule?i:{default:i}}l(Vd,"_interopRequireDefault");function XE(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}l(XE,"ownKeys");function e5(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?XE(Object(t),!0).forEach(function(n){t5(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):XE(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}l(e5,"_objectSpread");function t5(i,e,t){return e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}l(t5,"_defineProperty");var UR=l(function i(e){if((0,NR.default)(e))return Number(e);if((0,kR.default)(e))return(0,BR.default)(e);if((0,WE.default)(e)){var t=(0,FR.default)(e);return Array.isArray(e)?e.map(function(n,r){return[0,1].includes(r)?i(n):n}):e5(e5(e5({},e),t.latitude&&t5({},t.latitude,i(e[t.latitude]))),t.longitude&&t5({},t.longitude,i(e[t.longitude])))}return Array.isArray(e)?e.map(function(n){return(0,WE.default)(n)?i(n):n}):e},"toDecimal"),VR=UR;x0.default=VR});var _n=pe(M0=>{"use strict";y();Object.defineProperty(M0,"__esModule",{value:!0});M0.default=void 0;var zR=Ei(),jR=ZE(kd()),GR=ZE(T0());function ZE(i){return i&&i.__esModule?i:{default:i}}l(ZE,"_interopRequireDefault");var HR=l(function(e,t){var n=(0,jR.default)(e,zR.latitudeKeys);if(!(typeof n>"u"||n===null)){var r=e[n];return t===!0?r:(0,GR.default)(r)}},"getLatitude"),YR=HR;M0.default=YR});var On=pe(E0=>{"use strict";y();Object.defineProperty(E0,"__esModule",{value:!0});E0.default=void 0;var WR=Ei(),XR=QE(kd()),ZR=QE(T0());function QE(i){return i&&i.__esModule?i:{default:i}}l(QE,"_interopRequireDefault");var QR=l(function(e,t){var n=(0,XR.default)(e,WR.longitudeKeys);if(!(typeof n>"u"||n===null)){var r=e[n];return t===!0?r:(0,ZR.default)(r)}},"getLongitude"),KR=QR;E0.default=KR});var Ir=pe(w0=>{"use strict";y();Object.defineProperty(w0,"__esModule",{value:!0});w0.default=void 0;var JR=l(function(e){return e*Math.PI/180},"toRad"),$R=JR;w0.default=$R});var As=pe(C0=>{"use strict";y();Object.defineProperty(C0,"__esModule",{value:!0});C0.default=void 0;var eN=l(function(e){return e*180/Math.PI},"toDeg"),tN=eN;C0.default=tN});var JE=pe(P0=>{"use strict";y();Object.defineProperty(P0,"__esModule",{value:!0});P0.default=void 0;var iN=A0(_n()),nN=A0(On()),i5=A0(Ir()),n5=A0(As()),KE=Ei();function A0(i){return i&&i.__esModule?i:{default:i}}l(A0,"_interopRequireDefault");var rN=l(function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:6371e3,a=(0,iN.default)(e),o=(0,nN.default)(e),s=t/r,c=(0,i5.default)(n),u=(0,i5.default)(a),h=(0,i5.default)(o),m=Math.asin(Math.sin(u)*Math.cos(s)+Math.cos(u)*Math.sin(s)*Math.cos(c)),f=h+Math.atan2(Math.sin(c)*Math.sin(s)*Math.cos(u),Math.cos(s)-Math.sin(u)*Math.sin(m)),g=(0,n5.default)(f);return(g<KE.MINLON||g>KE.MAXLON)&&(f=(f+3*Math.PI)%(2*Math.PI)-Math.PI,g=(0,n5.default)(f)),{latitude:(0,n5.default)(m),longitude:g}},"computeDestinationPoint"),aN=rN;P0.default=aN});var $E=pe(S0=>{"use strict";y();Object.defineProperty(S0,"__esModule",{value:!0});S0.default=void 0;var oN=Ei(),sN=l(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",n=oN.areaConversion[t];if(n)return e*n;throw new Error("Invalid unit used for area conversion.")},"convertArea"),lN=sN;S0.default=lN});var ew=pe(I0=>{"use strict";y();Object.defineProperty(I0,"__esModule",{value:!0});I0.default=void 0;var cN=Ei(),uN=l(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"m",n=cN.distanceConversion[t];if(n)return e*n;throw new Error("Invalid unit used for distance conversion.")},"convertDistance"),dN=uN;I0.default=dN});var tw=pe(O0=>{"use strict";y();Object.defineProperty(O0,"__esModule",{value:!0});O0.default=void 0;var _0=Ei(),hN=l(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"kmh";switch(t){case"kmh":return e*_0.timeConversion.h*_0.distanceConversion.km;case"mph":return e*_0.timeConversion.h*_0.distanceConversion.mi;default:return e}},"convertSpeed"),pN=hN;O0.default=pN});var rw=pe(D0=>{"use strict";y();Object.defineProperty(D0,"__esModule",{value:!0});D0.default=void 0;function fN(i,e){return yN(i)||vN(i,e)||gN(i,e)||mN()}l(fN,"_slicedToArray");function mN(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}l(mN,"_nonIterableRest");function gN(i,e){if(i){if(typeof i=="string")return iw(i,e);var t=Object.prototype.toString.call(i).slice(8,-1);if(t==="Object"&&i.constructor&&(t=i.constructor.name),t==="Map"||t==="Set")return Array.from(i);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return iw(i,e)}}l(gN,"_unsupportedIterableToArray");function iw(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=i[t];return n}l(iw,"_arrayLikeToArray");function vN(i,e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(i)))){var t=[],n=!0,r=!1,a=void 0;try{for(var o=i[Symbol.iterator](),s;!(n=(s=o.next()).done)&&(t.push(s.value),!(e&&t.length===e));n=!0);}catch(c){r=!0,a=c}finally{try{!n&&o.return!=null&&o.return()}finally{if(r)throw a}}return t}}l(vN,"_iterableToArrayLimit");function yN(i){if(Array.isArray(i))return i}l(yN,"_arrayWithHoles");var nw=l(function(e){var t=Math.pow(10,12);return Math.round(e*t)/t},"imprecise"),bN=l(function(e){var t=e.toString().split("."),n=fN(t,2),r=n[0],a=n[1],o=Math.abs(Number(r)),s=nw(+("0."+(a||0))*60),c=Math.floor(s),u=nw((s%c||0)*60);return o+"\xB0 "+Number(c.toFixed(6)).toString().split(".").map(function(h,m){return m===0?h.padStart(2,"0"):h}).join(".")+"' "+Number(u.toFixed(4)).toString().split(".").map(function(h,m){return m===0?h.padStart(2,"0"):h}).join(".")+'"'},"decimal2sexagesimal"),xN=bN;D0.default=xN});var r5=pe(L0=>{"use strict";y();Object.defineProperty(L0,"__esModule",{value:!0});L0.default=void 0;var TN=l(function(e){return e>1?1:e<-1?-1:e},"robustAcos"),MN=TN;L0.default=MN});var lo=pe(R0=>{"use strict";y();Object.defineProperty(R0,"__esModule",{value:!0});R0.default=void 0;var aw=q0(_n()),ow=q0(On()),$l=q0(Ir()),EN=q0(r5()),wN=Ei();function q0(i){return i&&i.__esModule?i:{default:i}}l(q0,"_interopRequireDefault");var CN=l(function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;n=typeof n<"u"&&!isNaN(n)?n:1;var r=(0,aw.default)(e),a=(0,ow.default)(e),o=(0,aw.default)(t),s=(0,ow.default)(t),c=Math.acos((0,EN.default)(Math.sin((0,$l.default)(o))*Math.sin((0,$l.default)(r))+Math.cos((0,$l.default)(o))*Math.cos((0,$l.default)(r))*Math.cos((0,$l.default)(a)-(0,$l.default)(s))))*wN.earthRadius;return Math.round(c/n)*n},"getDistance"),AN=CN;R0.default=AN});var a5=pe(N0=>{"use strict";y();Object.defineProperty(N0,"__esModule",{value:!0});N0.default=void 0;var sw=PN(lo());function PN(i){return i&&i.__esModule?i:{default:i}}l(PN,"_interopRequireDefault");var SN=l(function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:sw.default;return n=typeof n=="function"?n:sw.default,t.slice().sort(function(r,a){return n(e,r)-n(e,a)})},"orderByDistance"),IN=SN;N0.default=IN});var lw=pe(k0=>{"use strict";y();Object.defineProperty(k0,"__esModule",{value:!0});k0.default=void 0;var _N=ON(a5());function ON(i){return i&&i.__esModule?i:{default:i}}l(ON,"_interopRequireDefault");var DN=l(function(e,t){return(0,_N.default)(e,t)[0]},"findNearest"),LN=DN;k0.default=LN});var dw=pe(B0=>{"use strict";y();Object.defineProperty(B0,"__esModule",{value:!0});B0.default=void 0;var o5=s5(Ir()),qN=s5(_n()),cw=s5(On()),uw=Ei();function s5(i){return i&&i.__esModule?i:{default:i}}l(s5,"_interopRequireDefault");var RN=l(function(e){var t=0;if(e.length>2){for(var n,r,a,o=0;o<e.length;o++){o===e.length-2?(n=e.length-2,r=e.length-1,a=0):o===e.length-1?(n=e.length-1,r=0,a=1):(n=o,r=o+1,a=o+2);var s=(0,cw.default)(e[n]),c=(0,qN.default)(e[r]),u=(0,cw.default)(e[a]);t+=((0,o5.default)(u)-(0,o5.default)(s))*Math.sin((0,o5.default)(c))}t=t*uw.earthRadius*uw.earthRadius/2}return Math.abs(t)},"getAreaOfPolygon"),NN=RN;B0.default=NN});var l5=pe(F0=>{"use strict";y();Object.defineProperty(F0,"__esModule",{value:!0});F0.default=void 0;var kN=hw(_n()),BN=hw(On());function hw(i){return i&&i.__esModule?i:{default:i}}l(hw,"_interopRequireDefault");var FN=l(function(e){if(Array.isArray(e)===!1||e.length===0)throw new Error("No points were given.");return e.reduce(function(t,n){var r=(0,kN.default)(n),a=(0,BN.default)(n);return{maxLat:Math.max(r,t.maxLat),minLat:Math.min(r,t.minLat),maxLng:Math.max(a,t.maxLng),minLng:Math.min(a,t.minLng)}},{maxLat:-1/0,minLat:1/0,maxLng:-1/0,minLng:1/0})},"getBounds"),UN=FN;F0.default=UN});var pw=pe(z0=>{"use strict";y();Object.defineProperty(z0,"__esModule",{value:!0});z0.default=void 0;var VN=V0(_n()),zN=V0(On()),ec=V0(Ir()),U0=V0(As()),zd=Ei();function V0(i){return i&&i.__esModule?i:{default:i}}l(V0,"_interopRequireDefault");var jN=l(function(e,t){var n=(0,VN.default)(e),r=(0,zN.default)(e),a=(0,ec.default)(n),o=(0,ec.default)(r),s=t/zd.earthRadius,c=a-s,u=a+s,h=(0,ec.default)(zd.MAXLAT),m=(0,ec.default)(zd.MINLAT),f=(0,ec.default)(zd.MAXLON),g=(0,ec.default)(zd.MINLON),b,M;if(c>m&&u<h){var x=Math.asin(Math.sin(s)/Math.cos(a));b=o-x,b<g&&(b+=Math.PI*2),M=o+x,M>f&&(M-=Math.PI*2)}else c=Math.max(c,m),u=Math.min(u,h),b=g,M=f;return[{latitude:(0,U0.default)(c),longitude:(0,U0.default)(b)},{latitude:(0,U0.default)(u),longitude:(0,U0.default)(M)}]},"getBoundsOfDistance"),GN=jN;z0.default=GN});var gw=pe(G0=>{"use strict";y();Object.defineProperty(G0,"__esModule",{value:!0});G0.default=void 0;var HN=j0(_n()),YN=j0(On()),fw=j0(Ir()),mw=j0(As());function j0(i){return i&&i.__esModule?i:{default:i}}l(j0,"_interopRequireDefault");var WN=l(function(e){if(Array.isArray(e)===!1||e.length===0)return!1;var t=e.length,n=e.reduce(function(s,c){var u=(0,fw.default)((0,HN.default)(c)),h=(0,fw.default)((0,YN.default)(c));return{X:s.X+Math.cos(u)*Math.cos(h),Y:s.Y+Math.cos(u)*Math.sin(h),Z:s.Z+Math.sin(u)}},{X:0,Y:0,Z:0}),r=n.X/t,a=n.Y/t,o=n.Z/t;return{longitude:(0,mw.default)(Math.atan2(a,r)),latitude:(0,mw.default)(Math.atan2(o,Math.sqrt(r*r+a*a)))}},"getCenter"),XN=WN;G0.default=XN});var vw=pe(H0=>{"use strict";y();Object.defineProperty(H0,"__esModule",{value:!0});H0.default=void 0;var ZN=QN(l5());function QN(i){return i&&i.__esModule?i:{default:i}}l(QN,"_interopRequireDefault");var KN=l(function(e){var t=(0,ZN.default)(e),n=t.minLat+(t.maxLat-t.minLat)/2,r=t.minLng+(t.maxLng-t.minLng)/2;return{latitude:parseFloat(n.toFixed(6)),longitude:parseFloat(r.toFixed(6))}},"getCenterOfBounds"),JN=KN;H0.default=JN});var c5=pe(X0=>{"use strict";y();Object.defineProperty(X0,"__esModule",{value:!0});X0.default=void 0;var yw=W0(_n()),bw=W0(On()),Y0=W0(Ir()),$N=W0(As());function W0(i){return i&&i.__esModule?i:{default:i}}l(W0,"_interopRequireDefault");var ek=l(function(e,t){var n=(0,Y0.default)((0,bw.default)(t))-(0,Y0.default)((0,bw.default)(e)),r=Math.log(Math.tan((0,Y0.default)((0,yw.default)(t))/2+Math.PI/4)/Math.tan((0,Y0.default)((0,yw.default)(e))/2+Math.PI/4));return Math.abs(n)>Math.PI&&(n>0?n=(Math.PI*2-n)*-1:n=Math.PI*2+n),((0,$N.default)(Math.atan2(n,r))+360)%360},"getRhumbLineBearing"),tk=ek;X0.default=tk});var Tw=pe(Z0=>{"use strict";y();Object.defineProperty(Z0,"__esModule",{value:!0});Z0.default=void 0;var xw=ik(c5());function ik(i){return i&&i.__esModule?i:{default:i}}l(ik,"_interopRequireDefault");var nk=l(function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:xw.default,r=typeof n=="function"?n(e,t):(0,xw.default)(e,t);if(isNaN(r))throw new Error("Could not calculate bearing for given points. Check your bearing function");switch(Math.round(r/22.5)){case 1:return"NNE";case 2:return"NE";case 3:return"ENE";case 4:return"E";case 5:return"ESE";case 6:return"SE";case 7:return"SSE";case 8:return"S";case 9:return"SSW";case 10:return"SW";case 11:return"WSW";case 12:return"W";case 13:return"WNW";case 14:return"NW";case 15:return"NNW";default:return"N"}},"getCompassDirection"),rk=nk;Z0.default=rk});var d5=pe(Q0=>{"use strict";y();Object.defineProperty(Q0,"__esModule",{value:!0});Q0.default=void 0;var u5=Ew(lo()),Mw=Ew(r5());function Ew(i){return i&&i.__esModule?i:{default:i}}l(Ew,"_interopRequireDefault");var ak=l(function(e,t,n){var r=(0,u5.default)(t,e),a=(0,u5.default)(e,n),o=(0,u5.default)(t,n),s=Math.acos((0,Mw.default)((r*r+o*o-a*a)/(2*r*o))),c=Math.acos((0,Mw.default)((a*a+o*o-r*r)/(2*a*o)));return s>Math.PI/2?r:c>Math.PI/2?a:Math.sin(s)*r},"getDistanceFromLine"),ok=ak;Q0.default=ok});var Aw=pe(J0=>{"use strict";y();Object.defineProperty(J0,"__esModule",{value:!0});J0.default=void 0;var ww=K0(_n()),Cw=K0(On()),da=K0(Ir()),sk=K0(As());function K0(i){return i&&i.__esModule?i:{default:i}}l(K0,"_interopRequireDefault");var lk=l(function(e,t){var n=(0,ww.default)(t),r=(0,Cw.default)(t),a=(0,ww.default)(e),o=(0,Cw.default)(e),s=((0,sk.default)(Math.atan2(Math.sin((0,da.default)(r)-(0,da.default)(o))*Math.cos((0,da.default)(n)),Math.cos((0,da.default)(a))*Math.sin((0,da.default)(n))-Math.sin((0,da.default)(a))*Math.cos((0,da.default)(n))*Math.cos((0,da.default)(r)-(0,da.default)(o))))+360)%360;return s},"getGreatCircleBearing"),ck=lk;J0.default=ck});var Pw=pe(eg=>{"use strict";y();Object.defineProperty(eg,"__esModule",{value:!0});eg.default=void 0;var uk=dk(lo());function dk(i){return i&&i.__esModule?i:{default:i}}l(dk,"_interopRequireDefault");function $0(i){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?$0=l(function(t){return typeof t},"_typeof"):$0=l(function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},"_typeof"),$0(i)}l($0,"_typeof");var hk=l(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:uk.default;return e.reduce(function(n,r){return $0(n)==="object"&&n.last!==null&&(n.distance+=t(r,n.last)),n.last=r,n},{last:null,distance:0}).distance},"getPathLength"),pk=hk;eg.default=pk});var Ow=pe(tg=>{"use strict";y();Object.defineProperty(tg,"__esModule",{value:!0});tg.default=void 0;var Sw=p5(_n()),Iw=p5(On()),h5=p5(Ir()),_w=Ei();function p5(i){return i&&i.__esModule?i:{default:i}}l(p5,"_interopRequireDefault");var fk=l(function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;n=typeof n<"u"&&!isNaN(n)?n:1;var r=(0,Sw.default)(e),a=(0,Iw.default)(e),o=(0,Sw.default)(t),s=(0,Iw.default)(t),c=6356752314245e-6,u=1/298.257223563,h=(0,h5.default)(s-a),m,f,g,b,M,x,T=Math.atan((1-u)*Math.tan((0,h5.default)(parseFloat(r)))),E=Math.atan((1-u)*Math.tan((0,h5.default)(parseFloat(o)))),S=Math.sin(T),_=Math.cos(T),P=Math.sin(E),q=Math.cos(E),D=h,U,R=100;do{var B=Math.sin(D),j=Math.cos(D);if(x=Math.sqrt(q*B*(q*B)+(_*P-S*q*j)*(_*P-S*q*j)),x===0)return 0;m=S*P+_*q*j,f=Math.atan2(x,m),g=_*q*B/x,b=1-g*g,M=m-2*S*P/b,isNaN(M)&&(M=0);var G=u/16*b*(4+u*(4-3*b));U=D,D=h+(1-G)*u*g*(f+G*x*(M+G*m*(-1+2*M*M)))}while(Math.abs(D-U)>1e-12&&--R>0);if(R===0)return NaN;var Q=b*(_w.earthRadius*_w.earthRadius-c*c)/(c*c),X=1+Q/16384*(4096+Q*(-768+Q*(320-175*Q))),ne=Q/1024*(256+Q*(-128+Q*(74-47*Q))),$=ne*x*(M+ne/4*(m*(-1+2*M*M)-ne/6*M*(-3+4*x*x)*(-3+4*M*M))),ue=c*X*(f-$);return Math.round(ue/n)*n},"getDistance"),mk=fk;tg.default=mk});var Dw=pe(ig=>{"use strict";y();Object.defineProperty(ig,"__esModule",{value:!0});ig.default=void 0;var gk=l(function(e){if(/^NNE|NE|NNW|N$/.test(e))return"N";if(/^ENE|E|ESE|SE$/.test(e))return"E";if(/^SSE|S|SSW|SW$/.test(e))return"S";if(/^WSW|W|WNW|NW$/.test(e))return"W"},"getRoughCompassDirection"),vk=gk;ig.default=vk});var Lw=pe(ng=>{"use strict";y();Object.defineProperty(ng,"__esModule",{value:!0});ng.default=void 0;var yk=bk(lo());function bk(i){return i&&i.__esModule?i:{default:i}}l(bk,"_interopRequireDefault");var xk=l(function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:yk.default,r=n(e,t),a=Number(t.time)-Number(e.time),o=r/a*1e3;return o},"getSpeed"),Tk=xk;ng.default=Tk});var qw=pe(rg=>{"use strict";y();Object.defineProperty(rg,"__esModule",{value:!0});rg.default=void 0;var f5=Mk(lo());function Mk(i){return i&&i.__esModule?i:{default:i}}l(Mk,"_interopRequireDefault");var Ek=l(function(e,t,n){return(0,f5.default)(t,e)+(0,f5.default)(e,n)===(0,f5.default)(t,n)},"isPointInLine"),wk=Ek;rg.default=wk});var Nw=pe(og=>{"use strict";y();Object.defineProperty(og,"__esModule",{value:!0});og.default=void 0;var ag=Rw(_n()),Dn=Rw(On());function Rw(i){return i&&i.__esModule?i:{default:i}}l(Rw,"_interopRequireDefault");var Ck=l(function(e,t){for(var n=!1,r=t.length,a=-1,o=r-1;++a<r;o=a)((0,Dn.default)(t[a])<=(0,Dn.default)(e)&&(0,Dn.default)(e)<(0,Dn.default)(t[o])||(0,Dn.default)(t[o])<=(0,Dn.default)(e)&&(0,Dn.default)(e)<(0,Dn.default)(t[a]))&&(0,ag.default)(e)<((0,ag.default)(t[o])-(0,ag.default)(t[a]))*((0,Dn.default)(e)-(0,Dn.default)(t[a]))/((0,Dn.default)(t[o])-(0,Dn.default)(t[a]))+(0,ag.default)(t[a])&&(n=!n);return n},"isPointInPolygon"),Ak=Ck;og.default=Ak});var kw=pe(sg=>{"use strict";y();Object.defineProperty(sg,"__esModule",{value:!0});sg.default=void 0;var Pk=Sk(d5());function Sk(i){return i&&i.__esModule?i:{default:i}}l(Sk,"_interopRequireDefault");var Ik=l(function(e,t,n,r){return(0,Pk.default)(e,t,n)<r},"isPointNearLine"),_k=Ik;sg.default=_k});var Bw=pe(lg=>{"use strict";y();Object.defineProperty(lg,"__esModule",{value:!0});lg.default=void 0;var Ok=Dk(lo());function Dk(i){return i&&i.__esModule?i:{default:i}}l(Dk,"_interopRequireDefault");var Lk=l(function(e,t,n){return(0,Ok.default)(e,t)<n},"isPointWithinRadius"),qk=Lk;lg.default=qk});var Uw=pe(cg=>{"use strict";y();Object.defineProperty(cg,"__esModule",{value:!0});cg.default=void 0;function Rk(i,e){return Fk(i)||Bk(i,e)||kk(i,e)||Nk()}l(Rk,"_slicedToArray");function Nk(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}l(Nk,"_nonIterableRest");function kk(i,e){if(i){if(typeof i=="string")return Fw(i,e);var t=Object.prototype.toString.call(i).slice(8,-1);if(t==="Object"&&i.constructor&&(t=i.constructor.name),t==="Map"||t==="Set")return Array.from(i);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Fw(i,e)}}l(kk,"_unsupportedIterableToArray");function Fw(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=i[t];return n}l(Fw,"_arrayLikeToArray");function Bk(i,e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(i)))){var t=[],n=!0,r=!1,a=void 0;try{for(var o=i[Symbol.iterator](),s;!(n=(s=o.next()).done)&&(t.push(s.value),!(e&&t.length===e));n=!0);}catch(c){r=!0,a=c}finally{try{!n&&o.return!=null&&o.return()}finally{if(r)throw a}}return t}}l(Bk,"_iterableToArrayLimit");function Fk(i){if(Array.isArray(i))return i}l(Fk,"_arrayWithHoles");var Uk=l(function(e){if(!e.startsWith("POLYGON"))throw new Error("Invalid wkt.");var t=e.slice(e.indexOf("(")+2,e.indexOf(")")).split(", "),n=t.map(function(r){var a=r.split(" "),o=Rk(a,2),s=o[0],c=o[1];return{longitude:parseFloat(s),latitude:parseFloat(c)}});return n},"wktToPolygon"),Vk=Uk;cg.default=Vk});var zw=pe(Se=>{"use strict";y();Object.defineProperty(Se,"__esModule",{value:!0});var zk={computeDestinationPoint:!0,convertArea:!0,convertDistance:!0,convertSpeed:!0,decimalToSexagesimal:!0,findNearest:!0,getAreaOfPolygon:!0,getBounds:!0,getBoundsOfDistance:!0,getCenter:!0,getCenterOfBounds:!0,getCompassDirection:!0,getCoordinateKey:!0,getCoordinateKeys:!0,getDistance:!0,getDistanceFromLine:!0,getGreatCircleBearing:!0,getLatitude:!0,getLongitude:!0,getPathLength:!0,getPreciseDistance:!0,getRhumbLineBearing:!0,getRoughCompassDirection:!0,getSpeed:!0,isDecimal:!0,isPointInLine:!0,isPointInPolygon:!0,isPointNearLine:!0,isPointWithinRadius:!0,isSexagesimal:!0,isValidCoordinate:!0,isValidLatitude:!0,isValidLongitude:!0,orderByDistance:!0,sexagesimalToDecimal:!0,toDecimal:!0,toRad:!0,toDeg:!0,wktToPolygon:!0};Object.defineProperty(Se,"computeDestinationPoint",{enumerable:!0,get:l(function(){return jk.default},"get")});Object.defineProperty(Se,"convertArea",{enumerable:!0,get:l(function(){return Gk.default},"get")});Object.defineProperty(Se,"convertDistance",{enumerable:!0,get:l(function(){return Hk.default},"get")});Object.defineProperty(Se,"convertSpeed",{enumerable:!0,get:l(function(){return Yk.default},"get")});Object.defineProperty(Se,"decimalToSexagesimal",{enumerable:!0,get:l(function(){return Wk.default},"get")});Object.defineProperty(Se,"findNearest",{enumerable:!0,get:l(function(){return Xk.default},"get")});Object.defineProperty(Se,"getAreaOfPolygon",{enumerable:!0,get:l(function(){return Zk.default},"get")});Object.defineProperty(Se,"getBounds",{enumerable:!0,get:l(function(){return Qk.default},"get")});Object.defineProperty(Se,"getBoundsOfDistance",{enumerable:!0,get:l(function(){return Kk.default},"get")});Object.defineProperty(Se,"getCenter",{enumerable:!0,get:l(function(){return Jk.default},"get")});Object.defineProperty(Se,"getCenterOfBounds",{enumerable:!0,get:l(function(){return $k.default},"get")});Object.defineProperty(Se,"getCompassDirection",{enumerable:!0,get:l(function(){return eB.default},"get")});Object.defineProperty(Se,"getCoordinateKey",{enumerable:!0,get:l(function(){return tB.default},"get")});Object.defineProperty(Se,"getCoordinateKeys",{enumerable:!0,get:l(function(){return iB.default},"get")});Object.defineProperty(Se,"getDistance",{enumerable:!0,get:l(function(){return nB.default},"get")});Object.defineProperty(Se,"getDistanceFromLine",{enumerable:!0,get:l(function(){return rB.default},"get")});Object.defineProperty(Se,"getGreatCircleBearing",{enumerable:!0,get:l(function(){return aB.default},"get")});Object.defineProperty(Se,"getLatitude",{enumerable:!0,get:l(function(){return oB.default},"get")});Object.defineProperty(Se,"getLongitude",{enumerable:!0,get:l(function(){return sB.default},"get")});Object.defineProperty(Se,"getPathLength",{enumerable:!0,get:l(function(){return lB.default},"get")});Object.defineProperty(Se,"getPreciseDistance",{enumerable:!0,get:l(function(){return cB.default},"get")});Object.defineProperty(Se,"getRhumbLineBearing",{enumerable:!0,get:l(function(){return uB.default},"get")});Object.defineProperty(Se,"getRoughCompassDirection",{enumerable:!0,get:l(function(){return dB.default},"get")});Object.defineProperty(Se,"getSpeed",{enumerable:!0,get:l(function(){return hB.default},"get")});Object.defineProperty(Se,"isDecimal",{enumerable:!0,get:l(function(){return pB.default},"get")});Object.defineProperty(Se,"isPointInLine",{enumerable:!0,get:l(function(){return fB.default},"get")});Object.defineProperty(Se,"isPointInPolygon",{enumerable:!0,get:l(function(){return mB.default},"get")});Object.defineProperty(Se,"isPointNearLine",{enumerable:!0,get:l(function(){return gB.default},"get")});Object.defineProperty(Se,"isPointWithinRadius",{enumerable:!0,get:l(function(){return vB.default},"get")});Object.defineProperty(Se,"isSexagesimal",{enumerable:!0,get:l(function(){return yB.default},"get")});Object.defineProperty(Se,"isValidCoordinate",{enumerable:!0,get:l(function(){return bB.default},"get")});Object.defineProperty(Se,"isValidLatitude",{enumerable:!0,get:l(function(){return xB.default},"get")});Object.defineProperty(Se,"isValidLongitude",{enumerable:!0,get:l(function(){return TB.default},"get")});Object.defineProperty(Se,"orderByDistance",{enumerable:!0,get:l(function(){return MB.default},"get")});Object.defineProperty(Se,"sexagesimalToDecimal",{enumerable:!0,get:l(function(){return EB.default},"get")});Object.defineProperty(Se,"toDecimal",{enumerable:!0,get:l(function(){return wB.default},"get")});Object.defineProperty(Se,"toRad",{enumerable:!0,get:l(function(){return CB.default},"get")});Object.defineProperty(Se,"toDeg",{enumerable:!0,get:l(function(){return AB.default},"get")});Object.defineProperty(Se,"wktToPolygon",{enumerable:!0,get:l(function(){return PB.default},"get")});var jk=Be(JE()),Gk=Be($E()),Hk=Be(ew()),Yk=Be(tw()),Wk=Be(rw()),Xk=Be(lw()),Zk=Be(dw()),Qk=Be(l5()),Kk=Be(pw()),Jk=Be(gw()),$k=Be(vw()),eB=Be(Tw()),tB=Be(kd()),iB=Be(g0()),nB=Be(lo()),rB=Be(d5()),aB=Be(Aw()),oB=Be(_n()),sB=Be(On()),lB=Be(Pw()),cB=Be(Ow()),uB=Be(c5()),dB=Be(Dw()),hB=Be(Lw()),pB=Be(Bd()),fB=Be(qw()),mB=Be(Nw()),gB=Be(kw()),vB=Be(Bw()),yB=Be(Fd()),bB=Be($y()),xB=Be(Zy()),TB=Be(Ky()),MB=Be(a5()),EB=Be(Ud()),wB=Be(T0()),CB=Be(Ir()),AB=Be(As()),PB=Be(Uw()),Vw=Ei();Object.keys(Vw).forEach(function(i){i==="default"||i==="__esModule"||Object.prototype.hasOwnProperty.call(zk,i)||Object.defineProperty(Se,i,{enumerable:!0,get:l(function(){return Vw[i]},"get")})});function Be(i){return i&&i.__esModule?i:{default:i}}l(Be,"_interopRequireDefault")});var Jw=pe((D5,L5)=>{y();(function(i,e){typeof D5=="object"&&typeof L5<"u"?L5.exports=e():typeof define=="function"&&define.amd?define(e):(i=i||self).RBush=e()})(D5,function(){"use strict";function i(x,T,E,S,_){l(function P(q,D,U,R,B){for(;R>U;){if(R-U>600){var j=R-U+1,G=D-U+1,Q=Math.log(j),X=.5*Math.exp(2*Q/3),ne=.5*Math.sqrt(Q*X*(j-X)/j)*(G-j/2<0?-1:1),$=Math.max(U,Math.floor(D-G*X/j+ne)),ue=Math.min(R,Math.floor(D+(j-G)*X/j+ne));P(q,D,$,ue,B)}var be=q[D],ee=U,ge=R;for(e(q,U,D),B(q[R],be)>0&&e(q,U,R);ee<ge;){for(e(q,ee,ge),ee++,ge--;B(q[ee],be)<0;)ee++;for(;B(q[ge],be)>0;)ge--}B(q[U],be)===0?e(q,U,ge):e(q,++ge,R),ge<=D&&(U=ge+1),D<=ge&&(R=ge-1)}},"t")(x,T,E||0,S||x.length-1,_||t)}l(i,"t");function e(x,T,E){var S=x[T];x[T]=x[E],x[E]=S}l(e,"i");function t(x,T){return x<T?-1:x>T?1:0}l(t,"n");var n=l(function(x){x===void 0&&(x=9),this._maxEntries=Math.max(4,x),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()},"r");function r(x,T,E){if(!E)return T.indexOf(x);for(var S=0;S<T.length;S++)if(E(x,T[S]))return S;return-1}l(r,"e");function a(x,T){o(x,0,x.children.length,T,x)}l(a,"a");function o(x,T,E,S,_){_||(_=b(null)),_.minX=1/0,_.minY=1/0,_.maxX=-1/0,_.maxY=-1/0;for(var P=T;P<E;P++){var q=x.children[P];s(_,x.leaf?S(q):q)}return _}l(o,"h");function s(x,T){return x.minX=Math.min(x.minX,T.minX),x.minY=Math.min(x.minY,T.minY),x.maxX=Math.max(x.maxX,T.maxX),x.maxY=Math.max(x.maxY,T.maxY),x}l(s,"o");function c(x,T){return x.minX-T.minX}l(c,"s");function u(x,T){return x.minY-T.minY}l(u,"l");function h(x){return(x.maxX-x.minX)*(x.maxY-x.minY)}l(h,"f");function m(x){return x.maxX-x.minX+(x.maxY-x.minY)}l(m,"u");function f(x,T){return x.minX<=T.minX&&x.minY<=T.minY&&T.maxX<=x.maxX&&T.maxY<=x.maxY}l(f,"m");function g(x,T){return T.minX<=x.maxX&&T.minY<=x.maxY&&T.maxX>=x.minX&&T.maxY>=x.minY}l(g,"c");function b(x){return{children:x,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}l(b,"p");function M(x,T,E,S,_){for(var P=[T,E];P.length;)if(!((E=P.pop())-(T=P.pop())<=S)){var q=T+Math.ceil((E-T)/S/2)*S;i(x,q,T,E,_),P.push(T,q,q,E)}}return l(M,"d"),n.prototype.all=function(){return this._all(this.data,[])},n.prototype.search=function(x){var T=this.data,E=[];if(!g(x,T))return E;for(var S=this.toBBox,_=[];T;){for(var P=0;P<T.children.length;P++){var q=T.children[P],D=T.leaf?S(q):q;g(x,D)&&(T.leaf?E.push(q):f(x,D)?this._all(q,E):_.push(q))}T=_.pop()}return E},n.prototype.collides=function(x){var T=this.data;if(!g(x,T))return!1;for(var E=[];T;){for(var S=0;S<T.children.length;S++){var _=T.children[S],P=T.leaf?this.toBBox(_):_;if(g(x,P)){if(T.leaf||f(x,P))return!0;E.push(_)}}T=E.pop()}return!1},n.prototype.load=function(x){if(!x||!x.length)return this;if(x.length<this._minEntries){for(var T=0;T<x.length;T++)this.insert(x[T]);return this}var E=this._build(x.slice(),0,x.length-1,0);if(this.data.children.length)if(this.data.height===E.height)this._splitRoot(this.data,E);else{if(this.data.height<E.height){var S=this.data;this.data=E,E=S}this._insert(E,this.data.height-E.height-1,!0)}else this.data=E;return this},n.prototype.insert=function(x){return x&&this._insert(x,this.data.height-1),this},n.prototype.clear=function(){return this.data=b([]),this},n.prototype.remove=function(x,T){if(!x)return this;for(var E,S,_,P=this.data,q=this.toBBox(x),D=[],U=[];P||D.length;){if(P||(P=D.pop(),S=D[D.length-1],E=U.pop(),_=!0),P.leaf){var R=r(x,P.children,T);if(R!==-1)return P.children.splice(R,1),D.push(P),this._condense(D),this}_||P.leaf||!f(P,q)?S?(E++,P=S.children[E],_=!1):P=null:(D.push(P),U.push(E),E=0,S=P,P=P.children[0])}return this},n.prototype.toBBox=function(x){return x},n.prototype.compareMinX=function(x,T){return x.minX-T.minX},n.prototype.compareMinY=function(x,T){return x.minY-T.minY},n.prototype.toJSON=function(){return this.data},n.prototype.fromJSON=function(x){return this.data=x,this},n.prototype._all=function(x,T){for(var E=[];x;)x.leaf?T.push.apply(T,x.children):E.push.apply(E,x.children),x=E.pop();return T},n.prototype._build=function(x,T,E,S){var _,P=E-T+1,q=this._maxEntries;if(P<=q)return a(_=b(x.slice(T,E+1)),this.toBBox),_;S||(S=Math.ceil(Math.log(P)/Math.log(q)),q=Math.ceil(P/Math.pow(q,S-1))),(_=b([])).leaf=!1,_.height=S;var D=Math.ceil(P/q),U=D*Math.ceil(Math.sqrt(q));M(x,T,E,U,this.compareMinX);for(var R=T;R<=E;R+=U){var B=Math.min(R+U-1,E);M(x,R,B,D,this.compareMinY);for(var j=R;j<=B;j+=D){var G=Math.min(j+D-1,B);_.children.push(this._build(x,j,G,S-1))}}return a(_,this.toBBox),_},n.prototype._chooseSubtree=function(x,T,E,S){for(;S.push(T),!T.leaf&&S.length-1!==E;){for(var _=1/0,P=1/0,q=void 0,D=0;D<T.children.length;D++){var U=T.children[D],R=h(U),B=(j=x,G=U,(Math.max(G.maxX,j.maxX)-Math.min(G.minX,j.minX))*(Math.max(G.maxY,j.maxY)-Math.min(G.minY,j.minY))-R);B<P?(P=B,_=R<_?R:_,q=U):B===P&&R<_&&(_=R,q=U)}T=q||T.children[0]}var j,G;return T},n.prototype._insert=function(x,T,E){var S=E?x:this.toBBox(x),_=[],P=this._chooseSubtree(S,this.data,T,_);for(P.children.push(x),s(P,S);T>=0&&_[T].children.length>this._maxEntries;)this._split(_,T),T--;this._adjustParentBBoxes(S,_,T)},n.prototype._split=function(x,T){var E=x[T],S=E.children.length,_=this._minEntries;this._chooseSplitAxis(E,_,S);var P=this._chooseSplitIndex(E,_,S),q=b(E.children.splice(P,E.children.length-P));q.height=E.height,q.leaf=E.leaf,a(E,this.toBBox),a(q,this.toBBox),T?x[T-1].children.push(q):this._splitRoot(E,q)},n.prototype._splitRoot=function(x,T){this.data=b([x,T]),this.data.height=x.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},n.prototype._chooseSplitIndex=function(x,T,E){for(var S,_,P,q,D,U,R,B=1/0,j=1/0,G=T;G<=E-T;G++){var Q=o(x,0,G,this.toBBox),X=o(x,G,E,this.toBBox),ne=(_=Q,P=X,q=void 0,D=void 0,U=void 0,R=void 0,q=Math.max(_.minX,P.minX),D=Math.max(_.minY,P.minY),U=Math.min(_.maxX,P.maxX),R=Math.min(_.maxY,P.maxY),Math.max(0,U-q)*Math.max(0,R-D)),$=h(Q)+h(X);ne<B?(B=ne,S=G,j=$<j?$:j):ne===B&&$<j&&(j=$,S=G)}return S||E-T},n.prototype._chooseSplitAxis=function(x,T,E){var S=x.leaf?this.compareMinX:c,_=x.leaf?this.compareMinY:u;this._allDistMargin(x,T,E,S)<this._allDistMargin(x,T,E,_)&&x.children.sort(S)},n.prototype._allDistMargin=function(x,T,E,S){x.children.sort(S);for(var _=this.toBBox,P=o(x,0,T,_),q=o(x,E-T,E,_),D=m(P)+m(q),U=T;U<E-T;U++){var R=x.children[U];s(P,x.leaf?_(R):R),D+=m(P)}for(var B=E-T-1;B>=T;B--){var j=x.children[B];s(q,x.leaf?_(j):j),D+=m(q)}return D},n.prototype._adjustParentBBoxes=function(x,T,E){for(var S=E;S>=0;S--)s(T[S],x)},n.prototype._condense=function(x){for(var T=x.length-1,E=void 0;T>=0;T--)x[T].children.length===0?T>0?(E=x[T-1].children).splice(E.indexOf(x[T]),1):this.clear():a(x[T],this.toBBox)},n})});var B5=pe(we=>{"use strict";y();Object.defineProperty(we,"__esModule",{value:!0});we.earthRadius=63710088e-1;we.factors={centimeters:we.earthRadius*100,centimetres:we.earthRadius*100,degrees:we.earthRadius/111325,feet:we.earthRadius*3.28084,inches:we.earthRadius*39.37,kilometers:we.earthRadius/1e3,kilometres:we.earthRadius/1e3,meters:we.earthRadius,metres:we.earthRadius,miles:we.earthRadius/1609.344,millimeters:we.earthRadius*1e3,millimetres:we.earthRadius*1e3,nauticalmiles:we.earthRadius/1852,radians:1,yards:we.earthRadius*1.0936};we.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/we.earthRadius,yards:1.0936133};we.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046};function po(i,e,t){t===void 0&&(t={});var n={type:"Feature"};return(t.id===0||t.id)&&(n.id=t.id),t.bbox&&(n.bbox=t.bbox),n.properties=e||{},n.geometry=i,n}l(po,"feature");we.feature=po;function UB(i,e,t){switch(t===void 0&&(t={}),i){case"Point":return q5(e).geometry;case"LineString":return N5(e).geometry;case"Polygon":return R5(e).geometry;case"MultiPoint":return eC(e).geometry;case"MultiLineString":return $w(e).geometry;case"MultiPolygon":return tC(e).geometry;default:throw new Error(i+" is invalid")}}l(UB,"geometry");we.geometry=UB;function q5(i,e,t){if(t===void 0&&(t={}),!i)throw new Error("coordinates is required");if(!Array.isArray(i))throw new Error("coordinates must be an Array");if(i.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!yg(i[0])||!yg(i[1]))throw new Error("coordinates must contain numbers");var n={type:"Point",coordinates:i};return po(n,e,t)}l(q5,"point");we.point=q5;function VB(i,e,t){return t===void 0&&(t={}),bg(i.map(function(n){return q5(n,e)}),t)}l(VB,"points");we.points=VB;function R5(i,e,t){t===void 0&&(t={});for(var n=0,r=i;n<r.length;n++){var a=r[n];if(a.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var o=0;o<a[a.length-1].length;o++)if(a[a.length-1][o]!==a[0][o])throw new Error("First and last Position are not equivalent.")}var s={type:"Polygon",coordinates:i};return po(s,e,t)}l(R5,"polygon");we.polygon=R5;function zB(i,e,t){return t===void 0&&(t={}),bg(i.map(function(n){return R5(n,e)}),t)}l(zB,"polygons");we.polygons=zB;function N5(i,e,t){if(t===void 0&&(t={}),i.length<2)throw new Error("coordinates must be an array of two or more positions");var n={type:"LineString",coordinates:i};return po(n,e,t)}l(N5,"lineString");we.lineString=N5;function jB(i,e,t){return t===void 0&&(t={}),bg(i.map(function(n){return N5(n,e)}),t)}l(jB,"lineStrings");we.lineStrings=jB;function bg(i,e){e===void 0&&(e={});var t={type:"FeatureCollection"};return e.id&&(t.id=e.id),e.bbox&&(t.bbox=e.bbox),t.features=i,t}l(bg,"featureCollection");we.featureCollection=bg;function $w(i,e,t){t===void 0&&(t={});var n={type:"MultiLineString",coordinates:i};return po(n,e,t)}l($w,"multiLineString");we.multiLineString=$w;function eC(i,e,t){t===void 0&&(t={});var n={type:"MultiPoint",coordinates:i};return po(n,e,t)}l(eC,"multiPoint");we.multiPoint=eC;function tC(i,e,t){t===void 0&&(t={});var n={type:"MultiPolygon",coordinates:i};return po(n,e,t)}l(tC,"multiPolygon");we.multiPolygon=tC;function GB(i,e,t){t===void 0&&(t={});var n={type:"GeometryCollection",geometries:i};return po(n,e,t)}l(GB,"geometryCollection");we.geometryCollection=GB;function HB(i,e){if(e===void 0&&(e=0),e&&!(e>=0))throw new Error("precision must be a positive number");var t=Math.pow(10,e||0);return Math.round(i*t)/t}l(HB,"round");we.round=HB;function iC(i,e){e===void 0&&(e="kilometers");var t=we.factors[e];if(!t)throw new Error(e+" units is invalid");return i*t}l(iC,"radiansToLength");we.radiansToLength=iC;function k5(i,e){e===void 0&&(e="kilometers");var t=we.factors[e];if(!t)throw new Error(e+" units is invalid");return i/t}l(k5,"lengthToRadians");we.lengthToRadians=k5;function YB(i,e){return nC(k5(i,e))}l(YB,"lengthToDegrees");we.lengthToDegrees=YB;function WB(i){var e=i%360;return e<0&&(e+=360),e}l(WB,"bearingToAzimuth");we.bearingToAzimuth=WB;function nC(i){var e=i%(2*Math.PI);return e*180/Math.PI}l(nC,"radiansToDegrees");we.radiansToDegrees=nC;function XB(i){var e=i%360;return e*Math.PI/180}l(XB,"degreesToRadians");we.degreesToRadians=XB;function ZB(i,e,t){if(e===void 0&&(e="kilometers"),t===void 0&&(t="kilometers"),!(i>=0))throw new Error("length must be a positive number");return iC(k5(i,e),t)}l(ZB,"convertLength");we.convertLength=ZB;function QB(i,e,t){if(e===void 0&&(e="meters"),t===void 0&&(t="kilometers"),!(i>=0))throw new Error("area must be a positive number");var n=we.areaFactors[e];if(!n)throw new Error("invalid original units");var r=we.areaFactors[t];if(!r)throw new Error("invalid final units");return i/n*r}l(QB,"convertArea");we.convertArea=QB;function yg(i){return!isNaN(i)&&i!==null&&!Array.isArray(i)}l(yg,"isNumber");we.isNumber=yg;function KB(i){return!!i&&i.constructor===Object}l(KB,"isObject");we.isObject=KB;function JB(i){if(!i)throw new Error("bbox is required");if(!Array.isArray(i))throw new Error("bbox must be an Array");if(i.length!==4&&i.length!==6)throw new Error("bbox must be an Array of 4 or 6 numbers");i.forEach(function(e){if(!yg(e))throw new Error("bbox must only contain numbers")})}l(JB,"validateBBox");we.validateBBox=JB;function $B(i){if(!i)throw new Error("id is required");if(["string","number"].indexOf(typeof i)===-1)throw new Error("id must be a number or a string")}l($B,"validateId");we.validateId=$B});var U5=pe(li=>{"use strict";y();Object.defineProperty(li,"__esModule",{value:!0});var Di=B5();function Hd(i,e,t){if(i!==null)for(var n,r,a,o,s,c,u,h=0,m=0,f,g=i.type,b=g==="FeatureCollection",M=g==="Feature",x=b?i.features.length:1,T=0;T<x;T++){u=b?i.features[T].geometry:M?i.geometry:i,f=u?u.type==="GeometryCollection":!1,s=f?u.geometries.length:1;for(var E=0;E<s;E++){var S=0,_=0;if(o=f?u.geometries[E]:u,o!==null){c=o.coordinates;var P=o.type;switch(h=t&&(P==="Polygon"||P==="MultiPolygon")?1:0,P){case null:break;case"Point":if(e(c,m,T,S,_)===!1)return!1;m++,S++;break;case"LineString":case"MultiPoint":for(n=0;n<c.length;n++){if(e(c[n],m,T,S,_)===!1)return!1;m++,P==="MultiPoint"&&S++}P==="LineString"&&S++;break;case"Polygon":case"MultiLineString":for(n=0;n<c.length;n++){for(r=0;r<c[n].length-h;r++){if(e(c[n][r],m,T,S,_)===!1)return!1;m++}P==="MultiLineString"&&S++,P==="Polygon"&&_++}P==="Polygon"&&S++;break;case"MultiPolygon":for(n=0;n<c.length;n++){for(_=0,r=0;r<c[n].length;r++){for(a=0;a<c[n][r].length-h;a++){if(e(c[n][r][a],m,T,S,_)===!1)return!1;m++}_++}S++}break;case"GeometryCollection":for(n=0;n<o.geometries.length;n++)if(Hd(o.geometries[n],e,t)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}l(Hd,"coordEach");function eF(i,e,t,n){var r=t;return Hd(i,function(a,o,s,c,u){o===0&&t===void 0?r=a:r=e(r,a,o,s,c,u)},n),r}l(eF,"coordReduce");function rC(i,e){var t;switch(i.type){case"FeatureCollection":for(t=0;t<i.features.length&&e(i.features[t].properties,t)!==!1;t++);break;case"Feature":e(i.properties,0);break}}l(rC,"propEach");function tF(i,e,t){var n=t;return rC(i,function(r,a){a===0&&t===void 0?n=r:n=e(n,r,a)}),n}l(tF,"propReduce");function aC(i,e){if(i.type==="Feature")e(i,0);else if(i.type==="FeatureCollection")for(var t=0;t<i.features.length&&e(i.features[t],t)!==!1;t++);}l(aC,"featureEach");function iF(i,e,t){var n=t;return aC(i,function(r,a){a===0&&t===void 0?n=r:n=e(n,r,a)}),n}l(iF,"featureReduce");function nF(i){var e=[];return Hd(i,function(t){e.push(t)}),e}l(nF,"coordAll");function F5(i,e){var t,n,r,a,o,s,c,u,h,m,f=0,g=i.type==="FeatureCollection",b=i.type==="Feature",M=g?i.features.length:1;for(t=0;t<M;t++){for(s=g?i.features[t].geometry:b?i.geometry:i,u=g?i.features[t].properties:b?i.properties:{},h=g?i.features[t].bbox:b?i.bbox:void 0,m=g?i.features[t].id:b?i.id:void 0,c=s?s.type==="GeometryCollection":!1,o=c?s.geometries.length:1,r=0;r<o;r++){if(a=c?s.geometries[r]:s,a===null){if(e(null,f,u,h,m)===!1)return!1;continue}switch(a.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(e(a,f,u,h,m)===!1)return!1;break}case"GeometryCollection":{for(n=0;n<a.geometries.length;n++)if(e(a.geometries[n],f,u,h,m)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}f++}}l(F5,"geomEach");function rF(i,e,t){var n=t;return F5(i,function(r,a,o,s,c){a===0&&t===void 0?n=r:n=e(n,r,a,o,s,c)}),n}l(rF,"geomReduce");function xg(i,e){F5(i,function(t,n,r,a,o){var s=t===null?null:t.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return e(Di.feature(t,r,{bbox:a,id:o}),n,0)===!1?!1:void 0}var c;switch(s){case"MultiPoint":c="Point";break;case"MultiLineString":c="LineString";break;case"MultiPolygon":c="Polygon";break}for(var u=0;u<t.coordinates.length;u++){var h=t.coordinates[u],m={type:c,coordinates:h};if(e(Di.feature(m,r),n,u)===!1)return!1}})}l(xg,"flattenEach");function aF(i,e,t){var n=t;return xg(i,function(r,a,o){a===0&&o===0&&t===void 0?n=r:n=e(n,r,a,o)}),n}l(aF,"flattenReduce");function oC(i,e){xg(i,function(t,n,r){var a=0;if(t.geometry){var o=t.geometry.type;if(!(o==="Point"||o==="MultiPoint")){var s,c=0,u=0,h=0;if(Hd(t,function(m,f,g,b,M){if(s===void 0||n>c||b>u||M>h){s=m,c=n,u=b,h=M,a=0;return}var x=Di.lineString([s,m],t.properties);if(e(x,n,r,M,a)===!1)return!1;a++,s=m})===!1)return!1}}})}l(oC,"segmentEach");function oF(i,e,t){var n=t,r=!1;return oC(i,function(a,o,s,c,u){r===!1&&t===void 0?n=a:n=e(n,a,o,s,c,u),r=!0}),n}l(oF,"segmentReduce");function sC(i,e){if(!i)throw new Error("geojson is required");xg(i,function(t,n,r){if(t.geometry!==null){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(e(t,n,r,0,0)===!1)return!1;break;case"Polygon":for(var s=0;s<o.length;s++)if(e(Di.lineString(o[s],t.properties),n,r,s)===!1)return!1;break}}})}l(sC,"lineEach");function sF(i,e,t){var n=t;return sC(i,function(r,a,o,s){a===0&&t===void 0?n=r:n=e(n,r,a,o,s)}),n}l(sF,"lineReduce");function lF(i,e){if(e=e||{},!Di.isObject(e))throw new Error("options is invalid");var t=e.featureIndex||0,n=e.multiFeatureIndex||0,r=e.geometryIndex||0,a=e.segmentIndex||0,o=e.properties,s;switch(i.type){case"FeatureCollection":t<0&&(t=i.features.length+t),o=o||i.features[t].properties,s=i.features[t].geometry;break;case"Feature":o=o||i.properties,s=i.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":s=i;break;default:throw new Error("geojson is invalid")}if(s===null)return null;var c=s.coordinates;switch(s.type){case"Point":case"MultiPoint":return null;case"LineString":return a<0&&(a=c.length+a-1),Di.lineString([c[a],c[a+1]],o,e);case"Polygon":return r<0&&(r=c.length+r),a<0&&(a=c[r].length+a-1),Di.lineString([c[r][a],c[r][a+1]],o,e);case"MultiLineString":return n<0&&(n=c.length+n),a<0&&(a=c[n].length+a-1),Di.lineString([c[n][a],c[n][a+1]],o,e);case"MultiPolygon":return n<0&&(n=c.length+n),r<0&&(r=c[n].length+r),a<0&&(a=c[n][r].length-a-1),Di.lineString([c[n][r][a],c[n][r][a+1]],o,e)}throw new Error("geojson is invalid")}l(lF,"findSegment");function cF(i,e){if(e=e||{},!Di.isObject(e))throw new Error("options is invalid");var t=e.featureIndex||0,n=e.multiFeatureIndex||0,r=e.geometryIndex||0,a=e.coordIndex||0,o=e.properties,s;switch(i.type){case"FeatureCollection":t<0&&(t=i.features.length+t),o=o||i.features[t].properties,s=i.features[t].geometry;break;case"Feature":o=o||i.properties,s=i.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":s=i;break;default:throw new Error("geojson is invalid")}if(s===null)return null;var c=s.coordinates;switch(s.type){case"Point":return Di.point(c,o,e);case"MultiPoint":return n<0&&(n=c.length+n),Di.point(c[n],o,e);case"LineString":return a<0&&(a=c.length+a),Di.point(c[a],o,e);case"Polygon":return r<0&&(r=c.length+r),a<0&&(a=c[r].length+a),Di.point(c[r][a],o,e);case"MultiLineString":return n<0&&(n=c.length+n),a<0&&(a=c[n].length+a),Di.point(c[n][a],o,e);case"MultiPolygon":return n<0&&(n=c.length+n),r<0&&(r=c[n].length+r),a<0&&(a=c[n][r].length-a),Di.point(c[n][r][a],o,e)}throw new Error("geojson is invalid")}l(cF,"findPoint");li.coordAll=nF;li.coordEach=Hd;li.coordReduce=eF;li.featureEach=aC;li.featureReduce=iF;li.findPoint=cF;li.findSegment=lF;li.flattenEach=xg;li.flattenReduce=aF;li.geomEach=F5;li.geomReduce=rF;li.lineEach=sC;li.lineReduce=sF;li.propEach=rC;li.propReduce=tF;li.segmentEach=oC;li.segmentReduce=oF});var lC=pe(z5=>{"use strict";y();Object.defineProperty(z5,"__esModule",{value:!0});var uF=U5();function V5(i){var e=[1/0,1/0,-1/0,-1/0];return uF.coordEach(i,function(t){e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]<t[0]&&(e[2]=t[0]),e[3]<t[1]&&(e[3]=t[1])}),e}l(V5,"bbox");V5.default=V5;z5.default=V5});var pC=pe((nae,j5)=>{y();var Or=Jw(),uC=B5(),dC=U5(),ic=lC().default,dF=dC.featureEach,tae=dC.coordEach,iae=uC.polygon,cC=uC.featureCollection;function hC(i){var e=new Or(i);return e.insert=function(t){if(t.type!=="Feature")throw new Error("invalid feature");return t.bbox=t.bbox?t.bbox:ic(t),Or.prototype.insert.call(this,t)},e.load=function(t){var n=[];return Array.isArray(t)?t.forEach(function(r){if(r.type!=="Feature")throw new Error("invalid features");r.bbox=r.bbox?r.bbox:ic(r),n.push(r)}):dF(t,function(r){if(r.type!=="Feature")throw new Error("invalid features");r.bbox=r.bbox?r.bbox:ic(r),n.push(r)}),Or.prototype.load.call(this,n)},e.remove=function(t,n){if(t.type!=="Feature")throw new Error("invalid feature");return t.bbox=t.bbox?t.bbox:ic(t),Or.prototype.remove.call(this,t,n)},e.clear=function(){return Or.prototype.clear.call(this)},e.search=function(t){var n=Or.prototype.search.call(this,this.toBBox(t));return cC(n)},e.collides=function(t){return Or.prototype.collides.call(this,this.toBBox(t))},e.all=function(){var t=Or.prototype.all.call(this);return cC(t)},e.toJSON=function(){return Or.prototype.toJSON.call(this)},e.fromJSON=function(t){return Or.prototype.fromJSON.call(this,t)},e.toBBox=function(t){var n;if(t.bbox)n=t.bbox;else if(Array.isArray(t)&&t.length===4)n=t;else if(Array.isArray(t)&&t.length===6)n=[t[0],t[1],t[3],t[4]];else if(t.type==="Feature")n=ic(t);else if(t.type==="FeatureCollection")n=ic(t);else throw new Error("invalid geojson");return{minX:n[0],minY:n[1],maxX:n[2],maxY:n[3]}},e}l(hC,"geojsonRbush");j5.exports=hC;j5.exports.default=hC});var WC=pe(($d,Cg)=>{y();(function(i,e){"use strict";var t="0.7.33",n="",r="?",a="function",o="undefined",s="object",c="string",u="major",h="model",m="name",f="type",g="vendor",b="version",M="architecture",x="console",T="mobile",E="tablet",S="smarttv",_="wearable",P="embedded",q=350,D="Amazon",U="Apple",R="ASUS",B="BlackBerry",j="Browser",G="Chrome",Q="Edge",X="Firefox",ne="Google",$="Huawei",ue="LG",be="Microsoft",ee="Motorola",ge="Opera",de="Samsung",Ae="Sharp",Fe="Sony",Ce="Xiaomi",He="Zebra",kt="Facebook",$e=l(function(ie,oe){var le={};for(var fe in ie)oe[fe]&&oe[fe].length%2===0?le[fe]=oe[fe].concat(ie[fe]):le[fe]=ie[fe];return le},"extend"),ae=l(function(ie){for(var oe={},le=0;le<ie.length;le++)oe[ie[le].toUpperCase()]=ie[le];return oe},"enumerize"),ce=l(function(ie,oe){return typeof ie===c?Le(oe).indexOf(Le(ie))!==-1:!1},"has"),Le=l(function(ie){return ie.toLowerCase()},"lowerize"),St=l(function(ie){return typeof ie===c?ie.replace(/[^\d\.]/g,n).split(".")[0]:e},"majorize"),I=l(function(ie,oe){if(typeof ie===c)return ie=ie.replace(/^\s\s*/,n),typeof oe===o?ie:ie.substring(0,q)},"trim"),N=l(function(ie,oe){for(var le=0,fe,Pe,Ke,Xe,Bt,Xt;le<oe.length&&!Bt;){var br=oe[le],rs=oe[le+1];for(fe=Pe=0;fe<br.length&&!Bt;)if(Bt=br[fe++].exec(ie),Bt)for(Ke=0;Ke<rs.length;Ke++)Xt=Bt[++Pe],Xe=rs[Ke],typeof Xe===s&&Xe.length>0?Xe.length===2?typeof Xe[1]==a?this[Xe[0]]=Xe[1].call(this,Xt):this[Xe[0]]=Xe[1]:Xe.length===3?typeof Xe[1]===a&&!(Xe[1].exec&&Xe[1].test)?this[Xe[0]]=Xt?Xe[1].call(this,Xt,Xe[2]):e:this[Xe[0]]=Xt?Xt.replace(Xe[1],Xe[2]):e:Xe.length===4&&(this[Xe[0]]=Xt?Xe[3].call(this,Xt.replace(Xe[1],Xe[2])):e):this[Xe]=Xt||e;le+=2}},"rgxMapper"),O=l(function(ie,oe){for(var le in oe)if(typeof oe[le]===s&&oe[le].length>0){for(var fe=0;fe<oe[le].length;fe++)if(ce(oe[le][fe],ie))return le===r?e:le}else if(ce(oe[le],ie))return le===r?e:le;return ie},"strMapper"),H={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},Y={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2","8.1":"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},W={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[b,[m,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[b,[m,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[m,b],[/opios[\/ ]+([\w\.]+)/i],[b,[m,ge+" Mini"]],[/\bopr\/([\w\.]+)/i],[b,[m,ge]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[m,b],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[b,[m,"UC"+j]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[b,[m,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[b,[m,"WeChat"]],[/konqueror\/([\w\.]+)/i],[b,[m,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[b,[m,"IE"]],[/yabrowser\/([\w\.]+)/i],[b,[m,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[m,/(.+)/,"$1 Secure "+j],b],[/\bfocus\/([\w\.]+)/i],[b,[m,X+" Focus"]],[/\bopt\/([\w\.]+)/i],[b,[m,ge+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[b,[m,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[b,[m,"Dolphin"]],[/coast\/([\w\.]+)/i],[b,[m,ge+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[b,[m,"MIUI "+j]],[/fxios\/([-\w\.]+)/i],[b,[m,X]],[/\bqihu|(qi?ho?o?|360)browser/i],[[m,"360 "+j]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[m,/(.+)/,"$1 "+j],b],[/(comodo_dragon)\/([\w\.]+)/i],[[m,/_/g," "],b],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[m,b],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[m],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[m,kt],b],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[m,b],[/\bgsa\/([\w\.]+) .*safari\//i],[b,[m,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[b,[m,G+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[m,G+" WebView"],b],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[b,[m,"Android "+j]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[m,b],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[b,[m,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[b,m],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[m,[b,O,H]],[/(webkit|khtml)\/([\w\.]+)/i],[m,b],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[m,"Netscape"],b],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[b,[m,X+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[m,b],[/(cobalt)\/([\w\.]+)/i],[m,[b,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[M,"amd64"]],[/(ia32(?=;))/i],[[M,Le]],[/((?:i[346]|x)86)[;\)]/i],[[M,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[M,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[M,"armhf"]],[/windows (ce|mobile); ppc;/i],[[M,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[M,/ower/,n,Le]],[/(sun4\w)[;\)]/i],[[M,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[M,Le]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[h,[g,de],[f,E]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[h,[g,de],[f,T]],[/\((ip(?:hone|od)[\w ]*);/i],[h,[g,U],[f,T]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[h,[g,U],[f,E]],[/(macintosh);/i],[h,[g,U]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[h,[g,$],[f,E]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[h,[g,$],[f,T]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[h,/_/g," "],[g,Ce],[f,T]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[h,/_/g," "],[g,Ce],[f,E]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[h,[g,"OPPO"],[f,T]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[h,[g,"Vivo"],[f,T]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[h,[g,"Realme"],[f,T]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[h,[g,ee],[f,T]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[h,[g,ee],[f,E]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[h,[g,ue],[f,E]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[h,[g,ue],[f,T]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[h,[g,"Lenovo"],[f,E]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[h,/_/g," "],[g,"Nokia"],[f,T]],[/(pixel c)\b/i],[h,[g,ne],[f,E]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[h,[g,ne],[f,T]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[h,[g,Fe],[f,T]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[h,"Xperia Tablet"],[g,Fe],[f,E]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[h,[g,"OnePlus"],[f,T]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[h,[g,D],[f,E]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[h,/(.+)/g,"Fire Phone $1"],[g,D],[f,T]],[/(playbook);[-\w\),; ]+(rim)/i],[h,g,[f,E]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[h,[g,B],[f,T]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[h,[g,R],[f,E]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[h,[g,R],[f,T]],[/(nexus 9)/i],[h,[g,"HTC"],[f,E]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\w]*)/i],[g,[h,/_/g," "],[f,T]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[h,[g,"Acer"],[f,E]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[h,[g,"Meizu"],[f,T]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[h,[g,Ae],[f,T]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[g,h,[f,T]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[g,h,[f,E]],[/(surface duo)/i],[h,[g,be],[f,E]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[h,[g,"Fairphone"],[f,T]],[/(u304aa)/i],[h,[g,"AT&T"],[f,T]],[/\bsie-(\w*)/i],[h,[g,"Siemens"],[f,T]],[/\b(rct\w+) b/i],[h,[g,"RCA"],[f,E]],[/\b(venue[\d ]{2,7}) b/i],[h,[g,"Dell"],[f,E]],[/\b(q(?:mv|ta)\w+) b/i],[h,[g,"Verizon"],[f,E]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[h,[g,"Barnes & Noble"],[f,E]],[/\b(tm\d{3}\w+) b/i],[h,[g,"NuVision"],[f,E]],[/\b(k88) b/i],[h,[g,"ZTE"],[f,E]],[/\b(nx\d{3}j) b/i],[h,[g,"ZTE"],[f,T]],[/\b(gen\d{3}) b.+49h/i],[h,[g,"Swiss"],[f,T]],[/\b(zur\d{3}) b/i],[h,[g,"Swiss"],[f,E]],[/\b((zeki)?tb.*\b) b/i],[h,[g,"Zeki"],[f,E]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[g,"Dragon Touch"],h,[f,E]],[/\b(ns-?\w{0,9}) b/i],[h,[g,"Insignia"],[f,E]],[/\b((nxa|next)-?\w{0,9}) b/i],[h,[g,"NextBook"],[f,E]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[g,"Voice"],h,[f,T]],[/\b(lvtel\-)?(v1[12]) b/i],[[g,"LvTel"],h,[f,T]],[/\b(ph-1) /i],[h,[g,"Essential"],[f,T]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[h,[g,"Envizen"],[f,E]],[/\b(trio[-\w\. ]+) b/i],[h,[g,"MachSpeed"],[f,E]],[/\btu_(1491) b/i],[h,[g,"Rotor"],[f,E]],[/(shield[\w ]+) b/i],[h,[g,"Nvidia"],[f,E]],[/(sprint) (\w+)/i],[g,h,[f,T]],[/(kin\.[onetw]{3})/i],[[h,/\./g," "],[g,be],[f,T]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[h,[g,He],[f,E]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[h,[g,He],[f,T]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[g,h,[f,x]],[/droid.+; (shield) bui/i],[h,[g,"Nvidia"],[f,x]],[/(playstation [345portablevi]+)/i],[h,[g,Fe],[f,x]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[h,[g,be],[f,x]],[/smart-tv.+(samsung)/i],[g,[f,S]],[/hbbtv.+maple;(\d+)/i],[[h,/^/,"SmartTV"],[g,de],[f,S]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[g,ue],[f,S]],[/(apple) ?tv/i],[g,[h,U+" TV"],[f,S]],[/crkey/i],[[h,G+"cast"],[g,ne],[f,S]],[/droid.+aft(\w)( bui|\))/i],[h,[g,D],[f,S]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[h,[g,Ae],[f,S]],[/(bravia[\w ]+)( bui|\))/i],[h,[g,Fe],[f,S]],[/(mitv-\w{5}) bui/i],[h,[g,Ce],[f,S]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[g,I],[h,I],[f,S]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[f,S]],[/((pebble))app/i],[g,h,[f,_]],[/droid.+; (glass) \d/i],[h,[g,ne],[f,_]],[/droid.+; (wt63?0{2,3})\)/i],[h,[g,He],[f,_]],[/(quest( 2)?)/i],[h,[g,kt],[f,_]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[g,[f,P]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[h,[f,T]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[h,[f,E]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[f,E]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[f,T]],[/(android[-\w\. ]{0,9});.+buil/i],[h,[g,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[b,[m,Q+"HTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[b,[m,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[m,b],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[b,m]],os:[[/microsoft (windows) (vista|xp)/i],[m,b],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[m,[b,O,Y]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[m,"Windows"],[b,O,Y]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[b,/_/g,"."],[m,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[m,"Mac OS"],[b,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[b,m],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[m,b],[/\(bb(10);/i],[b,[m,B]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[b,[m,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[b,[m,X+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[b,[m,"webOS"]],[/crkey\/([\d\.]+)/i],[b,[m,G+"cast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[m,"Chromium OS"],b],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[m,b],[/(sunos) ?([\w\.\d]*)/i],[[m,"Solaris"],b],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[m,b]]},J=l(function(ie,oe){if(typeof ie===s&&(oe=ie,ie=e),!(this instanceof J))return new J(ie,oe).getResult();var le=ie||(typeof i!==o&&i.navigator&&i.navigator.userAgent?i.navigator.userAgent:n),fe=oe?$e(W,oe):W;return this.getBrowser=function(){var Pe={};return Pe[m]=e,Pe[b]=e,N.call(Pe,le,fe.browser),Pe.major=St(Pe.version),Pe},this.getCPU=function(){var Pe={};return Pe[M]=e,N.call(Pe,le,fe.cpu),Pe},this.getDevice=function(){var Pe={};return Pe[g]=e,Pe[h]=e,Pe[f]=e,N.call(Pe,le,fe.device),Pe},this.getEngine=function(){var Pe={};return Pe[m]=e,Pe[b]=e,N.call(Pe,le,fe.engine),Pe},this.getOS=function(){var Pe={};return Pe[m]=e,Pe[b]=e,N.call(Pe,le,fe.os),Pe},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return le},this.setUA=function(Pe){return le=typeof Pe===c&&Pe.length>q?I(Pe,q):Pe,this},this.setUA(le),this},"UAParser");J.VERSION=t,J.BROWSER=ae([m,b,u]),J.CPU=ae([M]),J.DEVICE=ae([h,g,f,x,T,S,E,_,P]),J.ENGINE=J.OS=ae([m,b]),typeof $d!==o?(typeof Cg!==o&&Cg.exports&&($d=Cg.exports=J),$d.UAParser=J):typeof define===a&&define.amd?define(function(){return J}):typeof i!==o&&(i.UAParser=J);var Te=typeof i!==o&&(i.jQuery||i.Zepto);if(Te&&!Te.ua){var se=new J;Te.ua=se.getResult(),Te.ua.get=function(){return se.getUA()},Te.ua.set=function(ie){se.setUA(ie);var oe=se.getResult();for(var le in oe)Te.ua[le]=oe[le]}}})(typeof window=="object"?window:$d)});var T6=pe((Tce,Lg)=>{"use strict";y();Lg.exports=l(function(e){if(!Array.isArray(e))throw new TypeError("array-unique expects an array.");for(var t=e.length,n=-1;n++<t;)for(var r=n+1;r<e.length;++r)e[n]===e[r]&&e.splice(r--,1);return e},"unique");Lg.exports.immutable=l(function(e){if(!Array.isArray(e))throw new TypeError("array-unique expects an array.");for(var t=e.length,n=new Array(t),r=0;r<t;r++)n[r]=e[r];return Lg.exports(n)},"uniqueImmutable")});var TA=pe((Tde,xA)=>{"use strict";y();xA.exports=i=>encodeURIComponent(i).replace(/[!'()*]/g,e=>"%".concat(e.charCodeAt(0).toString(16).toUpperCase()))});var AA=pe((Ede,CA)=>{"use strict";y();var wA="%[a-f0-9]{2}",MA=new RegExp("("+wA+")|([^%]+?)","gi"),EA=new RegExp("("+wA+")+","gi");function N6(i,e){try{return[decodeURIComponent(i.join(""))]}catch{}if(i.length===1)return i;e=e||1;var t=i.slice(0,e),n=i.slice(e);return Array.prototype.concat.call([],N6(t),N6(n))}l(N6,"decodeComponents");function lU(i){try{return decodeURIComponent(i)}catch{for(var e=i.match(MA)||[],t=1;t<e.length;t++)i=N6(e,t).join(""),e=i.match(MA)||[];return i}}l(lU,"decode");function cU(i){for(var e={"%FE%FF":"\uFFFD\uFFFD","%FF%FE":"\uFFFD\uFFFD"},t=EA.exec(i);t;){try{e[t[0]]=decodeURIComponent(t[0])}catch{var n=lU(t[0]);n!==t[0]&&(e[t[0]]=n)}t=EA.exec(i)}e["%C2"]="\uFFFD";for(var r=Object.keys(e),a=0;a<r.length;a++){var o=r[a];i=i.replace(new RegExp(o,"g"),e[o])}return i}l(cU,"customDecodeURIComponent");CA.exports=function(i){if(typeof i!="string")throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof i+"`");try{return i=i.replace(/\+/g," "),decodeURIComponent(i)}catch{return cU(i)}}});var SA=pe((Ade,PA)=>{"use strict";y();PA.exports=(i,e)=>{if(!(typeof i=="string"&&typeof e=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(e==="")return[i];let t=i.indexOf(e);return t===-1?[i]:[i.slice(0,t),i.slice(t+e.length)]}});var _A=pe((Sde,IA)=>{"use strict";y();IA.exports=function(i,e){for(var t={},n=Object.keys(i),r=Array.isArray(e),a=0;a<n.length;a++){var o=n[a],s=i[o];(r?e.indexOf(o)!==-1:e(o,s,i))&&(t[o]=s)}return t}});var BA=pe(dn=>{"use strict";y();var uU=TA(),dU=AA(),DA=SA(),hU=_A(),pU=l(i=>i==null,"isNullOrUndefined"),k6=Symbol("encodeFragmentIdentifier");function fU(i){switch(i.arrayFormat){case"index":return e=>(t,n)=>{let r=t.length;return n===void 0||i.skipNull&&n===null||i.skipEmptyString&&n===""?t:n===null?[...t,[bi(e,i),"[",r,"]"].join("")]:[...t,[bi(e,i),"[",bi(r,i),"]=",bi(n,i)].join("")]};case"bracket":return e=>(t,n)=>n===void 0||i.skipNull&&n===null||i.skipEmptyString&&n===""?t:n===null?[...t,[bi(e,i),"[]"].join("")]:[...t,[bi(e,i),"[]=",bi(n,i)].join("")];case"comma":case"separator":case"bracket-separator":{let e=i.arrayFormat==="bracket-separator"?"[]=":"=";return t=>(n,r)=>r===void 0||i.skipNull&&r===null||i.skipEmptyString&&r===""?n:(r=r===null?"":r,n.length===0?[[bi(t,i),e,bi(r,i)].join("")]:[[n,bi(r,i)].join(i.arrayFormatSeparator)])}default:return e=>(t,n)=>n===void 0||i.skipNull&&n===null||i.skipEmptyString&&n===""?t:n===null?[...t,bi(e,i)]:[...t,[bi(e,i),"=",bi(n,i)].join("")]}}l(fU,"encoderForArrayFormat");function mU(i){let e;switch(i.arrayFormat){case"index":return(t,n,r)=>{if(e=/\[(\d*)\]$/.exec(t),t=t.replace(/\[\d*\]$/,""),!e){r[t]=n;return}r[t]===void 0&&(r[t]={}),r[t][e[1]]=n};case"bracket":return(t,n,r)=>{if(e=/(\[\])$/.exec(t),t=t.replace(/\[\]$/,""),!e){r[t]=n;return}if(r[t]===void 0){r[t]=[n];return}r[t]=[].concat(r[t],n)};case"comma":case"separator":return(t,n,r)=>{let a=typeof n=="string"&&n.includes(i.arrayFormatSeparator),o=typeof n=="string"&&!a&&ya(n,i).includes(i.arrayFormatSeparator);n=o?ya(n,i):n;let s=a||o?n.split(i.arrayFormatSeparator).map(c=>ya(c,i)):n===null?n:ya(n,i);r[t]=s};case"bracket-separator":return(t,n,r)=>{let a=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!a){r[t]=n&&ya(n,i);return}let o=n===null?[]:n.split(i.arrayFormatSeparator).map(s=>ya(s,i));if(r[t]===void 0){r[t]=o;return}r[t]=[].concat(r[t],o)};default:return(t,n,r)=>{if(r[t]===void 0){r[t]=n;return}r[t]=[].concat(r[t],n)}}}l(mU,"parserForArrayFormat");function LA(i){if(typeof i!="string"||i.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}l(LA,"validateArrayFormatSeparator");function bi(i,e){return e.encode?e.strict?uU(i):encodeURIComponent(i):i}l(bi,"encode");function ya(i,e){return e.decode?dU(i):i}l(ya,"decode");function qA(i){return Array.isArray(i)?i.sort():typeof i=="object"?qA(Object.keys(i)).sort((e,t)=>Number(e)-Number(t)).map(e=>i[e]):i}l(qA,"keysSorter");function RA(i){let e=i.indexOf("#");return e!==-1&&(i=i.slice(0,e)),i}l(RA,"removeHash");function gU(i){let e="",t=i.indexOf("#");return t!==-1&&(e=i.slice(t)),e}l(gU,"getHash");function NA(i){i=RA(i);let e=i.indexOf("?");return e===-1?"":i.slice(e+1)}l(NA,"extract");function OA(i,e){return e.parseNumbers&&!Number.isNaN(Number(i))&&typeof i=="string"&&i.trim()!==""?i=Number(i):e.parseBooleans&&i!==null&&(i.toLowerCase()==="true"||i.toLowerCase()==="false")&&(i=i.toLowerCase()==="true"),i}l(OA,"parseValue");function kA(i,e){e=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},e),LA(e.arrayFormatSeparator);let t=mU(e),n=Object.create(null);if(typeof i!="string"||(i=i.trim().replace(/^[?#&]/,""),!i))return n;for(let r of i.split("&")){if(r==="")continue;let[a,o]=DA(e.decode?r.replace(/\+/g," "):r,"=");o=o===void 0?null:["comma","separator","bracket-separator"].includes(e.arrayFormat)?o:ya(o,e),t(ya(a,e),o,n)}for(let r of Object.keys(n)){let a=n[r];if(typeof a=="object"&&a!==null)for(let o of Object.keys(a))a[o]=OA(a[o],e);else n[r]=OA(a,e)}return e.sort===!1?n:(e.sort===!0?Object.keys(n).sort():Object.keys(n).sort(e.sort)).reduce((r,a)=>{let o=n[a];return o&&typeof o=="object"&&!Array.isArray(o)?r[a]=qA(o):r[a]=o,r},Object.create(null))}l(kA,"parse");dn.extract=NA;dn.parse=kA;dn.stringify=(i,e)=>{if(!i)return"";e=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},e),LA(e.arrayFormatSeparator);let t=l(o=>e.skipNull&&pU(i[o])||e.skipEmptyString&&i[o]==="","shouldFilter"),n=fU(e),r={};for(let o of Object.keys(i))t(o)||(r[o]=i[o]);let a=Object.keys(r);return e.sort!==!1&&a.sort(e.sort),a.map(o=>{let s=i[o];return s===void 0?"":s===null?bi(o,e):Array.isArray(s)?s.length===0&&e.arrayFormat==="bracket-separator"?bi(o,e)+"[]":s.reduce(n(o),[]).join("&"):bi(o,e)+"="+bi(s,e)}).filter(o=>o.length>0).join("&")};dn.parseUrl=(i,e)=>{e=Object.assign({decode:!0},e);let[t,n]=DA(i,"#");return Object.assign({url:t.split("?")[0]||"",query:kA(NA(i),e)},e&&e.parseFragmentIdentifier&&n?{fragmentIdentifier:ya(n,e)}:{})};dn.stringifyUrl=(i,e)=>{e=Object.assign({encode:!0,strict:!0,[k6]:!0},e);let t=RA(i.url).split("?")[0]||"",n=dn.extract(i.url),r=dn.parse(n,{sort:!1}),a=Object.assign(r,i.query),o=dn.stringify(a,e);o&&(o="?".concat(o));let s=gU(i.url);return i.fragmentIdentifier&&(s="#".concat(e[k6]?bi(i.fragmentIdentifier,e):i.fragmentIdentifier)),"".concat(t).concat(o).concat(s)};dn.pick=(i,e,t)=>{t=Object.assign({parseFragmentIdentifier:!0,[k6]:!1},t);let{url:n,query:r,fragmentIdentifier:a}=dn.parseUrl(i,t);return dn.stringifyUrl({url:n,query:hU(r,e),fragmentIdentifier:a},t)};dn.exclude=(i,e,t)=>{let n=Array.isArray(e)?r=>!e.includes(r):(r,a)=>!e(r,a);return dn.pick(i,n,t)}});var Vr=pe((U6,V6)=>{y();var z6=l(function(){this._tweens={},this._tweensAddedDuringUpdate={}},"_Group");z6.prototype={getAll:function(){return Object.keys(this._tweens).map((function(i){return this._tweens[i]}).bind(this))},removeAll:function(){this._tweens={}},add:function(i){this._tweens[i.getId()]=i,this._tweensAddedDuringUpdate[i.getId()]=i},remove:function(i){delete this._tweens[i.getId()],delete this._tweensAddedDuringUpdate[i.getId()]},update:function(i,e){var t=Object.keys(this._tweens);if(t.length===0)return!1;for(i=i!==void 0?i:lt.now();t.length>0;){this._tweensAddedDuringUpdate={};for(var n=0;n<t.length;n++){var r=this._tweens[t[n]];r&&r.update(i)===!1&&(r._isPlaying=!1,e||delete this._tweens[t[n]])}t=Object.keys(this._tweensAddedDuringUpdate)}return!0}};var lt=new z6;lt.Group=z6;lt._nextId=0;lt.nextId=function(){return lt._nextId++};typeof self>"u"&&typeof C<"u"&&C.hrtime?lt.now=function(){var i=C.hrtime();return i[0]*1e3+i[1]/1e6}:typeof self<"u"&&self.performance!==void 0&&self.performance.now!==void 0?lt.now=self.performance.now.bind(self.performance):Date.now!==void 0?lt.now=Date.now:lt.now=function(){return new Date().getTime()};lt.Tween=function(i,e){this._object=i,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._repeatDelayTime=void 0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=lt.Easing.Linear.None,this._interpolationFunction=lt.Interpolation.Linear,this._chainedTweens=[],this._onStartCallback=null,this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onRepeatCallback=null,this._onCompleteCallback=null,this._onStopCallback=null,this._group=e||lt,this._id=lt.nextId()};lt.Tween.prototype={getId:function(){return this._id},isPlaying:function(){return this._isPlaying},to:function(i,e){return this._valuesEnd=i,e!==void 0&&(this._duration=e),this},duration:l(function(e){return this._duration=e,this},"duration"),start:function(i){this._group.add(this),this._isPlaying=!0,this._onStartCallbackFired=!1,this._startTime=i!==void 0?typeof i=="string"?lt.now()+parseFloat(i):i:lt.now(),this._startTime+=this._delayTime;for(var e in this._valuesEnd){if(this._valuesEnd[e]instanceof Array){if(this._valuesEnd[e].length===0)continue;this._valuesEnd[e]=[this._object[e]].concat(this._valuesEnd[e])}this._object[e]!==void 0&&(this._valuesStart[e]=this._object[e],this._valuesStart[e]instanceof Array||(this._valuesStart[e]*=1),this._valuesStartRepeat[e]=this._valuesStart[e]||0)}return this},stop:function(){return this._isPlaying?(this._group.remove(this),this._isPlaying=!1,this._onStopCallback!==null&&this._onStopCallback(this._object),this.stopChainedTweens(),this):this},end:function(){return this.update(1/0),this},stopChainedTweens:function(){for(var i=0,e=this._chainedTweens.length;i<e;i++)this._chainedTweens[i].stop()},group:function(i){return this._group=i,this},delay:function(i){return this._delayTime=i,this},repeat:function(i){return this._repeat=i,this},repeatDelay:function(i){return this._repeatDelayTime=i,this},yoyo:function(i){return this._yoyo=i,this},easing:function(i){return this._easingFunction=i,this},interpolation:function(i){return this._interpolationFunction=i,this},chain:function(){return this._chainedTweens=arguments,this},onStart:function(i){return this._onStartCallback=i,this},onUpdate:function(i){return this._onUpdateCallback=i,this},onRepeat:l(function(e){return this._onRepeatCallback=e,this},"onRepeat"),onComplete:function(i){return this._onCompleteCallback=i,this},onStop:function(i){return this._onStopCallback=i,this},update:function(i){var e,t,n;if(i<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback!==null&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),t=(i-this._startTime)/this._duration,t=this._duration===0||t>1?1:t,n=this._easingFunction(t);for(e in this._valuesEnd)if(this._valuesStart[e]!==void 0){var r=this._valuesStart[e]||0,a=this._valuesEnd[e];a instanceof Array?this._object[e]=this._interpolationFunction(a,n):(typeof a=="string"&&(a.charAt(0)==="+"||a.charAt(0)==="-"?a=r+parseFloat(a):a=parseFloat(a)),typeof a=="number"&&(this._object[e]=r+(a-r)*n))}if(this._onUpdateCallback!==null&&this._onUpdateCallback(this._object,t),t===1)if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(e in this._valuesStartRepeat){if(typeof this._valuesEnd[e]=="string"&&(this._valuesStartRepeat[e]=this._valuesStartRepeat[e]+parseFloat(this._valuesEnd[e])),this._yoyo){var o=this._valuesStartRepeat[e];this._valuesStartRepeat[e]=this._valuesEnd[e],this._valuesEnd[e]=o}this._valuesStart[e]=this._valuesStartRepeat[e]}return this._yoyo&&(this._reversed=!this._reversed),this._repeatDelayTime!==void 0?this._startTime=i+this._repeatDelayTime:this._startTime=i+this._delayTime,this._onRepeatCallback!==null&&this._onRepeatCallback(this._object),!0}else{this._onCompleteCallback!==null&&this._onCompleteCallback(this._object);for(var s=0,c=this._chainedTweens.length;s<c;s++)this._chainedTweens[s].start(this._startTime+this._duration);return!1}return!0}};lt.Easing={Linear:{None:function(i){return i}},Quadratic:{In:function(i){return i*i},Out:function(i){return i*(2-i)},InOut:function(i){return(i*=2)<1?.5*i*i:-.5*(--i*(i-2)-1)}},Cubic:{In:function(i){return i*i*i},Out:function(i){return--i*i*i+1},InOut:function(i){return(i*=2)<1?.5*i*i*i:.5*((i-=2)*i*i+2)}},Quartic:{In:function(i){return i*i*i*i},Out:function(i){return 1- --i*i*i*i},InOut:function(i){return(i*=2)<1?.5*i*i*i*i:-.5*((i-=2)*i*i*i-2)}},Quintic:{In:function(i){return i*i*i*i*i},Out:function(i){return--i*i*i*i*i+1},InOut:function(i){return(i*=2)<1?.5*i*i*i*i*i:.5*((i-=2)*i*i*i*i+2)}},Sinusoidal:{In:function(i){return 1-Math.cos(i*Math.PI/2)},Out:function(i){return Math.sin(i*Math.PI/2)},InOut:function(i){return .5*(1-Math.cos(Math.PI*i))}},Exponential:{In:function(i){return i===0?0:Math.pow(1024,i-1)},Out:function(i){return i===1?1:1-Math.pow(2,-10*i)},InOut:function(i){return i===0?0:i===1?1:(i*=2)<1?.5*Math.pow(1024,i-1):.5*(-Math.pow(2,-10*(i-1))+2)}},Circular:{In:function(i){return 1-Math.sqrt(1-i*i)},Out:function(i){return Math.sqrt(1- --i*i)},InOut:function(i){return(i*=2)<1?-.5*(Math.sqrt(1-i*i)-1):.5*(Math.sqrt(1-(i-=2)*i)+1)}},Elastic:{In:function(i){return i===0?0:i===1?1:-Math.pow(2,10*(i-1))*Math.sin((i-1.1)*5*Math.PI)},Out:function(i){return i===0?0:i===1?1:Math.pow(2,-10*i)*Math.sin((i-.1)*5*Math.PI)+1},InOut:function(i){return i===0?0:i===1?1:(i*=2,i<1?-.5*Math.pow(2,10*(i-1))*Math.sin((i-1.1)*5*Math.PI):.5*Math.pow(2,-10*(i-1))*Math.sin((i-1.1)*5*Math.PI)+1)}},Back:{In:function(i){var e=1.70158;return i*i*((e+1)*i-e)},Out:function(i){var e=1.70158;return--i*i*((e+1)*i+e)+1},InOut:function(i){var e=2.5949095;return(i*=2)<1?.5*(i*i*((e+1)*i-e)):.5*((i-=2)*i*((e+1)*i+e)+2)}},Bounce:{In:function(i){return 1-lt.Easing.Bounce.Out(1-i)},Out:function(i){return i<1/2.75?7.5625*i*i:i<2/2.75?7.5625*(i-=1.5/2.75)*i+.75:i<2.5/2.75?7.5625*(i-=2.25/2.75)*i+.9375:7.5625*(i-=2.625/2.75)*i+.984375},InOut:function(i){return i<.5?lt.Easing.Bounce.In(i*2)*.5:lt.Easing.Bounce.Out(i*2-1)*.5+.5}}};lt.Interpolation={Linear:function(i,e){var t=i.length-1,n=t*e,r=Math.floor(n),a=lt.Interpolation.Utils.Linear;return e<0?a(i[0],i[1],n):e>1?a(i[t],i[t-1],t-n):a(i[r],i[r+1>t?t:r+1],n-r)},Bezier:function(i,e){for(var t=0,n=i.length-1,r=Math.pow,a=lt.Interpolation.Utils.Bernstein,o=0;o<=n;o++)t+=r(1-e,n-o)*r(e,o)*i[o]*a(n,o);return t},CatmullRom:function(i,e){var t=i.length-1,n=t*e,r=Math.floor(n),a=lt.Interpolation.Utils.CatmullRom;return i[0]===i[t]?(e<0&&(r=Math.floor(n=t*(1+e))),a(i[(r-1+t)%t],i[r],i[(r+1)%t],i[(r+2)%t],n-r)):e<0?i[0]-(a(i[0],i[0],i[1],i[1],-n)-i[0]):e>1?i[t]-(a(i[t],i[t],i[t-1],i[t-1],n-t)-i[t]):a(i[r?r-1:0],i[r],i[t<r+1?t:r+1],i[t<r+2?t:r+2],n-r)},Utils:{Linear:function(i,e,t){return(e-i)*t+i},Bernstein:function(i,e){var t=lt.Interpolation.Utils.Factorial;return t(i)/t(e)/t(i-e)},Factorial:function(){var i=[1];return function(e){var t=1;if(i[e])return i[e];for(var n=e;n>1;n--)t*=n;return i[e]=t,t}}(),CatmullRom:function(i,e,t,n,r){var a=(t-i)*.5,o=(n-e)*.5,s=r*r,c=r*s;return(2*e-2*t+a+o)*c+(-3*e+3*t-2*a-o)*s+a*r+e}}};(function(i){typeof define=="function"&&define.amd?define([],function(){return lt}):typeof V6<"u"&&typeof U6=="object"?V6.exports=lt:i!==void 0&&(i.TWEEN=lt)})(U6)});var ab=pe((spe,Fg)=>{y();(function(i){var e=/^\s+/,t=/\s+$/,n=0,r=i.round,a=i.min,o=i.max,s=i.random;function c(I,N){if(I=I||"",N=N||{},I instanceof c)return I;if(!(this instanceof c))return new c(I,N);var O=u(I);this._originalInput=I,this._r=O.r,this._g=O.g,this._b=O.b,this._a=O.a,this._roundA=r(100*this._a)/100,this._format=N.format||O.format,this._gradientType=N.gradientType,this._r<1&&(this._r=r(this._r)),this._g<1&&(this._g=r(this._g)),this._b<1&&(this._b=r(this._b)),this._ok=O.ok,this._tc_id=n++}l(c,"tinycolor"),c.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var I=this.toRgb();return(I.r*299+I.g*587+I.b*114)/1e3},getLuminance:function(){var I=this.toRgb(),N,O,H,Y,W,J;return N=I.r/255,O=I.g/255,H=I.b/255,N<=.03928?Y=N/12.92:Y=i.pow((N+.055)/1.055,2.4),O<=.03928?W=O/12.92:W=i.pow((O+.055)/1.055,2.4),H<=.03928?J=H/12.92:J=i.pow((H+.055)/1.055,2.4),.2126*Y+.7152*W+.0722*J},setAlpha:function(I){return this._a=be(I),this._roundA=r(100*this._a)/100,this},toHsv:function(){var I=g(this._r,this._g,this._b);return{h:I.h*360,s:I.s,v:I.v,a:this._a}},toHsvString:function(){var I=g(this._r,this._g,this._b),N=r(I.h*360),O=r(I.s*100),H=r(I.v*100);return this._a==1?"hsv("+N+", "+O+"%, "+H+"%)":"hsva("+N+", "+O+"%, "+H+"%, "+this._roundA+")"},toHsl:function(){var I=m(this._r,this._g,this._b);return{h:I.h*360,s:I.s,l:I.l,a:this._a}},toHslString:function(){var I=m(this._r,this._g,this._b),N=r(I.h*360),O=r(I.s*100),H=r(I.l*100);return this._a==1?"hsl("+N+", "+O+"%, "+H+"%)":"hsla("+N+", "+O+"%, "+H+"%, "+this._roundA+")"},toHex:function(I){return M(this._r,this._g,this._b,I)},toHexString:function(I){return"#"+this.toHex(I)},toHex8:function(I){return x(this._r,this._g,this._b,this._a,I)},toHex8String:function(I){return"#"+this.toHex8(I)},toRgb:function(){return{r:r(this._r),g:r(this._g),b:r(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+r(this._r)+", "+r(this._g)+", "+r(this._b)+")":"rgba("+r(this._r)+", "+r(this._g)+", "+r(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:r(ee(this._r,255)*100)+"%",g:r(ee(this._g,255)*100)+"%",b:r(ee(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+r(ee(this._r,255)*100)+"%, "+r(ee(this._g,255)*100)+"%, "+r(ee(this._b,255)*100)+"%)":"rgba("+r(ee(this._r,255)*100)+"%, "+r(ee(this._g,255)*100)+"%, "+r(ee(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:$[M(this._r,this._g,this._b,!0)]||!1},toFilter:function(I){var N="#"+T(this._r,this._g,this._b,this._a),O=N,H=this._gradientType?"GradientType = 1, ":"";if(I){var Y=c(I);O="#"+T(Y._r,Y._g,Y._b,Y._a)}return"progid:DXImageTransform.Microsoft.gradient("+H+"startColorstr="+N+",endColorstr="+O+")"},toString:function(I){var N=!!I;I=I||this._format;var O=!1,H=this._a<1&&this._a>=0,Y=!N&&H&&(I==="hex"||I==="hex6"||I==="hex3"||I==="hex4"||I==="hex8"||I==="name");return Y?I==="name"&&this._a===0?this.toName():this.toRgbString():(I==="rgb"&&(O=this.toRgbString()),I==="prgb"&&(O=this.toPercentageRgbString()),(I==="hex"||I==="hex6")&&(O=this.toHexString()),I==="hex3"&&(O=this.toHexString(!0)),I==="hex4"&&(O=this.toHex8String(!0)),I==="hex8"&&(O=this.toHex8String()),I==="name"&&(O=this.toName()),I==="hsl"&&(O=this.toHslString()),I==="hsv"&&(O=this.toHsvString()),O||this.toHexString())},clone:function(){return c(this.toString())},_applyModification:function(I,N){var O=I.apply(null,[this].concat([].slice.call(N)));return this._r=O._r,this._g=O._g,this._b=O._b,this.setAlpha(O._a),this},lighten:function(){return this._applyModification(P,arguments)},brighten:function(){return this._applyModification(q,arguments)},darken:function(){return this._applyModification(D,arguments)},desaturate:function(){return this._applyModification(E,arguments)},saturate:function(){return this._applyModification(S,arguments)},greyscale:function(){return this._applyModification(_,arguments)},spin:function(){return this._applyModification(U,arguments)},_applyCombination:function(I,N){return I.apply(null,[this].concat([].slice.call(N)))},analogous:function(){return this._applyCombination(Q,arguments)},complement:function(){return this._applyCombination(R,arguments)},monochromatic:function(){return this._applyCombination(X,arguments)},splitcomplement:function(){return this._applyCombination(G,arguments)},triad:function(){return this._applyCombination(B,arguments)},tetrad:function(){return this._applyCombination(j,arguments)}},c.fromRatio=function(I,N){if(typeof I=="object"){var O={};for(var H in I)I.hasOwnProperty(H)&&(H==="a"?O[H]=I[H]:O[H]=He(I[H]));I=O}return c(I,N)};function u(I){var N={r:0,g:0,b:0},O=1,H=null,Y=null,W=null,J=!1,Te=!1;return typeof I=="string"&&(I=Le(I)),typeof I=="object"&&(ce(I.r)&&ce(I.g)&&ce(I.b)?(N=h(I.r,I.g,I.b),J=!0,Te=String(I.r).substr(-1)==="%"?"prgb":"rgb"):ce(I.h)&&ce(I.s)&&ce(I.v)?(H=He(I.s),Y=He(I.v),N=b(I.h,H,Y),J=!0,Te="hsv"):ce(I.h)&&ce(I.s)&&ce(I.l)&&(H=He(I.s),W=He(I.l),N=f(I.h,H,W),J=!0,Te="hsl"),I.hasOwnProperty("a")&&(O=I.a)),O=be(O),{ok:J,format:I.format||Te,r:a(255,o(N.r,0)),g:a(255,o(N.g,0)),b:a(255,o(N.b,0)),a:O}}l(u,"inputToRGB");function h(I,N,O){return{r:ee(I,255)*255,g:ee(N,255)*255,b:ee(O,255)*255}}l(h,"rgbToRgb");function m(I,N,O){I=ee(I,255),N=ee(N,255),O=ee(O,255);var H=o(I,N,O),Y=a(I,N,O),W,J,Te=(H+Y)/2;if(H==Y)W=J=0;else{var se=H-Y;switch(J=Te>.5?se/(2-H-Y):se/(H+Y),H){case I:W=(N-O)/se+(N<O?6:0);break;case N:W=(O-I)/se+2;break;case O:W=(I-N)/se+4;break}W/=6}return{h:W,s:J,l:Te}}l(m,"rgbToHsl");function f(I,N,O){var H,Y,W;I=ee(I,360),N=ee(N,100),O=ee(O,100);function J(ie,oe,le){return le<0&&(le+=1),le>1&&(le-=1),le<1/6?ie+(oe-ie)*6*le:le<1/2?oe:le<2/3?ie+(oe-ie)*(2/3-le)*6:ie}if(l(J,"hue2rgb"),N===0)H=Y=W=O;else{var Te=O<.5?O*(1+N):O+N-O*N,se=2*O-Te;H=J(se,Te,I+1/3),Y=J(se,Te,I),W=J(se,Te,I-1/3)}return{r:H*255,g:Y*255,b:W*255}}l(f,"hslToRgb");function g(I,N,O){I=ee(I,255),N=ee(N,255),O=ee(O,255);var H=o(I,N,O),Y=a(I,N,O),W,J,Te=H,se=H-Y;if(J=H===0?0:se/H,H==Y)W=0;else{switch(H){case I:W=(N-O)/se+(N<O?6:0);break;case N:W=(O-I)/se+2;break;case O:W=(I-N)/se+4;break}W/=6}return{h:W,s:J,v:Te}}l(g,"rgbToHsv");function b(I,N,O){I=ee(I,360)*6,N=ee(N,100),O=ee(O,100);var H=i.floor(I),Y=I-H,W=O*(1-N),J=O*(1-Y*N),Te=O*(1-(1-Y)*N),se=H%6,ie=[O,J,W,W,Te,O][se],oe=[Te,O,O,J,W,W][se],le=[W,W,Te,O,O,J][se];return{r:ie*255,g:oe*255,b:le*255}}l(b,"hsvToRgb");function M(I,N,O,H){var Y=[Ce(r(I).toString(16)),Ce(r(N).toString(16)),Ce(r(O).toString(16))];return H&&Y[0].charAt(0)==Y[0].charAt(1)&&Y[1].charAt(0)==Y[1].charAt(1)&&Y[2].charAt(0)==Y[2].charAt(1)?Y[0].charAt(0)+Y[1].charAt(0)+Y[2].charAt(0):Y.join("")}l(M,"rgbToHex");function x(I,N,O,H,Y){var W=[Ce(r(I).toString(16)),Ce(r(N).toString(16)),Ce(r(O).toString(16)),Ce(kt(H))];return Y&&W[0].charAt(0)==W[0].charAt(1)&&W[1].charAt(0)==W[1].charAt(1)&&W[2].charAt(0)==W[2].charAt(1)&&W[3].charAt(0)==W[3].charAt(1)?W[0].charAt(0)+W[1].charAt(0)+W[2].charAt(0)+W[3].charAt(0):W.join("")}l(x,"rgbaToHex");function T(I,N,O,H){var Y=[Ce(kt(H)),Ce(r(I).toString(16)),Ce(r(N).toString(16)),Ce(r(O).toString(16))];return Y.join("")}l(T,"rgbaToArgbHex"),c.equals=function(I,N){return!I||!N?!1:c(I).toRgbString()==c(N).toRgbString()},c.random=function(){return c.fromRatio({r:s(),g:s(),b:s()})};function E(I,N){N=N===0?0:N||10;var O=c(I).toHsl();return O.s-=N/100,O.s=ge(O.s),c(O)}l(E,"desaturate");function S(I,N){N=N===0?0:N||10;var O=c(I).toHsl();return O.s+=N/100,O.s=ge(O.s),c(O)}l(S,"saturate");function _(I){return c(I).desaturate(100)}l(_,"greyscale");function P(I,N){N=N===0?0:N||10;var O=c(I).toHsl();return O.l+=N/100,O.l=ge(O.l),c(O)}l(P,"lighten");function q(I,N){N=N===0?0:N||10;var O=c(I).toRgb();return O.r=o(0,a(255,O.r-r(255*-(N/100)))),O.g=o(0,a(255,O.g-r(255*-(N/100)))),O.b=o(0,a(255,O.b-r(255*-(N/100)))),c(O)}l(q,"brighten");function D(I,N){N=N===0?0:N||10;var O=c(I).toHsl();return O.l-=N/100,O.l=ge(O.l),c(O)}l(D,"darken");function U(I,N){var O=c(I).toHsl(),H=(O.h+N)%360;return O.h=H<0?360+H:H,c(O)}l(U,"spin");function R(I){var N=c(I).toHsl();return N.h=(N.h+180)%360,c(N)}l(R,"complement");function B(I){var N=c(I).toHsl(),O=N.h;return[c(I),c({h:(O+120)%360,s:N.s,l:N.l}),c({h:(O+240)%360,s:N.s,l:N.l})]}l(B,"triad");function j(I){var N=c(I).toHsl(),O=N.h;return[c(I),c({h:(O+90)%360,s:N.s,l:N.l}),c({h:(O+180)%360,s:N.s,l:N.l}),c({h:(O+270)%360,s:N.s,l:N.l})]}l(j,"tetrad");function G(I){var N=c(I).toHsl(),O=N.h;return[c(I),c({h:(O+72)%360,s:N.s,l:N.l}),c({h:(O+216)%360,s:N.s,l:N.l})]}l(G,"splitcomplement");function Q(I,N,O){N=N||6,O=O||30;var H=c(I).toHsl(),Y=360/O,W=[c(I)];for(H.h=(H.h-(Y*N>>1)+720)%360;--N;)H.h=(H.h+Y)%360,W.push(c(H));return W}l(Q,"analogous");function X(I,N){N=N||6;for(var O=c(I).toHsv(),H=O.h,Y=O.s,W=O.v,J=[],Te=1/N;N--;)J.push(c({h:H,s:Y,v:W})),W=(W+Te)%1;return J}l(X,"monochromatic"),c.mix=function(I,N,O){O=O===0?0:O||50;var H=c(I).toRgb(),Y=c(N).toRgb(),W=O/100,J={r:(Y.r-H.r)*W+H.r,g:(Y.g-H.g)*W+H.g,b:(Y.b-H.b)*W+H.b,a:(Y.a-H.a)*W+H.a};return c(J)},c.readability=function(I,N){var O=c(I),H=c(N);return(i.max(O.getLuminance(),H.getLuminance())+.05)/(i.min(O.getLuminance(),H.getLuminance())+.05)},c.isReadable=function(I,N,O){var H=c.readability(I,N),Y,W;switch(W=!1,Y=St(O),Y.level+Y.size){case"AAsmall":case"AAAlarge":W=H>=4.5;break;case"AAlarge":W=H>=3;break;case"AAAsmall":W=H>=7;break}return W},c.mostReadable=function(I,N,O){var H=null,Y=0,W,J,Te,se;O=O||{},J=O.includeFallbackColors,Te=O.level,se=O.size;for(var ie=0;ie<N.length;ie++)W=c.readability(I,N[ie]),W>Y&&(Y=W,H=c(N[ie]));return c.isReadable(I,H,{level:Te,size:se})||!J?H:(O.includeFallbackColors=!1,c.mostReadable(I,["#fff","#000"],O))};var ne=c.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},$=c.hexNames=ue(ne);function ue(I){var N={};for(var O in I)I.hasOwnProperty(O)&&(N[I[O]]=O);return N}l(ue,"flip");function be(I){return I=parseFloat(I),(isNaN(I)||I<0||I>1)&&(I=1),I}l(be,"boundAlpha");function ee(I,N){Ae(I)&&(I="100%");var O=Fe(I);return I=a(N,o(0,parseFloat(I))),O&&(I=parseInt(I*N,10)/100),i.abs(I-N)<1e-6?1:I%N/parseFloat(N)}l(ee,"bound01");function ge(I){return a(1,o(0,I))}l(ge,"clamp01");function de(I){return parseInt(I,16)}l(de,"parseIntFromHex");function Ae(I){return typeof I=="string"&&I.indexOf(".")!=-1&&parseFloat(I)===1}l(Ae,"isOnePointZero");function Fe(I){return typeof I=="string"&&I.indexOf("%")!=-1}l(Fe,"isPercentage");function Ce(I){return I.length==1?"0"+I:""+I}l(Ce,"pad2");function He(I){return I<=1&&(I=I*100+"%"),I}l(He,"convertToPercentage");function kt(I){return i.round(parseFloat(I)*255).toString(16)}l(kt,"convertDecimalToHex");function $e(I){return de(I)/255}l($e,"convertHexToDecimal");var ae=function(){var I="[-\\+]?\\d+%?",N="[-\\+]?\\d*\\.\\d+%?",O="(?:"+N+")|(?:"+I+")",H="[\\s|\\(]+("+O+")[,|\\s]+("+O+")[,|\\s]+("+O+")\\s*\\)?",Y="[\\s|\\(]+("+O+")[,|\\s]+("+O+")[,|\\s]+("+O+")[,|\\s]+("+O+")\\s*\\)?";return{CSS_UNIT:new RegExp(O),rgb:new RegExp("rgb"+H),rgba:new RegExp("rgba"+Y),hsl:new RegExp("hsl"+H),hsla:new RegExp("hsla"+Y),hsv:new RegExp("hsv"+H),hsva:new RegExp("hsva"+Y),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function ce(I){return!!ae.CSS_UNIT.exec(I)}l(ce,"isValidCSSUnit");function Le(I){I=I.replace(e,"").replace(t,"").toLowerCase();var N=!1;if(ne[I])I=ne[I],N=!0;else if(I=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var O;return(O=ae.rgb.exec(I))?{r:O[1],g:O[2],b:O[3]}:(O=ae.rgba.exec(I))?{r:O[1],g:O[2],b:O[3],a:O[4]}:(O=ae.hsl.exec(I))?{h:O[1],s:O[2],l:O[3]}:(O=ae.hsla.exec(I))?{h:O[1],s:O[2],l:O[3],a:O[4]}:(O=ae.hsv.exec(I))?{h:O[1],s:O[2],v:O[3]}:(O=ae.hsva.exec(I))?{h:O[1],s:O[2],v:O[3],a:O[4]}:(O=ae.hex8.exec(I))?{r:de(O[1]),g:de(O[2]),b:de(O[3]),a:$e(O[4]),format:N?"name":"hex8"}:(O=ae.hex6.exec(I))?{r:de(O[1]),g:de(O[2]),b:de(O[3]),format:N?"name":"hex"}:(O=ae.hex4.exec(I))?{r:de(O[1]+""+O[1]),g:de(O[2]+""+O[2]),b:de(O[3]+""+O[3]),a:$e(O[4]+""+O[4]),format:N?"name":"hex8"}:(O=ae.hex3.exec(I))?{r:de(O[1]+""+O[1]),g:de(O[2]+""+O[2]),b:de(O[3]+""+O[3]),format:N?"name":"hex"}:!1}l(Le,"stringInputToObject");function St(I){var N,O;return I=I||{level:"AA",size:"small"},N=(I.level||"AA").toUpperCase(),O=(I.size||"small").toLowerCase(),N!=="AA"&&N!=="AAA"&&(N="AA"),O!=="small"&&O!=="large"&&(O="small"),{level:N,size:O}}l(St,"validateWCAG2Parms"),typeof Fg<"u"&&Fg.exports?Fg.exports=c:typeof define=="function"&&define.amd?define(function(){return c}):window.tinycolor=c})(Math)});var Gh=pe((Fh,Rc)=>{y();var jU=200,MP="__lodash_hash_undefined__",GU=800,HU=16,EP=9007199254740991,wP="[object Arguments]",YU="[object Array]",WU="[object AsyncFunction]",XU="[object Boolean]",ZU="[object Date]",QU="[object Error]",CP="[object Function]",KU="[object GeneratorFunction]",JU="[object Map]",$U="[object Number]",eV="[object Null]",AP="[object Object]",tV="[object Proxy]",iV="[object RegExp]",nV="[object Set]",rV="[object String]",aV="[object Undefined]",oV="[object WeakMap]",sV="[object ArrayBuffer]",lV="[object DataView]",cV="[object Float32Array]",uV="[object Float64Array]",dV="[object Int8Array]",hV="[object Int16Array]",pV="[object Int32Array]",fV="[object Uint8Array]",mV="[object Uint8ClampedArray]",gV="[object Uint16Array]",vV="[object Uint32Array]",yV=/[\\^$.*+?()[\]{}|]/g,bV=/^\[object .+?Constructor\]$/,xV=/^(?:0|[1-9]\d*)$/,At={};At[cV]=At[uV]=At[dV]=At[hV]=At[pV]=At[fV]=At[mV]=At[gV]=At[vV]=!0;At[wP]=At[YU]=At[sV]=At[XU]=At[lV]=At[ZU]=At[QU]=At[CP]=At[JU]=At[$U]=At[AP]=At[iV]=At[nV]=At[rV]=At[oV]=!1;var PP=typeof global=="object"&&global&&global.Object===Object&&global,TV=typeof self=="object"&&self&&self.Object===Object&&self,zh=PP||TV||Function("return this")(),SP=typeof Fh=="object"&&Fh&&!Fh.nodeType&&Fh,Uh=SP&&typeof Rc=="object"&&Rc&&!Rc.nodeType&&Rc,IP=Uh&&Uh.exports===SP,xb=IP&&PP.process,pP=function(){try{var i=Uh&&Uh.require&&Uh.require("util").types;return i||xb&&xb.binding&&xb.binding("util")}catch{}}(),fP=pP&&pP.isTypedArray;function _P(i,e,t){switch(t.length){case 0:return i.call(e);case 1:return i.call(e,t[0]);case 2:return i.call(e,t[0],t[1]);case 3:return i.call(e,t[0],t[1],t[2])}return i.apply(e,t)}l(_P,"apply");function MV(i,e){for(var t=-1,n=Array(i);++t<i;)n[t]=e(t);return n}l(MV,"baseTimes");function EV(i){return function(e){return i(e)}}l(EV,"baseUnary");function wV(i,e){return i==null?void 0:i[e]}l(wV,"getValue");function CV(i,e){return function(t){return i(e(t))}}l(CV,"overArg");var AV=Array.prototype,PV=Function.prototype,Yg=Object.prototype,Tb=zh["__core-js_shared__"],Wg=PV.toString,Ma=Yg.hasOwnProperty,mP=function(){var i=/[^.]+$/.exec(Tb&&Tb.keys&&Tb.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}(),OP=Yg.toString,SV=Wg.call(Object),IV=RegExp("^"+Wg.call(Ma).replace(yV,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Gg=IP?zh.Buffer:void 0,gP=zh.Symbol,vP=zh.Uint8Array,yP=Gg?Gg.allocUnsafe:void 0,DP=CV(Object.getPrototypeOf,Object),bP=Object.create,_V=Yg.propertyIsEnumerable,OV=AV.splice,Hs=gP?gP.toStringTag:void 0,Hg=function(){try{var i=Sb(Object,"defineProperty");return i({},"",{}),i}catch{}}(),DV=Gg?Gg.isBuffer:void 0,xP=Math.max,LV=Date.now,LP=Sb(zh,"Map"),Vh=Sb(Object,"create"),qV=function(){function i(){}return l(i,"object"),function(e){if(!Ta(e))return{};if(bP)return bP(e);i.prototype=e;var t=new i;return i.prototype=void 0,t}}();function Ys(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var n=i[e];this.set(n[0],n[1])}}l(Ys,"Hash");function RV(){this.__data__=Vh?Vh(null):{},this.size=0}l(RV,"hashClear");function NV(i){var e=this.has(i)&&delete this.__data__[i];return this.size-=e?1:0,e}l(NV,"hashDelete");function kV(i){var e=this.__data__;if(Vh){var t=e[i];return t===MP?void 0:t}return Ma.call(e,i)?e[i]:void 0}l(kV,"hashGet");function BV(i){var e=this.__data__;return Vh?e[i]!==void 0:Ma.call(e,i)}l(BV,"hashHas");function FV(i,e){var t=this.__data__;return this.size+=this.has(i)?0:1,t[i]=Vh&&e===void 0?MP:e,this}l(FV,"hashSet");Ys.prototype.clear=RV;Ys.prototype.delete=NV;Ys.prototype.get=kV;Ys.prototype.has=BV;Ys.prototype.set=FV;function Ea(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var n=i[e];this.set(n[0],n[1])}}l(Ea,"ListCache");function UV(){this.__data__=[],this.size=0}l(UV,"listCacheClear");function VV(i){var e=this.__data__,t=Xg(e,i);if(t<0)return!1;var n=e.length-1;return t==n?e.pop():OV.call(e,t,1),--this.size,!0}l(VV,"listCacheDelete");function zV(i){var e=this.__data__,t=Xg(e,i);return t<0?void 0:e[t][1]}l(zV,"listCacheGet");function jV(i){return Xg(this.__data__,i)>-1}l(jV,"listCacheHas");function GV(i,e){var t=this.__data__,n=Xg(t,i);return n<0?(++this.size,t.push([i,e])):t[n][1]=e,this}l(GV,"listCacheSet");Ea.prototype.clear=UV;Ea.prototype.delete=VV;Ea.prototype.get=zV;Ea.prototype.has=jV;Ea.prototype.set=GV;function Nc(i){var e=-1,t=i==null?0:i.length;for(this.clear();++e<t;){var n=i[e];this.set(n[0],n[1])}}l(Nc,"MapCache");function HV(){this.size=0,this.__data__={hash:new Ys,map:new(LP||Ea),string:new Ys}}l(HV,"mapCacheClear");function YV(i){var e=Qg(this,i).delete(i);return this.size-=e?1:0,e}l(YV,"mapCacheDelete");function WV(i){return Qg(this,i).get(i)}l(WV,"mapCacheGet");function XV(i){return Qg(this,i).has(i)}l(XV,"mapCacheHas");function ZV(i,e){var t=Qg(this,i),n=t.size;return t.set(i,e),this.size+=t.size==n?0:1,this}l(ZV,"mapCacheSet");Nc.prototype.clear=HV;Nc.prototype.delete=YV;Nc.prototype.get=WV;Nc.prototype.has=XV;Nc.prototype.set=ZV;function kc(i){var e=this.__data__=new Ea(i);this.size=e.size}l(kc,"Stack");function QV(){this.__data__=new Ea,this.size=0}l(QV,"stackClear");function KV(i){var e=this.__data__,t=e.delete(i);return this.size=e.size,t}l(KV,"stackDelete");function JV(i){return this.__data__.get(i)}l(JV,"stackGet");function $V(i){return this.__data__.has(i)}l($V,"stackHas");function ez(i,e){var t=this.__data__;if(t instanceof Ea){var n=t.__data__;if(!LP||n.length<jU-1)return n.push([i,e]),this.size=++t.size,this;t=this.__data__=new Nc(n)}return t.set(i,e),this.size=t.size,this}l(ez,"stackSet");kc.prototype.clear=QV;kc.prototype.delete=KV;kc.prototype.get=JV;kc.prototype.has=$V;kc.prototype.set=ez;function tz(i,e){var t=Cb(i),n=!t&&wb(i),r=!t&&!n&&BP(i),a=!t&&!n&&!r&&UP(i),o=t||n||r||a,s=o?MV(i.length,String):[],c=s.length;for(var u in i)(e||Ma.call(i,u))&&!(o&&(u=="length"||r&&(u=="offset"||u=="parent")||a&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||NP(u,c)))&&s.push(u);return s}l(tz,"arrayLikeKeys");function Mb(i,e,t){(t!==void 0&&!Kg(i[e],t)||t===void 0&&!(e in i))&&Ab(i,e,t)}l(Mb,"assignMergeValue");function iz(i,e,t){var n=i[e];(!(Ma.call(i,e)&&Kg(n,t))||t===void 0&&!(e in i))&&Ab(i,e,t)}l(iz,"assignValue");function Xg(i,e){for(var t=i.length;t--;)if(Kg(i[t][0],e))return t;return-1}l(Xg,"assocIndexOf");function Ab(i,e,t){e=="__proto__"&&Hg?Hg(i,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):i[e]=t}l(Ab,"baseAssignValue");var nz=mz();function Zg(i){return i==null?i===void 0?aV:eV:Hs&&Hs in Object(i)?gz(i):Mz(i)}l(Zg,"baseGetTag");function TP(i){return jh(i)&&Zg(i)==wP}l(TP,"baseIsArguments");function rz(i){if(!Ta(i)||xz(i))return!1;var e=_b(i)?IV:bV;return e.test(Az(i))}l(rz,"baseIsNative");function az(i){return jh(i)&&FP(i.length)&&!!At[Zg(i)]}l(az,"baseIsTypedArray");function oz(i){if(!Ta(i))return Tz(i);var e=kP(i),t=[];for(var n in i)n=="constructor"&&(e||!Ma.call(i,n))||t.push(n);return t}l(oz,"baseKeysIn");function Pb(i,e,t,n,r){i!==e&&nz(e,function(a,o){if(r||(r=new kc),Ta(a))sz(i,e,o,t,Pb,n,r);else{var s=n?n(Eb(i,o),a,o+"",i,e,r):void 0;s===void 0&&(s=a),Mb(i,o,s)}},VP)}l(Pb,"baseMerge");function sz(i,e,t,n,r,a,o){var s=Eb(i,t),c=Eb(e,t),u=o.get(c);if(u){Mb(i,t,u);return}var h=a?a(s,c,t+"",i,e,o):void 0,m=h===void 0;if(m){var f=Cb(c),g=!f&&BP(c),b=!f&&!g&&UP(c);h=c,f||g||b?Cb(s)?h=s:Pz(s)?h=hz(s):g?(m=!1,h=cz(c,!0)):b?(m=!1,h=dz(c,!0)):h=[]:Sz(c)||wb(c)?(h=s,wb(s)?h=Iz(s):(!Ta(s)||_b(s))&&(h=vz(c))):m=!1}m&&(o.set(c,h),r(h,c,n,a,o),o.delete(c)),Mb(i,t,h)}l(sz,"baseMergeDeep");function qP(i,e){return wz(Ez(i,e,zP),i+"")}l(qP,"baseRest");var lz=Hg?function(i,e){return Hg(i,"toString",{configurable:!0,enumerable:!1,value:Dz(e),writable:!0})}:zP;function cz(i,e){if(e)return i.slice();var t=i.length,n=yP?yP(t):new i.constructor(t);return i.copy(n),n}l(cz,"cloneBuffer");function uz(i){var e=new i.constructor(i.byteLength);return new vP(e).set(new vP(i)),e}l(uz,"cloneArrayBuffer");function dz(i,e){var t=e?uz(i.buffer):i.buffer;return new i.constructor(t,i.byteOffset,i.length)}l(dz,"cloneTypedArray");function hz(i,e){var t=-1,n=i.length;for(e||(e=Array(n));++t<n;)e[t]=i[t];return e}l(hz,"copyArray");function pz(i,e,t,n){var r=!t;t||(t={});for(var a=-1,o=e.length;++a<o;){var s=e[a],c=n?n(t[s],i[s],s,t,i):void 0;c===void 0&&(c=i[s]),r?Ab(t,s,c):iz(t,s,c)}return t}l(pz,"copyObject");function fz(i){return qP(function(e,t){var n=-1,r=t.length,a=r>1?t[r-1]:void 0,o=r>2?t[2]:void 0;for(a=i.length>3&&typeof a=="function"?(r--,a):void 0,o&&yz(t[0],t[1],o)&&(a=r<3?void 0:a,r=1),e=Object(e);++n<r;){var s=t[n];s&&i(e,s,n,a)}return e})}l(fz,"createAssigner");function mz(i){return function(e,t,n){for(var r=-1,a=Object(e),o=n(e),s=o.length;s--;){var c=o[i?s:++r];if(t(a[c],c,a)===!1)break}return e}}l(mz,"createBaseFor");function RP(i,e,t,n,r,a){return Ta(i)&&Ta(e)&&(a.set(e,i),Pb(i,e,void 0,RP,a),a.delete(e)),i}l(RP,"customDefaultsMerge");function Qg(i,e){var t=i.__data__;return bz(e)?t[typeof e=="string"?"string":"hash"]:t.map}l(Qg,"getMapData");function Sb(i,e){var t=wV(i,e);return rz(t)?t:void 0}l(Sb,"getNative");function gz(i){var e=Ma.call(i,Hs),t=i[Hs];try{i[Hs]=void 0;var n=!0}catch{}var r=OP.call(i);return n&&(e?i[Hs]=t:delete i[Hs]),r}l(gz,"getRawTag");function vz(i){return typeof i.constructor=="function"&&!kP(i)?qV(DP(i)):{}}l(vz,"initCloneObject");function NP(i,e){var t=typeof i;return e=e==null?EP:e,!!e&&(t=="number"||t!="symbol"&&xV.test(i))&&i>-1&&i%1==0&&i<e}l(NP,"isIndex");function yz(i,e,t){if(!Ta(t))return!1;var n=typeof e;return(n=="number"?Ib(t)&&NP(e,t.length):n=="string"&&e in t)?Kg(t[e],i):!1}l(yz,"isIterateeCall");function bz(i){var e=typeof i;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?i!=="__proto__":i===null}l(bz,"isKeyable");function xz(i){return!!mP&&mP in i}l(xz,"isMasked");function kP(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||Yg;return i===t}l(kP,"isPrototype");function Tz(i){var e=[];if(i!=null)for(var t in Object(i))e.push(t);return e}l(Tz,"nativeKeysIn");function Mz(i){return OP.call(i)}l(Mz,"objectToString");function Ez(i,e,t){return e=xP(e===void 0?i.length-1:e,0),function(){for(var n=arguments,r=-1,a=xP(n.length-e,0),o=Array(a);++r<a;)o[r]=n[e+r];r=-1;for(var s=Array(e+1);++r<e;)s[r]=n[r];return s[e]=t(o),_P(i,this,s)}}l(Ez,"overRest");function Eb(i,e){if(!(e==="constructor"&&typeof i[e]=="function")&&e!="__proto__")return i[e]}l(Eb,"safeGet");var wz=Cz(lz);function Cz(i){var e=0,t=0;return function(){var n=LV(),r=HU-(n-t);if(t=n,r>0){if(++e>=GU)return arguments[0]}else e=0;return i.apply(void 0,arguments)}}l(Cz,"shortOut");function Az(i){if(i!=null){try{return Wg.call(i)}catch{}try{return i+""}catch{}}return""}l(Az,"toSource");function Kg(i,e){return i===e||i!==i&&e!==e}l(Kg,"eq");var wb=TP(function(){return arguments}())?TP:function(i){return jh(i)&&Ma.call(i,"callee")&&!_V.call(i,"callee")},Cb=Array.isArray;function Ib(i){return i!=null&&FP(i.length)&&!_b(i)}l(Ib,"isArrayLike");function Pz(i){return jh(i)&&Ib(i)}l(Pz,"isArrayLikeObject");var BP=DV||Lz;function _b(i){if(!Ta(i))return!1;var e=Zg(i);return e==CP||e==KU||e==WU||e==tV}l(_b,"isFunction");function FP(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=EP}l(FP,"isLength");function Ta(i){var e=typeof i;return i!=null&&(e=="object"||e=="function")}l(Ta,"isObject");function jh(i){return i!=null&&typeof i=="object"}l(jh,"isObjectLike");function Sz(i){if(!jh(i)||Zg(i)!=AP)return!1;var e=DP(i);if(e===null)return!0;var t=Ma.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&Wg.call(t)==SV}l(Sz,"isPlainObject");var UP=fP?EV(fP):az;function Iz(i){return pz(i,VP(i))}l(Iz,"toPlainObject");var _z=qP(function(i){return i.push(void 0,RP),_P(Oz,void 0,i)});function VP(i){return Ib(i)?tz(i,!0):oz(i)}l(VP,"keysIn");var Oz=fz(function(i,e,t,n){Pb(i,e,t,n)});function Dz(i){return function(){return i}}l(Dz,"constant");function zP(i){return i}l(zP,"identity");function Lz(){return!1}l(Lz,"stubFalse");Rc.exports=_z});var tS=pe((Dme,eS)=>{y();var ZP=9007199254740991,Kz="[object Arguments]",Jz="[object Function]",$z="[object GeneratorFunction]",ej=/^(?:0|[1-9]\d*)$/;function QP(i,e,t){switch(t.length){case 0:return i.call(e);case 1:return i.call(e,t[0]);case 2:return i.call(e,t[0],t[1]);case 3:return i.call(e,t[0],t[1],t[2])}return i.apply(e,t)}l(QP,"apply");function tj(i,e){for(var t=-1,n=Array(i);++t<i;)n[t]=e(t);return n}l(tj,"baseTimes");var tp=Object.prototype,ip=tp.hasOwnProperty,KP=tp.toString,ij=tp.propertyIsEnumerable,XP=Math.max;function nj(i,e){var t=pj(i)||hj(i)?tj(i.length,String):[],n=t.length,r=!!n;for(var a in i)(e||ip.call(i,a))&&!(r&&(a=="length"||$P(a,n)))&&t.push(a);return t}l(nj,"arrayLikeKeys");function rj(i,e,t,n){return i===void 0||r7(i,tp[t])&&!ip.call(n,t)?e:i}l(rj,"assignInDefaults");function aj(i,e,t){var n=i[e];(!(ip.call(i,e)&&r7(n,t))||t===void 0&&!(e in i))&&(i[e]=t)}l(aj,"assignValue");function oj(i){if(!o7(i))return dj(i);var e=uj(i),t=[];for(var n in i)n=="constructor"&&(e||!ip.call(i,n))||t.push(n);return t}l(oj,"baseKeysIn");function JP(i,e){return e=XP(e===void 0?i.length-1:e,0),function(){for(var t=arguments,n=-1,r=XP(t.length-e,0),a=Array(r);++n<r;)a[n]=t[e+n];n=-1;for(var o=Array(e+1);++n<e;)o[n]=t[n];return o[e]=a,QP(i,this,o)}}l(JP,"baseRest");function sj(i,e,t,n){t||(t={});for(var r=-1,a=e.length;++r<a;){var o=e[r],s=n?n(t[o],i[o],o,t,i):void 0;aj(t,o,s===void 0?i[o]:s)}return t}l(sj,"copyObject");function lj(i){return JP(function(e,t){var n=-1,r=t.length,a=r>1?t[r-1]:void 0,o=r>2?t[2]:void 0;for(a=i.length>3&&typeof a=="function"?(r--,a):void 0,o&&cj(t[0],t[1],o)&&(a=r<3?void 0:a,r=1),e=Object(e);++n<r;){var s=t[n];s&&i(e,s,n,a)}return e})}l(lj,"createAssigner");function $P(i,e){return e=e==null?ZP:e,!!e&&(typeof i=="number"||ej.test(i))&&i>-1&&i%1==0&&i<e}l($P,"isIndex");function cj(i,e,t){if(!o7(t))return!1;var n=typeof e;return(n=="number"?a7(t)&&$P(e,t.length):n=="string"&&e in t)?r7(t[e],i):!1}l(cj,"isIterateeCall");function uj(i){var e=i&&i.constructor,t=typeof e=="function"&&e.prototype||tp;return i===t}l(uj,"isPrototype");function dj(i){var e=[];if(i!=null)for(var t in Object(i))e.push(t);return e}l(dj,"nativeKeysIn");function r7(i,e){return i===e||i!==i&&e!==e}l(r7,"eq");function hj(i){return fj(i)&&ip.call(i,"callee")&&(!ij.call(i,"callee")||KP.call(i)==Kz)}l(hj,"isArguments");var pj=Array.isArray;function a7(i){return i!=null&&gj(i.length)&&!mj(i)}l(a7,"isArrayLike");function fj(i){return vj(i)&&a7(i)}l(fj,"isArrayLikeObject");function mj(i){var e=o7(i)?KP.call(i):"";return e==Jz||e==$z}l(mj,"isFunction");function gj(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=ZP}l(gj,"isLength");function o7(i){var e=typeof i;return!!i&&(e=="object"||e=="function")}l(o7,"isObject");function vj(i){return!!i&&typeof i=="object"}l(vj,"isObjectLike");var yj=lj(function(i,e,t,n){sj(e,xj(e),i,n)}),bj=JP(function(i){return i.push(void 0,rj),QP(yj,void 0,i)});function xj(i){return a7(i)?nj(i,!0):oj(i)}l(xj,"keysIn");eS.exports=bj});var dS=pe((Rme,np)=>{"use strict";y();var Tj=!1,Zs=!1,rS=!0,aS=!1,v={},oS=!1;typeof np<"u"&&np.exports?(np.exports=v,oS=!0):typeof document<"u"?window.ClipperLib=v:self.ClipperLib=v;var c2;oS?(di="chrome",c2="Netscape"):(di=navigator.userAgent.toString().toLowerCase(),c2=navigator.appName);var di,Ge={};di.indexOf("chrome")!=-1&&di.indexOf("chromium")==-1?Ge.chrome=1:Ge.chrome=0;di.indexOf("chromium")!=-1?Ge.chromium=1:Ge.chromium=0;di.indexOf("safari")!=-1&&di.indexOf("chrome")==-1&&di.indexOf("chromium")==-1?Ge.safari=1:Ge.safari=0;di.indexOf("firefox")!=-1?Ge.firefox=1:Ge.firefox=0;di.indexOf("firefox/17")!=-1?Ge.firefox17=1:Ge.firefox17=0;di.indexOf("firefox/15")!=-1?Ge.firefox15=1:Ge.firefox15=0;di.indexOf("firefox/3")!=-1?Ge.firefox3=1:Ge.firefox3=0;di.indexOf("opera")!=-1?Ge.opera=1:Ge.opera=0;di.indexOf("msie 10")!=-1?Ge.msie10=1:Ge.msie10=0;di.indexOf("msie 9")!=-1?Ge.msie9=1:Ge.msie9=0;di.indexOf("msie 8")!=-1?Ge.msie8=1:Ge.msie8=0;di.indexOf("msie 7")!=-1?Ge.msie7=1:Ge.msie7=0;di.indexOf("msie ")!=-1?Ge.msie=1:Ge.msie=0;v.biginteger_used=null;var Io,Mj=0xdeadbeefcafe,iS=(Mj&16777215)==15715070;function K(i,e,t){v.biginteger_used=1,i!=null&&(typeof i=="number"&&typeof e>"u"?this.fromInt(i):typeof i=="number"?this.fromNumber(i,e,t):e==null&&typeof i!="string"?this.fromString(i,256):this.fromString(i,e))}l(K,"BigInteger");function Qe(){return new K(null)}l(Qe,"nbi");function Ej(i,e,t,n,r,a){for(;--a>=0;){var o=e*this[i++]+t[n]+r;r=Math.floor(o/67108864),t[n++]=o&67108863}return r}l(Ej,"am1");function wj(i,e,t,n,r,a){for(var o=e&32767,s=e>>15;--a>=0;){var c=this[i]&32767,u=this[i++]>>15,h=s*c+u*o;c=o*c+((h&32767)<<15)+t[n]+(r&1073741823),r=(c>>>30)+(h>>>15)+s*u+(r>>>30),t[n++]=c&1073741823}return r}l(wj,"am2");function Cj(i,e,t,n,r,a){for(var o=e&16383,s=e>>14;--a>=0;){var c=this[i]&16383,u=this[i++]>>14,h=s*c+u*o;c=o*c+((h&16383)<<14)+t[n]+r,r=(c>>28)+(h>>14)+s*u,t[n++]=c&268435455}return r}l(Cj,"am3");iS&&c2=="Microsoft Internet Explorer"?(K.prototype.am=wj,Io=30):iS&&c2!="Netscape"?(K.prototype.am=Ej,Io=26):(K.prototype.am=Cj,Io=28);K.prototype.DB=Io;K.prototype.DM=(1<<Io)-1;K.prototype.DV=1<<Io;var s7=52;K.prototype.FV=Math.pow(2,s7);K.prototype.F1=s7-Io;K.prototype.F2=2*Io-s7;var Aj="0123456789abcdefghijklmnopqrstuvwxyz",d2=new Array,zc,kn;zc="0".charCodeAt(0);for(kn=0;kn<=9;++kn)d2[zc++]=kn;zc="a".charCodeAt(0);for(kn=10;kn<36;++kn)d2[zc++]=kn;zc="A".charCodeAt(0);for(kn=10;kn<36;++kn)d2[zc++]=kn;function nS(i){return Aj.charAt(i)}l(nS,"int2char");function sS(i,e){var t=d2[i.charCodeAt(e)];return t==null?-1:t}l(sS,"intAt");function Pj(i){for(var e=this.t-1;e>=0;--e)i[e]=this[e];i.t=this.t,i.s=this.s}l(Pj,"bnpCopyTo");function Sj(i){this.t=1,this.s=i<0?-1:0,i>0?this[0]=i:i<-1?this[0]=i+this.DV:this.t=0}l(Sj,"bnpFromInt");function So(i){var e=Qe();return e.fromInt(i),e}l(So,"nbv");function Ij(i,e){var t;if(e==16)t=4;else if(e==8)t=3;else if(e==256)t=8;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else{this.fromRadix(i,e);return}this.t=0,this.s=0;for(var n=i.length,r=!1,a=0;--n>=0;){var o=t==8?i[n]&255:sS(i,n);if(o<0){i.charAt(n)=="-"&&(r=!0);continue}r=!1,a==0?this[this.t++]=o:a+t>this.DB?(this[this.t-1]|=(o&(1<<this.DB-a)-1)<<a,this[this.t++]=o>>this.DB-a):this[this.t-1]|=o<<a,a+=t,a>=this.DB&&(a-=this.DB)}t==8&&i[0]&128&&(this.s=-1,a>0&&(this[this.t-1]|=(1<<this.DB-a)-1<<a)),this.clamp(),r&&K.ZERO.subTo(this,this)}l(Ij,"bnpFromString");function _j(){for(var i=this.s&this.DM;this.t>0&&this[this.t-1]==i;)--this.t}l(_j,"bnpClamp");function Oj(i){if(this.s<0)return"-"+this.negate().toString(i);var e;if(i==16)e=4;else if(i==8)e=3;else if(i==2)e=1;else if(i==32)e=5;else if(i==4)e=2;else return this.toRadix(i);var t=(1<<e)-1,n,r=!1,a="",o=this.t,s=this.DB-o*this.DB%e;if(o-- >0)for(s<this.DB&&(n=this[o]>>s)>0&&(r=!0,a=nS(n));o>=0;)s<e?(n=(this[o]&(1<<s)-1)<<e-s,n|=this[--o]>>(s+=this.DB-e)):(n=this[o]>>(s-=e)&t,s<=0&&(s+=this.DB,--o)),n>0&&(r=!0),r&&(a+=nS(n));return r?a:"0"}l(Oj,"bnToString");function Dj(){var i=Qe();return K.ZERO.subTo(this,i),i}l(Dj,"bnNegate");function Lj(){return this.s<0?this.negate():this}l(Lj,"bnAbs");function qj(i){var e=this.s-i.s;if(e!=0)return e;var t=this.t;if(e=t-i.t,e!=0)return this.s<0?-e:e;for(;--t>=0;)if((e=this[t]-i[t])!=0)return e;return 0}l(qj,"bnCompareTo");function h2(i){var e=1,t;return(t=i>>>16)!=0&&(i=t,e+=16),(t=i>>8)!=0&&(i=t,e+=8),(t=i>>4)!=0&&(i=t,e+=4),(t=i>>2)!=0&&(i=t,e+=2),(t=i>>1)!=0&&(i=t,e+=1),e}l(h2,"nbits");function Rj(){return this.t<=0?0:this.DB*(this.t-1)+h2(this[this.t-1]^this.s&this.DM)}l(Rj,"bnBitLength");function Nj(i,e){var t;for(t=this.t-1;t>=0;--t)e[t+i]=this[t];for(t=i-1;t>=0;--t)e[t]=0;e.t=this.t+i,e.s=this.s}l(Nj,"bnpDLShiftTo");function kj(i,e){for(var t=i;t<this.t;++t)e[t-i]=this[t];e.t=Math.max(this.t-i,0),e.s=this.s}l(kj,"bnpDRShiftTo");function Bj(i,e){var t=i%this.DB,n=this.DB-t,r=(1<<n)-1,a=Math.floor(i/this.DB),o=this.s<<t&this.DM,s;for(s=this.t-1;s>=0;--s)e[s+a+1]=this[s]>>n|o,o=(this[s]&r)<<t;for(s=a-1;s>=0;--s)e[s]=0;e[a]=o,e.t=this.t+a+1,e.s=this.s,e.clamp()}l(Bj,"bnpLShiftTo");function Fj(i,e){e.s=this.s;var t=Math.floor(i/this.DB);if(t>=this.t){e.t=0;return}var n=i%this.DB,r=this.DB-n,a=(1<<n)-1;e[0]=this[t]>>n;for(var o=t+1;o<this.t;++o)e[o-t-1]|=(this[o]&a)<<r,e[o-t]=this[o]>>n;n>0&&(e[this.t-t-1]|=(this.s&a)<<r),e.t=this.t-t,e.clamp()}l(Fj,"bnpRShiftTo");function Uj(i,e){for(var t=0,n=0,r=Math.min(i.t,this.t);t<r;)n+=this[t]-i[t],e[t++]=n&this.DM,n>>=this.DB;if(i.t<this.t){for(n-=i.s;t<this.t;)n+=this[t],e[t++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;t<i.t;)n-=i[t],e[t++]=n&this.DM,n>>=this.DB;n-=i.s}e.s=n<0?-1:0,n<-1?e[t++]=this.DV+n:n>0&&(e[t++]=n),e.t=t,e.clamp()}l(Uj,"bnpSubTo");function Vj(i,e){var t=this.abs(),n=i.abs(),r=t.t;for(e.t=r+n.t;--r>=0;)e[r]=0;for(r=0;r<n.t;++r)e[r+t.t]=t.am(0,n[r],e,r,0,t.t);e.s=0,e.clamp(),this.s!=i.s&&K.ZERO.subTo(e,e)}l(Vj,"bnpMultiplyTo");function zj(i){for(var e=this.abs(),t=i.t=2*e.t;--t>=0;)i[t]=0;for(t=0;t<e.t-1;++t){var n=e.am(t,e[t],i,2*t,0,1);(i[t+e.t]+=e.am(t+1,2*e[t],i,2*t+1,n,e.t-t-1))>=e.DV&&(i[t+e.t]-=e.DV,i[t+e.t+1]=1)}i.t>0&&(i[i.t-1]+=e.am(t,e[t],i,2*t,0,1)),i.s=0,i.clamp()}l(zj,"bnpSquareTo");function jj(i,e,t){var n=i.abs();if(!(n.t<=0)){var r=this.abs();if(r.t<n.t){e!=null&&e.fromInt(0),t!=null&&this.copyTo(t);return}t==null&&(t=Qe());var a=Qe(),o=this.s,s=i.s,c=this.DB-h2(n[n.t-1]);c>0?(n.lShiftTo(c,a),r.lShiftTo(c,t)):(n.copyTo(a),r.copyTo(t));var u=a.t,h=a[u-1];if(h!=0){var m=h*(1<<this.F1)+(u>1?a[u-2]>>this.F2:0),f=this.FV/m,g=(1<<this.F1)/m,b=1<<this.F2,M=t.t,x=M-u,T=e==null?Qe():e;for(a.dlShiftTo(x,T),t.compareTo(T)>=0&&(t[t.t++]=1,t.subTo(T,t)),K.ONE.dlShiftTo(u,T),T.subTo(a,a);a.t<u;)a[a.t++]=0;for(;--x>=0;){var E=t[--M]==h?this.DM:Math.floor(t[M]*f+(t[M-1]+b)*g);if((t[M]+=a.am(0,E,t,x,0,u))<E)for(a.dlShiftTo(x,T),t.subTo(T,t);t[M]<--E;)t.subTo(T,t)}e!=null&&(t.drShiftTo(u,e),o!=s&&K.ZERO.subTo(e,e)),t.t=u,t.clamp(),c>0&&t.rShiftTo(c,t),o<0&&K.ZERO.subTo(t,t)}}}l(jj,"bnpDivRemTo");function Gj(i){var e=Qe();return this.abs().divRemTo(i,null,e),this.s<0&&e.compareTo(K.ZERO)>0&&i.subTo(e,e),e}l(Gj,"bnMod");function Qs(i){this.m=i}l(Qs,"Classic");function Hj(i){return i.s<0||i.compareTo(this.m)>=0?i.mod(this.m):i}l(Hj,"cConvert");function Yj(i){return i}l(Yj,"cRevert");function Wj(i){i.divRemTo(this.m,null,i)}l(Wj,"cReduce");function Xj(i,e,t){i.multiplyTo(e,t),this.reduce(t)}l(Xj,"cMulTo");function Zj(i,e){i.squareTo(e),this.reduce(e)}l(Zj,"cSqrTo");Qs.prototype.convert=Hj;Qs.prototype.revert=Yj;Qs.prototype.reduce=Wj;Qs.prototype.mulTo=Xj;Qs.prototype.sqrTo=Zj;function Qj(){if(this.t<1)return 0;var i=this[0];if(!(i&1))return 0;var e=i&3;return e=e*(2-(i&15)*e)&15,e=e*(2-(i&255)*e)&255,e=e*(2-((i&65535)*e&65535))&65535,e=e*(2-i*e%this.DV)%this.DV,e>0?this.DV-e:-e}l(Qj,"bnpInvDigit");function Ks(i){this.m=i,this.mp=i.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<i.DB-15)-1,this.mt2=2*i.t}l(Ks,"Montgomery");function Kj(i){var e=Qe();return i.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),i.s<0&&e.compareTo(K.ZERO)>0&&this.m.subTo(e,e),e}l(Kj,"montConvert");function Jj(i){var e=Qe();return i.copyTo(e),this.reduce(e),e}l(Jj,"montRevert");function $j(i){for(;i.t<=this.mt2;)i[i.t++]=0;for(var e=0;e<this.m.t;++e){var t=i[e]&32767,n=t*this.mpl+((t*this.mph+(i[e]>>15)*this.mpl&this.um)<<15)&i.DM;for(t=e+this.m.t,i[t]+=this.m.am(0,n,i,e,0,this.m.t);i[t]>=i.DV;)i[t]-=i.DV,i[++t]++}i.clamp(),i.drShiftTo(this.m.t,i),i.compareTo(this.m)>=0&&i.subTo(this.m,i)}l($j,"montReduce");function eG(i,e){i.squareTo(e),this.reduce(e)}l(eG,"montSqrTo");function tG(i,e,t){i.multiplyTo(e,t),this.reduce(t)}l(tG,"montMulTo");Ks.prototype.convert=Kj;Ks.prototype.revert=Jj;Ks.prototype.reduce=$j;Ks.prototype.mulTo=tG;Ks.prototype.sqrTo=eG;function iG(){return(this.t>0?this[0]&1:this.s)==0}l(iG,"bnpIsEven");function nG(i,e){if(i>4294967295||i<1)return K.ONE;var t=Qe(),n=Qe(),r=e.convert(this),a=h2(i)-1;for(r.copyTo(t);--a>=0;)if(e.sqrTo(t,n),(i&1<<a)>0)e.mulTo(n,r,t);else{var o=t;t=n,n=o}return e.revert(t)}l(nG,"bnpExp");function rG(i,e){var t;return i<256||e.isEven()?t=new Qs(e):t=new Ks(e),this.exp(i,t)}l(rG,"bnModPowInt");K.prototype.copyTo=Pj;K.prototype.fromInt=Sj;K.prototype.fromString=Ij;K.prototype.clamp=_j;K.prototype.dlShiftTo=Nj;K.prototype.drShiftTo=kj;K.prototype.lShiftTo=Bj;K.prototype.rShiftTo=Fj;K.prototype.subTo=Uj;K.prototype.multiplyTo=Vj;K.prototype.squareTo=zj;K.prototype.divRemTo=jj;K.prototype.invDigit=Qj;K.prototype.isEven=iG;K.prototype.exp=nG;K.prototype.toString=Oj;K.prototype.negate=Dj;K.prototype.abs=Lj;K.prototype.compareTo=qj;K.prototype.bitLength=Rj;K.prototype.mod=Gj;K.prototype.modPowInt=rG;K.ZERO=So(0);K.ONE=So(1);function aG(){var i=Qe();return this.copyTo(i),i}l(aG,"bnClone");function oG(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}l(oG,"bnIntValue");function sG(){return this.t==0?this.s:this[0]<<24>>24}l(sG,"bnByteValue");function lG(){return this.t==0?this.s:this[0]<<16>>16}l(lG,"bnShortValue");function cG(i){return Math.floor(Math.LN2*this.DB/Math.log(i))}l(cG,"bnpChunkSize");function uG(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}l(uG,"bnSigNum");function dG(i){if(i==null&&(i=10),this.signum()==0||i<2||i>36)return"0";var e=this.chunkSize(i),t=Math.pow(i,e),n=So(t),r=Qe(),a=Qe(),o="";for(this.divRemTo(n,r,a);r.signum()>0;)o=(t+a.intValue()).toString(i).substr(1)+o,r.divRemTo(n,r,a);return a.intValue().toString(i)+o}l(dG,"bnpToRadix");function hG(i,e){this.fromInt(0),e==null&&(e=10);for(var t=this.chunkSize(e),n=Math.pow(e,t),r=!1,a=0,o=0,s=0;s<i.length;++s){var c=sS(i,s);if(c<0){i.charAt(s)=="-"&&this.signum()==0&&(r=!0);continue}o=e*o+c,++a>=t&&(this.dMultiply(n),this.dAddOffset(o,0),a=0,o=0)}a>0&&(this.dMultiply(Math.pow(e,a)),this.dAddOffset(o,0)),r&&K.ZERO.subTo(this,this)}l(hG,"bnpFromRadix");function pG(i,e,t){if(typeof e=="number")if(i<2)this.fromInt(1);else for(this.fromNumber(i,t),this.testBit(i-1)||this.bitwiseTo(K.ONE.shiftLeft(i-1),l7,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>i&&this.subTo(K.ONE.shiftLeft(i-1),this);else{var n=new Array,r=i&7;n.length=(i>>3)+1,e.nextBytes(n),r>0?n[0]&=(1<<r)-1:n[0]=0,this.fromString(n,256)}}l(pG,"bnpFromNumber");function fG(){var i=this.t,e=new Array;e[0]=this.s;var t=this.DB-i*this.DB%8,n,r=0;if(i-- >0)for(t<this.DB&&(n=this[i]>>t)!=(this.s&this.DM)>>t&&(e[r++]=n|this.s<<this.DB-t);i>=0;)t<8?(n=(this[i]&(1<<t)-1)<<8-t,n|=this[--i]>>(t+=this.DB-8)):(n=this[i]>>(t-=8)&255,t<=0&&(t+=this.DB,--i)),n&128&&(n|=-256),r==0&&(this.s&128)!=(n&128)&&++r,(r>0||n!=this.s)&&(e[r++]=n);return e}l(fG,"bnToByteArray");function mG(i){return this.compareTo(i)==0}l(mG,"bnEquals");function gG(i){return this.compareTo(i)<0?this:i}l(gG,"bnMin");function vG(i){return this.compareTo(i)>0?this:i}l(vG,"bnMax");function yG(i,e,t){var n,r,a=Math.min(i.t,this.t);for(n=0;n<a;++n)t[n]=e(this[n],i[n]);if(i.t<this.t){for(r=i.s&this.DM,n=a;n<this.t;++n)t[n]=e(this[n],r);t.t=this.t}else{for(r=this.s&this.DM,n=a;n<i.t;++n)t[n]=e(r,i[n]);t.t=i.t}t.s=e(this.s,i.s),t.clamp()}l(yG,"bnpBitwiseTo");function bG(i,e){return i&e}l(bG,"op_and");function xG(i){var e=Qe();return this.bitwiseTo(i,bG,e),e}l(xG,"bnAnd");function l7(i,e){return i|e}l(l7,"op_or");function TG(i){var e=Qe();return this.bitwiseTo(i,l7,e),e}l(TG,"bnOr");function lS(i,e){return i^e}l(lS,"op_xor");function MG(i){var e=Qe();return this.bitwiseTo(i,lS,e),e}l(MG,"bnXor");function cS(i,e){return i&~e}l(cS,"op_andnot");function EG(i){var e=Qe();return this.bitwiseTo(i,cS,e),e}l(EG,"bnAndNot");function wG(){for(var i=Qe(),e=0;e<this.t;++e)i[e]=this.DM&~this[e];return i.t=this.t,i.s=~this.s,i}l(wG,"bnNot");function CG(i){var e=Qe();return i<0?this.rShiftTo(-i,e):this.lShiftTo(i,e),e}l(CG,"bnShiftLeft");function AG(i){var e=Qe();return i<0?this.lShiftTo(-i,e):this.rShiftTo(i,e),e}l(AG,"bnShiftRight");function PG(i){if(i==0)return-1;var e=0;return i&65535||(i>>=16,e+=16),i&255||(i>>=8,e+=8),i&15||(i>>=4,e+=4),i&3||(i>>=2,e+=2),i&1||++e,e}l(PG,"lbit");function SG(){for(var i=0;i<this.t;++i)if(this[i]!=0)return i*this.DB+PG(this[i]);return this.s<0?this.t*this.DB:-1}l(SG,"bnGetLowestSetBit");function IG(i){for(var e=0;i!=0;)i&=i-1,++e;return e}l(IG,"cbit");function _G(){for(var i=0,e=this.s&this.DM,t=0;t<this.t;++t)i+=IG(this[t]^e);return i}l(_G,"bnBitCount");function OG(i){var e=Math.floor(i/this.DB);return e>=this.t?this.s!=0:(this[e]&1<<i%this.DB)!=0}l(OG,"bnTestBit");function DG(i,e){var t=K.ONE.shiftLeft(i);return this.bitwiseTo(t,e,t),t}l(DG,"bnpChangeBit");function LG(i){return this.changeBit(i,l7)}l(LG,"bnSetBit");function qG(i){return this.changeBit(i,cS)}l(qG,"bnClearBit");function RG(i){return this.changeBit(i,lS)}l(RG,"bnFlipBit");function NG(i,e){for(var t=0,n=0,r=Math.min(i.t,this.t);t<r;)n+=this[t]+i[t],e[t++]=n&this.DM,n>>=this.DB;if(i.t<this.t){for(n+=i.s;t<this.t;)n+=this[t],e[t++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;t<i.t;)n+=i[t],e[t++]=n&this.DM,n>>=this.DB;n+=i.s}e.s=n<0?-1:0,n>0?e[t++]=n:n<-1&&(e[t++]=this.DV+n),e.t=t,e.clamp()}l(NG,"bnpAddTo");function kG(i){var e=Qe();return this.addTo(i,e),e}l(kG,"bnAdd");function BG(i){var e=Qe();return this.subTo(i,e),e}l(BG,"bnSubtract");function FG(i){var e=Qe();return this.multiplyTo(i,e),e}l(FG,"bnMultiply");function UG(){var i=Qe();return this.squareTo(i),i}l(UG,"bnSquare");function VG(i){var e=Qe();return this.divRemTo(i,e,null),e}l(VG,"bnDivide");function zG(i){var e=Qe();return this.divRemTo(i,null,e),e}l(zG,"bnRemainder");function jG(i){var e=Qe(),t=Qe();return this.divRemTo(i,e,t),new Array(e,t)}l(jG,"bnDivideAndRemainder");function GG(i){this[this.t]=this.am(0,i-1,this,0,0,this.t),++this.t,this.clamp()}l(GG,"bnpDMultiply");function HG(i,e){if(i!=0){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=i;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}}l(HG,"bnpDAddOffset");function rp(){}l(rp,"NullExp");function uS(i){return i}l(uS,"nNop");function YG(i,e,t){i.multiplyTo(e,t)}l(YG,"nMulTo");function WG(i,e){i.squareTo(e)}l(WG,"nSqrTo");rp.prototype.convert=uS;rp.prototype.revert=uS;rp.prototype.mulTo=YG;rp.prototype.sqrTo=WG;function XG(i){return this.exp(i,new rp)}l(XG,"bnPow");function ZG(i,e,t){var n=Math.min(this.t+i.t,e);for(t.s=0,t.t=n;n>0;)t[--n]=0;var r;for(r=t.t-this.t;n<r;++n)t[n+this.t]=this.am(0,i[n],t,n,0,this.t);for(r=Math.min(i.t,e);n<r;++n)this.am(0,i[n],t,n,0,e-n);t.clamp()}l(ZG,"bnpMultiplyLowerTo");function QG(i,e,t){--e;var n=t.t=this.t+i.t-e;for(t.s=0;--n>=0;)t[n]=0;for(n=Math.max(e-this.t,0);n<i.t;++n)t[this.t+n-e]=this.am(e-n,i[n],t,0,0,this.t+n-e);t.clamp(),t.drShiftTo(1,t)}l(QG,"bnpMultiplyUpperTo");function jc(i){this.r2=Qe(),this.q3=Qe(),K.ONE.dlShiftTo(2*i.t,this.r2),this.mu=this.r2.divide(i),this.m=i}l(jc,"Barrett");function KG(i){if(i.s<0||i.t>2*this.m.t)return i.mod(this.m);if(i.compareTo(this.m)<0)return i;var e=Qe();return i.copyTo(e),this.reduce(e),e}l(KG,"barrettConvert");function JG(i){return i}l(JG,"barrettRevert");function $G(i){for(i.drShiftTo(this.m.t-1,this.r2),i.t>this.m.t+1&&(i.t=this.m.t+1,i.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);i.compareTo(this.r2)<0;)i.dAddOffset(1,this.m.t+1);for(i.subTo(this.r2,i);i.compareTo(this.m)>=0;)i.subTo(this.m,i)}l($G,"barrettReduce");function eH(i,e){i.squareTo(e),this.reduce(e)}l(eH,"barrettSqrTo");function tH(i,e,t){i.multiplyTo(e,t),this.reduce(t)}l(tH,"barrettMulTo");jc.prototype.convert=KG;jc.prototype.revert=JG;jc.prototype.reduce=$G;jc.prototype.mulTo=tH;jc.prototype.sqrTo=eH;function iH(i,e){var t=i.bitLength(),n,r=So(1),a;if(t<=0)return r;t<18?n=1:t<48?n=3:t<144?n=4:t<768?n=5:n=6,t<8?a=new Qs(e):e.isEven()?a=new jc(e):a=new Ks(e);var o=new Array,s=3,c=n-1,u=(1<<n)-1;if(o[1]=a.convert(this),n>1){var h=Qe();for(a.sqrTo(o[1],h);s<=u;)o[s]=Qe(),a.mulTo(h,o[s-2],o[s]),s+=2}var m=i.t-1,f,g=!0,b=Qe(),M;for(t=h2(i[m])-1;m>=0;){for(t>=c?f=i[m]>>t-c&u:(f=(i[m]&(1<<t+1)-1)<<c-t,m>0&&(f|=i[m-1]>>this.DB+t-c)),s=n;!(f&1);)f>>=1,--s;if((t-=s)<0&&(t+=this.DB,--m),g)o[f].copyTo(r),g=!1;else{for(;s>1;)a.sqrTo(r,b),a.sqrTo(b,r),s-=2;s>0?a.sqrTo(r,b):(M=r,r=b,b=M),a.mulTo(b,o[f],r)}for(;m>=0&&!(i[m]&1<<t);)a.sqrTo(r,b),M=r,r=b,b=M,--t<0&&(t=this.DB-1,--m)}return a.revert(r)}l(iH,"bnModPow");function nH(i){var e=this.s<0?this.negate():this.clone(),t=i.s<0?i.negate():i.clone();if(e.compareTo(t)<0){var n=e;e=t,t=n}var r=e.getLowestSetBit(),a=t.getLowestSetBit();if(a<0)return e;for(r<a&&(a=r),a>0&&(e.rShiftTo(a,e),t.rShiftTo(a,t));e.signum()>0;)(r=e.getLowestSetBit())>0&&e.rShiftTo(r,e),(r=t.getLowestSetBit())>0&&t.rShiftTo(r,t),e.compareTo(t)>=0?(e.subTo(t,e),e.rShiftTo(1,e)):(t.subTo(e,t),t.rShiftTo(1,t));return a>0&&t.lShiftTo(a,t),t}l(nH,"bnGCD");function rH(i){if(i<=0)return 0;var e=this.DV%i,t=this.s<0?i-1:0;if(this.t>0)if(e==0)t=this[0]%i;else for(var n=this.t-1;n>=0;--n)t=(e*t+this[n])%i;return t}l(rH,"bnpModInt");function aH(i){var e=i.isEven();if(this.isEven()&&e||i.signum()==0)return K.ZERO;for(var t=i.clone(),n=this.clone(),r=So(1),a=So(0),o=So(0),s=So(1);t.signum()!=0;){for(;t.isEven();)t.rShiftTo(1,t),e?((!r.isEven()||!a.isEven())&&(r.addTo(this,r),a.subTo(i,a)),r.rShiftTo(1,r)):a.isEven()||a.subTo(i,a),a.rShiftTo(1,a);for(;n.isEven();)n.rShiftTo(1,n),e?((!o.isEven()||!s.isEven())&&(o.addTo(this,o),s.subTo(i,s)),o.rShiftTo(1,o)):s.isEven()||s.subTo(i,s),s.rShiftTo(1,s);t.compareTo(n)>=0?(t.subTo(n,t),e&&r.subTo(o,r),a.subTo(s,a)):(n.subTo(t,n),e&&o.subTo(r,o),s.subTo(a,s))}if(n.compareTo(K.ONE)!=0)return K.ZERO;if(s.compareTo(i)>=0)return s.subtract(i);if(s.signum()<0)s.addTo(i,s);else return s;return s.signum()<0?s.add(i):s}l(aH,"bnModInverse");var Wi=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],oH=(1<<26)/Wi[Wi.length-1];function sH(i){var e,t=this.abs();if(t.t==1&&t[0]<=Wi[Wi.length-1]){for(e=0;e<Wi.length;++e)if(t[0]==Wi[e])return!0;return!1}if(t.isEven())return!1;for(e=1;e<Wi.length;){for(var n=Wi[e],r=e+1;r<Wi.length&&n<oH;)n*=Wi[r++];for(n=t.modInt(n);e<r;)if(n%Wi[e++]==0)return!1}return t.millerRabin(i)}l(sH,"bnIsProbablePrime");function lH(i){var e=this.subtract(K.ONE),t=e.getLowestSetBit();if(t<=0)return!1;var n=e.shiftRight(t);i=i+1>>1,i>Wi.length&&(i=Wi.length);for(var r=Qe(),a=0;a<i;++a){r.fromInt(Wi[Math.floor(Math.random()*Wi.length)]);var o=r.modPow(n,this);if(o.compareTo(K.ONE)!=0&&o.compareTo(e)!=0){for(var s=1;s++<t&&o.compareTo(e)!=0;)if(o=o.modPowInt(2,this),o.compareTo(K.ONE)==0)return!1;if(o.compareTo(e)!=0)return!1}}return!0}l(lH,"bnpMillerRabin");K.prototype.chunkSize=cG;K.prototype.toRadix=dG;K.prototype.fromRadix=hG;K.prototype.fromNumber=pG;K.prototype.bitwiseTo=yG;K.prototype.changeBit=DG;K.prototype.addTo=NG;K.prototype.dMultiply=GG;K.prototype.dAddOffset=HG;K.prototype.multiplyLowerTo=ZG;K.prototype.multiplyUpperTo=QG;K.prototype.modInt=rH;K.prototype.millerRabin=lH;K.prototype.clone=aG;K.prototype.intValue=oG;K.prototype.byteValue=sG;K.prototype.shortValue=lG;K.prototype.signum=uG;K.prototype.toByteArray=fG;K.prototype.equals=mG;K.prototype.min=gG;K.prototype.max=vG;K.prototype.and=xG;K.prototype.or=TG;K.prototype.xor=MG;K.prototype.andNot=EG;K.prototype.not=wG;K.prototype.shiftLeft=CG;K.prototype.shiftRight=AG;K.prototype.getLowestSetBit=SG;K.prototype.bitCount=_G;K.prototype.testBit=OG;K.prototype.setBit=LG;K.prototype.clearBit=qG;K.prototype.flipBit=RG;K.prototype.add=kG;K.prototype.subtract=BG;K.prototype.multiply=FG;K.prototype.divide=VG;K.prototype.remainder=zG;K.prototype.divideAndRemainder=jG;K.prototype.modPow=iH;K.prototype.modInverse=aH;K.prototype.pow=XG;K.prototype.gcd=nH;K.prototype.isProbablePrime=sH;K.prototype.square=UG;var Ve=K;Ve.prototype.IsNegative=function(){return this.compareTo(Ve.ZERO)==-1};Ve.op_Equality=function(i,e){return i.compareTo(e)==0};Ve.op_Inequality=function(i,e){return i.compareTo(e)!=0};Ve.op_GreaterThan=function(i,e){return i.compareTo(e)>0};Ve.op_LessThan=function(i,e){return i.compareTo(e)<0};Ve.op_Addition=function(i,e){return new Ve(i).add(new Ve(e))};Ve.op_Subtraction=function(i,e){return new Ve(i).subtract(new Ve(e))};Ve.Int128Mul=function(i,e){return new Ve(i).multiply(new Ve(e))};Ve.op_Division=function(i,e){return i.divide(e)};Ve.prototype.ToDouble=function(){return parseFloat(this.toString())};typeof u2>"u"&&(u2=l(function(i,e){var t;if(typeof Object.getOwnPropertyNames>"u"){for(t in e.prototype)(typeof i.prototype[t]>"u"||i.prototype[t]==Object.prototype[t])&&(i.prototype[t]=e.prototype[t]);for(t in e)typeof i[t]>"u"&&(i[t]=e[t]);i.$baseCtor=e}else{for(var n=Object.getOwnPropertyNames(e.prototype),r=0;r<n.length;r++)typeof Object.getOwnPropertyDescriptor(i.prototype,n[r])>"u"&&Object.defineProperty(i.prototype,n[r],Object.getOwnPropertyDescriptor(e.prototype,n[r]));for(t in e)typeof i[t]>"u"&&(i[t]=e[t]);i.$baseCtor=e}},"Inherit"));var u2;v.Path=function(){return[]};v.Paths=function(){return[]};v.DoublePoint=function(){var i=arguments;this.X=0,this.Y=0,i.length==1?(this.X=i[0].X,this.Y=i[0].Y):i.length==2&&(this.X=i[0],this.Y=i[1])};v.DoublePoint0=function(){this.X=0,this.Y=0};v.DoublePoint1=function(i){this.X=i.X,this.Y=i.Y};v.DoublePoint2=function(i,e){this.X=i,this.Y=e};v.PolyNode=function(){this.m_Parent=null,this.m_polygon=new v.Path,this.m_Index=0,this.m_jointype=0,this.m_endtype=0,this.m_Childs=[],this.IsOpen=!1};v.PolyNode.prototype.IsHoleNode=function(){for(var i=!0,e=this.m_Parent;e!==null;)i=!i,e=e.m_Parent;return i};v.PolyNode.prototype.ChildCount=function(){return this.m_Childs.length};v.PolyNode.prototype.Contour=function(){return this.m_polygon};v.PolyNode.prototype.AddChild=function(i){var e=this.m_Childs.length;this.m_Childs.push(i),i.m_Parent=this,i.m_Index=e};v.PolyNode.prototype.GetNext=function(){return this.m_Childs.length>0?this.m_Childs[0]:this.GetNextSiblingUp()};v.PolyNode.prototype.GetNextSiblingUp=function(){return this.m_Parent===null?null:this.m_Index==this.m_Parent.m_Childs.length-1?this.m_Parent.GetNextSiblingUp():this.m_Parent.m_Childs[this.m_Index+1]};v.PolyNode.prototype.Childs=function(){return this.m_Childs};v.PolyNode.prototype.Parent=function(){return this.m_Parent};v.PolyNode.prototype.IsHole=function(){return this.IsHoleNode()};v.PolyTree=function(){this.m_AllPolys=[],v.PolyNode.call(this)};v.PolyTree.prototype.Clear=function(){for(var i=0,e=this.m_AllPolys.length;i<e;i++)this.m_AllPolys[i]=null;this.m_AllPolys.length=0,this.m_Childs.length=0};v.PolyTree.prototype.GetFirst=function(){return this.m_Childs.length>0?this.m_Childs[0]:null};v.PolyTree.prototype.Total=function(){return this.m_AllPolys.length};u2(v.PolyTree,v.PolyNode);v.Math_Abs_Int64=v.Math_Abs_Int32=v.Math_Abs_Double=function(i){return Math.abs(i)};v.Math_Max_Int32_Int32=function(i,e){return Math.max(i,e)};Ge.msie||Ge.opera||Ge.safari?v.Cast_Int32=function(i){return i|0}:v.Cast_Int32=function(i){return~~i};Ge.chrome?v.Cast_Int64=function(i){return i<-2147483648||i>2147483647?i<0?Math.ceil(i):Math.floor(i):~~i}:Ge.firefox&&typeof Number.toInteger=="function"?v.Cast_Int64=function(i){return Number.toInteger(i)}:Ge.msie7||Ge.msie8?v.Cast_Int64=function(i){return parseInt(i,10)}:Ge.msie?v.Cast_Int64=function(i){return i<-2147483648||i>2147483647?i<0?Math.ceil(i):Math.floor(i):i|0}:v.Cast_Int64=function(i){return i<0?Math.ceil(i):Math.floor(i)};v.Clear=function(i){i.length=0};v.PI=3.141592653589793;v.PI2=2*3.141592653589793;v.IntPoint=function(){var i=arguments,e=i.length;if(this.X=0,this.Y=0,Zs)if(this.Z=0,e==3)this.X=i[0],this.Y=i[1],this.Z=i[2];else if(e==2)this.X=i[0],this.Y=i[1],this.Z=0;else if(e==1)if(i[0]instanceof v.DoublePoint){var t=i[0];this.X=v.Clipper.Round(t.X),this.Y=v.Clipper.Round(t.Y),this.Z=0}else{var n=i[0];typeof n.Z>"u"&&(n.Z=0),this.X=n.X,this.Y=n.Y,this.Z=n.Z}else this.X=0,this.Y=0,this.Z=0;else if(e==2)this.X=i[0],this.Y=i[1];else if(e==1)if(i[0]instanceof v.DoublePoint){var t=i[0];this.X=v.Clipper.Round(t.X),this.Y=v.Clipper.Round(t.Y)}else{var n=i[0];this.X=n.X,this.Y=n.Y}else this.X=0,this.Y=0};v.IntPoint.op_Equality=function(i,e){return i.X==e.X&&i.Y==e.Y};v.IntPoint.op_Inequality=function(i,e){return i.X!=e.X||i.Y!=e.Y};Zs?(v.IntPoint0=function(){this.X=0,this.Y=0,this.Z=0},v.IntPoint1=function(i){this.X=i.X,this.Y=i.Y,this.Z=i.Z},v.IntPoint1dp=function(i){this.X=v.Clipper.Round(i.X),this.Y=v.Clipper.Round(i.Y),this.Z=0},v.IntPoint2=function(i,e){this.X=i,this.Y=e,this.Z=0},v.IntPoint3=function(i,e,t){this.X=i,this.Y=e,this.Z=t}):(v.IntPoint0=function(){this.X=0,this.Y=0},v.IntPoint1=function(i){this.X=i.X,this.Y=i.Y},v.IntPoint1dp=function(i){this.X=v.Clipper.Round(i.X),this.Y=v.Clipper.Round(i.Y)},v.IntPoint2=function(i,e){this.X=i,this.Y=e});v.IntRect=function(){var i=arguments,e=i.length;e==4?(this.left=i[0],this.top=i[1],this.right=i[2],this.bottom=i[3]):e==1?(this.left=ir.left,this.top=ir.top,this.right=ir.right,this.bottom=ir.bottom):(this.left=0,this.top=0,this.right=0,this.bottom=0)};v.IntRect0=function(){this.left=0,this.top=0,this.right=0,this.bottom=0};v.IntRect1=function(i){this.left=i.left,this.top=i.top,this.right=i.right,this.bottom=i.bottom};v.IntRect4=function(i,e,t,n){this.left=i,this.top=e,this.right=t,this.bottom=n};v.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3};v.PolyType={ptSubject:0,ptClip:1};v.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3};v.JoinType={jtSquare:0,jtRound:1,jtMiter:2};v.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4};aS&&(v.EndType_={etSquare:0,etRound:1,etButt:2,etClosed:3});v.EdgeSide={esLeft:0,esRight:1};v.Direction={dRightToLeft:0,dLeftToRight:1};v.TEdge=function(){this.Bot=new v.IntPoint,this.Curr=new v.IntPoint,this.Top=new v.IntPoint,this.Delta=new v.IntPoint,this.Dx=0,this.PolyTyp=v.PolyType.ptSubject,this.Side=v.EdgeSide.esLeft,this.WindDelta=0,this.WindCnt=0,this.WindCnt2=0,this.OutIdx=0,this.Next=null,this.Prev=null,this.NextInLML=null,this.NextInAEL=null,this.PrevInAEL=null,this.NextInSEL=null,this.PrevInSEL=null};v.IntersectNode=function(){this.Edge1=null,this.Edge2=null,this.Pt=new v.IntPoint};v.MyIntersectNodeSort=function(){};v.MyIntersectNodeSort.Compare=function(i,e){return e.Pt.Y-i.Pt.Y};v.LocalMinima=function(){this.Y=0,this.LeftBound=null,this.RightBound=null,this.Next=null};v.Scanbeam=function(){this.Y=0,this.Next=null};v.OutRec=function(){this.Idx=0,this.IsHole=!1,this.IsOpen=!1,this.FirstLeft=null,this.Pts=null,this.BottomPt=null,this.PolyNode=null};v.OutPt=function(){this.Idx=0,this.Pt=new v.IntPoint,this.Next=null,this.Prev=null};v.Join=function(){this.OutPt1=null,this.OutPt2=null,this.OffPt=new v.IntPoint};v.ClipperBase=function(){this.m_MinimaList=null,this.m_CurrentLM=null,this.m_edges=new Array,this.m_UseFullRange=!1,this.m_HasOpenPaths=!1,this.PreserveCollinear=!1,this.m_MinimaList=null,this.m_CurrentLM=null,this.m_UseFullRange=!1,this.m_HasOpenPaths=!1};v.ClipperBase.horizontal=-9007199254740992;v.ClipperBase.Skip=-2;v.ClipperBase.Unassigned=-1;v.ClipperBase.tolerance=1e-20;Tj?(v.ClipperBase.loRange=46340,v.ClipperBase.hiRange=46340):(v.ClipperBase.loRange=47453132,v.ClipperBase.hiRange=0xfffffffffffff);v.ClipperBase.near_zero=function(i){return i>-v.ClipperBase.tolerance&&i<v.ClipperBase.tolerance};v.ClipperBase.IsHorizontal=function(i){return i.Delta.Y===0};v.ClipperBase.prototype.PointIsVertex=function(i,e){var t=e;do{if(v.IntPoint.op_Equality(t.Pt,i))return!0;t=t.Next}while(t!=e);return!1};v.ClipperBase.prototype.PointOnLineSegment=function(i,e,t,n){return n?i.X==e.X&&i.Y==e.Y||i.X==t.X&&i.Y==t.Y||i.X>e.X==i.X<t.X&&i.Y>e.Y==i.Y<t.Y&&Ve.op_Equality(Ve.Int128Mul(i.X-e.X,t.Y-e.Y),Ve.Int128Mul(t.X-e.X,i.Y-e.Y)):i.X==e.X&&i.Y==e.Y||i.X==t.X&&i.Y==t.Y||i.X>e.X==i.X<t.X&&i.Y>e.Y==i.Y<t.Y&&(i.X-e.X)*(t.Y-e.Y)==(t.X-e.X)*(i.Y-e.Y)};v.ClipperBase.prototype.PointOnPolygon=function(i,e,t){for(var n=e;;){if(this.PointOnLineSegment(i,n.Pt,n.Next.Pt,t))return!0;if(n=n.Next,n==e)break}return!1};v.ClipperBase.prototype.SlopesEqual=v.ClipperBase.SlopesEqual=function(){var i=arguments,e=i.length,t,n,r,a,o,s,c;return e==3?(t=i[0],n=i[1],c=i[2],c?Ve.op_Equality(Ve.Int128Mul(t.Delta.Y,n.Delta.X),Ve.Int128Mul(t.Delta.X,n.Delta.Y)):v.Cast_Int64(t.Delta.Y*n.Delta.X)==v.Cast_Int64(t.Delta.X*n.Delta.Y)):e==4?(r=i[0],a=i[1],o=i[2],c=i[3],c?Ve.op_Equality(Ve.Int128Mul(r.Y-a.Y,a.X-o.X),Ve.Int128Mul(r.X-a.X,a.Y-o.Y)):v.Cast_Int64((r.Y-a.Y)*(a.X-o.X))-v.Cast_Int64((r.X-a.X)*(a.Y-o.Y))===0):(r=i[0],a=i[1],o=i[2],s=i[3],c=i[4],c?Ve.op_Equality(Ve.Int128Mul(r.Y-a.Y,o.X-s.X),Ve.Int128Mul(r.X-a.X,o.Y-s.Y)):v.Cast_Int64((r.Y-a.Y)*(o.X-s.X))-v.Cast_Int64((r.X-a.X)*(o.Y-s.Y))===0)};v.ClipperBase.SlopesEqual3=function(i,e,t){return t?Ve.op_Equality(Ve.Int128Mul(i.Delta.Y,e.Delta.X),Ve.Int128Mul(i.Delta.X,e.Delta.Y)):v.Cast_Int64(i.Delta.Y*e.Delta.X)==v.Cast_Int64(i.Delta.X*e.Delta.Y)};v.ClipperBase.SlopesEqual4=function(i,e,t,n){return n?Ve.op_Equality(Ve.Int128Mul(i.Y-e.Y,e.X-t.X),Ve.Int128Mul(i.X-e.X,e.Y-t.Y)):v.Cast_Int64((i.Y-e.Y)*(e.X-t.X))-v.Cast_Int64((i.X-e.X)*(e.Y-t.Y))===0};v.ClipperBase.SlopesEqual5=function(i,e,t,n,r){return r?Ve.op_Equality(Ve.Int128Mul(i.Y-e.Y,t.X-n.X),Ve.Int128Mul(i.X-e.X,t.Y-n.Y)):v.Cast_Int64((i.Y-e.Y)*(t.X-n.X))-v.Cast_Int64((i.X-e.X)*(t.Y-n.Y))===0};v.ClipperBase.prototype.Clear=function(){this.DisposeLocalMinimaList();for(var i=0,e=this.m_edges.length;i<e;++i){for(var t=0,n=this.m_edges[i].length;t<n;++t)this.m_edges[i][t]=null;v.Clear(this.m_edges[i])}v.Clear(this.m_edges),this.m_UseFullRange=!1,this.m_HasOpenPaths=!1};v.ClipperBase.prototype.DisposeLocalMinimaList=function(){for(;this.m_MinimaList!==null;){var i=this.m_MinimaList.Next;this.m_MinimaList=null,this.m_MinimaList=i}this.m_CurrentLM=null};v.ClipperBase.prototype.RangeTest=function(i,e){e.Value?(i.X>v.ClipperBase.hiRange||i.Y>v.ClipperBase.hiRange||-i.X>v.ClipperBase.hiRange||-i.Y>v.ClipperBase.hiRange)&&v.Error("Coordinate outside allowed range in RangeTest()."):(i.X>v.ClipperBase.loRange||i.Y>v.ClipperBase.loRange||-i.X>v.ClipperBase.loRange||-i.Y>v.ClipperBase.loRange)&&(e.Value=!0,this.RangeTest(i,e))};v.ClipperBase.prototype.InitEdge=function(i,e,t,n){i.Next=e,i.Prev=t,i.Curr.X=n.X,i.Curr.Y=n.Y,i.OutIdx=-1};v.ClipperBase.prototype.InitEdge2=function(i,e){i.Curr.Y>=i.Next.Curr.Y?(i.Bot.X=i.Curr.X,i.Bot.Y=i.Curr.Y,i.Top.X=i.Next.Curr.X,i.Top.Y=i.Next.Curr.Y):(i.Top.X=i.Curr.X,i.Top.Y=i.Curr.Y,i.Bot.X=i.Next.Curr.X,i.Bot.Y=i.Next.Curr.Y),this.SetDx(i),i.PolyTyp=e};v.ClipperBase.prototype.FindNextLocMin=function(i){for(var e;;){for(;v.IntPoint.op_Inequality(i.Bot,i.Prev.Bot)||v.IntPoint.op_Equality(i.Curr,i.Top);)i=i.Next;if(i.Dx!=v.ClipperBase.horizontal&&i.Prev.Dx!=v.ClipperBase.horizontal)break;for(;i.Prev.Dx==v.ClipperBase.horizontal;)i=i.Prev;for(e=i;i.Dx==v.ClipperBase.horizontal;)i=i.Next;if(i.Top.Y!=i.Prev.Bot.Y){e.Prev.Bot.X<i.Bot.X&&(i=e);break}}return i};v.ClipperBase.prototype.ProcessBound=function(i,e){var t=i,n=i,r,a;if(i.Dx==v.ClipperBase.horizontal&&(e?a=i.Prev.Bot.X:a=i.Next.Bot.X,i.Bot.X!=a&&this.ReverseHorizontal(i)),n.OutIdx!=v.ClipperBase.Skip)if(e){for(;n.Top.Y==n.Next.Bot.Y&&n.Next.OutIdx!=v.ClipperBase.Skip;)n=n.Next;if(n.Dx==v.ClipperBase.horizontal&&n.Next.OutIdx!=v.ClipperBase.Skip){for(r=n;r.Prev.Dx==v.ClipperBase.horizontal;)r=r.Prev;r.Prev.Top.X==n.Next.Top.X?e||(n=r.Prev):r.Prev.Top.X>n.Next.Top.X&&(n=r.Prev)}for(;i!=n;)i.NextInLML=i.Next,i.Dx==v.ClipperBase.horizontal&&i!=t&&i.Bot.X!=i.Prev.Top.X&&this.ReverseHorizontal(i),i=i.Next;i.Dx==v.ClipperBase.horizontal&&i!=t&&i.Bot.X!=i.Prev.Top.X&&this.ReverseHorizontal(i),n=n.Next}else{for(;n.Top.Y==n.Prev.Bot.Y&&n.Prev.OutIdx!=v.ClipperBase.Skip;)n=n.Prev;if(n.Dx==v.ClipperBase.horizontal&&n.Prev.OutIdx!=v.ClipperBase.Skip){for(r=n;r.Next.Dx==v.ClipperBase.horizontal;)r=r.Next;r.Next.Top.X==n.Prev.Top.X?e||(n=r.Next):r.Next.Top.X>n.Prev.Top.X&&(n=r.Next)}for(;i!=n;)i.NextInLML=i.Prev,i.Dx==v.ClipperBase.horizontal&&i!=t&&i.Bot.X!=i.Next.Top.X&&this.ReverseHorizontal(i),i=i.Prev;i.Dx==v.ClipperBase.horizontal&&i!=t&&i.Bot.X!=i.Next.Top.X&&this.ReverseHorizontal(i),n=n.Prev}if(n.OutIdx==v.ClipperBase.Skip){if(i=n,e){for(;i.Top.Y==i.Next.Bot.Y;)i=i.Next;for(;i!=n&&i.Dx==v.ClipperBase.horizontal;)i=i.Prev}else{for(;i.Top.Y==i.Prev.Bot.Y;)i=i.Prev;for(;i!=n&&i.Dx==v.ClipperBase.horizontal;)i=i.Next}if(i==n)e?n=i.Next:n=i.Prev;else{e?i=n.Next:i=n.Prev;var o=new v.LocalMinima;o.Next=null,o.Y=i.Bot.Y,o.LeftBound=null,o.RightBound=i,o.RightBound.WindDelta=0,n=this.ProcessBound(o.RightBound,e),this.InsertLocalMinima(o)}}return n};v.ClipperBase.prototype.AddPath=function(i,e,t){rS?!t&&e==v.PolyType.ptClip&&v.Error("AddPath: Open paths must be subject."):t||v.Error("AddPath: Open paths have been disabled.");var n=i.length-1;if(t)for(;n>0&&v.IntPoint.op_Equality(i[n],i[0]);)--n;for(;n>0&&v.IntPoint.op_Equality(i[n],i[n-1]);)--n;if(t&&n<2||!t&&n<1)return!1;for(var r=new Array,a=0;a<=n;a++)r.push(new v.TEdge);var o=!0;r[1].Curr.X=i[1].X,r[1].Curr.Y=i[1].Y;var s={Value:this.m_UseFullRange};this.RangeTest(i[0],s),this.m_UseFullRange=s.Value,s.Value=this.m_UseFullRange,this.RangeTest(i[n],s),this.m_UseFullRange=s.Value,this.InitEdge(r[0],r[1],r[n],i[0]),this.InitEdge(r[n],r[0],r[n-1],i[n]);for(var a=n-1;a>=1;--a)s.Value=this.m_UseFullRange,this.RangeTest(i[a],s),this.m_UseFullRange=s.Value,this.InitEdge(r[a],r[a+1],r[a-1],i[a]);for(var c=r[0],u=c,h=c;;){if(v.IntPoint.op_Equality(u.Curr,u.Next.Curr)){if(u==u.Next)break;u==c&&(c=u.Next),u=this.RemoveEdge(u),h=u;continue}if(u.Prev==u.Next)break;if(t&&v.ClipperBase.SlopesEqual(u.Prev.Curr,u.Curr,u.Next.Curr,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(u.Prev.Curr,u.Curr,u.Next.Curr))){u==c&&(c=u.Next),u=this.RemoveEdge(u),u=u.Prev,h=u;continue}if(u=u.Next,u==h)break}if(!t&&u==u.Next||t&&u.Prev==u.Next)return!1;t||(this.m_HasOpenPaths=!0,c.Prev.OutIdx=v.ClipperBase.Skip);var m=c;u=c;do this.InitEdge2(u,e),u=u.Next,o&&u.Curr.Y!=c.Curr.Y&&(o=!1);while(u!=c);if(o){if(t)return!1;u.Prev.OutIdx=v.ClipperBase.Skip,u.Prev.Bot.X<u.Prev.Top.X&&this.ReverseHorizontal(u.Prev);var f=new v.LocalMinima;for(f.Next=null,f.Y=u.Bot.Y,f.LeftBound=null,f.RightBound=u,f.RightBound.Side=v.EdgeSide.esRight,f.RightBound.WindDelta=0;u.Next.OutIdx!=v.ClipperBase.Skip;)u.NextInLML=u.Next,u.Bot.X!=u.Prev.Top.X&&this.ReverseHorizontal(u),u=u.Next;return this.InsertLocalMinima(f),this.m_edges.push(r),!0}this.m_edges.push(r);for(var g,b=null;u=this.FindNextLocMin(u),u!=b;){b==null&&(b=u);var f=new v.LocalMinima;f.Next=null,f.Y=u.Bot.Y,u.Dx<u.Prev.Dx?(f.LeftBound=u.Prev,f.RightBound=u,g=!1):(f.LeftBound=u,f.RightBound=u.Prev,g=!0),f.LeftBound.Side=v.EdgeSide.esLeft,f.RightBound.Side=v.EdgeSide.esRight,t?f.LeftBound.Next==f.RightBound?f.LeftBound.WindDelta=-1:f.LeftBound.WindDelta=1:f.LeftBound.WindDelta=0,f.RightBound.WindDelta=-f.LeftBound.WindDelta,u=this.ProcessBound(f.LeftBound,g);var M=this.ProcessBound(f.RightBound,!g);f.LeftBound.OutIdx==v.ClipperBase.Skip?f.LeftBound=null:f.RightBound.OutIdx==v.ClipperBase.Skip&&(f.RightBound=null),this.InsertLocalMinima(f),g||(u=M)}return!0};v.ClipperBase.prototype.AddPaths=function(i,e,t){for(var n=!1,r=0,a=i.length;r<a;++r)this.AddPath(i[r],e,t)&&(n=!0);return n};v.ClipperBase.prototype.Pt2IsBetweenPt1AndPt3=function(i,e,t){return v.IntPoint.op_Equality(i,t)||v.IntPoint.op_Equality(i,e)||v.IntPoint.op_Equality(t,e)?!1:i.X!=t.X?e.X>i.X==e.X<t.X:e.Y>i.Y==e.Y<t.Y};v.ClipperBase.prototype.RemoveEdge=function(i){i.Prev.Next=i.Next,i.Next.Prev=i.Prev;var e=i.Next;return i.Prev=null,e};v.ClipperBase.prototype.SetDx=function(i){i.Delta.X=i.Top.X-i.Bot.X,i.Delta.Y=i.Top.Y-i.Bot.Y,i.Delta.Y===0?i.Dx=v.ClipperBase.horizontal:i.Dx=i.Delta.X/i.Delta.Y};v.ClipperBase.prototype.InsertLocalMinima=function(i){if(this.m_MinimaList===null)this.m_MinimaList=i;else if(i.Y>=this.m_MinimaList.Y)i.Next=this.m_MinimaList,this.m_MinimaList=i;else{for(var e=this.m_MinimaList;e.Next!==null&&i.Y<e.Next.Y;)e=e.Next;i.Next=e.Next,e.Next=i}};v.ClipperBase.prototype.PopLocalMinima=function(){this.m_CurrentLM!==null&&(this.m_CurrentLM=this.m_CurrentLM.Next)};v.ClipperBase.prototype.ReverseHorizontal=function(i){var e=i.Top.X;i.Top.X=i.Bot.X,i.Bot.X=e,Zs&&(e=i.Top.Z,i.Top.Z=i.Bot.Z,i.Bot.Z=e)};v.ClipperBase.prototype.Reset=function(){if(this.m_CurrentLM=this.m_MinimaList,this.m_CurrentLM!=null)for(var i=this.m_MinimaList;i!=null;){var e=i.LeftBound;e!=null&&(e.Curr.X=e.Bot.X,e.Curr.Y=e.Bot.Y,e.Side=v.EdgeSide.esLeft,e.OutIdx=v.ClipperBase.Unassigned),e=i.RightBound,e!=null&&(e.Curr.X=e.Bot.X,e.Curr.Y=e.Bot.Y,e.Side=v.EdgeSide.esRight,e.OutIdx=v.ClipperBase.Unassigned),i=i.Next}};v.Clipper=function(i){typeof i>"u"&&(i=0),this.m_PolyOuts=null,this.m_ClipType=v.ClipType.ctIntersection,this.m_Scanbeam=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=null,this.m_IntersectNodeComparer=null,this.m_ExecuteLocked=!1,this.m_ClipFillType=v.PolyFillType.pftEvenOdd,this.m_SubjFillType=v.PolyFillType.pftEvenOdd,this.m_Joins=null,this.m_GhostJoins=null,this.m_UsingPolyTree=!1,this.ReverseSolution=!1,this.StrictlySimple=!1,v.ClipperBase.call(this),this.m_Scanbeam=null,this.m_ActiveEdges=null,this.m_SortedEdges=null,this.m_IntersectList=new Array,this.m_IntersectNodeComparer=v.MyIntersectNodeSort.Compare,this.m_ExecuteLocked=!1,this.m_UsingPolyTree=!1,this.m_PolyOuts=new Array,this.m_Joins=new Array,this.m_GhostJoins=new Array,this.ReverseSolution=(1&i)!==0,this.StrictlySimple=(2&i)!==0,this.PreserveCollinear=(4&i)!==0,Zs&&(this.ZFillFunction=null)};v.Clipper.ioReverseSolution=1;v.Clipper.ioStrictlySimple=2;v.Clipper.ioPreserveCollinear=4;v.Clipper.prototype.Clear=function(){this.m_edges.length!==0&&(this.DisposeAllPolyPts(),v.ClipperBase.prototype.Clear.call(this))};v.Clipper.prototype.DisposeScanbeamList=function(){for(;this.m_Scanbeam!==null;){var i=this.m_Scanbeam.Next;this.m_Scanbeam=null,this.m_Scanbeam=i}};v.Clipper.prototype.Reset=function(){v.ClipperBase.prototype.Reset.call(this),this.m_Scanbeam=null,this.m_ActiveEdges=null,this.m_SortedEdges=null;for(var i=this.m_MinimaList;i!==null;)this.InsertScanbeam(i.Y),i=i.Next};v.Clipper.prototype.InsertScanbeam=function(i){if(this.m_Scanbeam===null)this.m_Scanbeam=new v.Scanbeam,this.m_Scanbeam.Next=null,this.m_Scanbeam.Y=i;else if(i>this.m_Scanbeam.Y){var e=new v.Scanbeam;e.Y=i,e.Next=this.m_Scanbeam,this.m_Scanbeam=e}else{for(var t=this.m_Scanbeam;t.Next!==null&&i<=t.Next.Y;)t=t.Next;if(i==t.Y)return;var e=new v.Scanbeam;e.Y=i,e.Next=t.Next,t.Next=e}};v.Clipper.prototype.Execute=function(){var i=arguments,e=i.length,t=i[1]instanceof v.PolyTree;if(e==4&&!t){var n=i[0],r=i[1],a=i[2],o=i[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&v.Error("Error: PolyTree struct is need for open path clipping."),this.m_ExecuteLocked=!0,v.Clear(r),this.m_SubjFillType=a,this.m_ClipFillType=o,this.m_ClipType=n,this.m_UsingPolyTree=!1;try{var s=this.ExecuteInternal();s&&this.BuildResult(r)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return s}else if(e==4&&t){var n=i[0],c=i[1],a=i[2],o=i[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0,this.m_SubjFillType=a,this.m_ClipFillType=o,this.m_ClipType=n,this.m_UsingPolyTree=!0;try{var s=this.ExecuteInternal();s&&this.BuildResult2(c)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return s}else if(e==2&&!t){var n=i[0],r=i[1];return this.Execute(n,r,v.PolyFillType.pftEvenOdd,v.PolyFillType.pftEvenOdd)}else if(e==2&&t){var n=i[0],c=i[1];return this.Execute(n,c,v.PolyFillType.pftEvenOdd,v.PolyFillType.pftEvenOdd)}};v.Clipper.prototype.FixHoleLinkage=function(i){if(!(i.FirstLeft===null||i.IsHole!=i.FirstLeft.IsHole&&i.FirstLeft.Pts!==null)){for(var e=i.FirstLeft;e!==null&&(e.IsHole==i.IsHole||e.Pts===null);)e=e.FirstLeft;i.FirstLeft=e}};v.Clipper.prototype.ExecuteInternal=function(){try{if(this.Reset(),this.m_CurrentLM===null)return!1;var i=this.PopScanbeam();do{if(this.InsertLocalMinimaIntoAEL(i),v.Clear(this.m_GhostJoins),this.ProcessHorizontals(!1),this.m_Scanbeam===null)break;var e=this.PopScanbeam();if(!this.ProcessIntersections(i,e))return!1;this.ProcessEdgesAtTopOfScanbeam(e),i=e}while(this.m_Scanbeam!==null||this.m_CurrentLM!==null);for(var t=0,n=this.m_PolyOuts.length;t<n;t++){var r=this.m_PolyOuts[t];r.Pts===null||r.IsOpen||(r.IsHole^this.ReverseSolution)==this.Area(r)>0&&this.ReversePolyPtLinks(r.Pts)}this.JoinCommonEdges();for(var t=0,n=this.m_PolyOuts.length;t<n;t++){var r=this.m_PolyOuts[t];r.Pts!==null&&!r.IsOpen&&this.FixupOutPolygon(r)}return this.StrictlySimple&&this.DoSimplePolygons(),!0}finally{v.Clear(this.m_Joins),v.Clear(this.m_GhostJoins)}};v.Clipper.prototype.PopScanbeam=function(){var i=this.m_Scanbeam.Y,e=this.m_Scanbeam;return this.m_Scanbeam=this.m_Scanbeam.Next,e=null,i};v.Clipper.prototype.DisposeAllPolyPts=function(){for(var i=0,e=this.m_PolyOuts.length;i<e;++i)this.DisposeOutRec(i);v.Clear(this.m_PolyOuts)};v.Clipper.prototype.DisposeOutRec=function(i){var e=this.m_PolyOuts[i];e.Pts!==null&&this.DisposeOutPts(e.Pts),e=null,this.m_PolyOuts[i]=null};v.Clipper.prototype.DisposeOutPts=function(i){if(i!==null){var e=null;for(i.Prev.Next=null;i!==null;)e=i,i=i.Next,e=null}};v.Clipper.prototype.AddJoin=function(i,e,t){var n=new v.Join;n.OutPt1=i,n.OutPt2=e,n.OffPt.X=t.X,n.OffPt.Y=t.Y,this.m_Joins.push(n)};v.Clipper.prototype.AddGhostJoin=function(i,e){var t=new v.Join;t.OutPt1=i,t.OffPt.X=e.X,t.OffPt.Y=e.Y,this.m_GhostJoins.push(t)};Zs&&(v.Clipper.prototype.SetZ=function(i,e){i.Z=0,this.ZFillFunction!==null&&(e.OutIdx<0?this.ZFillFunction(e.Bot,e.Top,i):this.ZFillFunction(e.Top,e.Bot,i))});v.Clipper.prototype.InsertLocalMinimaIntoAEL=function(i){for(;this.m_CurrentLM!==null&&this.m_CurrentLM.Y==i;){var e=this.m_CurrentLM.LeftBound,t=this.m_CurrentLM.RightBound;this.PopLocalMinima();var n=null;if(e===null?(this.InsertEdgeIntoAEL(t,null),this.SetWindingCount(t),this.IsContributing(t)&&(n=this.AddOutPt(t,t.Bot))):t==null?(this.InsertEdgeIntoAEL(e,null),this.SetWindingCount(e),this.IsContributing(e)&&(n=this.AddOutPt(e,e.Bot)),this.InsertScanbeam(e.Top.Y)):(this.InsertEdgeIntoAEL(e,null),this.InsertEdgeIntoAEL(t,e),this.SetWindingCount(e),t.WindCnt=e.WindCnt,t.WindCnt2=e.WindCnt2,this.IsContributing(e)&&(n=this.AddLocalMinPoly(e,t,e.Bot)),this.InsertScanbeam(e.Top.Y)),t!=null&&(v.ClipperBase.IsHorizontal(t)?this.AddEdgeToSEL(t):this.InsertScanbeam(t.Top.Y)),!(e==null||t==null)){if(n!==null&&v.ClipperBase.IsHorizontal(t)&&this.m_GhostJoins.length>0&&t.WindDelta!==0)for(var r=0,a=this.m_GhostJoins.length;r<a;r++){var o=this.m_GhostJoins[r];this.HorzSegmentsOverlap(o.OutPt1.Pt,o.OffPt,t.Bot,t.Top)&&this.AddJoin(o.OutPt1,n,o.OffPt)}if(e.OutIdx>=0&&e.PrevInAEL!==null&&e.PrevInAEL.Curr.X==e.Bot.X&&e.PrevInAEL.OutIdx>=0&&v.ClipperBase.SlopesEqual(e.PrevInAEL,e,this.m_UseFullRange)&&e.WindDelta!==0&&e.PrevInAEL.WindDelta!==0){var s=this.AddOutPt(e.PrevInAEL,e.Bot);this.AddJoin(n,s,e.Top)}if(e.NextInAEL!=t){if(t.OutIdx>=0&&t.PrevInAEL.OutIdx>=0&&v.ClipperBase.SlopesEqual(t.PrevInAEL,t,this.m_UseFullRange)&&t.WindDelta!==0&&t.PrevInAEL.WindDelta!==0){var s=this.AddOutPt(t.PrevInAEL,t.Bot);this.AddJoin(n,s,t.Top)}var c=e.NextInAEL;if(c!==null)for(;c!=t;)this.IntersectEdges(t,c,e.Curr,!1),c=c.NextInAEL}}}};v.Clipper.prototype.InsertEdgeIntoAEL=function(i,e){if(this.m_ActiveEdges===null)i.PrevInAEL=null,i.NextInAEL=null,this.m_ActiveEdges=i;else if(e===null&&this.E2InsertsBeforeE1(this.m_ActiveEdges,i))i.PrevInAEL=null,i.NextInAEL=this.m_ActiveEdges,this.m_ActiveEdges.PrevInAEL=i,this.m_ActiveEdges=i;else{for(e===null&&(e=this.m_ActiveEdges);e.NextInAEL!==null&&!this.E2InsertsBeforeE1(e.NextInAEL,i);)e=e.NextInAEL;i.NextInAEL=e.NextInAEL,e.NextInAEL!==null&&(e.NextInAEL.PrevInAEL=i),i.PrevInAEL=e,e.NextInAEL=i}};v.Clipper.prototype.E2InsertsBeforeE1=function(i,e){return e.Curr.X==i.Curr.X?e.Top.Y>i.Top.Y?e.Top.X<v.Clipper.TopX(i,e.Top.Y):i.Top.X>v.Clipper.TopX(e,i.Top.Y):e.Curr.X<i.Curr.X};v.Clipper.prototype.IsEvenOddFillType=function(i){return i.PolyTyp==v.PolyType.ptSubject?this.m_SubjFillType==v.PolyFillType.pftEvenOdd:this.m_ClipFillType==v.PolyFillType.pftEvenOdd};v.Clipper.prototype.IsEvenOddAltFillType=function(i){return i.PolyTyp==v.PolyType.ptSubject?this.m_ClipFillType==v.PolyFillType.pftEvenOdd:this.m_SubjFillType==v.PolyFillType.pftEvenOdd};v.Clipper.prototype.IsContributing=function(i){var e,t;switch(i.PolyTyp==v.PolyType.ptSubject?(e=this.m_SubjFillType,t=this.m_ClipFillType):(e=this.m_ClipFillType,t=this.m_SubjFillType),e){case v.PolyFillType.pftEvenOdd:if(i.WindDelta===0&&i.WindCnt!=1)return!1;break;case v.PolyFillType.pftNonZero:if(Math.abs(i.WindCnt)!=1)return!1;break;case v.PolyFillType.pftPositive:if(i.WindCnt!=1)return!1;break;default:if(i.WindCnt!=-1)return!1;break}switch(this.m_ClipType){case v.ClipType.ctIntersection:switch(t){case v.PolyFillType.pftEvenOdd:case v.PolyFillType.pftNonZero:return i.WindCnt2!==0;case v.PolyFillType.pftPositive:return i.WindCnt2>0;default:return i.WindCnt2<0}case v.ClipType.ctUnion:switch(t){case v.PolyFillType.pftEvenOdd:case v.PolyFillType.pftNonZero:return i.WindCnt2===0;case v.PolyFillType.pftPositive:return i.WindCnt2<=0;default:return i.WindCnt2>=0}case v.ClipType.ctDifference:if(i.PolyTyp==v.PolyType.ptSubject)switch(t){case v.PolyFillType.pftEvenOdd:case v.PolyFillType.pftNonZero:return i.WindCnt2===0;case v.PolyFillType.pftPositive:return i.WindCnt2<=0;default:return i.WindCnt2>=0}else switch(t){case v.PolyFillType.pftEvenOdd:case v.PolyFillType.pftNonZero:return i.WindCnt2!==0;case v.PolyFillType.pftPositive:return i.WindCnt2>0;default:return i.WindCnt2<0}case v.ClipType.ctXor:if(i.WindDelta===0)switch(t){case v.PolyFillType.pftEvenOdd:case v.PolyFillType.pftNonZero:return i.WindCnt2===0;case v.PolyFillType.pftPositive:return i.WindCnt2<=0;default:return i.WindCnt2>=0}else return!0}return!0};v.Clipper.prototype.SetWindingCount=function(i){for(var e=i.PrevInAEL;e!==null&&(e.PolyTyp!=i.PolyTyp||e.WindDelta===0);)e=e.PrevInAEL;if(e===null)i.WindCnt=i.WindDelta===0?1:i.WindDelta,i.WindCnt2=0,e=this.m_ActiveEdges;else if(i.WindDelta===0&&this.m_ClipType!=v.ClipType.ctUnion)i.WindCnt=1,i.WindCnt2=e.WindCnt2,e=e.NextInAEL;else if(this.IsEvenOddFillType(i)){if(i.WindDelta===0){for(var t=!0,n=e.PrevInAEL;n!==null;)n.PolyTyp==e.PolyTyp&&n.WindDelta!==0&&(t=!t),n=n.PrevInAEL;i.WindCnt=t?0:1}else i.WindCnt=i.WindDelta;i.WindCnt2=e.WindCnt2,e=e.NextInAEL}else e.WindCnt*e.WindDelta<0?Math.abs(e.WindCnt)>1?e.WindDelta*i.WindDelta<0?i.WindCnt=e.WindCnt:i.WindCnt=e.WindCnt+i.WindDelta:i.WindCnt=i.WindDelta===0?1:i.WindDelta:i.WindDelta===0?i.WindCnt=e.WindCnt<0?e.WindCnt-1:e.WindCnt+1:e.WindDelta*i.WindDelta<0?i.WindCnt=e.WindCnt:i.WindCnt=e.WindCnt+i.WindDelta,i.WindCnt2=e.WindCnt2,e=e.NextInAEL;if(this.IsEvenOddAltFillType(i))for(;e!=i;)e.WindDelta!==0&&(i.WindCnt2=i.WindCnt2===0?1:0),e=e.NextInAEL;else for(;e!=i;)i.WindCnt2+=e.WindDelta,e=e.NextInAEL};v.Clipper.prototype.AddEdgeToSEL=function(i){this.m_SortedEdges===null?(this.m_SortedEdges=i,i.PrevInSEL=null,i.NextInSEL=null):(i.NextInSEL=this.m_SortedEdges,i.PrevInSEL=null,this.m_SortedEdges.PrevInSEL=i,this.m_SortedEdges=i)};v.Clipper.prototype.CopyAELToSEL=function(){var i=this.m_ActiveEdges;for(this.m_SortedEdges=i;i!==null;)i.PrevInSEL=i.PrevInAEL,i.NextInSEL=i.NextInAEL,i=i.NextInAEL};v.Clipper.prototype.SwapPositionsInAEL=function(i,e){if(!(i.NextInAEL==i.PrevInAEL||e.NextInAEL==e.PrevInAEL)){if(i.NextInAEL==e){var t=e.NextInAEL;t!==null&&(t.PrevInAEL=i);var n=i.PrevInAEL;n!==null&&(n.NextInAEL=e),e.PrevInAEL=n,e.NextInAEL=i,i.PrevInAEL=e,i.NextInAEL=t}else if(e.NextInAEL==i){var t=i.NextInAEL;t!==null&&(t.PrevInAEL=e);var n=e.PrevInAEL;n!==null&&(n.NextInAEL=i),i.PrevInAEL=n,i.NextInAEL=e,e.PrevInAEL=i,e.NextInAEL=t}else{var t=i.NextInAEL,n=i.PrevInAEL;i.NextInAEL=e.NextInAEL,i.NextInAEL!==null&&(i.NextInAEL.PrevInAEL=i),i.PrevInAEL=e.PrevInAEL,i.PrevInAEL!==null&&(i.PrevInAEL.NextInAEL=i),e.NextInAEL=t,e.NextInAEL!==null&&(e.NextInAEL.PrevInAEL=e),e.PrevInAEL=n,e.PrevInAEL!==null&&(e.PrevInAEL.NextInAEL=e)}i.PrevInAEL===null?this.m_ActiveEdges=i:e.PrevInAEL===null&&(this.m_ActiveEdges=e)}};v.Clipper.prototype.SwapPositionsInSEL=function(i,e){if(!(i.NextInSEL===null&&i.PrevInSEL===null)&&!(e.NextInSEL===null&&e.PrevInSEL===null)){if(i.NextInSEL==e){var t=e.NextInSEL;t!==null&&(t.PrevInSEL=i);var n=i.PrevInSEL;n!==null&&(n.NextInSEL=e),e.PrevInSEL=n,e.NextInSEL=i,i.PrevInSEL=e,i.NextInSEL=t}else if(e.NextInSEL==i){var t=i.NextInSEL;t!==null&&(t.PrevInSEL=e);var n=e.PrevInSEL;n!==null&&(n.NextInSEL=i),i.PrevInSEL=n,i.NextInSEL=e,e.PrevInSEL=i,e.NextInSEL=t}else{var t=i.NextInSEL,n=i.PrevInSEL;i.NextInSEL=e.NextInSEL,i.NextInSEL!==null&&(i.NextInSEL.PrevInSEL=i),i.PrevInSEL=e.PrevInSEL,i.PrevInSEL!==null&&(i.PrevInSEL.NextInSEL=i),e.NextInSEL=t,e.NextInSEL!==null&&(e.NextInSEL.PrevInSEL=e),e.PrevInSEL=n,e.PrevInSEL!==null&&(e.PrevInSEL.NextInSEL=e)}i.PrevInSEL===null?this.m_SortedEdges=i:e.PrevInSEL===null&&(this.m_SortedEdges=e)}};v.Clipper.prototype.AddLocalMaxPoly=function(i,e,t){this.AddOutPt(i,t),e.WindDelta==0&&this.AddOutPt(e,t),i.OutIdx==e.OutIdx?(i.OutIdx=-1,e.OutIdx=-1):i.OutIdx<e.OutIdx?this.AppendPolygon(i,e):this.AppendPolygon(e,i)};v.Clipper.prototype.AddLocalMinPoly=function(i,e,t){var n,r,a;if(v.ClipperBase.IsHorizontal(e)||i.Dx>e.Dx?(n=this.AddOutPt(i,t),e.OutIdx=i.OutIdx,i.Side=v.EdgeSide.esLeft,e.Side=v.EdgeSide.esRight,r=i,r.PrevInAEL==e?a=e.PrevInAEL:a=r.PrevInAEL):(n=this.AddOutPt(e,t),i.OutIdx=e.OutIdx,i.Side=v.EdgeSide.esRight,e.Side=v.EdgeSide.esLeft,r=e,r.PrevInAEL==i?a=i.PrevInAEL:a=r.PrevInAEL),a!==null&&a.OutIdx>=0&&v.Clipper.TopX(a,t.Y)==v.Clipper.TopX(r,t.Y)&&v.ClipperBase.SlopesEqual(r,a,this.m_UseFullRange)&&r.WindDelta!==0&&a.WindDelta!==0){var o=this.AddOutPt(a,t);this.AddJoin(n,o,r.Top)}return n};v.Clipper.prototype.CreateOutRec=function(){var i=new v.OutRec;return i.Idx=-1,i.IsHole=!1,i.IsOpen=!1,i.FirstLeft=null,i.Pts=null,i.BottomPt=null,i.PolyNode=null,this.m_PolyOuts.push(i),i.Idx=this.m_PolyOuts.length-1,i};v.Clipper.prototype.AddOutPt=function(i,e){var t=i.Side==v.EdgeSide.esLeft;if(i.OutIdx<0){var n=this.CreateOutRec();n.IsOpen=i.WindDelta===0;var r=new v.OutPt;return n.Pts=r,r.Idx=n.Idx,r.Pt.X=e.X,r.Pt.Y=e.Y,r.Next=r,r.Prev=r,n.IsOpen||this.SetHoleState(i,n),Zs&&(v.IntPoint.op_Equality(e,i.Bot)?(r.Pt.X=i.Bot.X,r.Pt.Y=i.Bot.Y,r.Pt.Z=i.Bot.Z):v.IntPoint.op_Equality(e,i.Top)?(r.Pt.X=i.Top.X,r.Pt.Y=i.Top.Y,r.Pt.Z=i.Top.Z):this.SetZ(r.Pt,i)),i.OutIdx=n.Idx,r}else{var n=this.m_PolyOuts[i.OutIdx],a=n.Pts;if(t&&v.IntPoint.op_Equality(e,a.Pt))return a;if(!t&&v.IntPoint.op_Equality(e,a.Prev.Pt))return a.Prev;var r=new v.OutPt;return r.Idx=n.Idx,r.Pt.X=e.X,r.Pt.Y=e.Y,r.Next=a,r.Prev=a.Prev,r.Prev.Next=r,a.Prev=r,t&&(n.Pts=r),Zs&&(v.IntPoint.op_Equality(e,i.Bot)?(r.Pt.X=i.Bot.X,r.Pt.Y=i.Bot.Y,r.Pt.Z=i.Bot.Z):v.IntPoint.op_Equality(e,i.Top)?(r.Pt.X=i.Top.X,r.Pt.Y=i.Top.Y,r.Pt.Z=i.Top.Z):this.SetZ(r.Pt,i)),r}};v.Clipper.prototype.SwapPoints=function(i,e){var t=new v.IntPoint(i.Value);i.Value.X=e.Value.X,i.Value.Y=e.Value.Y,e.Value.X=t.X,e.Value.Y=t.Y};v.Clipper.prototype.HorzSegmentsOverlap=function(i,e,t,n){return i.X>t.X==i.X<n.X||e.X>t.X==e.X<n.X||t.X>i.X==t.X<e.X||n.X>i.X==n.X<e.X||i.X==t.X&&e.X==n.X?!0:i.X==n.X&&e.X==t.X};v.Clipper.prototype.InsertPolyPtBetween=function(i,e,t){var n=new v.OutPt;return n.Pt.X=t.X,n.Pt.Y=t.Y,e==i.Next?(i.Next=n,e.Prev=n,n.Next=e,n.Prev=i):(e.Next=n,i.Prev=n,n.Next=i,n.Prev=e),n};v.Clipper.prototype.SetHoleState=function(i,e){for(var t=!1,n=i.PrevInAEL;n!==null;)n.OutIdx>=0&&n.WindDelta!=0&&(t=!t,e.FirstLeft===null&&(e.FirstLeft=this.m_PolyOuts[n.OutIdx])),n=n.PrevInAEL;t&&(e.IsHole=!0)};v.Clipper.prototype.GetDx=function(i,e){return i.Y==e.Y?v.ClipperBase.horizontal:(e.X-i.X)/(e.Y-i.Y)};v.Clipper.prototype.FirstIsBottomPt=function(i,e){for(var t=i.Prev;v.IntPoint.op_Equality(t.Pt,i.Pt)&&t!=i;)t=t.Prev;var n=Math.abs(this.GetDx(i.Pt,t.Pt));for(t=i.Next;v.IntPoint.op_Equality(t.Pt,i.Pt)&&t!=i;)t=t.Next;var r=Math.abs(this.GetDx(i.Pt,t.Pt));for(t=e.Prev;v.IntPoint.op_Equality(t.Pt,e.Pt)&&t!=e;)t=t.Prev;var a=Math.abs(this.GetDx(e.Pt,t.Pt));for(t=e.Next;v.IntPoint.op_Equality(t.Pt,e.Pt)&&t!=e;)t=t.Next;var o=Math.abs(this.GetDx(e.Pt,t.Pt));return n>=a&&n>=o||r>=a&&r>=o};v.Clipper.prototype.GetBottomPt=function(i){for(var e=null,t=i.Next;t!=i;)t.Pt.Y>i.Pt.Y?(i=t,e=null):t.Pt.Y==i.Pt.Y&&t.Pt.X<=i.Pt.X&&(t.Pt.X<i.Pt.X?(e=null,i=t):t.Next!=i&&t.Prev!=i&&(e=t)),t=t.Next;if(e!==null)for(;e!=t;)for(this.FirstIsBottomPt(t,e)||(i=e),e=e.Next;v.IntPoint.op_Inequality(e.Pt,i.Pt);)e=e.Next;return i};v.Clipper.prototype.GetLowermostRec=function(i,e){i.BottomPt===null&&(i.BottomPt=this.GetBottomPt(i.Pts)),e.BottomPt===null&&(e.BottomPt=this.GetBottomPt(e.Pts));var t=i.BottomPt,n=e.BottomPt;return t.Pt.Y>n.Pt.Y?i:t.Pt.Y<n.Pt.Y?e:t.Pt.X<n.Pt.X?i:t.Pt.X>n.Pt.X||t.Next==t?e:n.Next==n||this.FirstIsBottomPt(t,n)?i:e};v.Clipper.prototype.Param1RightOfParam2=function(i,e){do if(i=i.FirstLeft,i==e)return!0;while(i!==null);return!1};v.Clipper.prototype.GetOutRec=function(i){for(var e=this.m_PolyOuts[i];e!=this.m_PolyOuts[e.Idx];)e=this.m_PolyOuts[e.Idx];return e};v.Clipper.prototype.AppendPolygon=function(i,e){var t=this.m_PolyOuts[i.OutIdx],n=this.m_PolyOuts[e.OutIdx],r;this.Param1RightOfParam2(t,n)?r=n:this.Param1RightOfParam2(n,t)?r=t:r=this.GetLowermostRec(t,n);var a=t.Pts,o=a.Prev,s=n.Pts,c=s.Prev,u;i.Side==v.EdgeSide.esLeft?(e.Side==v.EdgeSide.esLeft?(this.ReversePolyPtLinks(s),s.Next=a,a.Prev=s,o.Next=c,c.Prev=o,t.Pts=c):(c.Next=a,a.Prev=c,s.Prev=o,o.Next=s,t.Pts=s),u=v.EdgeSide.esLeft):(e.Side==v.EdgeSide.esRight?(this.ReversePolyPtLinks(s),o.Next=c,c.Prev=o,s.Next=a,a.Prev=s):(o.Next=s,s.Prev=o,a.Prev=c,c.Next=a),u=v.EdgeSide.esRight),t.BottomPt=null,r==n&&(n.FirstLeft!=t&&(t.FirstLeft=n.FirstLeft),t.IsHole=n.IsHole),n.Pts=null,n.BottomPt=null,n.FirstLeft=t;var h=i.OutIdx,m=e.OutIdx;i.OutIdx=-1,e.OutIdx=-1;for(var f=this.m_ActiveEdges;f!==null;){if(f.OutIdx==m){f.OutIdx=h,f.Side=u;break}f=f.NextInAEL}n.Idx=t.Idx};v.Clipper.prototype.ReversePolyPtLinks=function(i){if(i!==null){var e,t;e=i;do t=e.Next,e.Next=e.Prev,e.Prev=t,e=t;while(e!=i)}};v.Clipper.SwapSides=function(i,e){var t=i.Side;i.Side=e.Side,e.Side=t};v.Clipper.SwapPolyIndexes=function(i,e){var t=i.OutIdx;i.OutIdx=e.OutIdx,e.OutIdx=t};v.Clipper.prototype.IntersectEdges=function(i,e,t,n){var r=!n&&i.NextInLML===null&&i.Top.X==t.X&&i.Top.Y==t.Y,a=!n&&e.NextInLML===null&&e.Top.X==t.X&&e.Top.Y==t.Y,o=i.OutIdx>=0,s=e.OutIdx>=0;if(rS&&(i.WindDelta===0||e.WindDelta===0)){i.WindDelta===0&&e.WindDelta===0?(r||a)&&o&&s&&this.AddLocalMaxPoly(i,e,t):i.PolyTyp==e.PolyTyp&&i.WindDelta!=e.WindDelta&&this.m_ClipType==v.ClipType.ctUnion?i.WindDelta===0?s&&(this.AddOutPt(i,t),o&&(i.OutIdx=-1)):o&&(this.AddOutPt(e,t),s&&(e.OutIdx=-1)):i.PolyTyp!=e.PolyTyp&&(i.WindDelta===0&&Math.abs(e.WindCnt)==1&&(this.m_ClipType!=v.ClipType.ctUnion||e.WindCnt2===0)?(this.AddOutPt(i,t),o&&(i.OutIdx=-1)):e.WindDelta===0&&Math.abs(i.WindCnt)==1&&(this.m_ClipType!=v.ClipType.ctUnion||i.WindCnt2===0)&&(this.AddOutPt(e,t),s&&(e.OutIdx=-1))),r&&(i.OutIdx<0?this.DeleteFromAEL(i):v.Error("Error intersecting polylines")),a&&(e.OutIdx<0?this.DeleteFromAEL(e):v.Error("Error intersecting polylines"));return}if(i.PolyTyp==e.PolyTyp)if(this.IsEvenOddFillType(i)){var c=i.WindCnt;i.WindCnt=e.WindCnt,e.WindCnt=c}else i.WindCnt+e.WindDelta===0?i.WindCnt=-i.WindCnt:i.WindCnt+=e.WindDelta,e.WindCnt-i.WindDelta===0?e.WindCnt=-e.WindCnt:e.WindCnt-=i.WindDelta;else this.IsEvenOddFillType(e)?i.WindCnt2=i.WindCnt2===0?1:0:i.WindCnt2+=e.WindDelta,this.IsEvenOddFillType(i)?e.WindCnt2=e.WindCnt2===0?1:0:e.WindCnt2-=i.WindDelta;var u,h,m,f;i.PolyTyp==v.PolyType.ptSubject?(u=this.m_SubjFillType,m=this.m_ClipFillType):(u=this.m_ClipFillType,m=this.m_SubjFillType),e.PolyTyp==v.PolyType.ptSubject?(h=this.m_SubjFillType,f=this.m_ClipFillType):(h=this.m_ClipFillType,f=this.m_SubjFillType);var g,b;switch(u){case v.PolyFillType.pftPositive:g=i.WindCnt;break;case v.PolyFillType.pftNegative:g=-i.WindCnt;break;default:g=Math.abs(i.WindCnt);break}switch(h){case v.PolyFillType.pftPositive:b=e.WindCnt;break;case v.PolyFillType.pftNegative:b=-e.WindCnt;break;default:b=Math.abs(e.WindCnt);break}if(o&&s)r||a||g!==0&&g!=1||b!==0&&b!=1||i.PolyTyp!=e.PolyTyp&&this.m_ClipType!=v.ClipType.ctXor?this.AddLocalMaxPoly(i,e,t):(this.AddOutPt(i,t),this.AddOutPt(e,t),v.Clipper.SwapSides(i,e),v.Clipper.SwapPolyIndexes(i,e));else if(o)(b===0||b==1)&&(this.AddOutPt(i,t),v.Clipper.SwapSides(i,e),v.Clipper.SwapPolyIndexes(i,e));else if(s)(g===0||g==1)&&(this.AddOutPt(e,t),v.Clipper.SwapSides(i,e),v.Clipper.SwapPolyIndexes(i,e));else if((g===0||g==1)&&(b===0||b==1)&&!r&&!a){var M,x;switch(m){case v.PolyFillType.pftPositive:M=i.WindCnt2;break;case v.PolyFillType.pftNegative:M=-i.WindCnt2;break;default:M=Math.abs(i.WindCnt2);break}switch(f){case v.PolyFillType.pftPositive:x=e.WindCnt2;break;case v.PolyFillType.pftNegative:x=-e.WindCnt2;break;default:x=Math.abs(e.WindCnt2);break}if(i.PolyTyp!=e.PolyTyp)this.AddLocalMinPoly(i,e,t);else if(g==1&&b==1)switch(this.m_ClipType){case v.ClipType.ctIntersection:M>0&&x>0&&this.AddLocalMinPoly(i,e,t);break;case v.ClipType.ctUnion:M<=0&&x<=0&&this.AddLocalMinPoly(i,e,t);break;case v.ClipType.ctDifference:(i.PolyTyp==v.PolyType.ptClip&&M>0&&x>0||i.PolyTyp==v.PolyType.ptSubject&&M<=0&&x<=0)&&this.AddLocalMinPoly(i,e,t);break;case v.ClipType.ctXor:this.AddLocalMinPoly(i,e,t);break}else v.Clipper.SwapSides(i,e)}r!=a&&(r&&i.OutIdx>=0||a&&e.OutIdx>=0)&&(v.Clipper.SwapSides(i,e),v.Clipper.SwapPolyIndexes(i,e)),r&&this.DeleteFromAEL(i),a&&this.DeleteFromAEL(e)};v.Clipper.prototype.DeleteFromAEL=function(i){var e=i.PrevInAEL,t=i.NextInAEL;e===null&&t===null&&i!=this.m_ActiveEdges||(e!==null?e.NextInAEL=t:this.m_ActiveEdges=t,t!==null&&(t.PrevInAEL=e),i.NextInAEL=null,i.PrevInAEL=null)};v.Clipper.prototype.DeleteFromSEL=function(i){var e=i.PrevInSEL,t=i.NextInSEL;e===null&&t===null&&i!=this.m_SortedEdges||(e!==null?e.NextInSEL=t:this.m_SortedEdges=t,t!==null&&(t.PrevInSEL=e),i.NextInSEL=null,i.PrevInSEL=null)};v.Clipper.prototype.UpdateEdgeIntoAEL=function(i){i.NextInLML===null&&v.Error("UpdateEdgeIntoAEL: invalid call");var e=i.PrevInAEL,t=i.NextInAEL;return i.NextInLML.OutIdx=i.OutIdx,e!==null?e.NextInAEL=i.NextInLML:this.m_ActiveEdges=i.NextInLML,t!==null&&(t.PrevInAEL=i.NextInLML),i.NextInLML.Side=i.Side,i.NextInLML.WindDelta=i.WindDelta,i.NextInLML.WindCnt=i.WindCnt,i.NextInLML.WindCnt2=i.WindCnt2,i=i.NextInLML,i.Curr.X=i.Bot.X,i.Curr.Y=i.Bot.Y,i.PrevInAEL=e,i.NextInAEL=t,v.ClipperBase.IsHorizontal(i)||this.InsertScanbeam(i.Top.Y),i};v.Clipper.prototype.ProcessHorizontals=function(i){for(var e=this.m_SortedEdges;e!==null;)this.DeleteFromSEL(e),this.ProcessHorizontal(e,i),e=this.m_SortedEdges};v.Clipper.prototype.GetHorzDirection=function(i,e){i.Bot.X<i.Top.X?(e.Left=i.Bot.X,e.Right=i.Top.X,e.Dir=v.Direction.dLeftToRight):(e.Left=i.Top.X,e.Right=i.Bot.X,e.Dir=v.Direction.dRightToLeft)};v.Clipper.prototype.PrepareHorzJoins=function(i,e){var t=this.m_PolyOuts[i.OutIdx].Pts;i.Side!=v.EdgeSide.esLeft&&(t=t.Prev),e&&(v.IntPoint.op_Equality(t.Pt,i.Top)?this.AddGhostJoin(t,i.Bot):this.AddGhostJoin(t,i.Top))};v.Clipper.prototype.ProcessHorizontal=function(i,e){var t={Dir:null,Left:null,Right:null};this.GetHorzDirection(i,t);for(var n=t.Dir,r=t.Left,a=t.Right,o=i,s=null;o.NextInLML!==null&&v.ClipperBase.IsHorizontal(o.NextInLML);)o=o.NextInLML;for(o.NextInLML===null&&(s=this.GetMaximaPair(o));;){for(var c=i==o,u=this.GetNextInAEL(i,n);u!==null&&!(u.Curr.X==i.Top.X&&i.NextInLML!==null&&u.Dx<i.NextInLML.Dx);){var h=this.GetNextInAEL(u,n);if(n==v.Direction.dLeftToRight&&u.Curr.X<=a||n==v.Direction.dRightToLeft&&u.Curr.X>=r){if(i.OutIdx>=0&&i.WindDelta!=0&&this.PrepareHorzJoins(i,e),u==s&&c){n==v.Direction.dLeftToRight?this.IntersectEdges(i,u,u.Top,!1):this.IntersectEdges(u,i,u.Top,!1),s.OutIdx>=0&&v.Error("ProcessHorizontal error");return}else if(n==v.Direction.dLeftToRight){var m=new v.IntPoint(u.Curr.X,i.Curr.Y);this.IntersectEdges(i,u,m,!0)}else{var m=new v.IntPoint(u.Curr.X,i.Curr.Y);this.IntersectEdges(u,i,m,!0)}this.SwapPositionsInAEL(i,u)}else if(n==v.Direction.dLeftToRight&&u.Curr.X>=a||n==v.Direction.dRightToLeft&&u.Curr.X<=r)break;u=h}if(i.OutIdx>=0&&i.WindDelta!==0&&this.PrepareHorzJoins(i,e),i.NextInLML!==null&&v.ClipperBase.IsHorizontal(i.NextInLML)){i=this.UpdateEdgeIntoAEL(i),i.OutIdx>=0&&this.AddOutPt(i,i.Bot);var t={Dir:n,Left:r,Right:a};this.GetHorzDirection(i,t),n=t.Dir,r=t.Left,a=t.Right}else break}if(i.NextInLML!==null)if(i.OutIdx>=0){var f=this.AddOutPt(i,i.Top);if(i=this.UpdateEdgeIntoAEL(i),i.WindDelta===0)return;var g=i.PrevInAEL,h=i.NextInAEL;if(g!==null&&g.Curr.X==i.Bot.X&&g.Curr.Y==i.Bot.Y&&g.WindDelta!==0&&g.OutIdx>=0&&g.Curr.Y>g.Top.Y&&v.ClipperBase.SlopesEqual(i,g,this.m_UseFullRange)){var b=this.AddOutPt(g,i.Bot);this.AddJoin(f,b,i.Top)}else if(h!==null&&h.Curr.X==i.Bot.X&&h.Curr.Y==i.Bot.Y&&h.WindDelta!==0&&h.OutIdx>=0&&h.Curr.Y>h.Top.Y&&v.ClipperBase.SlopesEqual(i,h,this.m_UseFullRange)){var b=this.AddOutPt(h,i.Bot);this.AddJoin(f,b,i.Top)}}else i=this.UpdateEdgeIntoAEL(i);else s!==null?s.OutIdx>=0?(n==v.Direction.dLeftToRight?this.IntersectEdges(i,s,i.Top,!1):this.IntersectEdges(s,i,i.Top,!1),s.OutIdx>=0&&v.Error("ProcessHorizontal error")):(this.DeleteFromAEL(i),this.DeleteFromAEL(s)):(i.OutIdx>=0&&this.AddOutPt(i,i.Top),this.DeleteFromAEL(i))};v.Clipper.prototype.GetNextInAEL=function(i,e){return e==v.Direction.dLeftToRight?i.NextInAEL:i.PrevInAEL};v.Clipper.prototype.IsMinima=function(i){return i!==null&&i.Prev.NextInLML!=i&&i.Next.NextInLML!=i};v.Clipper.prototype.IsMaxima=function(i,e){return i!==null&&i.Top.Y==e&&i.NextInLML===null};v.Clipper.prototype.IsIntermediate=function(i,e){return i.Top.Y==e&&i.NextInLML!==null};v.Clipper.prototype.GetMaximaPair=function(i){var e=null;return v.IntPoint.op_Equality(i.Next.Top,i.Top)&&i.Next.NextInLML===null?e=i.Next:v.IntPoint.op_Equality(i.Prev.Top,i.Top)&&i.Prev.NextInLML===null&&(e=i.Prev),e!==null&&(e.OutIdx==-2||e.NextInAEL==e.PrevInAEL&&!v.ClipperBase.IsHorizontal(e))?null:e};v.Clipper.prototype.ProcessIntersections=function(i,e){if(this.m_ActiveEdges==null)return!0;try{if(this.BuildIntersectList(i,e),this.m_IntersectList.length==0)return!0;if(this.m_IntersectList.length==1||this.FixupIntersectionOrder())this.ProcessIntersectList();else return!1}catch{this.m_SortedEdges=null,this.m_IntersectList.length=0,v.Error("ProcessIntersections error")}return this.m_SortedEdges=null,!0};v.Clipper.prototype.BuildIntersectList=function(i,e){if(this.m_ActiveEdges!==null){var t=this.m_ActiveEdges;for(this.m_SortedEdges=t;t!==null;)t.PrevInSEL=t.PrevInAEL,t.NextInSEL=t.NextInAEL,t.Curr.X=v.Clipper.TopX(t,e),t=t.NextInAEL;for(var n=!0;n&&this.m_SortedEdges!==null;){for(n=!1,t=this.m_SortedEdges;t.NextInSEL!==null;){var r=t.NextInSEL,a=new v.IntPoint;if(t.Curr.X>r.Curr.X){!this.IntersectPoint(t,r,a)&&t.Curr.X>r.Curr.X+1&&v.Error("Intersection error"),a.Y>i&&(a.Y=i,Math.abs(t.Dx)>Math.abs(r.Dx)?a.X=v.Clipper.TopX(r,i):a.X=v.Clipper.TopX(t,i));var o=new v.IntersectNode;o.Edge1=t,o.Edge2=r,o.Pt.X=a.X,o.Pt.Y=a.Y,this.m_IntersectList.push(o),this.SwapPositionsInSEL(t,r),n=!0}else t=r}if(t.PrevInSEL!==null)t.PrevInSEL.NextInSEL=null;else break}this.m_SortedEdges=null}};v.Clipper.prototype.EdgesAdjacent=function(i){return i.Edge1.NextInSEL==i.Edge2||i.Edge1.PrevInSEL==i.Edge2};v.Clipper.IntersectNodeSort=function(i,e){return e.Pt.Y-i.Pt.Y};v.Clipper.prototype.FixupIntersectionOrder=function(){this.m_IntersectList.sort(this.m_IntersectNodeComparer),this.CopyAELToSEL();for(var i=this.m_IntersectList.length,e=0;e<i;e++){if(!this.EdgesAdjacent(this.m_IntersectList[e])){for(var t=e+1;t<i&&!this.EdgesAdjacent(this.m_IntersectList[t]);)t++;if(t==i)return!1;var n=this.m_IntersectList[e];this.m_IntersectList[e]=this.m_IntersectList[t],this.m_IntersectList[t]=n}this.SwapPositionsInSEL(this.m_IntersectList[e].Edge1,this.m_IntersectList[e].Edge2)}return!0};v.Clipper.prototype.ProcessIntersectList=function(){for(var i=0,e=this.m_IntersectList.length;i<e;i++){var t=this.m_IntersectList[i];this.IntersectEdges(t.Edge1,t.Edge2,t.Pt,!0),this.SwapPositionsInAEL(t.Edge1,t.Edge2)}this.m_IntersectList.length=0};var cH=l(function(i){return i<0?Math.ceil(i-.5):Math.round(i)},"R1"),uH=l(function(i){return i<0?Math.ceil(i-.5):Math.floor(i+.5)},"R2"),dH=l(function(i){return i<0?-Math.round(Math.abs(i)):Math.round(i)},"R3"),hH=l(function(i){return i<0?(i-=.5,i<-2147483648?Math.ceil(i):i|0):(i+=.5,i>2147483647?Math.floor(i):i|0)},"R4");Ge.msie?v.Clipper.Round=cH:Ge.chromium?v.Clipper.Round=dH:Ge.safari?v.Clipper.Round=hH:v.Clipper.Round=uH;v.Clipper.TopX=function(i,e){return e==i.Top.Y?i.Top.X:i.Bot.X+v.Clipper.Round(i.Dx*(e-i.Bot.Y))};v.Clipper.prototype.IntersectPoint=function(i,e,t){t.X=0,t.Y=0;var n,r;if(v.ClipperBase.SlopesEqual(i,e,this.m_UseFullRange)||i.Dx==e.Dx)return e.Bot.Y>i.Bot.Y?(t.X=e.Bot.X,t.Y=e.Bot.Y):(t.X=i.Bot.X,t.Y=i.Bot.Y),!1;if(i.Delta.X===0)t.X=i.Bot.X,v.ClipperBase.IsHorizontal(e)?t.Y=e.Bot.Y:(r=e.Bot.Y-e.Bot.X/e.Dx,t.Y=v.Clipper.Round(t.X/e.Dx+r));else if(e.Delta.X===0)t.X=e.Bot.X,v.ClipperBase.IsHorizontal(i)?t.Y=i.Bot.Y:(n=i.Bot.Y-i.Bot.X/i.Dx,t.Y=v.Clipper.Round(t.X/i.Dx+n));else{n=i.Bot.X-i.Bot.Y*i.Dx,r=e.Bot.X-e.Bot.Y*e.Dx;var a=(r-n)/(i.Dx-e.Dx);t.Y=v.Clipper.Round(a),Math.abs(i.Dx)<Math.abs(e.Dx)?t.X=v.Clipper.Round(i.Dx*a+n):t.X=v.Clipper.Round(e.Dx*a+r)}if(t.Y<i.Top.Y||t.Y<e.Top.Y){if(i.Top.Y>e.Top.Y)return t.Y=i.Top.Y,t.X=v.Clipper.TopX(e,i.Top.Y),t.X<i.Top.X;t.Y=e.Top.Y,Math.abs(i.Dx)<Math.abs(e.Dx)?t.X=v.Clipper.TopX(i,t.Y):t.X=v.Clipper.TopX(e,t.Y)}return!0};v.Clipper.prototype.ProcessEdgesAtTopOfScanbeam=function(i){for(var e=this.m_ActiveEdges;e!==null;){var t=this.IsMaxima(e,i);if(t){var n=this.GetMaximaPair(e);t=n===null||!v.ClipperBase.IsHorizontal(n)}if(t){var r=e.PrevInAEL;this.DoMaxima(e),r===null?e=this.m_ActiveEdges:e=r.NextInAEL}else{if(this.IsIntermediate(e,i)&&v.ClipperBase.IsHorizontal(e.NextInLML)?(e=this.UpdateEdgeIntoAEL(e),e.OutIdx>=0&&this.AddOutPt(e,e.Bot),this.AddEdgeToSEL(e)):(e.Curr.X=v.Clipper.TopX(e,i),e.Curr.Y=i),this.StrictlySimple){var r=e.PrevInAEL;if(e.OutIdx>=0&&e.WindDelta!==0&&r!==null&&r.OutIdx>=0&&r.Curr.X==e.Curr.X&&r.WindDelta!==0){var a=this.AddOutPt(r,e.Curr),o=this.AddOutPt(e,e.Curr);this.AddJoin(a,o,e.Curr)}}e=e.NextInAEL}}for(this.ProcessHorizontals(!0),e=this.m_ActiveEdges;e!==null;){if(this.IsIntermediate(e,i)){var a=null;e.OutIdx>=0&&(a=this.AddOutPt(e,e.Top)),e=this.UpdateEdgeIntoAEL(e);var r=e.PrevInAEL,s=e.NextInAEL;if(r!==null&&r.Curr.X==e.Bot.X&&r.Curr.Y==e.Bot.Y&&a!==null&&r.OutIdx>=0&&r.Curr.Y>r.Top.Y&&v.ClipperBase.SlopesEqual(e,r,this.m_UseFullRange)&&e.WindDelta!==0&&r.WindDelta!==0){var o=this.AddOutPt(r,e.Bot);this.AddJoin(a,o,e.Top)}else if(s!==null&&s.Curr.X==e.Bot.X&&s.Curr.Y==e.Bot.Y&&a!==null&&s.OutIdx>=0&&s.Curr.Y>s.Top.Y&&v.ClipperBase.SlopesEqual(e,s,this.m_UseFullRange)&&e.WindDelta!==0&&s.WindDelta!==0){var o=this.AddOutPt(s,e.Bot);this.AddJoin(a,o,e.Top)}}e=e.NextInAEL}};v.Clipper.prototype.DoMaxima=function(i){var e=this.GetMaximaPair(i);if(e===null){i.OutIdx>=0&&this.AddOutPt(i,i.Top),this.DeleteFromAEL(i);return}for(var t=i.NextInAEL,n=!0;t!==null&&t!=e;)this.IntersectEdges(i,t,i.Top,!0),this.SwapPositionsInAEL(i,t),t=i.NextInAEL;i.OutIdx==-1&&e.OutIdx==-1?(this.DeleteFromAEL(i),this.DeleteFromAEL(e)):i.OutIdx>=0&&e.OutIdx>=0?this.IntersectEdges(i,e,i.Top,!1):n&&i.WindDelta===0?(i.OutIdx>=0&&(this.AddOutPt(i,i.Top),i.OutIdx=-1),this.DeleteFromAEL(i),e.OutIdx>=0&&(this.AddOutPt(e,i.Top),e.OutIdx=-1),this.DeleteFromAEL(e)):v.Error("DoMaxima error")};v.Clipper.ReversePaths=function(i){for(var e=0,t=i.length;e<t;e++)i[e].reverse()};v.Clipper.Orientation=function(i){return v.Clipper.Area(i)>=0};v.Clipper.prototype.PointCount=function(i){if(i===null)return 0;var e=0,t=i;do e++,t=t.Next;while(t!=i);return e};v.Clipper.prototype.BuildResult=function(i){v.Clear(i);for(var e=0,t=this.m_PolyOuts.length;e<t;e++){var n=this.m_PolyOuts[e];if(n.Pts!==null){var r=n.Pts.Prev,a=this.PointCount(r);if(!(a<2)){for(var o=new Array(a),s=0;s<a;s++)o[s]=r.Pt,r=r.Prev;i.push(o)}}}};v.Clipper.prototype.BuildResult2=function(i){i.Clear();for(var e=0,t=this.m_PolyOuts.length;e<t;e++){var n=this.m_PolyOuts[e],r=this.PointCount(n.Pts);if(!(n.IsOpen&&r<2||!n.IsOpen&&r<3)){this.FixHoleLinkage(n);var a=new v.PolyNode;i.m_AllPolys.push(a),n.PolyNode=a,a.m_polygon.length=r;for(var o=n.Pts.Prev,s=0;s<r;s++)a.m_polygon[s]=o.Pt,o=o.Prev}}for(var e=0,t=this.m_PolyOuts.length;e<t;e++){var n=this.m_PolyOuts[e];n.PolyNode!==null&&(n.IsOpen?(n.PolyNode.IsOpen=!0,i.AddChild(n.PolyNode)):n.FirstLeft!==null&&n.FirstLeft.PolyNode!=null?n.FirstLeft.PolyNode.AddChild(n.PolyNode):i.AddChild(n.PolyNode))}};v.Clipper.prototype.FixupOutPolygon=function(i){var e=null;i.BottomPt=null;for(var t=i.Pts;;){if(t.Prev==t||t.Prev==t.Next){this.DisposeOutPts(t),i.Pts=null;return}if(v.IntPoint.op_Equality(t.Pt,t.Next.Pt)||v.IntPoint.op_Equality(t.Pt,t.Prev.Pt)||v.ClipperBase.SlopesEqual(t.Prev.Pt,t.Pt,t.Next.Pt,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(t.Prev.Pt,t.Pt,t.Next.Pt))){e=null;var n=t;t.Prev.Next=t.Next,t.Next.Prev=t.Prev,t=t.Prev,n=null}else{if(t==e)break;e===null&&(e=t),t=t.Next}}i.Pts=t};v.Clipper.prototype.DupOutPt=function(i,e){var t=new v.OutPt;return t.Pt.X=i.Pt.X,t.Pt.Y=i.Pt.Y,t.Idx=i.Idx,e?(t.Next=i.Next,t.Prev=i,i.Next.Prev=t,i.Next=t):(t.Prev=i.Prev,t.Next=i,i.Prev.Next=t,i.Prev=t),t};v.Clipper.prototype.GetOverlap=function(i,e,t,n,r){return i<e?t<n?(r.Left=Math.max(i,t),r.Right=Math.min(e,n)):(r.Left=Math.max(i,n),r.Right=Math.min(e,t)):t<n?(r.Left=Math.max(e,t),r.Right=Math.min(i,n)):(r.Left=Math.max(e,n),r.Right=Math.min(i,t)),r.Left<r.Right};v.Clipper.prototype.JoinHorz=function(i,e,t,n,r,a){var o=i.Pt.X>e.Pt.X?v.Direction.dRightToLeft:v.Direction.dLeftToRight,s=t.Pt.X>n.Pt.X?v.Direction.dRightToLeft:v.Direction.dLeftToRight;if(o==s)return!1;if(o==v.Direction.dLeftToRight){for(;i.Next.Pt.X<=r.X&&i.Next.Pt.X>=i.Pt.X&&i.Next.Pt.Y==r.Y;)i=i.Next;a&&i.Pt.X!=r.X&&(i=i.Next),e=this.DupOutPt(i,!a),v.IntPoint.op_Inequality(e.Pt,r)&&(i=e,i.Pt.X=r.X,i.Pt.Y=r.Y,e=this.DupOutPt(i,!a))}else{for(;i.Next.Pt.X>=r.X&&i.Next.Pt.X<=i.Pt.X&&i.Next.Pt.Y==r.Y;)i=i.Next;!a&&i.Pt.X!=r.X&&(i=i.Next),e=this.DupOutPt(i,a),v.IntPoint.op_Inequality(e.Pt,r)&&(i=e,i.Pt.X=r.X,i.Pt.Y=r.Y,e=this.DupOutPt(i,a))}if(s==v.Direction.dLeftToRight){for(;t.Next.Pt.X<=r.X&&t.Next.Pt.X>=t.Pt.X&&t.Next.Pt.Y==r.Y;)t=t.Next;a&&t.Pt.X!=r.X&&(t=t.Next),n=this.DupOutPt(t,!a),v.IntPoint.op_Inequality(n.Pt,r)&&(t=n,t.Pt.X=r.X,t.Pt.Y=r.Y,n=this.DupOutPt(t,!a))}else{for(;t.Next.Pt.X>=r.X&&t.Next.Pt.X<=t.Pt.X&&t.Next.Pt.Y==r.Y;)t=t.Next;!a&&t.Pt.X!=r.X&&(t=t.Next),n=this.DupOutPt(t,a),v.IntPoint.op_Inequality(n.Pt,r)&&(t=n,t.Pt.X=r.X,t.Pt.Y=r.Y,n=this.DupOutPt(t,a))}return o==v.Direction.dLeftToRight==a?(i.Prev=t,t.Next=i,e.Next=n,n.Prev=e):(i.Next=t,t.Prev=i,e.Prev=n,n.Next=e),!0};v.Clipper.prototype.JoinPoints=function(i,e,t){var n=i.OutPt1,r=new v.OutPt,a=i.OutPt2,o=new v.OutPt,s=i.OutPt1.Pt.Y==i.OffPt.Y;if(s&&v.IntPoint.op_Equality(i.OffPt,i.OutPt1.Pt)&&v.IntPoint.op_Equality(i.OffPt,i.OutPt2.Pt)){for(r=i.OutPt1.Next;r!=n&&v.IntPoint.op_Equality(r.Pt,i.OffPt);)r=r.Next;var c=r.Pt.Y>i.OffPt.Y;for(o=i.OutPt2.Next;o!=a&&v.IntPoint.op_Equality(o.Pt,i.OffPt);)o=o.Next;var u=o.Pt.Y>i.OffPt.Y;return c==u?!1:c?(r=this.DupOutPt(n,!1),o=this.DupOutPt(a,!0),n.Prev=a,a.Next=n,r.Next=o,o.Prev=r,i.OutPt1=n,i.OutPt2=r,!0):(r=this.DupOutPt(n,!0),o=this.DupOutPt(a,!1),n.Next=a,a.Prev=n,r.Prev=o,o.Next=r,i.OutPt1=n,i.OutPt2=r,!0)}else if(s){for(r=n;n.Prev.Pt.Y==n.Pt.Y&&n.Prev!=r&&n.Prev!=a;)n=n.Prev;for(;r.Next.Pt.Y==r.Pt.Y&&r.Next!=n&&r.Next!=a;)r=r.Next;if(r.Next==n||r.Next==a)return!1;for(o=a;a.Prev.Pt.Y==a.Pt.Y&&a.Prev!=o&&a.Prev!=r;)a=a.Prev;for(;o.Next.Pt.Y==o.Pt.Y&&o.Next!=a&&o.Next!=n;)o=o.Next;if(o.Next==a||o.Next==n)return!1;var h={Left:null,Right:null};if(!this.GetOverlap(n.Pt.X,r.Pt.X,a.Pt.X,o.Pt.X,h))return!1;var m=h.Left,f=h.Right,g=new v.IntPoint,b;return n.Pt.X>=m&&n.Pt.X<=f?(g.X=n.Pt.X,g.Y=n.Pt.Y,b=n.Pt.X>r.Pt.X):a.Pt.X>=m&&a.Pt.X<=f?(g.X=a.Pt.X,g.Y=a.Pt.Y,b=a.Pt.X>o.Pt.X):r.Pt.X>=m&&r.Pt.X<=f?(g.X=r.Pt.X,g.Y=r.Pt.Y,b=r.Pt.X>n.Pt.X):(g.X=o.Pt.X,g.Y=o.Pt.Y,b=o.Pt.X>a.Pt.X),i.OutPt1=n,i.OutPt2=a,this.JoinHorz(n,r,a,o,g,b)}else{for(r=n.Next;v.IntPoint.op_Equality(r.Pt,n.Pt)&&r!=n;)r=r.Next;var M=r.Pt.Y>n.Pt.Y||!v.ClipperBase.SlopesEqual(n.Pt,r.Pt,i.OffPt,this.m_UseFullRange);if(M){for(r=n.Prev;v.IntPoint.op_Equality(r.Pt,n.Pt)&&r!=n;)r=r.Prev;if(r.Pt.Y>n.Pt.Y||!v.ClipperBase.SlopesEqual(n.Pt,r.Pt,i.OffPt,this.m_UseFullRange))return!1}for(o=a.Next;v.IntPoint.op_Equality(o.Pt,a.Pt)&&o!=a;)o=o.Next;var x=o.Pt.Y>a.Pt.Y||!v.ClipperBase.SlopesEqual(a.Pt,o.Pt,i.OffPt,this.m_UseFullRange);if(x){for(o=a.Prev;v.IntPoint.op_Equality(o.Pt,a.Pt)&&o!=a;)o=o.Prev;if(o.Pt.Y>a.Pt.Y||!v.ClipperBase.SlopesEqual(a.Pt,o.Pt,i.OffPt,this.m_UseFullRange))return!1}return r==n||o==a||r==o||e==t&&M==x?!1:M?(r=this.DupOutPt(n,!1),o=this.DupOutPt(a,!0),n.Prev=a,a.Next=n,r.Next=o,o.Prev=r,i.OutPt1=n,i.OutPt2=r,!0):(r=this.DupOutPt(n,!0),o=this.DupOutPt(a,!1),n.Next=a,a.Prev=n,r.Prev=o,o.Next=r,i.OutPt1=n,i.OutPt2=r,!0)}};v.Clipper.GetBounds=function(i){for(var e=0,t=i.length;e<t&&i[e].length==0;)e++;if(e==t)return new v.IntRect(0,0,0,0);var n=new v.IntRect;for(n.left=i[e][0].X,n.right=n.left,n.top=i[e][0].Y,n.bottom=n.top;e<t;e++)for(var r=0,a=i[e].length;r<a;r++)i[e][r].X<n.left?n.left=i[e][r].X:i[e][r].X>n.right&&(n.right=i[e][r].X),i[e][r].Y<n.top?n.top=i[e][r].Y:i[e][r].Y>n.bottom&&(n.bottom=i[e][r].Y);return n};v.Clipper.prototype.GetBounds2=function(i){var e=i,t=new v.IntRect;for(t.left=i.Pt.X,t.right=i.Pt.X,t.top=i.Pt.Y,t.bottom=i.Pt.Y,i=i.Next;i!=e;)i.Pt.X<t.left&&(t.left=i.Pt.X),i.Pt.X>t.right&&(t.right=i.Pt.X),i.Pt.Y<t.top&&(t.top=i.Pt.Y),i.Pt.Y>t.bottom&&(t.bottom=i.Pt.Y),i=i.Next;return t};v.Clipper.PointInPolygon=function(i,e){var t=0,n=e.length;if(n<3)return 0;for(var r=e[0],a=1;a<=n;++a){var o=a==n?e[0]:e[a];if(o.Y==i.Y&&(o.X==i.X||r.Y==i.Y&&o.X>i.X==r.X<i.X))return-1;if(r.Y<i.Y!=o.Y<i.Y){if(r.X>=i.X)if(o.X>i.X)t=1-t;else{var s=(r.X-i.X)*(o.Y-i.Y)-(o.X-i.X)*(r.Y-i.Y);if(s==0)return-1;s>0==o.Y>r.Y&&(t=1-t)}else if(o.X>i.X){var s=(r.X-i.X)*(o.Y-i.Y)-(o.X-i.X)*(r.Y-i.Y);if(s==0)return-1;s>0==o.Y>r.Y&&(t=1-t)}}r=o}return t};v.Clipper.prototype.PointInPolygon=function(i,e){for(var t=0,n=e;;){var r=e.Pt.X,a=e.Pt.Y,o=e.Next.Pt.X,s=e.Next.Pt.Y;if(s==i.Y&&(o==i.X||a==i.Y&&o>i.X==r<i.X))return-1;if(a<i.Y!=s<i.Y){if(r>=i.X)if(o>i.X)t=1-t;else{var c=(r-i.X)*(s-i.Y)-(o-i.X)*(a-i.Y);if(c==0)return-1;c>0==s>a&&(t=1-t)}else if(o>i.X){var c=(r-i.X)*(s-i.Y)-(o-i.X)*(a-i.Y);if(c==0)return-1;c>0==s>a&&(t=1-t)}}if(e=e.Next,n==e)break}return t};v.Clipper.prototype.Poly2ContainsPoly1=function(i,e){var t=i;do{var n=this.PointInPolygon(t.Pt,e);if(n>=0)return n!=0;t=t.Next}while(t!=i);return!0};v.Clipper.prototype.FixupFirstLefts1=function(i,e){for(var t=0,n=this.m_PolyOuts.length;t<n;t++){var r=this.m_PolyOuts[t];r.Pts!==null&&r.FirstLeft==i&&this.Poly2ContainsPoly1(r.Pts,e.Pts)&&(r.FirstLeft=e)}};v.Clipper.prototype.FixupFirstLefts2=function(i,e){for(var t=0,n=this.m_PolyOuts,r=n.length,a=n[t];t<r;t++,a=n[t])a.FirstLeft==i&&(a.FirstLeft=e)};v.Clipper.ParseFirstLeft=function(i){for(;i!=null&&i.Pts==null;)i=i.FirstLeft;return i};v.Clipper.prototype.JoinCommonEdges=function(){for(var i=0,e=this.m_Joins.length;i<e;i++){var t=this.m_Joins[i],n=this.GetOutRec(t.OutPt1.Idx),r=this.GetOutRec(t.OutPt2.Idx);if(!(n.Pts==null||r.Pts==null)){var a;if(n==r?a=n:this.Param1RightOfParam2(n,r)?a=r:this.Param1RightOfParam2(r,n)?a=n:a=this.GetLowermostRec(n,r),!!this.JoinPoints(t,n,r))if(n==r){if(n.Pts=t.OutPt1,n.BottomPt=null,r=this.CreateOutRec(),r.Pts=t.OutPt2,this.UpdateOutPtIdxs(r),this.m_UsingPolyTree)for(var o=0,s=this.m_PolyOuts.length;o<s-1;o++){var c=this.m_PolyOuts[o];c.Pts==null||v.Clipper.ParseFirstLeft(c.FirstLeft)!=n||c.IsHole==n.IsHole||this.Poly2ContainsPoly1(c.Pts,t.OutPt2)&&(c.FirstLeft=r)}this.Poly2ContainsPoly1(r.Pts,n.Pts)?(r.IsHole=!n.IsHole,r.FirstLeft=n,this.m_UsingPolyTree&&this.FixupFirstLefts2(r,n),(r.IsHole^this.ReverseSolution)==this.Area(r)>0&&this.ReversePolyPtLinks(r.Pts)):this.Poly2ContainsPoly1(n.Pts,r.Pts)?(r.IsHole=n.IsHole,n.IsHole=!r.IsHole,r.FirstLeft=n.FirstLeft,n.FirstLeft=r,this.m_UsingPolyTree&&this.FixupFirstLefts2(n,r),(n.IsHole^this.ReverseSolution)==this.Area(n)>0&&this.ReversePolyPtLinks(n.Pts)):(r.IsHole=n.IsHole,r.FirstLeft=n.FirstLeft,this.m_UsingPolyTree&&this.FixupFirstLefts1(n,r))}else r.Pts=null,r.BottomPt=null,r.Idx=n.Idx,n.IsHole=a.IsHole,a==r&&(n.FirstLeft=r.FirstLeft),r.FirstLeft=n,this.m_UsingPolyTree&&this.FixupFirstLefts2(r,n)}}};v.Clipper.prototype.UpdateOutPtIdxs=function(i){var e=i.Pts;do e.Idx=i.Idx,e=e.Prev;while(e!=i.Pts)};v.Clipper.prototype.DoSimplePolygons=function(){for(var i=0;i<this.m_PolyOuts.length;){var e=this.m_PolyOuts[i++],t=e.Pts;if(t!==null)do{for(var n=t.Next;n!=e.Pts;){if(v.IntPoint.op_Equality(t.Pt,n.Pt)&&n.Next!=t&&n.Prev!=t){var r=t.Prev,a=n.Prev;t.Prev=a,a.Next=t,n.Prev=r,r.Next=n,e.Pts=t;var o=this.CreateOutRec();o.Pts=n,this.UpdateOutPtIdxs(o),this.Poly2ContainsPoly1(o.Pts,e.Pts)?(o.IsHole=!e.IsHole,o.FirstLeft=e):this.Poly2ContainsPoly1(e.Pts,o.Pts)?(o.IsHole=e.IsHole,e.IsHole=!o.IsHole,o.FirstLeft=e.FirstLeft,e.FirstLeft=o):(o.IsHole=e.IsHole,o.FirstLeft=e.FirstLeft),n=t}n=n.Next}t=t.Next}while(t!=e.Pts)}};v.Clipper.Area=function(i){var e=i.length;if(e<3)return 0;for(var t=0,n=0,r=e-1;n<e;++n)t+=(i[r].X+i[n].X)*(i[r].Y-i[n].Y),r=n;return-t*.5};v.Clipper.prototype.Area=function(i){var e=i.Pts;if(e==null)return 0;var t=0;do t=t+(e.Prev.Pt.X+e.Pt.X)*(e.Prev.Pt.Y-e.Pt.Y),e=e.Next;while(e!=i.Pts);return t*.5};aS&&(v.Clipper.OffsetPaths=function(i,e,t,n,r){var a=new v.Paths,o=new v.ClipperOffset(r,r);return o.AddPaths(i,t,n),o.Execute(a,e),a});v.Clipper.SimplifyPolygon=function(i,e){var t=new Array,n=new v.Clipper(0);return n.StrictlySimple=!0,n.AddPath(i,v.PolyType.ptSubject,!0),n.Execute(v.ClipType.ctUnion,t,e,e),t};v.Clipper.SimplifyPolygons=function(i,e){typeof e>"u"&&(e=v.PolyFillType.pftEvenOdd);var t=new Array,n=new v.Clipper(0);return n.StrictlySimple=!0,n.AddPaths(i,v.PolyType.ptSubject,!0),n.Execute(v.ClipType.ctUnion,t,e,e),t};v.Clipper.DistanceSqrd=function(i,e){var t=i.X-e.X,n=i.Y-e.Y;return t*t+n*n};v.Clipper.DistanceFromLineSqrd=function(i,e,t){var n=e.Y-t.Y,r=t.X-e.X,a=n*e.X+r*e.Y;return a=n*i.X+r*i.Y-a,a*a/(n*n+r*r)};v.Clipper.SlopesNearCollinear=function(i,e,t,n){return v.Clipper.DistanceFromLineSqrd(e,i,t)<n};v.Clipper.PointsAreClose=function(i,e,t){var n=i.X-e.X,r=i.Y-e.Y;return n*n+r*r<=t};v.Clipper.ExcludeOp=function(i){var e=i.Prev;return e.Next=i.Next,i.Next.Prev=e,e.Idx=0,e};v.Clipper.CleanPolygon=function(i,e){typeof e>"u"&&(e=1.415);var t=i.length;if(t==0)return new Array;for(var n=new Array(t),r=0;r<t;++r)n[r]=new v.OutPt;for(var r=0;r<t;++r)n[r].Pt=i[r],n[r].Next=n[(r+1)%t],n[r].Next.Prev=n[r],n[r].Idx=0;for(var a=e*e,o=n[0];o.Idx==0&&o.Next!=o.Prev;)v.Clipper.PointsAreClose(o.Pt,o.Prev.Pt,a)?(o=v.Clipper.ExcludeOp(o),t--):v.Clipper.PointsAreClose(o.Prev.Pt,o.Next.Pt,a)?(v.Clipper.ExcludeOp(o.Next),o=v.Clipper.ExcludeOp(o),t-=2):v.Clipper.SlopesNearCollinear(o.Prev.Pt,o.Pt,o.Next.Pt,a)?(o=v.Clipper.ExcludeOp(o),t--):(o.Idx=1,o=o.Next);t<3&&(t=0);for(var s=new Array(t),r=0;r<t;++r)s[r]=new v.IntPoint(o.Pt),o=o.Next;return n=null,s};v.Clipper.CleanPolygons=function(i,e){for(var t=new Array(i.length),n=0,r=i.length;n<r;n++)t[n]=v.Clipper.CleanPolygon(i[n],e);return t};v.Clipper.Minkowski=function(i,e,t,n){var r=n?1:0,a=i.length,o=e.length,s=new Array;if(t)for(var c=0;c<o;c++){for(var u=new Array(a),h=0,m=i.length,f=i[h];h<m;h++,f=i[h])u[h]=new v.IntPoint(e[c].X+f.X,e[c].Y+f.Y);s.push(u)}else for(var c=0;c<o;c++){for(var u=new Array(a),h=0,m=i.length,f=i[h];h<m;h++,f=i[h])u[h]=new v.IntPoint(e[c].X-f.X,e[c].Y-f.Y);s.push(u)}for(var g=new Array,c=0;c<o-1+r;c++)for(var h=0;h<a;h++){var b=new Array;b.push(s[c%o][h%a]),b.push(s[(c+1)%o][h%a]),b.push(s[(c+1)%o][(h+1)%a]),b.push(s[c%o][(h+1)%a]),v.Clipper.Orientation(b)||b.reverse(),g.push(b)}var M=new v.Clipper(0);return M.AddPaths(g,v.PolyType.ptSubject,!0),M.Execute(v.ClipType.ctUnion,s,v.PolyFillType.pftNonZero,v.PolyFillType.pftNonZero),s};v.Clipper.MinkowskiSum=function(){var i=arguments,e=i.length;if(e==3){var t=i[0],n=i[1],r=i[2];return v.Clipper.Minkowski(t,n,!0,r)}else if(e==4){for(var t=i[0],a=i[1],o=i[2],r=i[3],s=new v.Clipper,c,u=0,h=a.length;u<h;++u){var c=v.Clipper.Minkowski(t,a[u],!0,r);s.AddPaths(c,v.PolyType.ptSubject,!0)}r&&s.AddPaths(a,v.PolyType.ptClip,!0);var m=new v.Paths;return s.Execute(v.ClipType.ctUnion,m,o,o),m}};v.Clipper.MinkowskiDiff=function(i,e,t){return v.Clipper.Minkowski(i,e,!1,t)};v.Clipper.PolyTreeToPaths=function(i){var e=new Array;return v.Clipper.AddPolyNodeToPaths(i,v.Clipper.NodeType.ntAny,e),e};v.Clipper.AddPolyNodeToPaths=function(i,e,t){var n=!0;switch(e){case v.Clipper.NodeType.ntOpen:return;case v.Clipper.NodeType.ntClosed:n=!i.IsOpen;break;default:break}i.m_polygon.length>0&&n&&t.push(i.m_polygon);for(var r=0,a=i.Childs(),o=a.length,s=a[r];r<o;r++,s=a[r])v.Clipper.AddPolyNodeToPaths(s,e,t)};v.Clipper.OpenPathsFromPolyTree=function(i){for(var e=new v.Paths,t=0,n=i.ChildCount();t<n;t++)i.Childs()[t].IsOpen&&e.push(i.Childs()[t].m_polygon);return e};v.Clipper.ClosedPathsFromPolyTree=function(i){var e=new v.Paths;return v.Clipper.AddPolyNodeToPaths(i,v.Clipper.NodeType.ntClosed,e),e};u2(v.Clipper,v.ClipperBase);v.Clipper.NodeType={ntAny:0,ntOpen:1,ntClosed:2};v.ClipperOffset=function(i,e){typeof i>"u"&&(i=2),typeof e>"u"&&(e=v.ClipperOffset.def_arc_tolerance),this.m_destPolys=new v.Paths,this.m_srcPoly=new v.Path,this.m_destPoly=new v.Path,this.m_normals=new Array,this.m_delta=0,this.m_sinA=0,this.m_sin=0,this.m_cos=0,this.m_miterLim=0,this.m_StepsPerRad=0,this.m_lowest=new v.IntPoint,this.m_polyNodes=new v.PolyNode,this.MiterLimit=i,this.ArcTolerance=e,this.m_lowest.X=-1};v.ClipperOffset.two_pi=6.28318530717959;v.ClipperOffset.def_arc_tolerance=.25;v.ClipperOffset.prototype.Clear=function(){v.Clear(this.m_polyNodes.Childs()),this.m_lowest.X=-1};v.ClipperOffset.Round=v.Clipper.Round;v.ClipperOffset.prototype.AddPath=function(i,e,t){var n=i.length-1;if(!(n<0)){var r=new v.PolyNode;if(r.m_jointype=e,r.m_endtype=t,t==v.EndType.etClosedLine||t==v.EndType.etClosedPolygon)for(;n>0&&v.IntPoint.op_Equality(i[0],i[n]);)n--;r.m_polygon.push(i[0]);for(var a=0,o=0,s=1;s<=n;s++)v.IntPoint.op_Inequality(r.m_polygon[a],i[s])&&(a++,r.m_polygon.push(i[s]),(i[s].Y>r.m_polygon[o].Y||i[s].Y==r.m_polygon[o].Y&&i[s].X<r.m_polygon[o].X)&&(o=a));if(!(t==v.EndType.etClosedPolygon&&a<2||t!=v.EndType.etClosedPolygon&&a<0)&&(this.m_polyNodes.AddChild(r),t==v.EndType.etClosedPolygon))if(this.m_lowest.X<0)this.m_lowest=new v.IntPoint(0,o);else{var c=this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon[this.m_lowest.Y];(r.m_polygon[o].Y>c.Y||r.m_polygon[o].Y==c.Y&&r.m_polygon[o].X<c.X)&&(this.m_lowest=new v.IntPoint(this.m_polyNodes.ChildCount()-1,o))}}};v.ClipperOffset.prototype.AddPaths=function(i,e,t){for(var n=0,r=i.length;n<r;n++)this.AddPath(i[n],e,t)};v.ClipperOffset.prototype.FixOrientations=function(){if(this.m_lowest.X>=0&&!v.Clipper.Orientation(this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon))for(var i=0;i<this.m_polyNodes.ChildCount();i++){var e=this.m_polyNodes.Childs()[i];(e.m_endtype==v.EndType.etClosedPolygon||e.m_endtype==v.EndType.etClosedLine&&v.Clipper.Orientation(e.m_polygon))&&e.m_polygon.reverse()}else for(var i=0;i<this.m_polyNodes.ChildCount();i++){var e=this.m_polyNodes.Childs()[i];e.m_endtype==v.EndType.etClosedLine&&!v.Clipper.Orientation(e.m_polygon)&&e.m_polygon.reverse()}};v.ClipperOffset.GetUnitNormal=function(i,e){var t=e.X-i.X,n=e.Y-i.Y;if(t==0&&n==0)return new v.DoublePoint(0,0);var r=1/Math.sqrt(t*t+n*n);return t*=r,n*=r,new v.DoublePoint(n,-t)};v.ClipperOffset.prototype.DoOffset=function(i){if(this.m_destPolys=new Array,this.m_delta=i,v.ClipperBase.near_zero(i)){for(var e=0;e<this.m_polyNodes.ChildCount();e++){var t=this.m_polyNodes.Childs()[e];t.m_endtype==v.EndType.etClosedPolygon&&this.m_destPolys.push(t.m_polygon)}return}this.MiterLimit>2?this.m_miterLim=2/(this.MiterLimit*this.MiterLimit):this.m_miterLim=.5;var n;this.ArcTolerance<=0?n=v.ClipperOffset.def_arc_tolerance:this.ArcTolerance>Math.abs(i)*v.ClipperOffset.def_arc_tolerance?n=Math.abs(i)*v.ClipperOffset.def_arc_tolerance:n=this.ArcTolerance;var r=3.14159265358979/Math.acos(1-n/Math.abs(i));this.m_sin=Math.sin(v.ClipperOffset.two_pi/r),this.m_cos=Math.cos(v.ClipperOffset.two_pi/r),this.m_StepsPerRad=r/v.ClipperOffset.two_pi,i<0&&(this.m_sin=-this.m_sin);for(var e=0;e<this.m_polyNodes.ChildCount();e++){var t=this.m_polyNodes.Childs()[e];this.m_srcPoly=t.m_polygon;var a=this.m_srcPoly.length;if(!(a==0||i<=0&&(a<3||t.m_endtype!=v.EndType.etClosedPolygon))){if(this.m_destPoly=new Array,a==1){if(t.m_jointype==v.JoinType.jtRound)for(var o=1,s=0,c=1;c<=r;c++){this.m_destPoly.push(new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[0].X+o*i),v.ClipperOffset.Round(this.m_srcPoly[0].Y+s*i)));var u=o;o=o*this.m_cos-this.m_sin*s,s=u*this.m_sin+s*this.m_cos}else for(var o=-1,s=-1,c=0;c<4;++c)this.m_destPoly.push(new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[0].X+o*i),v.ClipperOffset.Round(this.m_srcPoly[0].Y+s*i))),o<0?o=1:s<0?s=1:o=-1;this.m_destPolys.push(this.m_destPoly);continue}this.m_normals.length=0;for(var c=0;c<a-1;c++)this.m_normals.push(v.ClipperOffset.GetUnitNormal(this.m_srcPoly[c],this.m_srcPoly[c+1]));if(t.m_endtype==v.EndType.etClosedLine||t.m_endtype==v.EndType.etClosedPolygon?this.m_normals.push(v.ClipperOffset.GetUnitNormal(this.m_srcPoly[a-1],this.m_srcPoly[0])):this.m_normals.push(new v.DoublePoint(this.m_normals[a-2])),t.m_endtype==v.EndType.etClosedPolygon){for(var h=a-1,c=0;c<a;c++)h=this.OffsetPoint(c,h,t.m_jointype);this.m_destPolys.push(this.m_destPoly)}else if(t.m_endtype==v.EndType.etClosedLine){for(var h=a-1,c=0;c<a;c++)h=this.OffsetPoint(c,h,t.m_jointype);this.m_destPolys.push(this.m_destPoly),this.m_destPoly=new Array;for(var m=this.m_normals[a-1],c=a-1;c>0;c--)this.m_normals[c]=new v.DoublePoint(-this.m_normals[c-1].X,-this.m_normals[c-1].Y);this.m_normals[0]=new v.DoublePoint(-m.X,-m.Y),h=0;for(var c=a-1;c>=0;c--)h=this.OffsetPoint(c,h,t.m_jointype);this.m_destPolys.push(this.m_destPoly)}else{for(var h=0,c=1;c<a-1;++c)h=this.OffsetPoint(c,h,t.m_jointype);var f;if(t.m_endtype==v.EndType.etOpenButt){var c=a-1;f=new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[c].X+this.m_normals[c].X*i),v.ClipperOffset.Round(this.m_srcPoly[c].Y+this.m_normals[c].Y*i)),this.m_destPoly.push(f),f=new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[c].X-this.m_normals[c].X*i),v.ClipperOffset.Round(this.m_srcPoly[c].Y-this.m_normals[c].Y*i)),this.m_destPoly.push(f)}else{var c=a-1;h=a-2,this.m_sinA=0,this.m_normals[c]=new v.DoublePoint(-this.m_normals[c].X,-this.m_normals[c].Y),t.m_endtype==v.EndType.etOpenSquare?this.DoSquare(c,h):this.DoRound(c,h)}for(var c=a-1;c>0;c--)this.m_normals[c]=new v.DoublePoint(-this.m_normals[c-1].X,-this.m_normals[c-1].Y);this.m_normals[0]=new v.DoublePoint(-this.m_normals[1].X,-this.m_normals[1].Y),h=a-1;for(var c=h-1;c>0;--c)h=this.OffsetPoint(c,h,t.m_jointype);t.m_endtype==v.EndType.etOpenButt?(f=new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[0].X-this.m_normals[0].X*i),v.ClipperOffset.Round(this.m_srcPoly[0].Y-this.m_normals[0].Y*i)),this.m_destPoly.push(f),f=new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[0].X+this.m_normals[0].X*i),v.ClipperOffset.Round(this.m_srcPoly[0].Y+this.m_normals[0].Y*i)),this.m_destPoly.push(f)):(h=1,this.m_sinA=0,t.m_endtype==v.EndType.etOpenSquare?this.DoSquare(0,1):this.DoRound(0,1)),this.m_destPolys.push(this.m_destPoly)}}}};v.ClipperOffset.prototype.Execute=function(){var i=arguments,e=i[0]instanceof v.PolyTree;if(e){var t=i[0],n=i[1];t.Clear(),this.FixOrientations(),this.DoOffset(n);var r=new v.Clipper(0);if(r.AddPaths(this.m_destPolys,v.PolyType.ptSubject,!0),n>0)r.Execute(v.ClipType.ctUnion,t,v.PolyFillType.pftPositive,v.PolyFillType.pftPositive);else{var a=v.Clipper.GetBounds(this.m_destPolys),o=new v.Path;if(o.push(new v.IntPoint(a.left-10,a.bottom+10)),o.push(new v.IntPoint(a.right+10,a.bottom+10)),o.push(new v.IntPoint(a.right+10,a.top-10)),o.push(new v.IntPoint(a.left-10,a.top-10)),r.AddPath(o,v.PolyType.ptSubject,!0),r.ReverseSolution=!0,r.Execute(v.ClipType.ctUnion,t,v.PolyFillType.pftNegative,v.PolyFillType.pftNegative),t.ChildCount()==1&&t.Childs()[0].ChildCount()>0){var s=t.Childs()[0];t.Childs()[0]=s.Childs()[0];for(var c=1;c<s.ChildCount();c++)t.AddChild(s.Childs()[c])}else t.Clear()}}else{var t=i[0],n=i[1];v.Clear(t),this.FixOrientations(),this.DoOffset(n);var r=new v.Clipper(0);if(r.AddPaths(this.m_destPolys,v.PolyType.ptSubject,!0),n>0)r.Execute(v.ClipType.ctUnion,t,v.PolyFillType.pftPositive,v.PolyFillType.pftPositive);else{var a=v.Clipper.GetBounds(this.m_destPolys),o=new v.Path;o.push(new v.IntPoint(a.left-10,a.bottom+10)),o.push(new v.IntPoint(a.right+10,a.bottom+10)),o.push(new v.IntPoint(a.right+10,a.top-10)),o.push(new v.IntPoint(a.left-10,a.top-10)),r.AddPath(o,v.PolyType.ptSubject,!0),r.ReverseSolution=!0,r.Execute(v.ClipType.ctUnion,t,v.PolyFillType.pftNegative,v.PolyFillType.pftNegative),t.length>0&&t.splice(0,1)}}};v.ClipperOffset.prototype.OffsetPoint=function(i,e,t){if(this.m_sinA=this.m_normals[e].X*this.m_normals[i].Y-this.m_normals[i].X*this.m_normals[e].Y,this.m_sinA<5e-5&&this.m_sinA>-5e-5)return e;if(this.m_sinA>1?this.m_sinA=1:this.m_sinA<-1&&(this.m_sinA=-1),this.m_sinA*this.m_delta<0)this.m_destPoly.push(new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[i].X+this.m_normals[e].X*this.m_delta),v.ClipperOffset.Round(this.m_srcPoly[i].Y+this.m_normals[e].Y*this.m_delta))),this.m_destPoly.push(new v.IntPoint(this.m_srcPoly[i])),this.m_destPoly.push(new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[i].X+this.m_normals[i].X*this.m_delta),v.ClipperOffset.Round(this.m_srcPoly[i].Y+this.m_normals[i].Y*this.m_delta)));else switch(t){case v.JoinType.jtMiter:{var n=1+(this.m_normals[i].X*this.m_normals[e].X+this.m_normals[i].Y*this.m_normals[e].Y);n>=this.m_miterLim?this.DoMiter(i,e,n):this.DoSquare(i,e);break}case v.JoinType.jtSquare:this.DoSquare(i,e);break;case v.JoinType.jtRound:this.DoRound(i,e);break}return e=i,e};v.ClipperOffset.prototype.DoSquare=function(i,e){var t=Math.tan(Math.atan2(this.m_sinA,this.m_normals[e].X*this.m_normals[i].X+this.m_normals[e].Y*this.m_normals[i].Y)/4);this.m_destPoly.push(new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[i].X+this.m_delta*(this.m_normals[e].X-this.m_normals[e].Y*t)),v.ClipperOffset.Round(this.m_srcPoly[i].Y+this.m_delta*(this.m_normals[e].Y+this.m_normals[e].X*t)))),this.m_destPoly.push(new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[i].X+this.m_delta*(this.m_normals[i].X+this.m_normals[i].Y*t)),v.ClipperOffset.Round(this.m_srcPoly[i].Y+this.m_delta*(this.m_normals[i].Y-this.m_normals[i].X*t))))};v.ClipperOffset.prototype.DoMiter=function(i,e,t){var n=this.m_delta/t;this.m_destPoly.push(new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[i].X+(this.m_normals[e].X+this.m_normals[i].X)*n),v.ClipperOffset.Round(this.m_srcPoly[i].Y+(this.m_normals[e].Y+this.m_normals[i].Y)*n)))};v.ClipperOffset.prototype.DoRound=function(i,e){for(var t=Math.atan2(this.m_sinA,this.m_normals[e].X*this.m_normals[i].X+this.m_normals[e].Y*this.m_normals[i].Y),n=v.Cast_Int32(v.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(t))),r=this.m_normals[e].X,a=this.m_normals[e].Y,o,s=0;s<n;++s)this.m_destPoly.push(new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[i].X+r*this.m_delta),v.ClipperOffset.Round(this.m_srcPoly[i].Y+a*this.m_delta))),o=r,r=r*this.m_cos-this.m_sin*a,a=o*this.m_sin+a*this.m_cos;this.m_destPoly.push(new v.IntPoint(v.ClipperOffset.Round(this.m_srcPoly[i].X+this.m_normals[i].X*this.m_delta),v.ClipperOffset.Round(this.m_srcPoly[i].Y+this.m_normals[i].Y*this.m_delta)))};v.Error=function(i){try{throw new Error(i)}catch(e){alert(e.message)}};v.JS={};v.JS.AreaOfPolygon=function(i,e){return e||(e=1),v.Clipper.Area(i)/(e*e)};v.JS.AreaOfPolygons=function(i,e){e||(e=1);for(var t=0,n=0;n<i.length;n++)t+=v.Clipper.Area(i[n]);return t/(e*e)};v.JS.BoundsOfPath=function(i,e){return v.JS.BoundsOfPaths([i],e)};v.JS.BoundsOfPaths=function(i,e){e||(e=1);var t=v.Clipper.GetBounds(i);return t.left/=e,t.bottom/=e,t.right/=e,t.top/=e,t};v.JS.Clean=function(n,e){if(!(n instanceof Array))return[];var t=n[0]instanceof Array,n=v.JS.Clone(n);if(typeof e!="number"||e===null)return v.Error("Delta is not a number in Clean()."),n;if(n.length===0||n.length==1&&n[0].length===0||e<0)return n;t||(n=[n]);for(var r=n.length,a,o,s,c,u,h,m,f=[],g=0;g<r;g++)if(o=n[g],a=o.length,a!==0){if(a<3){s=o,f.push(s);continue}for(s=o,c=e*e,u=o[0],h=1,m=1;m<a;m++)(o[m].X-u.X)*(o[m].X-u.X)+(o[m].Y-u.Y)*(o[m].Y-u.Y)<=c||(s[h]=o[m],u=o[m],h++);u=o[h-1],(o[0].X-u.X)*(o[0].X-u.X)+(o[0].Y-u.Y)*(o[0].Y-u.Y)<=c&&h--,h<a&&s.splice(h,a-h),s.length&&f.push(s)}return!t&&f.length?f=f[0]:!t&&f.length===0?f=[]:t&&f.length===0&&(f=[[]]),f};v.JS.Clone=function(i){if(!(i instanceof Array))return[];if(i.length===0)return[];if(i.length==1&&i[0].length===0)return[[]];var e=i[0]instanceof Array;e||(i=[i]);var t=i.length,n,r,a,o,s=new Array(t);for(r=0;r<t;r++){for(n=i[r].length,o=new Array(n),a=0;a<n;a++)o[a]={X:i[r][a].X,Y:i[r][a].Y};s[r]=o}return e||(s=s[0]),s};v.JS.Lighten=function(i,e){if(!(i instanceof Array))return[];if(typeof e!="number"||e===null)return v.Error("Tolerance is not a number in Lighten()."),v.JS.Clone(i);if(i.length===0||i.length==1&&i[0].length===0||e<0)return v.JS.Clone(i);i[0]instanceof Array||(i=[i]);var t,n,r,a,o,s,c,u,h,m,f,g,b,M,x,T,E,S=i.length,_=e*e,P=[];for(t=0;t<S;t++)if(r=i[t],s=r.length,s!=0){for(a=0;a<1e6;a++){for(o=[],s=r.length,r[s-1].X!=r[0].X||r[s-1].Y!=r[0].Y?(g=1,r.push({X:r[0].X,Y:r[0].Y}),s=r.length):g=0,f=[],n=0;n<s-2;n++)c=r[n],h=r[n+1],u=r[n+2],T=c.X,E=c.Y,b=u.X-T,M=u.Y-E,(b!==0||M!==0)&&(x=((h.X-T)*b+(h.Y-E)*M)/(b*b+M*M),x>1?(T=u.X,E=u.Y):x>0&&(T+=b*x,E+=M*x)),b=h.X-T,M=h.Y-E,m=b*b+M*M,m<=_&&(f[n+1]=1,n++);for(o.push({X:r[0].X,Y:r[0].Y}),n=1;n<s-1;n++)f[n]||o.push({X:r[n].X,Y:r[n].Y});if(o.push({X:r[s-1].X,Y:r[s-1].Y}),g&&r.pop(),f.length)r=o;else break}s=o.length,o[s-1].X==o[0].X&&o[s-1].Y==o[0].Y&&o.pop(),o.length>2&&P.push(o)}return!i[0]instanceof Array&&(P=P[0]),typeof P>"u"&&(P=[[]]),P};v.JS.PerimeterOfPath=function(i,e,t){if(typeof i>"u")return 0;var n=Math.sqrt,r=0,a,o,s=0,c=0,u=0,h=0,m=i.length;if(m<2)return 0;for(e&&(i[m]=i[0],m++);--m;)a=i[m],s=a.X,c=a.Y,o=i[m-1],u=o.X,h=o.Y,r+=n((s-u)*(s-u)+(c-h)*(c-h));return e&&i.pop(),r/t};v.JS.PerimeterOfPaths=function(i,e,t){t||(t=1);for(var n=0,r=0;r<i.length;r++)n+=v.JS.PerimeterOfPath(i[r],e,t);return n};v.JS.ScaleDownPath=function(i,e){var t,n;for(e||(e=1),t=i.length;t--;)n=i[t],n.X=n.X/e,n.Y=n.Y/e};v.JS.ScaleDownPaths=function(i,e){var t,n,r,a=Math.round;for(e||(e=1),t=i.length;t--;)for(n=i[t].length;n--;)r=i[t][n],r.X=r.X/e,r.Y=r.Y/e};v.JS.ScaleUpPath=function(i,e){var t,n,r=Math.round;for(e||(e=1),t=i.length;t--;)n=i[t],n.X=r(n.X*e),n.Y=r(n.Y*e)};v.JS.ScaleUpPaths=function(i,e){var t,n,r,a=Math.round;for(e||(e=1),t=i.length;t--;)for(n=i[t].length;n--;)r=i[t][n],r.X=a(r.X*e),r.Y=a(r.Y*e)};v.ExPolygons=function(){return[]};v.ExPolygon=function(){this.outer=null,this.holes=null};v.JS.AddOuterPolyNodeToExPolygons=function(i,e){var t=new v.ExPolygon;t.outer=i.Contour();var n=i.Childs(),r=n.length;t.holes=new Array(r);var a,o,s,c,u,h;for(s=0;s<r;s++)for(a=n[s],t.holes[s]=a.Contour(),c=0,u=a.Childs(),h=u.length;c<h;c++)o=u[c],v.JS.AddOuterPolyNodeToExPolygons(o,e);e.push(t)};v.JS.ExPolygonsToPaths=function(i){var e,t,n,r,a=new v.Paths;for(e=0,n=i.length;e<n;e++)for(a.push(i[e].outer),t=0,r=i[e].holes.length;t<r;t++)a.push(i[e].holes[t]);return a};v.JS.PolyTreeToExPolygons=function(i){var e=new v.ExPolygons,t,n,r,a;for(n=0,r=i.Childs(),a=r.length;n<a;n++)t=r[n],v.JS.AddOuterPolyNodeToExPolygons(t,e);return e};np.exports=v});var wI=pe((xve,EI)=>{"use strict";y();function pY(i,e){if(!(i instanceof e))throw new TypeError("Cannot call a class as a function")}l(pY,"_classCallCheck");function MI(i,e){for(var t=0;t<e.length;t++){var n=e[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(i,n.key,n)}}l(MI,"_defineProperties");function fY(i,e,t){return e&&MI(i.prototype,e),t&&MI(i,t),i}l(fY,"_createClass");var mY=function(){function i(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.R,n=t===void 0?1:t,r=e.Q,a=r===void 0?1:r,o=e.A,s=o===void 0?1:o,c=e.B,u=c===void 0?0:c,h=e.C,m=h===void 0?1:h;pY(this,i),this.R=n,this.Q=a,this.A=s,this.C=m,this.B=u,this.cov=NaN,this.x=NaN}return l(i,"KalmanFilter"),fY(i,[{key:"filter",value:l(function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(isNaN(this.x))this.x=1/this.C*t,this.cov=1/this.C*this.Q*(1/this.C);else{var r=this.predict(n),a=this.uncertainty(),o=a*this.C*(1/(this.C*a*this.C+this.Q));this.x=r+o*(t-this.C*r),this.cov=a-o*this.C*a}return this.x},"filter")},{key:"predict",value:l(function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return this.A*this.x+this.B*t},"predict")},{key:"uncertainty",value:l(function(){return this.A*this.cov*this.A+this.R},"uncertainty")},{key:"lastMeasurement",value:l(function(){return this.x},"lastMeasurement")},{key:"setMeasurementNoise",value:l(function(t){this.Q=t},"setMeasurementNoise")},{key:"setProcessNoise",value:l(function(t){this.R=t},"setProcessNoise")}]),i}();EI.exports=mY});var D_=pe(($8,ex)=>{y();(function(i,e){typeof $8=="object"&&typeof ex<"u"?ex.exports=e():typeof define=="function"&&define.amd?define(e):(i=typeof globalThis<"u"?globalThis:i||self,i.DOMPurify=e())})($8,function(){"use strict";let{entries:i,setPrototypeOf:e,isFrozen:t,getPrototypeOf:n,getOwnPropertyDescriptor:r}=Object,{freeze:a,seal:o,create:s}=Object,{apply:c,construct:u}=typeof Reflect<"u"&&Reflect;a||(a=l(function(Y){return Y},"freeze")),o||(o=l(function(Y){return Y},"seal")),c||(c=l(function(Y,W,J){return Y.apply(W,J)},"apply")),u||(u=l(function(Y,W){return new Y(...W)},"construct"));let h=P(Array.prototype.forEach),m=P(Array.prototype.pop),f=P(Array.prototype.push),g=P(String.prototype.toLowerCase),b=P(String.prototype.toString),M=P(String.prototype.match),x=P(String.prototype.replace),T=P(String.prototype.indexOf),E=P(String.prototype.trim),S=P(RegExp.prototype.test),_=q(TypeError);function P(H){return function(Y){for(var W=arguments.length,J=new Array(W>1?W-1:0),Te=1;Te<W;Te++)J[Te-1]=arguments[Te];return c(H,Y,J)}}l(P,"unapply");function q(H){return function(){for(var Y=arguments.length,W=new Array(Y),J=0;J<Y;J++)W[J]=arguments[J];return u(H,W)}}l(q,"unconstruct");function D(H,Y){let W=arguments.length>2&&arguments[2]!==void 0?arguments[2]:g;e&&e(H,null);let J=Y.length;for(;J--;){let Te=Y[J];if(typeof Te=="string"){let se=W(Te);se!==Te&&(t(Y)||(Y[J]=se),Te=se)}H[Te]=!0}return H}l(D,"addToSet");function U(H){let Y=s(null);for(let[W,J]of i(H))r(H,W)!==void 0&&(Y[W]=J);return Y}l(U,"clone");function R(H,Y){for(;H!==null;){let J=r(H,Y);if(J){if(J.get)return P(J.get);if(typeof J.value=="function")return P(J.value)}H=n(H)}function W(J){return console.warn("fallback value for",J),null}return l(W,"fallbackValue"),W}l(R,"lookupGetter");let B=a(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),j=a(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),G=a(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Q=a(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),X=a(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),ne=a(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),$=a(["#text"]),ue=a(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),be=a(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),ee=a(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),ge=a(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),de=o(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Ae=o(/<%[\w\W]*|[\w\W]*%>/gm),Fe=o(/\${[\w\W]*}/gm),Ce=o(/^data-[\-\w.\u00B7-\uFFFF]/),He=o(/^aria-[\-\w]+$/),kt=o(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),$e=o(/^(?:\w+script|data):/i),ae=o(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ce=o(/^html$/i);var Le=Object.freeze({__proto__:null,MUSTACHE_EXPR:de,ERB_EXPR:Ae,TMPLIT_EXPR:Fe,DATA_ATTR:Ce,ARIA_ATTR:He,IS_ALLOWED_URI:kt,IS_SCRIPT_OR_DATA:$e,ATTR_WHITESPACE:ae,DOCTYPE_NAME:ce});let St=l(function(){return typeof window>"u"?null:window},"getGlobal"),I=l(function(Y,W){if(typeof Y!="object"||typeof Y.createPolicy!="function")return null;let J=null,Te="data-tt-policy-suffix";W&&W.hasAttribute(Te)&&(J=W.getAttribute(Te));let se="dompurify"+(J?"#"+J:"");try{return Y.createPolicy(se,{createHTML(ie){return ie},createScriptURL(ie){return ie}})}catch{return console.warn("TrustedTypes policy "+se+" could not be created."),null}},"_createTrustedTypesPolicy");function N(){let H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:St(),Y=l(Me=>N(Me),"DOMPurify");if(Y.version="3.0.6",Y.removed=[],!H||!H.document||H.document.nodeType!==9)return Y.isSupported=!1,Y;let{document:W}=H,J=W,Te=J.currentScript,{DocumentFragment:se,HTMLTemplateElement:ie,Node:oe,Element:le,NodeFilter:fe,NamedNodeMap:Pe=H.NamedNodeMap||H.MozNamedAttrMap,HTMLFormElement:Ke,DOMParser:Xe,trustedTypes:Bt}=H,Xt=le.prototype,br=R(Xt,"cloneNode"),rs=R(Xt,"nextSibling"),sm=R(Xt,"childNodes"),zu=R(Xt,"parentNode");if(typeof ie=="function"){let Me=W.createElement("template");Me.content&&Me.content.ownerDocument&&(W=Me.content.ownerDocument)}let Ti,as="",{implementation:ju,createNodeIterator:Qv,createDocumentFragment:Kv,getElementsByTagName:$r}=W,{importNode:Gu}=J,mn={};Y.isSupported=typeof i=="function"&&typeof zu=="function"&&ju&&ju.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:os,ERB_EXPR:L,TMPLIT_EXPR:V,DATA_ATTR:te,ARIA_ATTR:ke,IS_SCRIPT_OR_DATA:Je,ATTR_WHITESPACE:ft}=Le,{IS_ALLOWED_URI:Ft}=Le,ze=null,It=D({},[...B,...j,...G,...X,...$]),Mt=null,ss=D({},[...ue,...be,...ee,...ge]),gt=Object.seal(s(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),xr=null,Ni=null,ls=!0,Tr=!0,Za=!1,Ue=!0,ye=!1,pi=!1,zn=!1,jn=!1,ea=!1,Si=!1,Cn=!1,Qi=!0,cs=!1,Mr="user-content-",Er=!0,Ki=!1,wr={},Gn=null,us=D({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),ds=null,lm=D({},["audio","video","img","source","image","track"]),Hu=null,cm=D({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),_l="http://www.w3.org/1998/Math/MathML",Ol="http://www.w3.org/2000/svg",Hn="http://www.w3.org/1999/xhtml",Qa=Hn,Yu=!1,Wu=null,Jv=D({},[_l,Ol,Hn],b),ta=null,$v=["application/xhtml+xml","text/html"],e4="text/html",ti=null,Ka=null,Xu=W.createElement("form"),Dl=l(function(k){return k instanceof RegExp||k instanceof Function},"isRegexOrFunction"),Ll=l(function(){let k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Ka&&Ka===k)){if((!k||typeof k!="object")&&(k={}),k=U(k),ta=$v.indexOf(k.PARSER_MEDIA_TYPE)===-1?ta=e4:ta=k.PARSER_MEDIA_TYPE,ti=ta==="application/xhtml+xml"?b:g,ze="ALLOWED_TAGS"in k?D({},k.ALLOWED_TAGS,ti):It,Mt="ALLOWED_ATTR"in k?D({},k.ALLOWED_ATTR,ti):ss,Wu="ALLOWED_NAMESPACES"in k?D({},k.ALLOWED_NAMESPACES,b):Jv,Hu="ADD_URI_SAFE_ATTR"in k?D(U(cm),k.ADD_URI_SAFE_ATTR,ti):cm,ds="ADD_DATA_URI_TAGS"in k?D(U(lm),k.ADD_DATA_URI_TAGS,ti):lm,Gn="FORBID_CONTENTS"in k?D({},k.FORBID_CONTENTS,ti):us,xr="FORBID_TAGS"in k?D({},k.FORBID_TAGS,ti):{},Ni="FORBID_ATTR"in k?D({},k.FORBID_ATTR,ti):{},wr="USE_PROFILES"in k?k.USE_PROFILES:!1,ls=k.ALLOW_ARIA_ATTR!==!1,Tr=k.ALLOW_DATA_ATTR!==!1,Za=k.ALLOW_UNKNOWN_PROTOCOLS||!1,Ue=k.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ye=k.SAFE_FOR_TEMPLATES||!1,pi=k.WHOLE_DOCUMENT||!1,ea=k.RETURN_DOM||!1,Si=k.RETURN_DOM_FRAGMENT||!1,Cn=k.RETURN_TRUSTED_TYPE||!1,jn=k.FORCE_BODY||!1,Qi=k.SANITIZE_DOM!==!1,cs=k.SANITIZE_NAMED_PROPS||!1,Er=k.KEEP_CONTENT!==!1,Ki=k.IN_PLACE||!1,Ft=k.ALLOWED_URI_REGEXP||kt,Qa=k.NAMESPACE||Hn,gt=k.CUSTOM_ELEMENT_HANDLING||{},k.CUSTOM_ELEMENT_HANDLING&&Dl(k.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(gt.tagNameCheck=k.CUSTOM_ELEMENT_HANDLING.tagNameCheck),k.CUSTOM_ELEMENT_HANDLING&&Dl(k.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(gt.attributeNameCheck=k.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),k.CUSTOM_ELEMENT_HANDLING&&typeof k.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(gt.allowCustomizedBuiltInElements=k.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ye&&(Tr=!1),Si&&(ea=!0),wr&&(ze=D({},[...$]),Mt=[],wr.html===!0&&(D(ze,B),D(Mt,ue)),wr.svg===!0&&(D(ze,j),D(Mt,be),D(Mt,ge)),wr.svgFilters===!0&&(D(ze,G),D(Mt,be),D(Mt,ge)),wr.mathMl===!0&&(D(ze,X),D(Mt,ee),D(Mt,ge))),k.ADD_TAGS&&(ze===It&&(ze=U(ze)),D(ze,k.ADD_TAGS,ti)),k.ADD_ATTR&&(Mt===ss&&(Mt=U(Mt)),D(Mt,k.ADD_ATTR,ti)),k.ADD_URI_SAFE_ATTR&&D(Hu,k.ADD_URI_SAFE_ATTR,ti),k.FORBID_CONTENTS&&(Gn===us&&(Gn=U(Gn)),D(Gn,k.FORBID_CONTENTS,ti)),Er&&(ze["#text"]=!0),pi&&D(ze,["html","head","body"]),ze.table&&(D(ze,["tbody"]),delete xr.tbody),k.TRUSTED_TYPES_POLICY){if(typeof k.TRUSTED_TYPES_POLICY.createHTML!="function")throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof k.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Ti=k.TRUSTED_TYPES_POLICY,as=Ti.createHTML("")}else Ti===void 0&&(Ti=I(Bt,Te)),Ti!==null&&typeof as=="string"&&(as=Ti.createHTML(""));a&&a(k),Ka=k}},"_parseConfig"),ql=D({},["mi","mo","mn","ms","mtext"]),Rl=D({},["foreignobject","desc","title","annotation-xml"]),um=D({},["title","style","font","a","script"]),Nl=D({},j);D(Nl,G),D(Nl,Q);let Zu=D({},X);D(Zu,ne);let dm=l(function(k){let re=zu(k);(!re||!re.tagName)&&(re={namespaceURI:Qa,tagName:"template"});let ve=g(k.tagName),vt=g(re.tagName);return Wu[k.namespaceURI]?k.namespaceURI===Ol?re.namespaceURI===Hn?ve==="svg":re.namespaceURI===_l?ve==="svg"&&(vt==="annotation-xml"||ql[vt]):!!Nl[ve]:k.namespaceURI===_l?re.namespaceURI===Hn?ve==="math":re.namespaceURI===Ol?ve==="math"&&Rl[vt]:!!Zu[ve]:k.namespaceURI===Hn?re.namespaceURI===Ol&&!Rl[vt]||re.namespaceURI===_l&&!ql[vt]?!1:!Zu[ve]&&(um[ve]||!Nl[ve]):!!(ta==="application/xhtml+xml"&&Wu[k.namespaceURI]):!1},"_checkValidNamespace"),ia=l(function(k){f(Y.removed,{element:k});try{k.parentNode.removeChild(k)}catch{k.remove()}},"_forceRemove"),Qu=l(function(k,re){try{f(Y.removed,{attribute:re.getAttributeNode(k),from:re})}catch{f(Y.removed,{attribute:null,from:re})}if(re.removeAttribute(k),k==="is"&&!Mt[k])if(ea||Si)try{ia(re)}catch{}else try{re.setAttribute(k,"")}catch{}},"_removeAttribute"),Ku=l(function(k){let re=null,ve=null;if(jn)k="<remove></remove>"+k;else{let _i=M(k,/^[\r\n\t ]+/);ve=_i&&_i[0]}ta==="application/xhtml+xml"&&Qa===Hn&&(k='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+k+"</body></html>");let vt=Ti?Ti.createHTML(k):k;if(Qa===Hn)try{re=new Xe().parseFromString(vt,ta)}catch{}if(!re||!re.documentElement){re=ju.createDocument(Qa,"template",null);try{re.documentElement.innerHTML=Yu?as:vt}catch{}}let Ii=re.body||re.documentElement;return k&&ve&&Ii.insertBefore(W.createTextNode(ve),Ii.childNodes[0]||null),Qa===Hn?$r.call(re,pi?"html":"body")[0]:pi?re.documentElement:Ii},"_initDocument"),hm=l(function(k){return Qv.call(k.ownerDocument||k,k,fe.SHOW_ELEMENT|fe.SHOW_COMMENT|fe.SHOW_TEXT,null)},"_createNodeIterator"),cT=l(function(k){return k instanceof Ke&&(typeof k.nodeName!="string"||typeof k.textContent!="string"||typeof k.removeChild!="function"||!(k.attributes instanceof Pe)||typeof k.removeAttribute!="function"||typeof k.setAttribute!="function"||typeof k.namespaceURI!="string"||typeof k.insertBefore!="function"||typeof k.hasChildNodes!="function")},"_isClobbered"),Ju=l(function(k){return typeof oe=="function"&&k instanceof oe},"_isNode"),Ji=l(function(k,re,ve){mn[k]&&h(mn[k],vt=>{vt.call(Y,re,ve,Ka)})},"_executeHook"),pm=l(function(k){let re=null;if(Ji("beforeSanitizeElements",k,null),cT(k))return ia(k),!0;let ve=ti(k.nodeName);if(Ji("uponSanitizeElement",k,{tagName:ve,allowedTags:ze}),k.hasChildNodes()&&!Ju(k.firstElementChild)&&S(/<[/\w]/g,k.innerHTML)&&S(/<[/\w]/g,k.textContent))return ia(k),!0;if(!ze[ve]||xr[ve]){if(!xr[ve]&&mm(ve)&&(gt.tagNameCheck instanceof RegExp&&S(gt.tagNameCheck,ve)||gt.tagNameCheck instanceof Function&>.tagNameCheck(ve)))return!1;if(Er&&!Gn[ve]){let vt=zu(k)||k.parentNode,Ii=sm(k)||k.childNodes;if(Ii&&vt){let _i=Ii.length;for(let $i=_i-1;$i>=0;--$i)vt.insertBefore(br(Ii[$i],!0),rs(k))}}return ia(k),!0}return k instanceof le&&!dm(k)||(ve==="noscript"||ve==="noembed"||ve==="noframes")&&S(/<\/no(script|embed|frames)/i,k.innerHTML)?(ia(k),!0):(ye&&k.nodeType===3&&(re=k.textContent,h([os,L,V],vt=>{re=x(re,vt," ")}),k.textContent!==re&&(f(Y.removed,{element:k.cloneNode()}),k.textContent=re)),Ji("afterSanitizeElements",k,null),!1)},"_sanitizeElements"),fm=l(function(k,re,ve){if(Qi&&(re==="id"||re==="name")&&(ve in W||ve in Xu))return!1;if(!(Tr&&!Ni[re]&&S(te,re))){if(!(ls&&S(ke,re))){if(!Mt[re]||Ni[re]){if(!(mm(k)&&(gt.tagNameCheck instanceof RegExp&&S(gt.tagNameCheck,k)||gt.tagNameCheck instanceof Function&>.tagNameCheck(k))&&(gt.attributeNameCheck instanceof RegExp&&S(gt.attributeNameCheck,re)||gt.attributeNameCheck instanceof Function&>.attributeNameCheck(re))||re==="is"&>.allowCustomizedBuiltInElements&&(gt.tagNameCheck instanceof RegExp&&S(gt.tagNameCheck,ve)||gt.tagNameCheck instanceof Function&>.tagNameCheck(ve))))return!1}else if(!Hu[re]){if(!S(Ft,x(ve,ft,""))){if(!((re==="src"||re==="xlink:href"||re==="href")&&k!=="script"&&T(ve,"data:")===0&&ds[k])){if(!(Za&&!S(Je,x(ve,ft,"")))){if(ve)return!1}}}}}}return!0},"_isValidAttribute"),mm=l(function(k){return k.indexOf("-")>0},"_isBasicCustomElement"),uT=l(function(k){Ji("beforeSanitizeAttributes",k,null);let{attributes:re}=k;if(!re)return;let ve={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Mt},vt=re.length;for(;vt--;){let Ii=re[vt],{name:_i,namespaceURI:$i,value:hs}=Ii,$u=ti(_i),en=_i==="value"?hs:E(hs);if(ve.attrName=$u,ve.attrValue=en,ve.keepAttr=!0,ve.forceKeepAttr=void 0,Ji("uponSanitizeAttribute",k,ve),en=ve.attrValue,ve.forceKeepAttr||(Qu(_i,k),!ve.keepAttr))continue;if(!Ue&&S(/\/>/i,en)){Qu(_i,k);continue}ye&&h([os,L,V],hT=>{en=x(en,hT," ")});let dT=ti(k.nodeName);if(fm(dT,$u,en)){if(cs&&($u==="id"||$u==="name")&&(Qu(_i,k),en=Mr+en),Ti&&typeof Bt=="object"&&typeof Bt.getAttributeType=="function"&&!$i)switch(Bt.getAttributeType(dT,$u)){case"TrustedHTML":{en=Ti.createHTML(en);break}case"TrustedScriptURL":{en=Ti.createScriptURL(en);break}}try{$i?k.setAttributeNS($i,_i,en):k.setAttribute(_i,en),m(Y.removed)}catch{}}}Ji("afterSanitizeAttributes",k,null)},"_sanitizeAttributes"),aO=l(function Me(k){let re=null,ve=hm(k);for(Ji("beforeSanitizeShadowDOM",k,null);re=ve.nextNode();)Ji("uponSanitizeShadowNode",re,null),!pm(re)&&(re.content instanceof se&&Me(re.content),uT(re));Ji("afterSanitizeShadowDOM",k,null)},"_sanitizeShadowDOM");return Y.sanitize=function(Me){let k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},re=null,ve=null,vt=null,Ii=null;if(Yu=!Me,Yu&&(Me="<!-->"),typeof Me!="string"&&!Ju(Me))if(typeof Me.toString=="function"){if(Me=Me.toString(),typeof Me!="string")throw _("dirty is not a string, aborting")}else throw _("toString is not a function");if(!Y.isSupported)return Me;if(zn||Ll(k),Y.removed=[],typeof Me=="string"&&(Ki=!1),Ki){if(Me.nodeName){let hs=ti(Me.nodeName);if(!ze[hs]||xr[hs])throw _("root node is forbidden and cannot be sanitized in-place")}}else if(Me instanceof oe)re=Ku("<!---->"),ve=re.ownerDocument.importNode(Me,!0),ve.nodeType===1&&ve.nodeName==="BODY"||ve.nodeName==="HTML"?re=ve:re.appendChild(ve);else{if(!ea&&!ye&&!pi&&Me.indexOf("<")===-1)return Ti&&Cn?Ti.createHTML(Me):Me;if(re=Ku(Me),!re)return ea?null:Cn?as:""}re&&jn&&ia(re.firstChild);let _i=hm(Ki?Me:re);for(;vt=_i.nextNode();)pm(vt)||(vt.content instanceof se&&aO(vt.content),uT(vt));if(Ki)return Me;if(ea){if(Si)for(Ii=Kv.call(re.ownerDocument);re.firstChild;)Ii.appendChild(re.firstChild);else Ii=re;return(Mt.shadowroot||Mt.shadowrootmode)&&(Ii=Gu.call(J,Ii,!0)),Ii}let $i=pi?re.outerHTML:re.innerHTML;return pi&&ze["!doctype"]&&re.ownerDocument&&re.ownerDocument.doctype&&re.ownerDocument.doctype.name&&S(ce,re.ownerDocument.doctype.name)&&($i="<!DOCTYPE "+re.ownerDocument.doctype.name+">\n"+$i),ye&&h([os,L,V],hs=>{$i=x($i,hs," ")}),Ti&&Cn?Ti.createHTML($i):$i},Y.setConfig=function(){let Me=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ll(Me),zn=!0},Y.clearConfig=function(){Ka=null,zn=!1},Y.isValidAttribute=function(Me,k,re){Ka||Ll({});let ve=ti(Me),vt=ti(k);return fm(ve,vt,re)},Y.addHook=function(Me,k){typeof k=="function"&&(mn[Me]=mn[Me]||[],f(mn[Me],k))},Y.removeHook=function(Me){if(mn[Me])return m(mn[Me])},Y.removeHooks=function(Me){mn[Me]&&(mn[Me]=[])},Y.removeAllHooks=function(){mn={}},Y}l(N,"createDOMPurify");var O=N();return O})});var R_=pe((m6e,Mv)=>{y();(function(){"use strict";function i(o,s){var c=o.x-s.x,u=o.y-s.y;return c*c+u*u}l(i,"getSqDist");function e(o,s,c){var u=s.x,h=s.y,m=c.x-u,f=c.y-h;if(m!==0||f!==0){var g=((o.x-u)*m+(o.y-h)*f)/(m*m+f*f);g>1?(u=c.x,h=c.y):g>0&&(u+=m*g,h+=f*g)}return m=o.x-u,f=o.y-h,m*m+f*f}l(e,"getSqSegDist");function t(o,s){for(var c=o[0],u=[c],h,m=1,f=o.length;m<f;m++)h=o[m],i(h,c)>s&&(u.push(h),c=h);return c!==h&&u.push(h),u}l(t,"simplifyRadialDist");function n(o,s,c,u,h){for(var m=u,f,g=s+1;g<c;g++){var b=e(o[g],o[s],o[c]);b>m&&(f=g,m=b)}m>u&&(f-s>1&&n(o,s,f,u,h),h.push(o[f]),c-f>1&&n(o,f,c,u,h))}l(n,"simplifyDPStep");function r(o,s){var c=o.length-1,u=[o[0]];return n(o,0,c,s,u),u.push(o[c]),u}l(r,"simplifyDouglasPeucker");function a(o,s,c){if(o.length<=2)return o;var u=s!==void 0?s*s:1;return o=c?o:t(o,u),o=r(o,u),o}l(a,"simplify"),typeof define=="function"&&define.amd?define(function(){return a}):typeof Mv<"u"?(Mv.exports=a,Mv.exports.default=a):typeof self<"u"?self.simplify=a:window.simplify=a})()});y();y();y();y();y();var ra,sd,u4,Cm,FT,d4=class d4{constructor(e){w(this,sd);w(this,Cm);w(this,ra,void 0);A(this,ra,e)}directionsTo(e,t){let n=d(this,ra).analytics;return e instanceof rn?e.destinations.length===0?[]:(n.getDirections(this,e.destinations[e.destinations.length-1]),Z(this,Cm,FT).call(this,e,t)):(n.getDirections(this,e),Z(this,sd,u4).call(this,e,t))}distanceTo(e,t){let n=Z(this,sd,u4).call(this,e,t);return(n==null?void 0:n.distance)||0}};ra=new WeakMap,sd=new WeakSet,u4=l(function(e,t){let n=od(this),r=od(e),a=d(this,ra).navigator.getDirections({originIds:n,destinationNodeIds:r,accessible:(t==null?void 0:t.accessible)||!1,includedVortexIds:t!=null&&t.includedVortexIds?new Set(t.includedVortexIds):void 0,excludedVortexIds:t!=null&&t.excludedVortexIds?new Set(t.excludedVortexIds):void 0,simplify:t==null?void 0:t.simplify});return new aa(d(this,ra),a)},"#directionsToSingleDestination"),Cm=new WeakSet,FT=l(function(e,t){let n=[],r=od(this),a;for(let o=0;o<e.destinations.length;o++){a=od(e.destinations[o]);let s=d(this,ra).navigator.getDirections({originIds:r,destinationNodeIds:a,includedVortexIds:t!=null&&t.includedVortexIds?new Set(t.includedVortexIds):void 0,excludedVortexIds:t!=null&&t.excludedVortexIds?new Set(t.excludedVortexIds):void 0,accessible:(t==null?void 0:t.accessible)||!1,simplify:t==null?void 0:t.simplify}),c=new aa(d(this,ra),s);n.push(c),c.path.length===0?r=a:r=[c.path[c.path.length-1].id]}return n},"#directionsToDestinationSet"),l(d4,"MappedinNavigatable");var Sn=d4;y();y();var UT="mi-debug";var oO={logState:0,log(...i){this.logState<=0&&console.log("[MappedInJS]",...i)},warn(...i){this.logState<=1&&console.warn("[MappedInJS]",...i)},error(...i){this.logState<=2&&console.error("[MappedInJS]",...i)},assert(...i){console.assert(...i)},time(i){console.time(i)},timeEnd(i){console.timeEnd(i)}},F=oO;y();y();y();y();var h4=l(function(i,e){return h4=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])},h4(i,e)},"extendStatics");function eo(i,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");h4(i,e);function t(){this.constructor=i}l(t,"__"),i.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}l(eo,"__extends");var at=l(function(){return at=Object.assign||l(function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},"__assign"),at.apply(this,arguments)},"__assign");function _t(i,e,t,n){function r(a){return a instanceof t?a:new t(function(o){o(a)})}return l(r,"adopt"),new(t||(t=Promise))(function(a,o){function s(h){try{u(n.next(h))}catch(m){o(m)}}l(s,"fulfilled");function c(h){try{u(n.throw(h))}catch(m){o(m)}}l(c,"rejected");function u(h){h.done?a(h.value):r(h.value).then(s,c)}l(u,"step"),u((n=n.apply(i,e||[])).next())})}l(_t,"__awaiter");function Ot(i,e){var t={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,r,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(u){return function(h){return c([u,h])}}function c(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(t=0)),t;)try{if(n=1,r&&(a=u[0]&2?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return t.label++,{value:u[1],done:!1};case 5:t.label++,r=u[1],u=[0];continue;case 7:u=t.ops.pop(),t.trys.pop();continue;default:if(a=t.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]<a[3])){t.label=u[1];break}if(u[0]===6&&t.label<a[1]){t.label=a[1],a=u;break}if(a&&t.label<a[2]){t.label=a[2],t.ops.push(u);break}a[2]&&t.ops.pop(),t.trys.pop();continue}u=e.call(i,t)}catch(h){u=[6,h],r=0}finally{n=a=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}l(Ot,"__generator");function VT(i){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&i[e],n=0;if(t)return t.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}l(VT,"__values");function zT(i,e){var t=typeof Symbol=="function"&&i[Symbol.iterator];if(!t)return i;var n=t.call(i),r,a=[],o;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)a.push(r.value)}catch(s){o={error:s}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(o)throw o.error}}return a}l(zT,"__read");y();y();y();var Dt=l(function(){return Dt=Object.assign||l(function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},"__assign"),Dt.apply(this,arguments)},"__assign");function jT(i,e){var t={};for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&e.indexOf(n)<0&&(t[n]=i[n]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(i);r<n.length;r++)e.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(i,n[r])&&(t[n[r]]=i[n[r]]);return t}l(jT,"__rest");function Gt(i,e,t,n){function r(a){return a instanceof t?a:new t(function(o){o(a)})}return l(r,"adopt"),new(t||(t=Promise))(function(a,o){function s(h){try{u(n.next(h))}catch(m){o(m)}}l(s,"fulfilled");function c(h){try{u(n.throw(h))}catch(m){o(m)}}l(c,"rejected");function u(h){h.done?a(h.value):r(h.value).then(s,c)}l(u,"step"),u((n=n.apply(i,e||[])).next())})}l(Gt,"__awaiter");function Ht(i,e){var t={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,r,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(u){return function(h){return c([u,h])}}function c(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(t=0)),t;)try{if(n=1,r&&(a=u[0]&2?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return t.label++,{value:u[1],done:!1};case 5:t.label++,r=u[1],u=[0];continue;case 7:u=t.ops.pop(),t.trys.pop();continue;default:if(a=t.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]<a[3])){t.label=u[1];break}if(u[0]===6&&t.label<a[1]){t.label=a[1],a=u;break}if(a&&t.label<a[2]){t.label=a[2],t.ops.push(u);break}a[2]&&t.ops.pop(),t.trys.pop();continue}u=e.call(i,t)}catch(h){u=[6,h],r=0}finally{n=a=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}l(Ht,"__generator");function Pr(i){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&i[e],n=0;if(t)return t.call(i);if(i&&typeof i.length=="number")return{next:function(){return i&&n>=i.length&&(i=void 0),{value:i&&i[n++],done:!i}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}l(Pr,"__values");function Bi(i,e){var t=typeof Symbol=="function"&&i[Symbol.iterator];if(!t)return i;var n=t.call(i),r,a=[],o;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)a.push(r.value)}catch(s){o={error:s}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(o)throw o.error}}return a}l(Bi,"__read");function Zn(i,e,t){if(t||arguments.length===2)for(var n=0,r=e.length,a;n<r;n++)(a||!(n in e))&&(a||(a=Array.prototype.slice.call(e,0,n)),a[n]=e[n]);return i.concat(a||Array.prototype.slice.call(e))}l(Zn,"__spreadArray");y();y();y();var to;(function(i){i.US="US",i.EU="EU"})(to||(to={}));y();var gi;(function(i){i.SET="$set",i.SET_ONCE="$setOnce",i.ADD="$add",i.APPEND="$append",i.PREPEND="$prepend",i.REMOVE="$remove",i.PREINSERT="$preInsert",i.POSTINSERT="$postInsert",i.UNSET="$unset",i.CLEAR_ALL="$clearAll"})(gi||(gi={}));var oa;(function(i){i.REVENUE_PRODUCT_ID="$productId",i.REVENUE_QUANTITY="$quantity",i.REVENUE_PRICE="$price",i.REVENUE_TYPE="$revenueType",i.REVENUE="$revenue"})(oa||(oa={}));var io;(function(i){i.IDENTIFY="$identify",i.GROUP_IDENTIFY="$groupidentify",i.REVENUE="revenue_amount"})(io||(io={}));y();var Fi;(function(i){i[i.None=0]="None",i[i.Error=1]="Error",i[i.Warn=2]="Warn",i[i.Verbose=3]="Verbose",i[i.Debug=4]="Debug"})(Fi||(Fi={}));y();var an;(function(i){i.BEFORE="before",i.ENRICHMENT="enrichment",i.DESTINATION="destination"})(an||(an={}));y();var Ut;(function(i){i.Unknown="unknown",i.Skipped="skipped",i.Success="success",i.RateLimit="rate_limit",i.PayloadTooLarge="payload_too_large",i.Invalid="invalid",i.Failed="failed",i.Timeout="Timeout",i.SystemError="SystemError"})(Ut||(Ut={}));y();var Gl;(function(i){i.XHR="xhr",i.SendBeacon="beacon",i.Fetch="fetch"})(Gl||(Gl={}));y();y();var p4="-",ld="AMP",GT="".concat(ld,"_unsent"),f4="https://api2.amplitude.com/2/httpapi",HT="https://api.eu.amplitude.com/2/httpapi",YT="https://api2.amplitude.com/batch",WT="https://api.eu.amplitude.com/batch";y();var sO=1e3,Am=l(function(i){if(Object.keys(i).length>sO)return!1;for(var e in i){var t=i[e];if(!m4(e,t))return!1}return!0},"isValidObject"),m4=l(function(i,e){var t,n;if(typeof i!="string")return!1;if(Array.isArray(e)){var r=!0;try{for(var a=Pr(e),o=a.next();!o.done;o=a.next()){var s=o.value;if(Array.isArray(s))return!1;if(typeof s=="object")r=r&&Am(s);else if(!["number","string"].includes(typeof s))return!1;if(!r)return!1}}catch(c){t={error:c}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}}else{if(e==null)return!1;if(typeof e=="object")return Am(e);if(!["number","string","boolean"].includes(typeof e))return!1}return!0},"isValidProperties");var Qn=function(){function i(){this._propertySet=new Set,this._properties={}}return l(i,"Identify"),i.prototype.getUserProperties=function(){return Dt({},this._properties)},i.prototype.set=function(e,t){return this._safeSet(gi.SET,e,t),this},i.prototype.setOnce=function(e,t){return this._safeSet(gi.SET_ONCE,e,t),this},i.prototype.append=function(e,t){return this._safeSet(gi.APPEND,e,t),this},i.prototype.prepend=function(e,t){return this._safeSet(gi.PREPEND,e,t),this},i.prototype.postInsert=function(e,t){return this._safeSet(gi.POSTINSERT,e,t),this},i.prototype.preInsert=function(e,t){return this._safeSet(gi.PREINSERT,e,t),this},i.prototype.remove=function(e,t){return this._safeSet(gi.REMOVE,e,t),this},i.prototype.add=function(e,t){return this._safeSet(gi.ADD,e,t),this},i.prototype.unset=function(e){return this._safeSet(gi.UNSET,e,p4),this},i.prototype.clearAll=function(){return this._properties={},this._properties[gi.CLEAR_ALL]=p4,this},i.prototype._safeSet=function(e,t,n){if(this._validate(e,t,n)){var r=this._properties[e];return r===void 0&&(r={},this._properties[e]=r),r[t]=n,this._propertySet.add(t),!0}return!1},i.prototype._validate=function(e,t,n){return this._properties[gi.CLEAR_ALL]!==void 0||this._propertySet.has(t)?!1:e===gi.ADD?typeof n=="number":e!==gi.UNSET&&e!==gi.REMOVE?m4(t,n):!0},i}();var XT=l(function(i,e,t){var n=typeof i=="string"?{event_type:i}:i;return Dt(Dt(Dt({},n),t),e&&{event_properties:e})},"createTrackEvent"),cd=l(function(i,e){var t=Dt(Dt({},e),{event_type:io.IDENTIFY,user_properties:i.getUserProperties()});return t},"createIdentifyEvent"),ZT=l(function(i,e,t,n){var r,a=Dt(Dt({},n),{event_type:io.GROUP_IDENTIFY,group_properties:t.getUserProperties(),groups:(r={},r[i]=e,r)});return a},"createGroupIdentifyEvent"),QT=l(function(i,e,t){var n,r=new Qn;r.set(i,e);var a=Dt(Dt({},t),{event_type:io.IDENTIFY,user_properties:r.getUserProperties(),groups:(n={},n[i]=e,n)});return a},"createGroupEvent"),KT=l(function(i,e){return Dt(Dt({},e),{event_type:io.REVENUE,event_properties:i.getEventProperties()})},"createRevenueEvent");y();y();var no=l(function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=Ut.Unknown),{event:i,code:e,message:t}},"buildResult");var JT=function(){function i(){this.queue=[],this.applying=!1,this.plugins=[]}return l(i,"Timeline"),i.prototype.register=function(e,t){return Gt(this,void 0,void 0,function(){return Ht(this,function(n){switch(n.label){case 0:return[4,e.setup(t)];case 1:return n.sent(),this.plugins.push(e),[2]}})})},i.prototype.deregister=function(e){return this.plugins.splice(this.plugins.findIndex(function(t){return t.name===e}),1),Promise.resolve()},i.prototype.reset=function(){this.applying=!1,this.plugins=[]},i.prototype.push=function(e){var t=this;return new Promise(function(n){t.queue.push([e,n]),t.scheduleApply(0)})},i.prototype.scheduleApply=function(e){var t=this;this.applying||(this.applying=!0,setTimeout(function(){t.apply(t.queue.shift()).then(function(){t.applying=!1,t.queue.length>0&&t.scheduleApply(0)})},e))},i.prototype.apply=function(e){return Gt(this,void 0,void 0,function(){var t,n,r,a,o,s,c,g,u,h,m,f,g,b,M,x,T,E,S,_;return Ht(this,function(P){switch(P.label){case 0:if(!e)return[2];t=Bi(e,1),n=t[0],r=Bi(e,2),a=r[1],o=this.plugins.filter(function(q){return q.type===an.BEFORE}),P.label=1;case 1:P.trys.push([1,6,7,8]),s=Pr(o),c=s.next(),P.label=2;case 2:return c.done?[3,5]:(g=c.value,[4,g.execute(Dt({},n))]);case 3:n=P.sent(),P.label=4;case 4:return c=s.next(),[3,2];case 5:return[3,8];case 6:return u=P.sent(),T={error:u},[3,8];case 7:try{c&&!c.done&&(E=s.return)&&E.call(s)}finally{if(T)throw T.error}return[7];case 8:h=this.plugins.filter(function(q){return q.type===an.ENRICHMENT}),P.label=9;case 9:P.trys.push([9,14,15,16]),m=Pr(h),f=m.next(),P.label=10;case 10:return f.done?[3,13]:(g=f.value,[4,g.execute(Dt({},n))]);case 11:n=P.sent(),P.label=12;case 12:return f=m.next(),[3,10];case 13:return[3,16];case 14:return b=P.sent(),S={error:b},[3,16];case 15:try{f&&!f.done&&(_=m.return)&&_.call(m)}finally{if(S)throw S.error}return[7];case 16:return M=this.plugins.filter(function(q){return q.type===an.DESTINATION}),x=M.map(function(q){var D=Dt({},n);return q.execute(D).catch(function(U){return no(D,0,String(U))})}),Promise.all(x).then(function(q){var D=Bi(q,1),U=D[0];a(U)}),[2]}})})},i.prototype.flush=function(){return Gt(this,void 0,void 0,function(){var e,t,n,r=this;return Ht(this,function(a){switch(a.label){case 0:return e=this.queue,this.queue=[],[4,Promise.all(e.map(function(o){return r.apply(o)}))];case 1:return a.sent(),t=this.plugins.filter(function(o){return o.type===an.DESTINATION}),n=t.map(function(o){return o.flush&&o.flush()}),[4,Promise.all(n)];case 2:return a.sent(),[2]}})})},i}();y();var $T="Event tracked successfully",eM="Unexpected error occurred",tM="Event rejected due to exceeded retry count",iM="Event skipped due to optOut config",nM="Event rejected due to missing API key",rM="Invalid API key",aM="Client not initialized";var g4=function(){function i(e){e===void 0&&(e="$default"),this.initializing=!1,this.q=[],this.dispatchQ=[],this.logEvent=this.track.bind(this),this.timeline=new JT,this.name=e}return l(i,"AmplitudeCore"),i.prototype._init=function(e){return Gt(this,void 0,void 0,function(){return Ht(this,function(t){switch(t.label){case 0:return this.config=e,this.timeline.reset(),[4,this.runQueuedFunctions("q")];case 1:return t.sent(),[2]}})})},i.prototype.runQueuedFunctions=function(e){return Gt(this,void 0,void 0,function(){var t,n,r,a,o,s,c;return Ht(this,function(u){switch(u.label){case 0:t=this[e],this[e]=[],u.label=1;case 1:u.trys.push([1,6,7,8]),n=Pr(t),r=n.next(),u.label=2;case 2:return r.done?[3,5]:(a=r.value,[4,a()]);case 3:u.sent(),u.label=4;case 4:return r=n.next(),[3,2];case 5:return[3,8];case 6:return o=u.sent(),s={error:o},[3,8];case 7:try{r&&!r.done&&(c=n.return)&&c.call(n)}finally{if(s)throw s.error}return[7];case 8:return[2]}})})},i.prototype.track=function(e,t,n){var r=XT(e,t,n);return this.dispatch(r)},i.prototype.identify=function(e,t){var n=cd(e,t);return this.dispatch(n)},i.prototype.groupIdentify=function(e,t,n,r){var a=ZT(e,t,n,r);return this.dispatch(a)},i.prototype.setGroup=function(e,t,n){var r=QT(e,t,n);return this.dispatch(r)},i.prototype.revenue=function(e,t){var n=KT(e,t);return this.dispatch(n)},i.prototype.add=function(e){return Gt(this,void 0,void 0,function(){return Ht(this,function(t){return this.config?[2,this.timeline.register(e,this.config)]:(this.q.push(this.add.bind(this,e)),[2])})})},i.prototype.remove=function(e){return Gt(this,void 0,void 0,function(){return Ht(this,function(t){return this.config?[2,this.timeline.deregister(e)]:(this.q.push(this.remove.bind(this,e)),[2])})})},i.prototype.dispatchWithCallback=function(e,t){if(!this.config)return t(no(e,0,aM));this.process(e).then(t)},i.prototype.dispatch=function(e){return Gt(this,void 0,void 0,function(){var t=this;return Ht(this,function(n){return this.config?[2,this.process(e)]:[2,new Promise(function(r){t.dispatchQ.push(t.dispatchWithCallback.bind(t,e,r))})]})})},i.prototype.process=function(e){return Gt(this,void 0,void 0,function(){var r,t,n,r;return Ht(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),this.config.optOut?[2,no(e,0,iM)]:[4,this.timeline.push(e)];case 1:return r=a.sent(),r.code===200?this.config.loggerProvider.log(r.message):this.config.loggerProvider.error(r.message),[2,r];case 2:return t=a.sent(),n=String(t),this.config.loggerProvider.error(n),r=no(e,0,n),[2,r];case 3:return[2]}})})},i.prototype.setOptOut=function(e){if(!this.config){this.q.push(this.setOptOut.bind(this,!!e));return}this.config.optOut=!!e},i.prototype.flush=function(){return this.timeline.flush()},i}();y();var Pm=function(){function i(){this.productId="",this.quantity=1,this.price=0}return l(i,"Revenue"),i.prototype.setProductId=function(e){return this.productId=e,this},i.prototype.setQuantity=function(e){return e>0&&(this.quantity=e),this},i.prototype.setPrice=function(e){return this.price=e,this},i.prototype.setRevenueType=function(e){return this.revenueType=e,this},i.prototype.setRevenue=function(e){return this.revenue=e,this},i.prototype.setEventProperties=function(e){return Am(e)&&(this.properties=e),this},i.prototype.getEventProperties=function(){var e=this.properties?Dt({},this.properties):{};return e[oa.REVENUE_PRODUCT_ID]=this.productId,e[oa.REVENUE_QUANTITY]=this.quantity,e[oa.REVENUE_PRICE]=this.price,e[oa.REVENUE_TYPE]=this.revenueType,e[oa.REVENUE]=this.revenue,e},i}();y();y();var oM=l(function(i,e){var t=Math.max(e,1);return i.reduce(function(n,r,a){var o=Math.floor(a/t);return n[o]||(n[o]=[]),n[o].push(r),n},[])},"chunk");y();y();var Sm="Amplitude Logger ",sM=function(){function i(){this.logLevel=Fi.None}return l(i,"Logger"),i.prototype.disable=function(){this.logLevel=Fi.None},i.prototype.enable=function(e){e===void 0&&(e=Fi.Warn),this.logLevel=e},i.prototype.log=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<Fi.Verbose||console.log("".concat(Sm,"[Log]: ").concat(e.join(" ")))},i.prototype.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<Fi.Warn||console.warn("".concat(Sm,"[Warn]: ").concat(e.join(" ")))},i.prototype.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<Fi.Error||console.error("".concat(Sm,"[Error]: ").concat(e.join(" ")))},i.prototype.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this.logLevel<Fi.Debug||console.log("".concat(Sm,"[Debug]: ").concat(e.join(" ")))},i}();var Im=l(function(){return{flushMaxRetries:12,flushQueueSize:200,flushIntervalMillis:1e4,logLevel:Fi.Warn,loggerProvider:new sM,optOut:!1,serverUrl:f4,serverZone:to.US,useBatch:!1}},"getDefaultConfig"),v4=function(){function i(e){var t,n,r;this._optOut=!1;var a=Im();this.apiKey=e.apiKey,this.flushIntervalMillis=e.flushIntervalMillis||a.flushIntervalMillis,this.flushMaxRetries=e.flushMaxRetries||a.flushMaxRetries,this.flushQueueSize=e.flushQueueSize||a.flushQueueSize,this.loggerProvider=e.loggerProvider||a.loggerProvider,this.logLevel=(t=e.logLevel)!==null&&t!==void 0?t:a.logLevel,this.minIdLength=e.minIdLength,this.plan=e.plan,this.ingestionMetadata=e.ingestionMetadata,this.optOut=(n=e.optOut)!==null&&n!==void 0?n:a.optOut,this.serverUrl=e.serverUrl,this.serverZone=e.serverZone||a.serverZone,this.storageProvider=e.storageProvider,this.transportProvider=e.transportProvider,this.useBatch=(r=e.useBatch)!==null&&r!==void 0?r:a.useBatch,this.loggerProvider.enable(this.logLevel);var o=y4(e.serverUrl,e.serverZone,e.useBatch);this.serverZone=o.serverZone,this.serverUrl=o.serverUrl}return l(i,"Config"),Object.defineProperty(i.prototype,"optOut",{get:function(){return this._optOut},set:function(e){this._optOut=e},enumerable:!1,configurable:!0}),i}();var lO=l(function(i,e){return i===to.EU?e?WT:HT:e?YT:f4},"getServerUrl"),y4=l(function(i,e,t){if(i===void 0&&(i=""),e===void 0&&(e=Im().serverZone),t===void 0&&(t=Im().useBatch),i)return{serverUrl:i,serverZone:void 0};var n=[to.US,to.EU].includes(e)?e:Im().serverZone;return{serverZone:n,serverUrl:lO(n,t)}},"createServerConfig");var b4=function(){function i(){this.name="amplitude",this.type=an.DESTINATION,this.retryTimeout=1e3,this.throttleTimeout=3e4,this.storageKey="",this.scheduled=null,this.queue=[]}return l(i,"Destination"),i.prototype.setup=function(e){var t;return Gt(this,void 0,void 0,function(){var n,r=this;return Ht(this,function(a){switch(a.label){case 0:return this.config=e,this.storageKey="".concat(GT,"_").concat(this.config.apiKey.substring(0,10)),[4,(t=this.config.storageProvider)===null||t===void 0?void 0:t.get(this.storageKey)];case 1:return n=a.sent(),this.saveEvents(),n&&n.length>0&&Promise.all(n.map(function(o){return r.execute(o)})).catch(),[2,Promise.resolve(void 0)]}})})},i.prototype.execute=function(e){var t=this;return new Promise(function(n){var r={event:e,attempts:0,callback:function(a){return n(a)},timeout:0};t.addToQueue(r)})},i.prototype.addToQueue=function(){for(var e=this,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=t.filter(function(a){return a.attempts<e.config.flushMaxRetries?(a.attempts+=1,!0):(e.fulfillRequest([a],500,tM),!1)});r.forEach(function(a){if(e.queue=e.queue.concat(a),a.timeout===0){e.schedule(e.config.flushIntervalMillis);return}setTimeout(function(){a.timeout=0,e.schedule(0)},a.timeout)}),this.saveEvents()},i.prototype.schedule=function(e){var t=this;this.scheduled||(this.scheduled=setTimeout(function(){t.flush(!0).then(function(){t.queue.length>0&&t.schedule(e)})},e))},i.prototype.flush=function(e){return e===void 0&&(e=!1),Gt(this,void 0,void 0,function(){var t,n,r,a=this;return Ht(this,function(o){switch(o.label){case 0:return t=[],n=[],this.queue.forEach(function(s){return s.timeout===0?t.push(s):n.push(s)}),this.queue=n,this.scheduled&&(clearTimeout(this.scheduled),this.scheduled=null),r=oM(t,this.config.flushQueueSize),[4,Promise.all(r.map(function(s){return a.send(s,e)}))];case 1:return o.sent(),[2]}})})},i.prototype.send=function(e,t){return t===void 0&&(t=!0),Gt(this,void 0,void 0,function(){var n,r,a,o,s;return Ht(this,function(c){switch(c.label){case 0:if(!this.config.apiKey)return[2,this.fulfillRequest(e,400,nM)];n={api_key:this.config.apiKey,events:e.map(function(u){var h=u.event,m=h.extra,f=jT(h,["extra"]);return f}),options:{min_id_length:this.config.minIdLength}},c.label=1;case 1:return c.trys.push([1,3,,4]),r=y4(this.config.serverUrl,this.config.serverZone,this.config.useBatch).serverUrl,[4,this.config.transportProvider.send(r,n)];case 2:if(a=c.sent(),a===null)return this.fulfillRequest(e,0,eM),[2];if(!t){if("body"in a){o="";try{o=JSON.stringify(a.body,null,2)}catch{}this.fulfillRequest(e,a.statusCode,"".concat(a.status,": ").concat(o))}else this.fulfillRequest(e,a.statusCode,a.status);return[2]}return this.handleReponse(a,e),[3,4];case 3:return s=c.sent(),this.fulfillRequest(e,0,String(s)),[3,4];case 4:return[2]}})})},i.prototype.handleReponse=function(e,t){var n=e.status;switch(n){case Ut.Success:this.handleSuccessResponse(e,t);break;case Ut.Invalid:this.handleInvalidResponse(e,t);break;case Ut.PayloadTooLarge:this.handlePayloadTooLargeResponse(e,t);break;case Ut.RateLimit:this.handleRateLimitResponse(e,t);break;default:this.handleOtherReponse(t)}},i.prototype.handleSuccessResponse=function(e,t){this.fulfillRequest(t,e.statusCode,$T)},i.prototype.handleInvalidResponse=function(e,t){var n=this;if(e.body.missingField||e.body.error.startsWith(rM)){this.fulfillRequest(t,e.statusCode,e.body.error);return}var r=Zn(Zn(Zn(Zn([],Bi(Object.values(e.body.eventsWithInvalidFields)),!1),Bi(Object.values(e.body.eventsWithMissingFields)),!1),Bi(Object.values(e.body.eventsWithInvalidIdLengths)),!1),Bi(e.body.silencedEvents),!1).flat(),a=new Set(r),o=t.filter(function(s,c){if(a.has(c)){n.fulfillRequest([s],e.statusCode,e.body.error);return}return!0});this.addToQueue.apply(this,Zn([],Bi(o),!1))},i.prototype.handlePayloadTooLargeResponse=function(e,t){if(t.length===1){this.fulfillRequest(t,e.statusCode,e.body.error);return}this.config.flushQueueSize/=2,this.addToQueue.apply(this,Zn([],Bi(t),!1))},i.prototype.handleRateLimitResponse=function(e,t){var n=this,r=Object.keys(e.body.exceededDailyQuotaUsers),a=Object.keys(e.body.exceededDailyQuotaDevices),o=e.body.throttledEvents,s=new Set(r),c=new Set(a),u=new Set(o),h=t.filter(function(m,f){if(m.event.user_id&&s.has(m.event.user_id)||m.event.device_id&&c.has(m.event.device_id)){n.fulfillRequest([m],e.statusCode,e.body.error);return}return u.has(f)&&(m.timeout=n.throttleTimeout),!0});this.addToQueue.apply(this,Zn([],Bi(h),!1))},i.prototype.handleOtherReponse=function(e){var t=this;this.addToQueue.apply(this,Zn([],Bi(e.map(function(n){return n.timeout=n.attempts*t.retryTimeout,n})),!1))},i.prototype.fulfillRequest=function(e,t,n){this.saveEvents(),e.forEach(function(r){return r.callback(no(r.event,t,n))})},i.prototype.saveEvents=function(){if(this.config.storageProvider){var e=Array.from(this.queue.map(function(t){return t.event}));this.config.storageProvider.set(this.storageKey,e)}},i}();y();var In=l(function(i){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return{promise:i.apply(void 0,Zn([],Bi(e),!1))}}},"returnWrapper");y();var cO=l(function(i){i===void 0&&(i=0);var e=new Error().stack||"";return e.split("\n").slice(2+i).map(function(t){return t.trim()})},"getStacktrace"),Qt=l(function(i){return function(){var e=Dt({},i.config),t=e.loggerProvider,n=e.logLevel;return{logger:t,logLevel:n}}},"getClientLogConfig"),uO=l(function(i,e){var t,n;e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,"");try{for(var r=Pr(e.split(".")),a=r.next();!a.done;a=r.next()){var o=a.value;if(o in i)i=i[o];else return}}catch(s){t={error:s}}finally{try{a&&!a.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}return i},"getValueByStringPath"),Kt=l(function(i,e){return function(){var t,n,r={};try{for(var a=Pr(e),o=a.next();!o.done;o=a.next()){var s=o.value;r[s]=uO(i,s)}}catch(c){t={error:c}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}return r}},"getClientStates"),Jt=l(function(i,e,t,n,r){return r===void 0&&(r=null),function(){for(var a=[],o=0;o<arguments.length;o++)a[o]=arguments[o];var s=t(),c=s.logger,u=s.logLevel;if(u&&u<Fi.Debug||!u||!c)return i.apply(r,a);var h={type:"invoke public method",name:e,args:a,stacktrace:cO(1),time:{start:new Date().toISOString()},states:{}};n&&h.states&&(h.states.before=n());var m=i.apply(r,a);return m&&m.promise?m.promise.then(function(){n&&h.states&&(h.states.after=n()),h.time&&(h.time.end=new Date().toISOString()),c.debug(JSON.stringify(h,null,2))}):(n&&h.states&&(h.states.after=n()),h.time&&(h.time.end=new Date().toISOString()),c.debug(JSON.stringify(h,null,2))),m}},"debugWrapper");y();var ro=l(function(i){return i?(i^Math.random()*16>>i/4).toString(16):(String(1e7)+String(-1e3)+String(-4e3)+String(-8e3)+String(-1e11)).replace(/[018]/g,ro)},"UUID");y();var ud=function(){function i(){this.memoryStorage=new Map}return l(i,"MemoryStorage"),i.prototype.isEnabled=function(){return Gt(this,void 0,void 0,function(){return Ht(this,function(e){return[2,!0]})})},i.prototype.get=function(e){return Gt(this,void 0,void 0,function(){return Ht(this,function(t){return[2,this.memoryStorage.get(e)]})})},i.prototype.getRaw=function(e){return Gt(this,void 0,void 0,function(){var t;return Ht(this,function(n){switch(n.label){case 0:return[4,this.get(e)];case 1:return t=n.sent(),[2,t?JSON.stringify(t):void 0]}})})},i.prototype.set=function(e,t){return Gt(this,void 0,void 0,function(){return Ht(this,function(n){return this.memoryStorage.set(e,t),[2]})})},i.prototype.remove=function(e){return Gt(this,void 0,void 0,function(){return Ht(this,function(t){return this.memoryStorage.delete(e),[2]})})},i.prototype.reset=function(){return Gt(this,void 0,void 0,function(){return Ht(this,function(e){return this.memoryStorage.clear(),[2]})})},i}();y();var gs=function(){function i(){}return l(i,"BaseTransport"),i.prototype.send=function(e,t){return Promise.resolve(null)},i.prototype.buildResponse=function(e){var t,n,r,a,o,s,c,u,h,m,f,g,b,M,x,T,E,S,_,P,q,D;if(typeof e!="object")return null;var U=e.code||0,R=this.buildStatus(U);switch(R){case Ut.Success:return{status:R,statusCode:U,body:{eventsIngested:(t=e.events_ingested)!==null&&t!==void 0?t:0,payloadSizeBytes:(n=e.payload_size_bytes)!==null&&n!==void 0?n:0,serverUploadTime:(r=e.server_upload_time)!==null&&r!==void 0?r:0}};case Ut.Invalid:return{status:R,statusCode:U,body:{error:(a=e.error)!==null&&a!==void 0?a:"",missingField:(o=e.missing_field)!==null&&o!==void 0?o:"",eventsWithInvalidFields:(s=e.events_with_invalid_fields)!==null&&s!==void 0?s:{},eventsWithMissingFields:(c=e.events_with_missing_fields)!==null&&c!==void 0?c:{},eventsWithInvalidIdLengths:(u=e.events_with_invalid_id_lengths)!==null&&u!==void 0?u:{},epsThreshold:(h=e.eps_threshold)!==null&&h!==void 0?h:0,exceededDailyQuotaDevices:(m=e.exceeded_daily_quota_devices)!==null&&m!==void 0?m:{},silencedDevices:(f=e.silenced_devices)!==null&&f!==void 0?f:[],silencedEvents:(g=e.silenced_events)!==null&&g!==void 0?g:[],throttledDevices:(b=e.throttled_devices)!==null&&b!==void 0?b:{},throttledEvents:(M=e.throttled_events)!==null&&M!==void 0?M:[]}};case Ut.PayloadTooLarge:return{status:R,statusCode:U,body:{error:(x=e.error)!==null&&x!==void 0?x:""}};case Ut.RateLimit:return{status:R,statusCode:U,body:{error:(T=e.error)!==null&&T!==void 0?T:"",epsThreshold:(E=e.eps_threshold)!==null&&E!==void 0?E:0,throttledDevices:(S=e.throttled_devices)!==null&&S!==void 0?S:{},throttledUsers:(_=e.throttled_users)!==null&&_!==void 0?_:{},exceededDailyQuotaDevices:(P=e.exceeded_daily_quota_devices)!==null&&P!==void 0?P:{},exceededDailyQuotaUsers:(q=e.exceeded_daily_quota_users)!==null&&q!==void 0?q:{},throttledEvents:(D=e.throttled_events)!==null&&D!==void 0?D:[]}};case Ut.Timeout:default:return{status:R,statusCode:U}}},i.prototype.buildStatus=function(e){return e>=200&&e<300?Ut.Success:e===429?Ut.RateLimit:e===413?Ut.PayloadTooLarge:e===408?Ut.Timeout:e>=400&&e<500?Ut.Invalid:e>=500?Ut.Failed:Ut.Unknown},i}();y();y();y();var x4=l(function(i,e){return x4=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])},x4(i,e)},"extendStatics");function lM(i,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");x4(i,e);function t(){this.constructor=i}l(t,"__"),i.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}l(lM,"__extends");var Mi=l(function(){return Mi=Object.assign||l(function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},"__assign"),Mi.apply(this,arguments)},"__assign");function T4(i,e){var t={};for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&e.indexOf(n)<0&&(t[n]=i[n]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(i);r<n.length;r++)e.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(i,n[r])&&(t[n[r]]=i[n[r]]);return t}l(T4,"__rest");function oi(i,e,t,n){function r(a){return a instanceof t?a:new t(function(o){o(a)})}return l(r,"adopt"),new(t||(t=Promise))(function(a,o){function s(h){try{u(n.next(h))}catch(m){o(m)}}l(s,"fulfilled");function c(h){try{u(n.throw(h))}catch(m){o(m)}}l(c,"rejected");function u(h){h.done?a(h.value):r(h.value).then(s,c)}l(u,"step"),u((n=n.apply(i,e||[])).next())})}l(oi,"__awaiter");function si(i,e){var t={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,r,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(u){return function(h){return c([u,h])}}function c(u){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(t=0)),t;)try{if(n=1,r&&(a=u[0]&2?r.return:u[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,u[1])).done)return a;switch(r=0,a&&(u=[u[0]&2,a.value]),u[0]){case 0:case 1:a=u;break;case 4:return t.label++,{value:u[1],done:!1};case 5:t.label++,r=u[1],u=[0];continue;case 7:u=t.ops.pop(),t.trys.pop();continue;default:if(a=t.trys,!(a=a.length>0&&a[a.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]<a[3])){t.label=u[1];break}if(u[0]===6&&t.label<a[1]){t.label=a[1],a=u;break}if(a&&t.label<a[2]){t.label=a[2],t.ops.push(u);break}a[2]&&t.ops.pop(),t.trys.pop();continue}u=e.call(i,t)}catch(h){u=[6,h],r=0}finally{n=a=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}l(si,"__generator");function cM(i,e){var t=typeof Symbol=="function"&&i[Symbol.iterator];if(!t)return i;var n=t.call(i),r,a=[],o;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)a.push(r.value)}catch(s){o={error:s}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(o)throw o.error}}return a}l(cM,"__read");y();y();var Ui=l(function(){if(typeof globalThis<"u")return globalThis;if(typeof window<"u")return window;if(typeof self<"u")return self;if(typeof global<"u")return global},"getGlobalScope");var Hl=l(function(){var i,e=Ui();if(!(!((i=e==null?void 0:e.location)===null||i===void 0)&&i.search))return{};var t=e.location.search.substring(1).split("&").filter(Boolean),n=t.reduce(function(r,a){var o=a.split("=",2),s=uM(o[0]),c=uM(o[1]);return c&&(r[s]=c),r},{});return n},"getQueryParams"),uM=l(function(i){i===void 0&&(i="");try{return decodeURIComponent(i)}catch{return""}},"tryDecodeURIComponent");y();var dM="utm_campaign",hM="utm_content",pM="utm_id",fM="utm_medium",mM="utm_source",gM="utm_term",M4="dclid",E4="fbclid",w4="gbraid",C4="gclid",A4="ko_click_id",P4="msclkid",S4="ttclid",I4="twclid",_4="wbraid",vM="EMPTY",_m={utm_campaign:void 0,utm_content:void 0,utm_id:void 0,utm_medium:void 0,utm_source:void 0,utm_term:void 0,referrer:void 0,referring_domain:void 0,dclid:void 0,gbraid:void 0,gclid:void 0,fbclid:void 0,ko_click_id:void 0,msclkid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},yM="MKTG";var bM=function(){function i(){}return l(i,"CampaignParser"),i.prototype.parse=function(){return oi(this,void 0,void 0,function(){return si(this,function(e){return[2,Mi(Mi(Mi(Mi({},_m),this.getUtmParam()),this.getReferrer()),this.getClickIds())]})})},i.prototype.getUtmParam=function(){var e=Hl(),t=e[dM],n=e[hM],r=e[pM],a=e[fM],o=e[mM],s=e[gM];return{utm_campaign:t,utm_content:n,utm_id:r,utm_medium:a,utm_source:o,utm_term:s}},i.prototype.getReferrer=function(){var e,t,n={referrer:void 0,referring_domain:void 0};try{n.referrer=document.referrer||void 0,n.referring_domain=(t=(e=n.referrer)===null||e===void 0?void 0:e.split("/")[2])!==null&&t!==void 0?t:void 0}catch{}return n},i.prototype.getClickIds=function(){var e,t=Hl();return e={},e[M4]=t[M4],e[E4]=t[E4],e[w4]=t[w4],e[C4]=t[C4],e[A4]=t[A4],e[P4]=t[P4],e[S4]=t[S4],e[I4]=t[I4],e[_4]=t[_4],e},i}();y();y();var vs=l(function(i,e,t){return e===void 0&&(e=""),t===void 0&&(t=10),[ld,e,i.substring(0,t)].filter(Boolean).join("_")},"getCookieName"),O4=l(function(i){return"".concat(ld.toLowerCase(),"_").concat(i.substring(0,6))},"getOldCookieName");var D4=function(){function i(e,t){var n,r;this.storage=t.storage,this.storageKey=vs(e,yM),this.parser=new bM,this.track=t.track,this.onNewCampaign=t.onNewCampaign,this.disabled=!!t.disabled,this.trackNewCampaigns=!!t.trackNewCampaigns,this.trackPageViews=!!t.trackPageViews,this.excludeReferrers=(n=t.excludeReferrers)!==null&&n!==void 0?n:[],typeof location<"u"&&this.excludeReferrers.unshift(location.hostname),this.initialEmptyValue=(r=t.initialEmptyValue)!==null&&r!==void 0?r:vM}return l(i,"CampaignTracker"),i.prototype.isNewCampaign=function(e,t,n){n===void 0&&(n=!1);var r=e.referrer,a=e.referring_domain,o=T4(e,["referrer","referring_domain"]),s=t||{},c=s.referrer,u=s.referring_domain,h=T4(s,["referrer","referring_domain"]);if(e.referring_domain&&this.excludeReferrers.includes(e.referring_domain))return!1;var m=JSON.stringify(o)!==JSON.stringify(h),f=n?xM(a||"")!==xM(u||""):a!==u;return!t||m||f},i.prototype.saveCampaignToStorage=function(e){return oi(this,void 0,void 0,function(){return si(this,function(t){switch(t.label){case 0:return[4,this.storage.set(this.storageKey,e)];case 1:return t.sent(),[2]}})})},i.prototype.getCampaignFromStorage=function(){return oi(this,void 0,void 0,function(){return si(this,function(e){switch(e.label){case 0:return[4,this.storage.get(this.storageKey)];case 1:return[2,e.sent()]}})})},i.prototype.createCampaignEvent=function(e){var t=this,n=Mi(Mi({},_m),e),r=Object.entries(n).reduce(function(o,s){var c=cM(s,2),u=c[0],h=c[1];return o.setOnce("initial_".concat(u),h||t.initialEmptyValue),h?o.set(u,h):o.unset(u)},new Qn),a={event_type:"Page View",event_properties:{page_title:typeof document<"u"&&document.title||"",page_location:typeof location<"u"&&location.href||"",page_path:typeof location<"u"&&location.pathname||""}};return Mi(Mi({},cd(r)),this.trackPageViews&&a)},i.prototype.send=function(e){return oi(this,void 0,void 0,function(){var t,n;return si(this,function(r){switch(r.label){case 0:return this.disabled?[2]:[4,this.parser.parse()];case 1:return t=r.sent(),[4,this.getCampaignFromStorage()];case 2:if(n=r.sent(),!e){if(!this.trackNewCampaigns||!this.isNewCampaign(t,n))return[2];this.onNewCampaign(t)}return[4,this.track(this.createCampaignEvent(t))];case 3:return r.sent(),[4,this.saveCampaignToStorage(t)];case 4:return r.sent(),[2]}})})},i}();var xM=l(function(i){var e=i.split(".");return e.length<=2?i:e.slice(e.length-2,e.length).join(".")},"domainWithoutSubdomain");y();var ys=function(){function i(e){this.options=Mi({},e)}return l(i,"CookieStorage"),i.prototype.isEnabled=function(){return oi(this,void 0,void 0,function(){var e,t,n,r,a;return si(this,function(o){switch(o.label){case 0:if(!Ui())return[2,!1];e=String(Date.now()),t=new i(this.options),n="AMP_TEST",o.label=1;case 1:return o.trys.push([1,4,5,7]),[4,t.set(n,e)];case 2:return o.sent(),[4,t.get(n)];case 3:return r=o.sent(),[2,r===e];case 4:return a=o.sent(),[2,!1];case 5:return[4,t.remove(n)];case 6:return o.sent(),[7];case 7:return[2]}})})},i.prototype.get=function(e){return oi(this,void 0,void 0,function(){var t;return si(this,function(n){switch(n.label){case 0:return[4,this.getRaw(e)];case 1:if(t=n.sent(),!t)return[2,void 0];try{try{t=decodeURIComponent(atob(t))}catch{}return[2,JSON.parse(t)]}catch{return[2,void 0]}return[2]}})})},i.prototype.getRaw=function(e){var t;return oi(this,void 0,void 0,function(){var n,r,a;return si(this,function(o){return n=Ui(),r=(t=n==null?void 0:n.document.cookie.split("; "))!==null&&t!==void 0?t:[],a=r.find(function(s){return s.indexOf(e+"=")===0}),a?[2,a.substring(e.length+1)]:[2,void 0]})})},i.prototype.set=function(e,t){var n;return oi(this,void 0,void 0,function(){var r,a,o,s,c,u;return si(this,function(h){try{r=(n=this.options.expirationDays)!==null&&n!==void 0?n:0,a=t!==null?r:-1,o=void 0,a&&(s=new Date,s.setTime(s.getTime()+a*24*60*60*1e3),o=s),c="".concat(e,"=").concat(btoa(encodeURIComponent(JSON.stringify(t)))),o&&(c+="; expires=".concat(o.toUTCString())),c+="; path=/",this.options.domain&&(c+="; domain=".concat(this.options.domain)),this.options.secure&&(c+="; Secure"),this.options.sameSite&&(c+="; SameSite=".concat(this.options.sameSite)),u=Ui(),u&&(u.document.cookie=c)}catch{}return[2]})})},i.prototype.remove=function(e){return oi(this,void 0,void 0,function(){return si(this,function(t){switch(t.label){case 0:return[4,this.set(e,null)];case 1:return t.sent(),[2]}})})},i.prototype.reset=function(){return oi(this,void 0,void 0,function(){return si(this,function(e){return[2]})})},i}();y();var Om=function(){function i(e,t){this.storage=e,this.storageKey=vs(t),this.cache={optOut:!1}}return l(i,"SessionManager"),i.prototype.load=function(){var e;return oi(this,void 0,void 0,function(){var t;return si(this,function(n){switch(n.label){case 0:return t=this,[4,this.storage.get(this.storageKey)];case 1:return t.cache=(e=n.sent())!==null&&e!==void 0?e:{optOut:!1},[2,this]}})})},i.prototype.setSession=function(e){this.cache=Mi(Mi({},this.cache),e),this.storage.set(this.storageKey,this.cache)},i.prototype.getSessionId=function(){return this.cache.sessionId},i.prototype.setSessionId=function(e){this.setSession({sessionId:e})},i.prototype.getDeviceId=function(){return this.cache.deviceId},i.prototype.setDeviceId=function(e){this.setSession({deviceId:e})},i.prototype.getUserId=function(){return this.cache.userId},i.prototype.setUserId=function(e){this.setSession({userId:e})},i.prototype.getLastEventTime=function(){return this.cache.lastEventTime},i.prototype.setLastEventTime=function(e){this.setSession({lastEventTime:e})},i.prototype.getOptOut=function(){return this.cache.optOut},i.prototype.setOptOut=function(e){this.setSession({optOut:e})},i.prototype.getLastEventId=function(){return this.cache.lastEventId},i.prototype.setLastEventId=function(e){this.setSession({lastEventId:e})},i}();y();var L4=function(i){lM(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return l(e,"FetchTransport"),e.prototype.send=function(t,n){return oi(this,void 0,void 0,function(){var r,a,o;return si(this,function(s){switch(s.label){case 0:if(typeof fetch>"u")throw new Error("FetchTransport is not supported");return r={headers:{"Content-Type":"application/json",Accept:"*/*"},body:JSON.stringify(n),method:"POST"},[4,fetch(t,r)];case 1:return a=s.sent(),[4,a.json()];case 2:return o=s.sent(),[2,this.buildResponse(o)]}})})},e}(gs);y();y();var TM=et(q4());var dO=function(){function i(){this.ua=new TM.UAParser(typeof navigator<"u"?navigator.userAgent:null).getResult()}return l(i,"ApplicationContextProviderImpl"),i.prototype.getApplicationContext=function(){return{versionName:this.versionName,language:fO(),platform:"Web",os:hO(this.ua),deviceModel:pO(this.ua)}},i}(),hO=l(function(i){var e,t;return[(e=i.browser)===null||e===void 0?void 0:e.name,(t=i.browser)===null||t===void 0?void 0:t.major].filter(function(n){return n!=null}).join(" ")},"getOs"),pO=l(function(i){var e;return(e=i.os)===null||e===void 0?void 0:e.name},"getDeviceModel"),fO=l(function(){return typeof navigator<"u"&&(navigator.languages&&navigator.languages[0]||navigator.language)||""},"getLanguage"),mO=function(){function i(){this.queue=[]}return l(i,"EventBridgeImpl"),i.prototype.logEvent=function(e){this.receiver?this.receiver(e):this.queue.length<512&&this.queue.push(e)},i.prototype.setEventReceiver=function(e){this.receiver=e,this.queue.length>0&&(this.queue.forEach(function(t){e(t)}),this.queue=[])},i}();var ao=l(function(){return ao=Object.assign||l(function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},"__assign"),ao.apply(this,arguments)},"__assign"),Lm=l(function(i,e){var t=["string","number","boolean","undefined"],n=typeof i,r=typeof e;if(n!==r)return!1;for(var a=0,o=t;a<o.length;a++){var s=o[a];if(s===n)return i===e}if(i==null&&e==null)return!0;if(i==null||e==null||i.length!==e.length)return!1;var c=Array.isArray(i),u=Array.isArray(e);if(c!==u)return!1;if(c&&u){for(var h=0;h<i.length;h++)if(!Lm(i[h],e[h]))return!1}else{var m=Object.keys(i).sort(),f=Object.keys(e).sort();if(!Lm(m,f))return!1;var g=!0;return Object.keys(i).forEach(function(b){Lm(i[b],e[b])||(g=!1)}),g}return!0},"isEqual"),gO="$set",vO="$unset",yO="$clearAll";Object.entries||(Object.entries=function(i){for(var e=Object.keys(i),t=e.length,n=new Array(t);t--;)n[t]=[e[t],i[e[t]]];return n});var bO=function(){function i(){this.identity={userProperties:{}},this.listeners=new Set}return l(i,"IdentityStoreImpl"),i.prototype.editIdentity=function(){var e=this,t=ao({},this.identity.userProperties),n=ao(ao({},this.identity),{userProperties:t});return{setUserId:function(r){return n.userId=r,this},setDeviceId:function(r){return n.deviceId=r,this},setUserProperties:function(r){return n.userProperties=r,this},updateUserProperties:function(r){for(var a=n.userProperties||{},o=0,s=Object.entries(r);o<s.length;o++){var c=s[o],u=c[0],h=c[1];switch(u){case gO:for(var m=0,f=Object.entries(h);m<f.length;m++){var g=f[m],b=g[0],M=g[1];a[b]=M}break;case vO:for(var x=0,T=Object.keys(h);x<T.length;x++){var b=T[x];delete a[b]}break;case yO:a={};break}}return n.userProperties=a,this},commit:function(){return e.setIdentity(n),this}}},i.prototype.getIdentity=function(){return ao({},this.identity)},i.prototype.setIdentity=function(e){var t=ao({},this.identity);this.identity=ao({},e),Lm(t,this.identity)||this.listeners.forEach(function(n){n(e)})},i.prototype.addIdentityListener=function(e){this.listeners.add(e)},i.prototype.removeIdentityListener=function(e){this.listeners.delete(e)},i}(),hd=typeof globalThis<"u"?globalThis:typeof global<"u"?global:self,MM=function(){function i(){this.identityStore=new bO,this.eventBridge=new mO,this.applicationContextProvider=new dO}return l(i,"AnalyticsConnector"),i.getInstance=function(e){return hd.analyticsConnectorInstances||(hd.analyticsConnectorInstances={}),hd.analyticsConnectorInstances[e]||(hd.analyticsConnectorInstances[e]=new i),hd.analyticsConnectorInstances[e]},i}();var pd=l(function(){return MM.getInstance("$default_instance")},"getAnalyticsConnector");y();var R4=function(){function i(){this.name="identity",this.type=an.BEFORE,this.identityStore=pd().identityStore}return l(i,"IdentityEventSender"),i.prototype.execute=function(e){return oi(this,void 0,void 0,function(){var t;return si(this,function(n){return t=e.user_properties,t&&this.identityStore.editIdentity().updateUserProperties(t).commit(),[2,e]})})},i.prototype.setup=function(e){return Promise.resolve(void 0)},i}();y();var N4=l(function(){var i,e,t,n;if(typeof navigator>"u")return"";var r=navigator.userLanguage;return(n=(t=(e=(i=navigator.languages)===null||i===void 0?void 0:i[0])!==null&&e!==void 0?e:navigator.language)!==null&&t!==void 0?t:r)!==null&&n!==void 0?n:""},"getLanguage");y();var qm=l(function(i,e){for(var t=0;t<e.length;t++){var n=e[t],r=n.name,a=n.args,o=n.resolve,s=i&&i[r];if(typeof s=="function"){var c=s.apply(i,a);typeof o=="function"&&o(c==null?void 0:c.promise)}}return i},"convertProxyObjectToRealObject"),Rm=l(function(i){var e=i;return e&&e._q!==void 0},"isInstanceProxy");y();var wM=et(q4());y();var EM="1.6.8";var xO="Web",TO="$remote",CM=function(){function i(){this.name="context",this.type=an.BEFORE,this.eventId=0,this.library="amplitude-ts/".concat(EM);var e;typeof navigator<"u"&&(e=navigator.userAgent),this.uaResult=new wM.default(e).getResult()}return l(i,"Context"),i.prototype.setup=function(e){return this.config=e,Promise.resolve(void 0)},i.prototype.execute=function(e){return _t(this,void 0,void 0,function(){var t,n,r,a,o,s;return Ot(this,function(c){return this.isSessionValid()||(this.config.sessionId=Date.now()),this.config.lastEventTime=Date.now(),t=new Date().getTime(),n=this.uaResult.browser.name,r=this.uaResult.browser.version,a=this.uaResult.device.model||this.uaResult.os.name,o=this.uaResult.device.vendor,s=at(at(at(at(at(at(at(at(at(at(at(at({user_id:this.config.userId,device_id:this.config.deviceId,session_id:this.config.sessionId,time:t},this.config.appVersion&&{app_version:this.config.appVersion}),this.config.trackingOptions.platform&&{platform:xO}),this.config.trackingOptions.osName&&{os_name:n}),this.config.trackingOptions.osVersion&&{os_version:r}),this.config.trackingOptions.deviceManufacturer&&{device_manufacturer:o}),this.config.trackingOptions.deviceModel&&{device_model:a}),this.config.trackingOptions.language&&{language:N4()}),this.config.trackingOptions.ipAddress&&{ip:TO}),{insert_id:ro(),partner_id:this.config.partnerId,plan:this.config.plan}),this.config.ingestionMetadata&&{ingestion_metadata:{source_name:this.config.ingestionMetadata.sourceName,source_version:this.config.ingestionMetadata.sourceVersion}}),e),{event_id:this.eventId++,library:this.library}),[2,s]})})},i.prototype.isSessionValid=function(){var e=this.config.lastEventTime||Date.now(),t=Date.now()-e;return t<this.config.sessionTimeout},i}();y();y();var fd=function(){function i(){}return l(i,"LocalStorage"),i.prototype.isEnabled=function(){return _t(this,void 0,void 0,function(){var e,t,n,r,a;return Ot(this,function(o){switch(o.label){case 0:if(!Ui())return[2,!1];e=String(Date.now()),t=new i,n="AMP_TEST",o.label=1;case 1:return o.trys.push([1,4,5,7]),[4,t.set(n,e)];case 2:return o.sent(),[4,t.get(n)];case 3:return r=o.sent(),[2,r===e];case 4:return a=o.sent(),[2,!1];case 5:return[4,t.remove(n)];case 6:return o.sent(),[7];case 7:return[2]}})})},i.prototype.get=function(e){return _t(this,void 0,void 0,function(){var t,n;return Ot(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,this.getRaw(e)];case 1:return t=r.sent(),t?[2,JSON.parse(t)]:[2,void 0];case 2:return n=r.sent(),[2,void 0];case 3:return[2]}})})},i.prototype.getRaw=function(e){var t;return _t(this,void 0,void 0,function(){return Ot(this,function(n){return[2,((t=Ui())===null||t===void 0?void 0:t.localStorage.getItem(e))||void 0]})})},i.prototype.set=function(e,t){var n;return _t(this,void 0,void 0,function(){return Ot(this,function(r){try{(n=Ui())===null||n===void 0||n.localStorage.setItem(e,JSON.stringify(t))}catch{}return[2]})})},i.prototype.remove=function(e){var t;return _t(this,void 0,void 0,function(){return Ot(this,function(n){try{(t=Ui())===null||t===void 0||t.localStorage.removeItem(e)}catch{}return[2]})})},i.prototype.reset=function(){var e;return _t(this,void 0,void 0,function(){return Ot(this,function(t){try{(e=Ui())===null||e===void 0||e.localStorage.clear()}catch{}return[2]})})},i}();y();var AM=function(i){eo(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.state={done:4},t}return l(e,"XHRTransport"),e.prototype.send=function(t,n){return _t(this,void 0,void 0,function(){var r=this;return Ot(this,function(a){return[2,new Promise(function(o,s){typeof XMLHttpRequest>"u"&&s(new Error("XHRTransport is not supported."));var c=new XMLHttpRequest;c.open("POST",t,!0),c.onreadystatechange=function(){if(c.readyState===r.state.done)try{var u=c.responseText,h=JSON.parse(u),m=r.buildResponse(h);o(m)}catch(f){s(f)}},c.setRequestHeader("Content-Type","application/json"),c.setRequestHeader("Accept","*/*"),c.send(JSON.stringify(n))})]})})},e}(gs);y();var PM=function(i){eo(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return l(e,"SendBeaconTransport"),e.prototype.send=function(t,n){return _t(this,void 0,void 0,function(){var r=this;return Ot(this,function(a){return[2,new Promise(function(o,s){var c=Ui();if(!(c!=null&&c.navigator.sendBeacon))throw new Error("SendBeaconTransport is not supported");try{var u=JSON.stringify(n),h=c.navigator.sendBeacon(t,JSON.stringify(n));return o(h?r.buildResponse({code:200,events_ingested:n.events.length,payload_size_bytes:u.length,server_upload_time:Date.now()}):r.buildResponse({code:500}))}catch(m){s(m)}})]})})},e}(gs);var Nm=l(function(){var i=new ud,e={deviceManufacturer:!0,deviceModel:!0,ipAddress:!0,language:!0,osName:!0,osVersion:!0,platform:!0};return{cookieExpiration:365,cookieSameSite:"Lax",cookieSecure:!1,cookieStorage:i,disableCookies:!1,domain:"",sessionManager:new Om(i,""),sessionTimeout:30*60*1e3,storageProvider:new ud,trackingOptions:e,transportProvider:new L4}},"getDefaultConfig"),SM=function(i){eo(e,i);function e(t,n,r){var a=this,o,s,c,u,h,m,f,g,b,M,x,T,E=Nm();return a=i.call(this,at(at({flushIntervalMillis:1e3,flushMaxRetries:5,flushQueueSize:30},r),{apiKey:t,storageProvider:(o=r==null?void 0:r.storageProvider)!==null&&o!==void 0?o:E.storageProvider,transportProvider:(s=r==null?void 0:r.transportProvider)!==null&&s!==void 0?s:E.transportProvider}))||this,a.cookieStorage=(c=r==null?void 0:r.cookieStorage)!==null&&c!==void 0?c:E.cookieStorage,a.sessionManager=(u=r==null?void 0:r.sessionManager)!==null&&u!==void 0?u:E.sessionManager,a.sessionTimeout=(h=r==null?void 0:r.sessionTimeout)!==null&&h!==void 0?h:E.sessionTimeout,a.appVersion=r==null?void 0:r.appVersion,a.attribution=r==null?void 0:r.attribution,a.cookieExpiration=(m=r==null?void 0:r.cookieExpiration)!==null&&m!==void 0?m:E.cookieExpiration,a.cookieSameSite=(f=r==null?void 0:r.cookieSameSite)!==null&&f!==void 0?f:E.cookieSameSite,a.cookieSecure=(g=r==null?void 0:r.cookieSecure)!==null&&g!==void 0?g:E.cookieSecure,a.deviceId=r==null?void 0:r.deviceId,a.disableCookies=(b=r==null?void 0:r.disableCookies)!==null&&b!==void 0?b:E.disableCookies,a.domain=(M=r==null?void 0:r.domain)!==null&&M!==void 0?M:E.domain,a.lastEventTime=(x=a.lastEventTime)!==null&&x!==void 0?x:r==null?void 0:r.lastEventTime,a.optOut=!!(r!=null&&r.optOut),a.partnerId=r==null?void 0:r.partnerId,a.sessionId=r==null?void 0:r.sessionId,a.trackingOptions=(T=r==null?void 0:r.trackingOptions)!==null&&T!==void 0?T:E.trackingOptions,a.userId=n,a}return l(e,"BrowserConfig"),Object.defineProperty(e.prototype,"deviceId",{get:function(){return this.sessionManager.getDeviceId()},set:function(t){this.sessionManager.setDeviceId(t)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"userId",{get:function(){return this.sessionManager.getUserId()},set:function(t){this.sessionManager.setUserId(t)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"sessionId",{get:function(){return this.sessionManager.getSessionId()},set:function(t){this.sessionManager.setSessionId(t)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"optOut",{get:function(){return this.sessionManager.getOptOut()},set:function(t){var n;(n=this.sessionManager)===null||n===void 0||n.setOptOut(!!t)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastEventTime",{get:function(){return this.sessionManager.getLastEventTime()},set:function(t){this.sessionManager.setLastEventTime(t)},enumerable:!1,configurable:!0}),e}(v4);var IM=l(function(i,e,t){return _t(void 0,void 0,void 0,function(){var n,r,a,o,s,c,u,h,m,f,g,b,M,x,T,E,S;return Ot(this,function(_){switch(_.label){case 0:return n=Nm(),(M=t==null?void 0:t.domain)!==null&&M!==void 0?(a=M,[3,3]):[3,1];case 1:return[4,CO()];case 2:a=_.sent(),_.label=3;case 3:return r=a,[4,MO(at(at({},t),{domain:r}))];case 4:return o=_.sent(),s=vs(i),[4,o.get(s)];case 5:return c=_.sent(),u=Hl(),[4,new Om(o,i).load()];case 6:return h=_.sent(),m=SM.bind,f=[void 0,i,e!=null?e:c==null?void 0:c.userId],g=[at({},t)],b={cookieStorage:o,sessionManager:h,deviceId:wO(c==null?void 0:c.deviceId,t==null?void 0:t.deviceId,u.deviceId),domain:r,optOut:(x=t==null?void 0:t.optOut)!==null&&x!==void 0?x:!!(c!=null&&c.optOut)},[4,o.get(s)];case 7:return b.sessionId=(E=(T=_.sent())===null||T===void 0?void 0:T.sessionId)!==null&&E!==void 0?E:t==null?void 0:t.sessionId,[4,EO(t)];case 8:return[2,new(m.apply(SM,f.concat([at.apply(void 0,g.concat([(b.storageProvider=_.sent(),b.trackingOptions=at(at({},n.trackingOptions),t==null?void 0:t.trackingOptions),b.transportProvider=(S=t==null?void 0:t.transportProvider)!==null&&S!==void 0?S:B4(t==null?void 0:t.transport),b)]))])))]}})})},"useBrowserConfig"),MO=l(function(i,e){return e===void 0&&(e=Nm()),_t(void 0,void 0,void 0,function(){var t,n,r;return Ot(this,function(a){switch(a.label){case 0:return t=at(at({},e),i),n=i==null?void 0:i.cookieStorage,r=!n,r?[3,2]:[4,n.isEnabled()];case 1:r=!a.sent(),a.label=2;case 2:return r?[2,k4(t)]:[2,n]}})})},"createCookieStorage"),k4=l(function(i){return _t(void 0,void 0,void 0,function(){var e,t;return Ot(this,function(n){switch(n.label){case 0:return e=new ys({domain:i.domain,expirationDays:i.cookieExpiration,sameSite:i.cookieSameSite,secure:i.cookieSecure}),t=i.disableCookies,t?[3,2]:[4,e.isEnabled()];case 1:t=!n.sent(),n.label=2;case 2:return t?(e=new fd,[4,e.isEnabled()]):[3,4];case 3:n.sent()||(e=new ud),n.label=4;case 4:return[2,e]}})})},"createFlexibleStorage"),EO=l(function(i){return _t(void 0,void 0,void 0,function(){var e,t,n,r,a,o,s,c;return Ot(this,function(u){switch(u.label){case 0:if(e=i&&Object.prototype.hasOwnProperty.call(i,"storageProvider"),!(!e||i.storageProvider))return[3,9];u.label=1;case 1:u.trys.push([1,7,8,9]),t=VT([i==null?void 0:i.storageProvider,new fd]),n=t.next(),u.label=2;case 2:return n.done?[3,6]:(r=n.value,a=r,a?[4,r.isEnabled()]:[3,4]);case 3:a=u.sent(),u.label=4;case 4:if(a)return[2,r];u.label=5;case 5:return n=t.next(),[3,2];case 6:return[3,9];case 7:return o=u.sent(),s={error:o},[3,9];case 8:try{n&&!n.done&&(c=t.return)&&c.call(t)}finally{if(s)throw s.error}return[7];case 9:return[2,void 0]}})})},"createEventsStorage"),wO=l(function(i,e,t){return e||t||i||ro()},"createDeviceId"),B4=l(function(i){return i===Gl.XHR?new AM:i===Gl.SendBeacon?new PM:Nm().transportProvider},"createTransport"),CO=l(function(i){return _t(void 0,void 0,void 0,function(){var e,t,n,r,a,a,o,s,c,u;return Ot(this,function(h){switch(h.label){case 0:return[4,new ys().isEnabled()];case 1:if(!h.sent()||!i&&typeof location>"u")return[2,""];for(e=i!=null?i:location.hostname,t=e.split("."),n=[],r="AMP_TLDTEST",a=t.length-2;a>=0;--a)n.push(t.slice(a).join("."));a=0,h.label=2;case 2:return a<n.length?(o=n[a],s={domain:"."+o},c=new ys(s),[4,c.set(r,1)]):[3,7];case 3:return h.sent(),[4,c.get(r)];case 4:return u=h.sent(),u?[4,c.remove(r)]:[3,6];case 5:return h.sent(),[2,"."+o];case 6:return a++,[3,2];case 7:return[2,""]}})})},"getTopLevelDomain");y();var OM=l(function(i,e){return _t(void 0,void 0,void 0,function(){var t,n,r,a,o,s,c,u,h;return Ot(this,function(m){switch(m.label){case 0:return t=new ys,[4,t.isEnabled()];case 1:return(!m.sent()||e!=null&&e.disableCookies)&&(t=new fd),[4,t.isEnabled()];case 2:return m.sent()?(n=O4(i),[4,t.getRaw(n)]):[2,{optOut:!1}];case 3:return r=m.sent(),r?[4,t.remove(n)]:[2,{optOut:!1}];case 4:return m.sent(),a=zT(r.split("."),5),o=a[0],s=a[1],c=a[2],u=a[3],h=a[4],[2,{deviceId:o,userId:AO(s),sessionId:_M(u),lastEventTime:_M(h),optOut:!!c}]}})})},"parseOldCookies"),_M=l(function(i){var e=parseInt(i,32);if(!isNaN(e))return e},"parseTime"),AO=l(function(i){if(!(!atob||!escape||!i))try{return decodeURIComponent(escape(atob(i)))}catch{return}},"decode");var PO=function(i){eo(e,i);function e(){return i!==null&&i.apply(this,arguments)||this}return l(e,"AmplitudeBrowser"),e.prototype.init=function(t,n,r){var a,o,s;return t===void 0&&(t=""),_t(this,void 0,void 0,function(){var c,u,h,m,f=this;return Ot(this,function(g){switch(g.label){case 0:return this.initializing?[2]:(this.initializing=!0,[4,OM(t,r)]);case 1:return c=g.sent(),[4,IM(t,n||c.userId,at(at({},r),{deviceId:(a=c.deviceId)!==null&&a!==void 0?a:r==null?void 0:r.deviceId,sessionId:(o=c.sessionId)!==null&&o!==void 0?o:r==null?void 0:r.sessionId,optOut:(s=r==null?void 0:r.optOut)!==null&&s!==void 0?s:c.optOut,lastEventTime:c.lastEventTime}))];case 2:return u=g.sent(),[4,i.prototype._init.call(this,u)];case 3:return g.sent(),h=!this.config.lastEventTime,(!this.config.sessionId||this.config.lastEventTime&&Date.now()-this.config.lastEventTime>this.config.sessionTimeout)&&(this.setSessionId(Date.now()),h=!0),m=pd(),m.eventBridge.setEventReceiver(function(b){f.track(b.eventType,b.eventProperties)}),m.identityStore.setIdentity({userId:this.config.userId,deviceId:this.config.deviceId}),[4,this.add(new CM)];case 4:return g.sent(),[4,this.add(new R4)];case 5:return g.sent(),[4,this.add(new b4)];case 6:return g.sent(),this.initializing=!1,[4,this.runAttributionStrategy(u.attribution,h)];case 7:return g.sent(),[4,this.runQueuedFunctions("dispatchQ")];case 8:return g.sent(),[2]}})})},e.prototype.runAttributionStrategy=function(t,n){return n===void 0&&(n=!1),_t(this,void 0,void 0,function(){var r,a,o,s;return Ot(this,function(c){switch(c.label){case 0:return r=this.track.bind(this),a=this.setSessionId.bind(this,Date.now()),[4,k4(this.config)];case 1:return o=c.sent(),s=new D4(this.config.apiKey,at(at({},t),{storage:o,track:r,onNewCampaign:a})),[4,s.send(n)];case 2:return c.sent(),[2]}})})},e.prototype.getUserId=function(){var t;return(t=this.config)===null||t===void 0?void 0:t.userId},e.prototype.setUserId=function(t){if(!this.config){this.q.push(this.setUserId.bind(this,t));return}this.config.userId=t},e.prototype.getDeviceId=function(){var t;return(t=this.config)===null||t===void 0?void 0:t.deviceId},e.prototype.setDeviceId=function(t){if(!this.config){this.q.push(this.setDeviceId.bind(this,t));return}this.config.deviceId=t},e.prototype.reset=function(){this.setUserId(void 0),this.setDeviceId(ro())},e.prototype.getSessionId=function(){var t;return(t=this.config)===null||t===void 0?void 0:t.sessionId},e.prototype.setSessionId=function(t){if(!this.config){this.q.push(this.setSessionId.bind(this,t));return}this.config.sessionId=t,this.config.lastEventTime=void 0},e.prototype.setTransport=function(t){if(!this.config){this.q.push(this.setTransport.bind(this,t));return}this.config.transportProvider=B4(t)},e.prototype.identify=function(t,n){if(Rm(t)){var r=t._q;t._q=[],t=qm(new Qn,r)}return n!=null&&n.user_id&&this.setUserId(n.user_id),n!=null&&n.device_id&&this.setDeviceId(n.device_id),i.prototype.identify.call(this,t,n)},e.prototype.groupIdentify=function(t,n,r,a){if(Rm(r)){var o=r._q;r._q=[],r=qm(new Qn,o)}return i.prototype.groupIdentify.call(this,t,n,r,a)},e.prototype.revenue=function(t,n){if(Rm(t)){var r=t._q;t._q=[],t=qm(new Pm,r)}return i.prototype.revenue.call(this,t,n)},e}(g4);var km=l(function(){var i=new PO;return{init:Jt(In(i.init.bind(i)),"init",Qt(i),Kt(i,["config"])),add:Jt(In(i.add.bind(i)),"add",Qt(i),Kt(i,["config.apiKey","timeline.plugins"])),remove:Jt(In(i.remove.bind(i)),"remove",Qt(i),Kt(i,["config.apiKey","timeline.plugins"])),track:Jt(In(i.track.bind(i)),"track",Qt(i),Kt(i,["config.apiKey","timeline.queue.length"])),logEvent:Jt(In(i.logEvent.bind(i)),"logEvent",Qt(i),Kt(i,["config.apiKey","timeline.queue.length"])),identify:Jt(In(i.identify.bind(i)),"identify",Qt(i),Kt(i,["config.apiKey","timeline.queue.length"])),groupIdentify:Jt(In(i.groupIdentify.bind(i)),"groupIdentify",Qt(i),Kt(i,["config.apiKey","timeline.queue.length"])),setGroup:Jt(In(i.setGroup.bind(i)),"setGroup",Qt(i),Kt(i,["config.apiKey","timeline.queue.length"])),revenue:Jt(In(i.revenue.bind(i)),"revenue",Qt(i),Kt(i,["config.apiKey","timeline.queue.length"])),flush:Jt(In(i.flush.bind(i)),"flush",Qt(i),Kt(i,["config.apiKey","timeline.queue.length"])),getUserId:Jt(i.getUserId.bind(i),"getUserId",Qt(i),Kt(i,["config","config.userId"])),setUserId:Jt(i.setUserId.bind(i),"setUserId",Qt(i),Kt(i,["config","config.userId"])),getDeviceId:Jt(i.getDeviceId.bind(i),"getDeviceId",Qt(i),Kt(i,["config","config.deviceId"])),setDeviceId:Jt(i.setDeviceId.bind(i),"setDeviceId",Qt(i),Kt(i,["config","config.deviceId"])),reset:Jt(i.reset.bind(i),"reset",Qt(i),Kt(i,["config","config.userId","config.deviceId"])),getSessionId:Jt(i.getSessionId.bind(i),"getSessionId",Qt(i),Kt(i,["config"])),setSessionId:Jt(i.setSessionId.bind(i),"setSessionId",Qt(i),Kt(i,["config"])),setOptOut:Jt(i.setOptOut.bind(i),"setOptOut",Qt(i),Kt(i,["config"])),setTransport:Jt(i.setTransport.bind(i),"setTransport",Qt(i),Kt(i,["config"]))}},"createInstance"),ri=km();var Eee=ri.add,wee=ri.flush,Cee=ri.getDeviceId,Aee=ri.getSessionId,Pee=ri.getUserId,See=ri.groupIdentify,Iee=ri.identify,_ee=ri.init,Oee=ri.logEvent,Dee=ri.remove,Lee=ri.reset,qee=ri.revenue,Ree=ri.setDeviceId,Nee=ri.setGroup,kee=ri.setOptOut,Bee=ri.setSessionId,Fee=ri.setTransport,Uee=ri.setUserId,Vee=ri.track;var Q4={production:"40ead723d18886045e302513245edb27",development:""},Yl={plan:{version:"22",branch:"main",source:"websdk",versionId:"197467d1-8926-452d-a088-b3817cbac89f"},ingestionMetadata:{sourceName:"browser-typescript-ampli",sourceVersion:"2.0.0"}};var K4=class K4{constructor(e){this.event_properties=e;p(this,"event_type","Analytics:categorySelected-call");this.event_properties=e}};l(K4,"AnalyticsCategorySelectedCall");var md=K4,J4=class J4{constructor(e){this.event_properties=e;p(this,"event_type","Analytics:locationSelected-call");this.event_properties=e}};l(J4,"AnalyticsLocationSelectedCall");var gd=J4,$4=class $4{constructor(e){this.event_properties=e;p(this,"event_type","BlueDot:disable-call");this.event_properties=e}};l($4,"BlueDotDisableCall");var Fm=$4,e3=class e3{constructor(e){this.event_properties=e;p(this,"event_type","BlueDot:enable-call");this.event_properties=e}};l(e3,"BlueDotEnableCall");var Um=e3,t3=class t3{constructor(e){this.event_properties=e;p(this,"event_type","BlueDot:off-call");this.event_properties=e}};l(t3,"BlueDotOffCall");var Vm=t3,i3=class i3{constructor(e){this.event_properties=e;p(this,"event_type","BlueDot:on-call");this.event_properties=e}};l(i3,"BlueDotOnCall");var zm=i3,n3=class n3{constructor(e){this.event_properties=e;p(this,"event_type","Camera:animate-call");this.event_properties=e}};l(n3,"CameraAnimateCall");var jm=n3,r3=class r3{constructor(e){this.event_properties=e;p(this,"event_type","Camera:cancelAnimation-call");this.event_properties=e}};l(r3,"CameraCancelAnimationCall");var Gm=r3,a3=class a3{constructor(e){this.event_properties=e;p(this,"event_type","Camera:focusOn-call");this.event_properties=e}};l(a3,"CameraFocusOnCall");var Hm=a3,o3=class o3{constructor(e){this.event_properties=e;p(this,"event_type","Camera:getSafeAreaInsets-call");this.event_properties=e}};l(o3,"CameraGetSafeAreaInsetsCall");var Ym=o3,s3=class s3{constructor(e){this.event_properties=e;p(this,"event_type","Camera:interaction.disable-call");this.event_properties=e}};l(s3,"CameraInteractionDisableCall");var Wm=s3,l3=class l3{constructor(e){this.event_properties=e;p(this,"event_type","Camera:interaction.enable-call");this.event_properties=e}};l(l3,"CameraInteractionEnableCall");var Xm=l3,c3=class c3{constructor(e){this.event_properties=e;p(this,"event_type","Camera:set-call");this.event_properties=e}};l(c3,"CameraSetCall");var Zm=c3,u3=class u3{constructor(e){this.event_properties=e;p(this,"event_type","Camera:setSafeAreaInsets-call");this.event_properties=e}};l(u3,"CameraSetSafeAreaInsetsCall");var Qm=u3,d3=class d3{constructor(e){this.event_properties=e;p(this,"event_type","Camera:translate-call");this.event_properties=e}};l(d3,"CameraTranslateCall");var Km=d3,h3=class h3{constructor(e){this.event_properties=e;p(this,"event_type","FlatLabels:add-call");this.event_properties=e}};l(h3,"FlatLabelsAddCall");var Jm=h3,p3=class p3{constructor(e){this.event_properties=e;p(this,"event_type","FlatLabels:labelAllLocations-call");this.event_properties=e}};l(p3,"FlatLabelsLabelAllLocationsCall");var $m=p3,f3=class f3{constructor(e){this.event_properties=e;p(this,"event_type","FlatLabels:remove-call");this.event_properties=e}};l(f3,"FlatLabelsRemoveCall");var e1=f3,m3=class m3{constructor(e){this.event_properties=e;p(this,"event_type","FlatLabels:removeAll-call");this.event_properties=e}};l(m3,"FlatLabelsRemoveAllCall");var F4=m3,g3=class g3{constructor(e){this.event_properties=e;p(this,"event_type","FlatLabels:setAppearance-call");this.event_properties=e}};l(g3,"FlatLabelsSetAppearanceCall");var t1=g3,v3=class v3{constructor(e){this.event_properties=e;p(this,"event_type","FloatingLabels:add-call");this.event_properties=e}};l(v3,"FloatingLabelsAddCall");var i1=v3,y3=class y3{constructor(e){this.event_properties=e;p(this,"event_type","FloatingLabels:labelAllLocations-call");this.event_properties=e}};l(y3,"FloatingLabelsLabelAllLocationsCall");var n1=y3,b3=class b3{constructor(e){this.event_properties=e;p(this,"event_type","FloatingLabels:remove-call");this.event_properties=e}};l(b3,"FloatingLabelsRemoveCall");var r1=b3,x3=class x3{constructor(e){this.event_properties=e;p(this,"event_type","FloatingLabels:removeAll-call");this.event_properties=e}};l(x3,"FloatingLabelsRemoveAllCall");var U4=x3,T3=class T3{constructor(e){this.event_properties=e;p(this,"event_type","FloatingLabels:resetPriority-call");this.event_properties=e}};l(T3,"FloatingLabelsResetPriorityCall");var a1=T3,M3=class M3{constructor(e){this.event_properties=e;p(this,"event_type","FloatingLabels:setAppearance-call");this.event_properties=e}};l(M3,"FloatingLabelsSetAppearanceCall");var o1=M3,E3=class E3{constructor(e){this.event_properties=e;p(this,"event_type","FloatingLabels:setPriority-call");this.event_properties=e}};l(E3,"FloatingLabelsSetPriorityCall");var s1=E3,w3=class w3{constructor(e){this.event_properties=e;p(this,"event_type","global:getVenue-call");this.event_properties=e}};l(w3,"GlobalGetVenueCall");var l1=w3,C3=class C3{constructor(e){this.event_properties=e;p(this,"event_type","global:getVenueMVF-call");this.event_properties=e}};l(C3,"GlobalGetVenueMvfCall");var c1=C3,A3=class A3{constructor(e){this.event_properties=e;p(this,"event_type","global:showVenue-call");this.event_properties=e}};l(A3,"GlobalShowVenueCall");var u1=A3,P3=class P3{constructor(e){this.event_properties=e;p(this,"event_type","Journey:clear-call");this.event_properties=e}};l(P3,"JourneyClearCall");var d1=P3,S3=class S3{constructor(e){this.event_properties=e;p(this,"event_type","Journey:draw-call");this.event_properties=e}};l(S3,"JourneyDrawCall");var h1=S3,I3=class I3{constructor(e){this.event_properties=e;p(this,"event_type","Journey:setStep-call");this.event_properties=e}};l(I3,"JourneySetStepCall");var p1=I3,_3=class _3{constructor(e){this.event_properties=e;p(this,"event_type","Mappedin:getCollectionItemById-call");this.event_properties=e}};l(_3,"MappedinGetCollectionItemByIdCall");var V4=_3,O3=class O3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinCoordinate:absoluteDistanceTo-call");this.event_properties=e}};l(O3,"MappedinCoordinateAbsoluteDistanceToCall");var z4=O3,D3=class D3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinCoordinate:nearestNode-call");this.event_properties=e}};l(D3,"MappedinCoordinateNearestNodeCall");var j4=D3,L3=class L3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinLocation:clone-call");this.event_properties=e}};l(L3,"MappedinLocationCloneCall");var vd=L3,q3=class q3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinLocation:directionsTo-call");this.event_properties=e}};l(q3,"MappedinLocationDirectionsToCall");var yd=q3,R3=class R3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinLocation:distanceTo-call");this.event_properties=e}};l(R3,"MappedinLocationDistanceToCall");var bd=R3,N3=class N3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinMap:createCoordinate-call");this.event_properties=e}};l(N3,"MappedinMapCreateCoordinateCall");var G4=N3,k3=class k3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinMap:createCoordinateByXY-call");this.event_properties=e}};l(k3,"MappedinMapCreateCoordinateByXyCall");var H4=k3,B3=class B3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinMap:getNorth-call");this.event_properties=e}};l(B3,"MappedinMapGetNorthCall");var Y4=B3,F3=class F3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinNode:directionsTo-call");this.event_properties=e}};l(F3,"MappedinNodeDirectionsToCall");var xd=F3,U3=class U3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinNode:distanceTo-call");this.event_properties=e}};l(U3,"MappedinNodeDistanceToCall");var Td=U3,V3=class V3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinPolygon:directionsTo-call");this.event_properties=e}};l(V3,"MappedinPolygonDirectionsToCall");var Md=V3,z3=class z3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinPolygon:distanceTo-call");this.event_properties=e}};l(z3,"MappedinPolygonDistanceToCall");var Ed=z3,j3=class j3{constructor(e){this.event_properties=e;p(this,"event_type","MappedinVenue:metadata-read");this.event_properties=e}};l(j3,"MappedinVenueMetadataRead");var wd=j3,G3=class G3{constructor(e){this.event_properties=e;p(this,"event_type","MapView:addInteractivePolygon-call");this.event_properties=e}};l(G3,"MapViewAddInteractivePolygonCall");var f1=G3,H3=class H3{constructor(e){this.event_properties=e;p(this,"event_type","MapView:addInteractivePolygonsForAllLocations-call");this.event_properties=e}};l(H3,"MapViewAddInteractivePolygonsForAllLocationsCall");var m1=H3,Y3=class Y3{constructor(e){this.event_properties=e;p(this,"event_type","MapView:clearPolygonColor-call");this.event_properties=e}};l(Y3,"MapViewClearPolygonColorCall");var g1=Y3,W3=class W3{constructor(e){this.event_properties=e;p(this,"event_type","MapView:createCustomTooltip-call");this.event_properties=e}};l(W3,"MapViewCreateCustomTooltipCall");var v1=W3,X3=class X3{constructor(e){this.event_properties=e;p(this,"event_type","MapView:createMarker-call");this.event_properties=e}};l(X3,"MapViewCreateMarkerCall");var W4=X3,Z3=class Z3{constructor(e){this.event_properties=e;p(this,"event_type","MapView:createTooltip-call");this.event_properties=e}};l(Z3,"MapViewCreateTooltipCall");var y1=Z3,Q3=class Q3{constructor(e){this.event_properties=e;p(this,"event_type","MapView:destroy-call");this.event_properties=e}};l(Q3,"MapViewDestroyCall");var b1=Q3,K3=class K3{constructor(e){this.event_properties=e;p(this,"event_type","MapView:disableImageFlippingForAllPolygons-call");this.event_properties=e}};l(K3,"MapViewDisableImageFlippingForAllPolygonsCall");var x1=K3,J3=class J3{constructor(e){this.event_properties=e;p(this,"event_type","MapView:drawPath-call");this.event_properties=e}};l(J3,"MapViewDrawPathCall");var T1=J3,$3=class $3{constructor(e){this.event_properties=e;p(this,"event_type","MapView:enableImageFlippingForAllLocations-call");this.event_properties=e}};l($3,"MapViewEnableImageFlippingForAllLocationsCall");var M1=$3,ey=class ey{constructor(e){this.event_properties=e;p(this,"event_type","MapView:enableImageFlippingForPolygon-call");this.event_properties=e}};l(ey,"MapViewEnableImageFlippingForPolygonCall");var E1=ey,ty=class ty{constructor(e){this.event_properties=e;p(this,"event_type","MapView:getNearestNodeByScreenCoordinates-call");this.event_properties=e}};l(ty,"MapViewGetNearestNodeByScreenCoordinatesCall");var w1=ty,iy=class iy{constructor(e){this.event_properties=e;p(this,"event_type","MapView:getPolygonAtCoordinate-call");this.event_properties=e}};l(iy,"MapViewGetPolygonAtCoordinateCall");var C1=iy,ny=class ny{constructor(e){this.event_properties=e;p(this,"event_type","MapView:getPrimaryLocationForPolygon-call");this.event_properties=e}};l(ny,"MapViewGetPrimaryLocationForPolygonCall");var A1=ny,ry=class ry{constructor(e){this.event_properties=e;p(this,"event_type","MapView:labelAllLocations-call");this.event_properties=e}};l(ry,"MapViewLabelAllLocationsCall");var P1=ry,ay=class ay{constructor(e){this.event_properties=e;p(this,"event_type","MapView:removeAllInteractivePolygons-call");this.event_properties=e}};l(ay,"MapViewRemoveAllInteractivePolygonsCall");var S1=ay,oy=class oy{constructor(e){this.event_properties=e;p(this,"event_type","MapView:removeAllMarkers-call");this.event_properties=e}};l(oy,"MapViewRemoveAllMarkersCall");var I1=oy,sy=class sy{constructor(e){this.event_properties=e;p(this,"event_type","MapView:removeAllPaths-call");this.event_properties=e}};l(sy,"MapViewRemoveAllPathsCall");var _1=sy,ly=class ly{constructor(e){this.event_properties=e;p(this,"event_type","MapView:removeAllTooltips-call");this.event_properties=e}};l(ly,"MapViewRemoveAllTooltipsCall");var O1=ly,cy=class cy{constructor(e){this.event_properties=e;p(this,"event_type","MapView:removeInteractivePolygon-call");this.event_properties=e}};l(cy,"MapViewRemoveInteractivePolygonCall");var D1=cy,uy=class uy{constructor(e){this.event_properties=e;p(this,"event_type","MapView:removeMarker-call");this.event_properties=e}};l(uy,"MapViewRemoveMarkerCall");var X4=uy,dy=class dy{constructor(e){this.event_properties=e;p(this,"event_type","MapView:removePath-call");this.event_properties=e}};l(dy,"MapViewRemovePathCall");var L1=dy,hy=class hy{constructor(e){this.event_properties=e;p(this,"event_type","MapView:removeTooltip-call");this.event_properties=e}};l(hy,"MapViewRemoveTooltipCall");var q1=hy,py=class py{constructor(e){this.event_properties=e;p(this,"event_type","MapView:setBackgroundColor-call");this.event_properties=e}};l(py,"MapViewSetBackgroundColorCall");var R1=py,fy=class fy{constructor(e){this.event_properties=e;p(this,"event_type","MapView:setHoverColor-call");this.event_properties=e}};l(fy,"MapViewSetHoverColorCall");var N1=fy,my=class my{constructor(e){this.event_properties=e;p(this,"event_type","MapView:setMap-call");this.event_properties=e}};l(my,"MapViewSetMapCall");var k1=my,gy=class gy{constructor(e){this.event_properties=e;p(this,"event_type","MapView:setPolygonColor-call");this.event_properties=e}};l(gy,"MapViewSetPolygonColorCall");var B1=gy,vy=class vy{constructor(e){this.event_properties=e;p(this,"event_type","MapView:setState-call");this.event_properties=e}};l(vy,"MapViewSetStateCall");var F1=vy,yy=class yy{constructor(e){this.event_properties=e;p(this,"event_type","metrics:mapLoad-event");this.event_properties=e}};l(yy,"MetricsMapLoadEvent");var U1=yy,by=class by{constructor(e){this.event_properties=e;p(this,"event_type","OfflineSearch:addQuery-call");this.event_properties=e}};l(by,"OfflineSearchAddQueryCall");var V1=by,xy=class xy{constructor(e){this.event_properties=e;p(this,"event_type","OfflineSearch:constructor-call");this.event_properties=e}};l(xy,"OfflineSearchConstructorCall");var z1=xy,Ty=class Ty{constructor(e){this.event_properties=e;p(this,"event_type","OfflineSearch:search-call");this.event_properties=e}};l(Ty,"OfflineSearchSearchCall");var j1=Ty,My=class My{constructor(e){this.event_properties=e;p(this,"event_type","OfflineSearch:suggest-call");this.event_properties=e}};l(My,"OfflineSearchSuggestCall");var G1=My,Bm=l(()=>({promise:Promise.resolve()}),"getVoidPromiseResult"),Ey=class Ey{constructor(){p(this,"disabled",!1);p(this,"amplitude")}get client(){return this.isInitializedAndEnabled(),this.amplitude}get isLoaded(){return this.amplitude!=null}isInitializedAndEnabled(){return this.amplitude?!this.disabled:(console.error("ERROR: Ampli is not yet initialized. Have you called ampli.load() on app start?"),!1)}load(e){var n,r;if(this.disabled=(n=e.disabled)!=null?n:!1,this.amplitude)return console.warn("WARNING: Ampli is already intialized. Ampli.load() should be called once at application startup."),Bm();let t=null;if(e.client&&"apiKey"in e.client?t=e.client.apiKey:"environment"in e&&(t=Q4[e.environment]),e.client&&"instance"in e.client)this.amplitude=e.client.instance;else{if(t)return this.amplitude=km(),this.amplitude.init(t,void 0,{...Yl,...(e==null?void 0:e.client)!=null&&"configuration"in e.client?(r=e.client)==null?void 0:r.configuration:{}});console.error("ERROR: ampli.load() requires 'environment', 'client.apiKey', or 'client.instance'")}return Bm()}identify(e,t,n){if(!this.isInitializedAndEnabled())return Bm();e&&(n={...n,user_id:e});let r=new Qn,a=t;if(a!=null)for(let[o,s]of Object.entries(a))r.set(o,s);return this.amplitude.identify(r,n)}track(e,t){return this.isInitializedAndEnabled()?this.amplitude.track(e,void 0,t):Bm()}analyticsCategorySelectedCall(e,t){return this.track(new md(e),t)}analyticsLocationSelectedCall(e,t){return this.track(new gd(e),t)}blueDotDisableCall(e,t){return this.track(new Fm(e),t)}blueDotEnableCall(e,t){return this.track(new Um(e),t)}blueDotOffCall(e,t){return this.track(new Vm(e),t)}blueDotOnCall(e,t){return this.track(new zm(e),t)}cameraAnimateCall(e,t){return this.track(new jm(e),t)}cameraCancelAnimationCall(e,t){return this.track(new Gm(e),t)}cameraFocusOnCall(e,t){return this.track(new Hm(e),t)}cameraGetSafeAreaInsetsCall(e,t){return this.track(new Ym(e),t)}cameraInteractionDisableCall(e,t){return this.track(new Wm(e),t)}cameraInteractionEnableCall(e,t){return this.track(new Xm(e),t)}cameraSetCall(e,t){return this.track(new Zm(e),t)}cameraSetSafeAreaInsetsCall(e,t){return this.track(new Qm(e),t)}cameraTranslateCall(e,t){return this.track(new Km(e),t)}flatLabelsAddCall(e,t){return this.track(new Jm(e),t)}flatLabelsLabelAllLocationsCall(e,t){return this.track(new $m(e),t)}flatLabelsRemoveCall(e,t){return this.track(new e1(e),t)}flatLabelsRemoveAllCall(e,t){return this.track(new F4(e),t)}flatLabelsSetAppearanceCall(e,t){return this.track(new t1(e),t)}floatingLabelsAddCall(e,t){return this.track(new i1(e),t)}floatingLabelsLabelAllLocationsCall(e,t){return this.track(new n1(e),t)}floatingLabelsRemoveCall(e,t){return this.track(new r1(e),t)}floatingLabelsRemoveAllCall(e,t){return this.track(new U4(e),t)}floatingLabelsResetPriorityCall(e,t){return this.track(new a1(e),t)}floatingLabelsSetAppearanceCall(e,t){return this.track(new o1(e),t)}floatingLabelsSetPriorityCall(e,t){return this.track(new s1(e),t)}globalGetVenueCall(e,t){return this.track(new l1(e),t)}globalGetVenueMvfCall(e,t){return this.track(new c1(e),t)}globalShowVenueCall(e,t){return this.track(new u1(e),t)}journeyClearCall(e,t){return this.track(new d1(e),t)}journeyDrawCall(e,t){return this.track(new h1(e),t)}journeySetStepCall(e,t){return this.track(new p1(e),t)}mappedinGetCollectionItemByIdCall(e,t){return this.track(new V4(e),t)}mappedinCoordinateAbsoluteDistanceToCall(e,t){return this.track(new z4(e),t)}mappedinCoordinateNearestNodeCall(e,t){return this.track(new j4(e),t)}mappedinLocationCloneCall(e,t){return this.track(new vd(e),t)}mappedinLocationDirectionsToCall(e,t){return this.track(new yd(e),t)}mappedinLocationDistanceToCall(e,t){return this.track(new bd(e),t)}mappedinMapCreateCoordinateCall(e,t){return this.track(new G4(e),t)}mappedinMapCreateCoordinateByXyCall(e,t){return this.track(new H4(e),t)}mappedinMapGetNorthCall(e,t){return this.track(new Y4(e),t)}mappedinNodeDirectionsToCall(e,t){return this.track(new xd(e),t)}mappedinNodeDistanceToCall(e,t){return this.track(new Td(e),t)}mappedinPolygonDirectionsToCall(e,t){return this.track(new Md(e),t)}mappedinPolygonDistanceToCall(e,t){return this.track(new Ed(e),t)}mappedinVenueMetadataRead(e,t){return this.track(new wd(e),t)}mapViewAddInteractivePolygonCall(e,t){return this.track(new f1(e),t)}mapViewAddInteractivePolygonsForAllLocationsCall(e,t){return this.track(new m1(e),t)}mapViewClearPolygonColorCall(e,t){return this.track(new g1(e),t)}mapViewCreateCustomTooltipCall(e,t){return this.track(new v1(e),t)}mapViewCreateMarkerCall(e,t){return this.track(new W4(e),t)}mapViewCreateTooltipCall(e,t){return this.track(new y1(e),t)}mapViewDestroyCall(e,t){return this.track(new b1(e),t)}mapViewDisableImageFlippingForAllPolygonsCall(e,t){return this.track(new x1(e),t)}mapViewDrawPathCall(e,t){return this.track(new T1(e),t)}mapViewEnableImageFlippingForAllLocationsCall(e,t){return this.track(new M1(e),t)}mapViewEnableImageFlippingForPolygonCall(e,t){return this.track(new E1(e),t)}mapViewGetNearestNodeByScreenCoordinatesCall(e,t){return this.track(new w1(e),t)}mapViewGetPolygonAtCoordinateCall(e,t){return this.track(new C1(e),t)}mapViewGetPrimaryLocationForPolygonCall(e,t){return this.track(new A1(e),t)}mapViewLabelAllLocationsCall(e,t){return this.track(new P1(e),t)}mapViewRemoveAllInteractivePolygonsCall(e,t){return this.track(new S1(e),t)}mapViewRemoveAllMarkersCall(e,t){return this.track(new I1(e),t)}mapViewRemoveAllPathsCall(e,t){return this.track(new _1(e),t)}mapViewRemoveAllTooltipsCall(e,t){return this.track(new O1(e),t)}mapViewRemoveInteractivePolygonCall(e,t){return this.track(new D1(e),t)}mapViewRemoveMarkerCall(e,t){return this.track(new X4(e),t)}mapViewRemovePathCall(e,t){return this.track(new L1(e),t)}mapViewRemoveTooltipCall(e,t){return this.track(new q1(e),t)}mapViewSetBackgroundColorCall(e,t){return this.track(new R1(e),t)}mapViewSetHoverColorCall(e,t){return this.track(new N1(e),t)}mapViewSetMapCall(e,t){return this.track(new k1(e),t)}mapViewSetPolygonColorCall(e,t){return this.track(new B1(e),t)}mapViewSetStateCall(e,t){return this.track(new F1(e),t)}metricsMapLoadEvent(e,t){return this.track(new U1(e),t)}offlineSearchAddQueryCall(e,t){return this.track(new V1(e),t)}offlineSearchConstructorCall(e,t){return this.track(new z1(e),t)}offlineSearchSearchCall(e,t){return this.track(new j1(e),t)}offlineSearchSuggestCall(e,t){return this.track(new G1(e),t)}};l(Ey,"Ampli");var Z4=Ey,Cd=new Z4;y();var ZC=et(hE()),QC=et(Hy());y();var UC=et(VE());y();y();y();var jw=et(zw());y();var g5=class g5{constructor({origin:e,destination:t,vortex:n,elevationDelta:r=0,distance:a=0,angle:o=0,pathWeight:s=0}){p(this,"origin");p(this,"destination");p(this,"vortex");p(this,"distance");p(this,"angle");p(this,"weight");this.origin=e,this.destination=t,this.vortex=n,this.distance=a,this.angle=o;let c,u;if(n)this.distance=0,this.angle=0,n.weight!==void 0&&n.weight>0?c=n.weight:c=n.type==="elevator"?2e3:1e3,u=n.multiplier&&n.multiplier>=1?n.multiplier:1,this.weight=r*u+c;else{let h=s||t.weight;c=h&&h>=0?h:0,u=t.multiplier&&t.multiplier>=1?t.multiplier:1,this.weight=this.distance*u+c}if(isNaN(this.angle))throw new Error("nan angle")}};l(g5,"Edge");var m5=g5,Ps=m5;function SB(i){if(i.scale||i.x_scale)return 1/(i.scale||i.x_scale||1);try{if(!i.georeference)throw new Error("map ".concat(i.name||i.shortName||i.id," does not have a georeference field"));if(i.georeference.length<3)throw new Error("map ".concat(i.name||i.shortName||i.id," has less than 3 georeference points, we require at least 3 for proper map scaling"));let e=i.georeference[0],t=i.georeference[2],n=(0,jw.getDistance)({latitude:e.target.x,longitude:e.target.y},{latitude:t.target.x,longitude:t.target.y}),r=e.control.x-t.control.x,a=e.control.y-t.control.y;return Math.sqrt(r*r+a*a)/n}catch(e){return F.error(e),1}}l(SB,"getMapScale");function ug(i,e){let t=i.x-e.x,n=i.y-e.y;return(Math.atan2(n,t)+Math.PI*2.5)%(Math.PI*2)}l(ug,"getAngle");var b5=class b5{constructor({nodes:e,vortexes:t,maps:n,showVortexNames:r=!1}){p(this,"edges");p(this,"nodesById");p(this,"mapsById");this.edges={},this.mapsById=n.map(s=>({...s,_scale:SB(s)})).reduce((s,c)=>(s[c.id]=c,s),{});let a=e.filter(s=>!!this.mapsById[s.map]).map(s=>({...s,paths:s.paths?s.paths.filter(({map:c})=>c===s.map):[]}));this.nodesById=a.reduce((s,c)=>(s[c.id]=c,s),{});for(let s in this.nodesById)this.nodesById.hasOwnProperty(s)&&(this.nodesById[s].paths=this.nodesById[s].paths.filter(({node:c})=>!!this.nodesById[c]));let o=t.map(s=>({...s,name:r?s.name:s.type,nodes:s.nodes?s.nodes.filter(c=>!!this.nodesById[c]):[]}));a.forEach(s=>{this.edges[s.id]=s.paths.map(({node:c,weight:u})=>{let h=this.nodesById[c];return new Ps({angle:ug(s,h),destination:h,distance:this.getDistance(s,h),origin:s,pathWeight:u})})}),o.forEach(s=>{if(s.nodes==null||s.nodes.length===0)return;let c=0;for(;c<s.nodes.length-1;){let u=this.nodesById[s.nodes[c]];if(c++,u==null)continue;let h=c;for(;h<s.nodes.length;){let m=this.nodesById[s.nodes[h]];if(h++,m==null)continue;let f=this.mapsById[u.map].elevation||0,g=this.mapsById[m.map].elevation||0,b=Math.abs(f-g);this.edges[u.id].push(new Ps({destination:m,elevationDelta:b,origin:u,vortex:s})),this.edges[m.id].push(new Ps({destination:u,elevationDelta:b,origin:m,vortex:s}))}}})}aStar({originIds:e,destinationNodeIds:t,accessible:n,includedVortexIds:r,excludedVortexIds:a}){let o=e.map(m=>this.nodesById[m]).filter(m=>m),s=t.map(m=>this.nodesById[m]).filter(m=>m);if(o.length===0||s.length===0)return[];let c=[],u={},h={};for(o.forEach(m=>{let f=this.getShortestEuclideanDistance(m,s);c.push({origin:m,priority:f}),u[m.id]=null,h[m.id]=0}),c.sort((m,f)=>m.priority-f.priority);c.length>0;){let m=c[0];if(s.includes(m.origin)){let f=[],g=u[m.origin.id];for(;g!=null;){f.push(g);let b=u[g.origin.id];b!=null?g=b:g=null}return f.reverse()}for(let f of this.edges[m.origin.id]){let g=f.vortex&&f.vortex.accessible===!1||f.origin.accessible===!1||f.destination.accessible===!1,b=f.vortex&&(r&&!r.has(f.vortex.id)||a&&a.has(f.vortex.id));if(n&&g||b)continue;let M=h[m.origin.id]+f.weight;if(h[f.destination.id]==null||M<h[f.destination.id]){h[f.destination.id]=M;let x=M+this.getShortestEuclideanDistance(f.destination,s);c.push({origin:f.destination,priority:x}),u[f.destination.id]=f}}c.splice(0,1),c.sort((f,g)=>f.priority-g.priority)}return[]}getDistance(e,t){let n=e.x-t.x,r=e.y-t.y,a=n*n+r*r,o;return this.mapsById[e.map]==null?o=1:o=this.mapsById[e.map]._scale,Math.sqrt(a)/o}getShortestEuclideanDistance(e,t){return t.reduce((n,r)=>{let a=this.getDistance(e,r);return Math.min(n,a)},Number.MAX_VALUE)}};l(b5,"NavigationGraph");var v5=b5,y5=v5;y();y();function IB(i){switch(i){case"down":case"up":return"".concat(i," ");default:return""}}l(IB,"vortexDirectionTest");var T5=class T5{constructor({origin:e,action:t,distance:n,atLocation:r,instruction:a}){p(this,"node");p(this,"instruction");p(this,"action");p(this,"atLocation");p(this,"type");p(this,"distance",0);this.node=e,this.action=t,this.distance=n||0,this.atLocation=r,this.instruction="",a?this.instruction=a:(t!=null&&t.type==="Departure"?r!=null?this.instruction="Depart from ".concat(r.name):this.instruction="Depart from current location":t!=null&&t.type==="Arrival"?r!=null?this.instruction="Arrive at ".concat(r.name):this.instruction="Arrive at destination":t!=null&&t.type==="TakeVortex"?this.instruction="Take ".concat(r&&r.name," ").concat(IB(t.direction),"to ").concat(t.toMap.name):t!=null&&t.type==="ExitVortex"?this.instruction="Exit ".concat(r&&r.name," at ").concat(t.toMap.name):t!=null&&"bearing"in t&&t.bearing==="Right"?this.instruction="Turn right":t!=null&&"bearing"in t&&t.bearing==="SlightRight"?this.instruction="Turn slightly right":t!=null&&"bearing"in t&&t.bearing==="Straight"?this.instruction="Head straight":t!=null&&"bearing"in t&&t.bearing==="SlightLeft"?this.instruction="Turn slightly left":t!=null&&"bearing"in t&&t.bearing==="Left"&&(this.instruction="Turn left"),t!=null&&t.type==="Turn"&&r&&(this.instruction+=" at ".concat(r.name)))}};l(T5,"Directive");var x5=T5,co=x5;y();function M5(i,e,t,n){if(!i||!e||!t||!n)return null;let r=i.x,a=i.y,o=e.x,s=e.y,c=t.x,u=t.y,h=n.x,m=n.y;if(r===o&&a===s||c===h&&u===m)return null;let f=(m-u)*(o-r)-(h-c)*(s-a);if(f===0)return null;let g=((h-c)*(a-u)-(m-u)*(r-c))/f,b=((o-r)*(a-u)-(s-a)*(r-c))/f;if(g<0||g>1||b<0||b>1)return null;let M=r+g*(o-r),x=a+g*(s-a);return{x:M,y:x}}l(M5,"getLineIntersection");function Gw(i,e,t){if(i.x===e.x)return[{x:i.x+t,y:i.y},{x:e.x+t,y:e.y}];if(i.y===e.y)return[{x:i.x,y:i.y+t},{x:e.x,y:e.y+t}];let r=-1/((e.y-i.y)/(e.x-i.x)),a=t*Math.sqrt(1/(1+r*r)),o=r*a;return[{x:i.x+a,y:i.y+o},{x:e.x+a,y:e.y+o}]}l(Gw,"getOffsetLine");function Hw(i,e,t=[],n=0){let r=!0;return t.forEach(a=>{if(n>0){let o=Gw(i,e,-n),s=Gw(i,e,n);if(M5(o[0],o[1],a[0],a[1])||M5(s[0],s[1],a[0],a[1])){r=!1;return}}else if(M5(i,e,a[0],a[1])){r=!1;return}}),r}l(Hw,"hasLineOfSight");var dg=Math.PI*.1;function hg(i,e){return((e-i+Math.PI)%(Math.PI*2)+Math.PI*2)%(Math.PI*2)-Math.PI}l(hg,"differenceBetweenAngles");var A5=class A5{constructor({locations:e,nodes:t,vortexes:n,maps:r,polygons:a,showVortexNames:o}){p(this,"graph");p(this,"locationsByNodeId");p(this,"geometryEdgesByMapId",new Map);this.graph=new y5({maps:r,nodes:t,showVortexNames:o,vortexes:n}),this.locationsByNodeId=e.reduce((s,c)=>(c.nodes&&c.nodes.forEach(u=>{s[u.node]=c}),c.polygons&&c.polygons.forEach(u=>{u.entrances&&u.entrances.forEach(h=>{s[h]=c})}),s),{}),a&&a.forEach(s=>{this.geometryEdgesByMapId.has(s.map)||this.geometryEdgesByMapId.set(s.map,[]),s.vertexes.forEach((c,u)=>{s.vertexes[u+1]?this.geometryEdgesByMapId.get(s.map).push([c,s.vertexes[u+1]]):this.geometryEdgesByMapId.get(s.map).push([c,s.vertexes[0]])})})}getClosestLocationInRay(e,t=Math.PI*.5,n=10){let r=0,a=0,o=e;for(;Math.abs(r)<t&&a<n;){let s=this.graph.edges[o.destination.id],c=null,u=0;for(let h of s)if(h.distance>0)if(c!=null){let m=-hg(o.angle,h.angle);Math.abs(m)<Math.abs(u)&&(c=h,u=m)}else c=h,u=-hg(o.angle,h.angle);if(c!=null){if(Math.abs(u)>=t||(r+=u,a+=c.distance,Math.abs(r)>=t||a>n))return null;let h=this.locationsByNodeId[c.destination.id];if(h!=null)return h;o=c}else return null}return null}getDirections({originIds:e,destinationNodeIds:t,accessible:n,departFrom:r,arriveAt:a,includedVortexIds:o,excludedVortexIds:s,simplify:c}){var P,q,D;let u=this.graph.aStar({originIds:e,destinationNodeIds:t,accessible:n,includedVortexIds:o,excludedVortexIds:s});if(u.length===0)return{distance:0,instructions:[new co({distance:0,instruction:"No Valid Path Available"})],path:[]};let h=0,m=[],f=[];if(c!=null&&c.enabled){let U=(P=c==null?void 0:c.bufferRadius)!=null?P:1.8,R=[u[0]];for(let G=1;G<u.length;G++){if(u[G].origin.map!==u[G-1].origin.map){let Q=(q=this.geometryEdgesByMapId.get(u[G-1].origin.map))!=null?q:[];f.push(...this.simplifySteps(R,Q,U)),R=[u[G]]}R.push(u[G])}let B=u[u.length-1],j=(D=this.geometryEdgesByMapId.get(B.origin.map))!=null?D:[];f.push(...this.simplifySteps(R,j,U)),u=f}for(let U=0;U<u.length;U++)m.push(u[U].origin);m.push(u[u.length-1].destination);let g=[],b=null,M=null,x=0,T=0;for(let U=0;U<u.length;U++){let R=u[U],B=R.origin,j=R.destination;if(h+=R.distance,x+=(M==null?void 0:M.distance)||0,U===0&&g.push(new co({action:{type:"Departure"},atLocation:r,distance:0,origin:B})),R.vortex!=null){let G=this.graph.mapsById[B.map],Q=this.graph.mapsById[j.map],X="none";if(G.elevation!=null&&Q.elevation!=null){let ne=G.elevation-Q.elevation;ne>0?X="down":ne<0&&(X="up")}g.push(new co({action:{direction:X,fromMap:G,toMap:Q,type:"TakeVortex"},atLocation:R.vortex,distance:x,origin:B})),T+=x,x=0}else if(b!=null&&M!=null)if(M.vortex!=null){let G=this.graph.mapsById[b.map],Q=this.graph.mapsById[M.destination.map];g.push(new co({action:{fromMap:G,toMap:Q,type:"ExitVortex"},atLocation:M.vortex,distance:x,origin:B})),T+=x,x=0}else{let Q=this.graph.edges[B.id].filter(X=>X.destination!==b&&X.destination!==R.destination);if(Q.length>0){let X=-hg(M.angle,R.angle),ne=Q.reduce(($,ue)=>{let be=-hg(R.angle,ue.angle);return Math.min($,Math.abs(be))},Math.PI);if(Math.abs(X)>=dg||Math.abs(ne)<=dg){let $;X<=-Math.PI/4?$="Right":X<=-dg?$="SlightRight":X<=dg?$="Straight":X<=Math.PI/4?$="SlightLeft":$="Left";let ue=this.locationsByNodeId[B.id];if(ue||(ue=this.getClosestLocationInRay(M,Math.PI*.5,10)),ue!=null){let be=new co({action:{bearing:$,referencePosition:"At",type:"Turn"},atLocation:ue,distance:x,origin:B});be.type=$,g.push(be)}else g.push(new co({action:{bearing:$,referencePosition:"At",type:"Turn"},distance:x,origin:B}));T+=x,x=0}}}U===u.length-1&&(g.push(new co({action:{type:"Arrival"},atLocation:a,distance:h-T<0?0:h-T,origin:R.destination})),T+=x,x=0),b=B,M=R}let E=[],S=null,_=5;for(let U=g.length-1;U>=0;U--){let R=g[U],{action:B}=R;B&&B.type==="TakeVortex"?(S=R.node,E.unshift(R)):B&&B.type==="Turn"&&S!=null?this.graph.getDistance(R.node,S)>_&&E.unshift(R):E.unshift(R)}return{distance:h,instructions:E,path:m}}simplifySteps(e,t,n){if(e.length<3)return e;let r=[e[0]],a=1;for(let o=a+2;o<e.length;o++)if(!Hw(e[a].origin,e[o].origin,t,n)){let s=o-1;r.push(new Ps({...e[a],destination:e[s].origin,distance:this.graph.getDistance(e[a].origin,e[s].origin),angle:ug(e[a].origin,e[s].origin)})),a=s}return r.push(new Ps({...e[a],destination:e[e.length-1].origin,distance:this.graph.getDistance(e[a].origin,e[e.length-1].origin),angle:ug(e[a].origin,e[e.length-1].origin)}),e[e.length-1]),r}};l(A5,"Navigator");var E5=A5,C5=E5;y();y();y();y();var Vi=63710088e-1,Yw={centimeters:Vi*100,centimetres:Vi*100,degrees:Vi/111325,feet:Vi*3.28084,inches:Vi*39.37,kilometers:Vi/1e3,kilometres:Vi/1e3,meters:Vi,metres:Vi,miles:Vi/1609.344,millimeters:Vi*1e3,millimetres:Vi*1e3,nauticalmiles:Vi/1852,radians:1,yards:Vi*1.0936},Xne={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Vi,yards:1.0936133};function uo(i,e,t){t===void 0&&(t={});var n={type:"Feature"};return(t.id===0||t.id)&&(n.id=t.id),t.bbox&&(n.bbox=t.bbox),n.properties=e||{},n.geometry=i,n}l(uo,"feature");function zi(i,e,t){if(t===void 0&&(t={}),!i)throw new Error("coordinates is required");if(!Array.isArray(i))throw new Error("coordinates must be an Array");if(i.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!P5(i[0])||!P5(i[1]))throw new Error("coordinates must contain numbers");var n={type:"Point",coordinates:i};return uo(n,e,t)}l(zi,"point");function ha(i,e,t){if(t===void 0&&(t={}),i.length<2)throw new Error("coordinates must be an array of two or more positions");var n={type:"LineString",coordinates:i};return uo(n,e,t)}l(ha,"lineString");function Ss(i,e){e===void 0&&(e={});var t={type:"FeatureCollection"};return e.id&&(t.id=e.id),e.bbox&&(t.bbox=e.bbox),t.features=i,t}l(Ss,"featureCollection");function Ww(i,e){e===void 0&&(e="kilometers");var t=Yw[e];if(!t)throw new Error(e+" units is invalid");return i*t}l(Ww,"radiansToLength");function Xw(i,e){e===void 0&&(e="kilometers");var t=Yw[e];if(!t)throw new Error(e+" units is invalid");return i/t}l(Xw,"lengthToRadians");function jd(i){var e=i%(2*Math.PI);return e*180/Math.PI}l(jd,"radiansToDegrees");function on(i){var e=i%360;return e*Math.PI/180}l(on,"degreesToRadians");function P5(i){return!isNaN(i)&&i!==null&&!Array.isArray(i)}l(P5,"isNumber");function pg(i,e,t){if(i!==null)for(var n,r,a,o,s,c,u,h=0,m=0,f,g=i.type,b=g==="FeatureCollection",M=g==="Feature",x=b?i.features.length:1,T=0;T<x;T++){u=b?i.features[T].geometry:M?i.geometry:i,f=u?u.type==="GeometryCollection":!1,s=f?u.geometries.length:1;for(var E=0;E<s;E++){var S=0,_=0;if(o=f?u.geometries[E]:u,o!==null){c=o.coordinates;var P=o.type;switch(h=t&&(P==="Polygon"||P==="MultiPolygon")?1:0,P){case null:break;case"Point":if(e(c,m,T,S,_)===!1)return!1;m++,S++;break;case"LineString":case"MultiPoint":for(n=0;n<c.length;n++){if(e(c[n],m,T,S,_)===!1)return!1;m++,P==="MultiPoint"&&S++}P==="LineString"&&S++;break;case"Polygon":case"MultiLineString":for(n=0;n<c.length;n++){for(r=0;r<c[n].length-h;r++){if(e(c[n][r],m,T,S,_)===!1)return!1;m++}P==="MultiLineString"&&S++,P==="Polygon"&&_++}P==="Polygon"&&S++;break;case"MultiPolygon":for(n=0;n<c.length;n++){for(_=0,r=0;r<c[n].length;r++){for(a=0;a<c[n][r].length-h;a++){if(e(c[n][r][a],m,T,S,_)===!1)return!1;m++}_++}S++}break;case"GeometryCollection":for(n=0;n<o.geometries.length;n++)if(pg(o.geometries[n],e,t)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}l(pg,"coordEach");function S5(i,e){if(i.type==="Feature")e(i,0);else if(i.type==="FeatureCollection")for(var t=0;t<i.features.length&&e(i.features[t],t)!==!1;t++);}l(S5,"featureEach");function DB(i,e){var t,n,r,a,o,s,c,u,h,m,f=0,g=i.type==="FeatureCollection",b=i.type==="Feature",M=g?i.features.length:1;for(t=0;t<M;t++){for(s=g?i.features[t].geometry:b?i.geometry:i,u=g?i.features[t].properties:b?i.properties:{},h=g?i.features[t].bbox:b?i.bbox:void 0,m=g?i.features[t].id:b?i.id:void 0,c=s?s.type==="GeometryCollection":!1,o=c?s.geometries.length:1,r=0;r<o;r++){if(a=c?s.geometries[r]:s,a===null){if(e(null,f,u,h,m)===!1)return!1;continue}switch(a.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(e(a,f,u,h,m)===!1)return!1;break}case"GeometryCollection":{for(n=0;n<a.geometries.length;n++)if(e(a.geometries[n],f,u,h,m)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}f++}}l(DB,"geomEach");function Gd(i,e){DB(i,function(t,n,r,a,o){var s=t===null?null:t.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return e(uo(t,r,{bbox:a,id:o}),n,0)===!1?!1:void 0}var c;switch(s){case"MultiPoint":c="Point";break;case"MultiLineString":c="LineString";break;case"MultiPolygon":c="Polygon";break}for(var u=0;u<t.coordinates.length;u++){var h=t.coordinates[u],m={type:c,coordinates:h};if(e(uo(m,r),n,u)===!1)return!1}})}l(Gd,"flattenEach");function LB(i,e){Gd(i,function(t,n,r){var a=0;if(t.geometry){var o=t.geometry.type;if(!(o==="Point"||o==="MultiPoint")){var s,c=0,u=0,h=0;if(pg(t,function(m,f,g,b,M){if(s===void 0||n>c||b>u||M>h){s=m,c=n,u=b,h=M,a=0;return}var x=ha([s,m],t.properties);if(e(x,n,r,M,a)===!1)return!1;a++,s=m})===!1)return!1}}})}l(LB,"segmentEach");function Zw(i,e,t){var n=t,r=!1;return LB(i,function(a,o,s,c,u){r===!1&&t===void 0?n=a:n=e(n,a,o,s,c,u),r=!0}),n}l(Zw,"segmentReduce");function I5(i){var e=[1/0,1/0,-1/0,-1/0];return pg(i,function(t){e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]<t[0]&&(e[2]=t[0]),e[3]<t[1]&&(e[3]=t[1])}),e}l(I5,"bbox");I5.default=I5;var fg=I5;y();y();var Qw="\u202F",ji=class ji{static get separator(){return Qw}static set separator(e){Qw=e}static parse(e){if(!isNaN(parseFloat(e))&&isFinite(e))return Number(e);let t=String(e).trim().replace(/^-/,"").replace(/[NSEW]$/i,"").split(/[^0-9.,]+/);if(t[t.length-1]==""&&t.splice(t.length-1),t=="")return NaN;let n=null;switch(t.length){case 3:n=t[0]/1+t[1]/60+t[2]/3600;break;case 2:n=t[0]/1+t[1]/60;break;case 1:n=t[0];break;default:return NaN}return/^-|[WS]$/i.test(e.trim())&&(n=-n),Number(n)}static toDms(e,t="d",n=void 0){if(isNaN(e)||typeof e=="string"&&e.trim()==""||typeof e=="boolean"||e==1/0||e==null)return null;if(n===void 0)switch(t){case"d":case"deg":n=4;break;case"dm":case"deg+min":n=2;break;case"dms":case"deg+min+sec":n=0;break;default:t="d",n=4;break}e=Math.abs(e);let r=null,a=null,o=null,s=null;switch(t){default:case"d":case"deg":a=e.toFixed(n),a<100&&(a="0"+a),a<10&&(a="0"+a),r=a+"\xB0";break;case"dm":case"deg+min":a=Math.floor(e),o=(e*60%60).toFixed(n),o==60&&(o=0 .toFixed(n),a++),a=("000"+a).slice(-3),o<10&&(o="0"+o),r=a+"\xB0"+ji.separator+o+"\u2032";break;case"dms":case"deg+min+sec":a=Math.floor(e),o=Math.floor(e*3600/60)%60,s=(e*3600%60).toFixed(n),s==60&&(s=0 .toFixed(n),o++),o==60&&(o=0,a++),a=("000"+a).slice(-3),o=("00"+o).slice(-2),s<10&&(s="0"+s),r=a+"\xB0"+ji.separator+o+"\u2032"+ji.separator+s+"\u2033";break}return r}static toLat(e,t,n){let r=ji.toDms(ji.wrap90(e),t,n);return r===null?"\u2013":r.slice(1)+ji.separator+(e<0?"S":"N")}static toLon(e,t,n){let r=ji.toDms(ji.wrap180(e),t,n);return r===null?"\u2013":r+ji.separator+(e<0?"W":"E")}static toBrng(e,t,n){let r=ji.toDms(ji.wrap360(e),t,n);return r===null?"\u2013":r.replace("360","0")}static fromLocale(e){let t=123456.789.toLocaleString(),n={thousands:t.slice(3,4),decimal:t.slice(7,8)};return e.replace(n.thousands,"\u205C").replace(n.decimal,".").replace("\u205C",",")}static toLocale(e){let t=123456.789.toLocaleString(),n={thousands:t.slice(3,4),decimal:t.slice(7,8)};return e.replace(/,([0-9])/,"\u205C$1").replace(".",n.decimal).replace("\u205C",n.thousands)}static compassPoint(e,t=3){if(![1,2,3].includes(Number(t)))throw new RangeError("invalid precision \u2018".concat(t,"\u2019"));e=ji.wrap360(e);let n=["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"],r=4*2**(t-1);return n[Math.round(e*r/360)%r*16/r]}static wrap360(e){return 0<=e&&e<360?e:(e%360+360)%360}static wrap180(e){return-180<e&&e<=180?e:(e+540)%360-180}static wrap90(e){return-90<=e&&e<=90?e:Math.abs((e%360+270)%360-180)-90}};l(ji,"Dms");var _5=ji;Number.prototype.toRadians=function(){return this*Math.PI/180};Number.prototype.toDegrees=function(){return this*180/Math.PI};var je=_5;var Vt=Math.PI,Ie=class Ie{constructor(e,t){if(isNaN(e))throw new TypeError("invalid lat \u2018".concat(e,"\u2019"));if(isNaN(t))throw new TypeError("invalid lon \u2018".concat(t,"\u2019"));this._lat=je.wrap90(Number(e)),this._lon=je.wrap180(Number(t))}get lat(){return this._lat}get latitude(){return this._lat}set lat(e){if(this._lat=isNaN(e)?je.wrap90(je.parse(e)):je.wrap90(Number(e)),isNaN(this._lat))throw new TypeError("invalid lat \u2018".concat(e,"\u2019"))}set latitude(e){if(this._lat=isNaN(e)?je.wrap90(je.parse(e)):je.wrap90(Number(e)),isNaN(this._lat))throw new TypeError("invalid latitude \u2018".concat(e,"\u2019"))}get lon(){return this._lon}get lng(){return this._lon}get longitude(){return this._lon}set lon(e){if(this._lon=isNaN(e)?je.wrap180(je.parse(e)):je.wrap180(Number(e)),isNaN(this._lon))throw new TypeError("invalid lon \u2018".concat(e,"\u2019"))}set lng(e){if(this._lon=isNaN(e)?je.wrap180(je.parse(e)):je.wrap180(Number(e)),isNaN(this._lon))throw new TypeError("invalid lng \u2018".concat(e,"\u2019"))}set longitude(e){if(this._lon=isNaN(e)?je.wrap180(je.parse(e)):je.wrap180(Number(e)),isNaN(this._lon))throw new TypeError("invalid longitude \u2018".concat(e,"\u2019"))}static get metresToKm(){return 1/1e3}static get metresToMiles(){return 1/1609.344}static get metresToNauticalMiles(){return 1/1852}static parse(...e){if(e.length==0)throw new TypeError("invalid (empty) point");if(e[0]===null||e[1]===null)throw new TypeError("invalid (null) point");let t,n;if(e.length==2&&([t,n]=e,t=je.wrap90(je.parse(t)),n=je.wrap180(je.parse(n)),isNaN(t)||isNaN(n)))throw new TypeError("invalid point \u2018".concat(e.toString(),"\u2019"));if(e.length==1&&typeof e[0]=="string"&&([t,n]=e[0].split(","),t=je.wrap90(je.parse(t)),n=je.wrap180(je.parse(n)),isNaN(t)||isNaN(n)))throw new TypeError("invalid point \u2018".concat(e[0],"\u2019"));if(e.length==1&&typeof e[0]=="object"){let r=e[0];if(r.type=="Point"&&Array.isArray(r.coordinates)?[n,t]=r.coordinates:(r.latitude!=null&&(t=r.latitude),r.lat!=null&&(t=r.lat),r.longitude!=null&&(n=r.longitude),r.lng!=null&&(n=r.lng),r.lon!=null&&(n=r.lon),t=je.wrap90(je.parse(t)),n=je.wrap180(je.parse(n))),isNaN(t)||isNaN(n))throw new TypeError("invalid point \u2018".concat(JSON.stringify(e[0]),"\u2019"))}if(isNaN(t)||isNaN(n))throw new TypeError("invalid point \u2018".concat(e.toString(),"\u2019"));return new Ie(t,n)}distanceTo(e,t=6371e3){if(e instanceof Ie||(e=Ie.parse(e)),isNaN(t))throw new TypeError("invalid radius \u2018".concat(t,"\u2019"));let n=t,r=this.lat.toRadians(),a=this.lon.toRadians(),o=e.lat.toRadians(),s=e.lon.toRadians(),c=o-r,u=s-a,h=Math.sin(c/2)*Math.sin(c/2)+Math.cos(r)*Math.cos(o)*Math.sin(u/2)*Math.sin(u/2),m=2*Math.atan2(Math.sqrt(h),Math.sqrt(1-h));return n*m}initialBearingTo(e){if(e instanceof Ie||(e=Ie.parse(e)),this.equals(e))return NaN;let t=this.lat.toRadians(),n=e.lat.toRadians(),r=(e.lon-this.lon).toRadians(),a=Math.cos(t)*Math.sin(n)-Math.sin(t)*Math.cos(n)*Math.cos(r),o=Math.sin(r)*Math.cos(n),c=Math.atan2(o,a).toDegrees();return je.wrap360(c)}finalBearingTo(e){e instanceof Ie||(e=Ie.parse(e));let t=e.initialBearingTo(this)+180;return je.wrap360(t)}midpointTo(e){e instanceof Ie||(e=Ie.parse(e));let t=this.lat.toRadians(),n=this.lon.toRadians(),r=e.lat.toRadians(),a=(e.lon-this.lon).toRadians(),o={x:Math.cos(t),y:0,z:Math.sin(t)},s={x:Math.cos(r)*Math.cos(a),y:Math.cos(r)*Math.sin(a),z:Math.sin(r)},c={x:o.x+s.x,y:o.y+s.y,z:o.z+s.z},u=Math.atan2(c.z,Math.sqrt(c.x*c.x+c.y*c.y)),h=n+Math.atan2(c.y,c.x),m=u.toDegrees(),f=h.toDegrees();return new Ie(m,f)}intermediatePointTo(e,t){if(e instanceof Ie||(e=Ie.parse(e)),this.equals(e))return new Ie(this.lat,this.lon);let n=this.lat.toRadians(),r=this.lon.toRadians(),a=e.lat.toRadians(),o=e.lon.toRadians(),s=a-n,c=o-r,u=Math.sin(s/2)*Math.sin(s/2)+Math.cos(n)*Math.cos(a)*Math.sin(c/2)*Math.sin(c/2),h=2*Math.atan2(Math.sqrt(u),Math.sqrt(1-u)),m=Math.sin((1-t)*h)/Math.sin(h),f=Math.sin(t*h)/Math.sin(h),g=m*Math.cos(n)*Math.cos(r)+f*Math.cos(a)*Math.cos(o),b=m*Math.cos(n)*Math.sin(r)+f*Math.cos(a)*Math.sin(o),M=m*Math.sin(n)+f*Math.sin(a),x=Math.atan2(M,Math.sqrt(g*g+b*b)),T=Math.atan2(b,g),E=x.toDegrees(),S=T.toDegrees();return new Ie(E,S)}destinationPoint(e,t,n=6371e3){let r=e/n,a=Number(t).toRadians(),o=this.lat.toRadians(),s=this.lon.toRadians(),c=Math.sin(o)*Math.cos(r)+Math.cos(o)*Math.sin(r)*Math.cos(a),u=Math.asin(c),h=Math.sin(a)*Math.sin(r)*Math.cos(o),m=Math.cos(r)-Math.sin(o)*c,f=s+Math.atan2(h,m),g=u.toDegrees(),b=f.toDegrees();return new Ie(g,b)}static intersection(e,t,n,r){if(e instanceof Ie||(e=Ie.parse(e)),n instanceof Ie||(n=Ie.parse(n)),isNaN(t))throw new TypeError("invalid brng1 \u2018".concat(t,"\u2019"));if(isNaN(r))throw new TypeError("invalid brng2 \u2018".concat(r,"\u2019"));let a=e.lat.toRadians(),o=e.lon.toRadians(),s=n.lat.toRadians(),c=n.lon.toRadians(),u=Number(t).toRadians(),h=Number(r).toRadians(),m=s-a,f=c-o,g=2*Math.asin(Math.sqrt(Math.sin(m/2)*Math.sin(m/2)+Math.cos(a)*Math.cos(s)*Math.sin(f/2)*Math.sin(f/2)));if(Math.abs(g)<Number.EPSILON)return new Ie(e.lat,e.lon);let b=(Math.sin(s)-Math.sin(a)*Math.cos(g))/(Math.sin(g)*Math.cos(a)),M=(Math.sin(a)-Math.sin(s)*Math.cos(g))/(Math.sin(g)*Math.cos(s)),x=Math.acos(Math.min(Math.max(b,-1),1)),T=Math.acos(Math.min(Math.max(M,-1),1)),E=Math.sin(c-o)>0?x:2*Vt-x,S=Math.sin(c-o)>0?2*Vt-T:T,_=u-E,P=S-h;if(Math.sin(_)==0&&Math.sin(P)==0||Math.sin(_)*Math.sin(P)<0)return null;let q=-Math.cos(_)*Math.cos(P)+Math.sin(_)*Math.sin(P)*Math.cos(g),D=Math.atan2(Math.sin(g)*Math.sin(_)*Math.sin(P),Math.cos(P)+Math.cos(_)*q),U=Math.asin(Math.min(Math.max(Math.sin(a)*Math.cos(D)+Math.cos(a)*Math.sin(D)*Math.cos(u),-1),1)),R=Math.atan2(Math.sin(u)*Math.sin(D)*Math.cos(a),Math.cos(D)-Math.sin(a)*Math.sin(U)),B=o+R,j=U.toDegrees(),G=B.toDegrees();return new Ie(j,G)}crossTrackDistanceTo(e,t,n=6371e3){e instanceof Ie||(e=Ie.parse(e)),t instanceof Ie||(t=Ie.parse(t));let r=n;if(this.equals(e))return 0;let a=e.distanceTo(this,r)/r,o=e.initialBearingTo(this).toRadians(),s=e.initialBearingTo(t).toRadians();return Math.asin(Math.sin(a)*Math.sin(o-s))*r}alongTrackDistanceTo(e,t,n=6371e3){e instanceof Ie||(e=Ie.parse(e)),t instanceof Ie||(t=Ie.parse(t));let r=n;if(this.equals(e))return 0;let a=e.distanceTo(this,r)/r,o=e.initialBearingTo(this).toRadians(),s=e.initialBearingTo(t).toRadians(),c=Math.asin(Math.sin(a)*Math.sin(o-s));return Math.acos(Math.cos(a)/Math.abs(Math.cos(c)))*Math.sign(Math.cos(s-o))*r}maxLatitude(e){let t=Number(e).toRadians(),n=this.lat.toRadians();return Math.acos(Math.abs(Math.sin(t)*Math.cos(n))).toDegrees()}static crossingParallels(e,t,n){if(e.equals(t))return null;let r=Number(n).toRadians(),a=e.lat.toRadians(),o=e.lon.toRadians(),s=t.lat.toRadians(),u=t.lon.toRadians()-o,h=Math.sin(a)*Math.cos(s)*Math.cos(r)*Math.sin(u),m=Math.sin(a)*Math.cos(s)*Math.cos(r)*Math.cos(u)-Math.cos(a)*Math.sin(s)*Math.cos(r),f=Math.cos(a)*Math.cos(s)*Math.sin(r)*Math.sin(u);if(f*f>h*h+m*m)return null;let g=Math.atan2(-m,h),b=Math.acos(f/Math.sqrt(h*h+m*m)),M=o+g-b,x=o+g+b,T=M.toDegrees(),E=x.toDegrees();return{lon1:je.wrap180(T),lon2:je.wrap180(E)}}rhumbDistanceTo(e,t=6371e3){e instanceof Ie||(e=Ie.parse(e));let n=t,r=this.lat.toRadians(),a=e.lat.toRadians(),o=a-r,s=Math.abs(e.lon-this.lon).toRadians();Math.abs(s)>Vt&&(s=s>0?-(2*Vt-s):2*Vt+s);let c=Math.log(Math.tan(a/2+Vt/4)/Math.tan(r/2+Vt/4)),u=Math.abs(c)>1e-11?o/c:Math.cos(r);return Math.sqrt(o*o+u*u*s*s)*n}rhumbBearingTo(e){if(e instanceof Ie||(e=Ie.parse(e)),this.equals(e))return NaN;let t=this.lat.toRadians(),n=e.lat.toRadians(),r=(e.lon-this.lon).toRadians();Math.abs(r)>Vt&&(r=r>0?-(2*Vt-r):2*Vt+r);let a=Math.log(Math.tan(n/2+Vt/4)/Math.tan(t/2+Vt/4)),s=Math.atan2(r,a).toDegrees();return je.wrap360(s)}rhumbDestinationPoint(e,t,n=6371e3){let r=this.lat.toRadians(),a=this.lon.toRadians(),o=Number(t).toRadians(),s=e/n,c=s*Math.cos(o),u=r+c;Math.abs(u)>Vt/2&&(u=u>0?Vt-u:-Vt-u);let h=Math.log(Math.tan(u/2+Vt/4)/Math.tan(r/2+Vt/4)),m=Math.abs(h)>1e-11?c/h:Math.cos(r),f=s*Math.sin(o)/m,g=a+f,b=u.toDegrees(),M=g.toDegrees();return new Ie(b,M)}rhumbMidpointTo(e){e instanceof Ie||(e=Ie.parse(e));let t=this.lat.toRadians(),n=this.lon.toRadians(),r=e.lat.toRadians(),a=e.lon.toRadians();Math.abs(a-n)>Vt&&(n+=2*Vt);let o=(t+r)/2,s=Math.tan(Vt/4+t/2),c=Math.tan(Vt/4+r/2),u=Math.tan(Vt/4+o/2),h=((a-n)*Math.log(u)+n*Math.log(c)-a*Math.log(s))/Math.log(c/s);isFinite(h)||(h=(n+a)/2);let m=o.toDegrees(),f=h.toDegrees();return new Ie(m,f)}static areaOf(e,t=6371e3){let n=t,r=e[0].equals(e[e.length-1]);r||e.push(e[0]);let a=e.length-1,o=0;for(let u=0;u<a;u++){let h=e[u].lat.toRadians(),m=e[u+1].lat.toRadians(),f=(e[u+1].lon-e[u].lon).toRadians(),g=2*Math.atan2(Math.tan(f/2)*(Math.tan(h/2)+Math.tan(m/2)),1+Math.tan(h/2)*Math.tan(m/2));o+=g}c(e)&&(o=Math.abs(o)-2*Vt);let s=Math.abs(o*n*n);return r||e.pop(),s;function c(u){let h=0,m=u[0].initialBearingTo(u[1]);for(let b=0;b<u.length-1;b++){let M=u[b].initialBearingTo(u[b+1]),x=u[b].finalBearingTo(u[b+1]);h+=(M-m+540)%360-180,h+=(x-M+540)%360-180,m=x}let f=u[0].initialBearingTo(u[1]);return h+=(f-m+540)%360-180,Math.abs(h)<90}l(c,"isPoleEnclosedBy")}equals(e){return e instanceof Ie||(e=Ie.parse(e)),!(Math.abs(this.lat-e.lat)>Number.EPSILON||Math.abs(this.lon-e.lon)>Number.EPSILON)}toGeoJSON(){return{type:"Point",coordinates:[this.lon,this.lat]}}toString(e="d",t=void 0){if(!["d","dm","dms","n"].includes(e))throw new RangeError("invalid format \u2018".concat(e,"\u2019"));if(e=="n")return t==null&&(t=4),"".concat(this.lat.toFixed(t),",").concat(this.lon.toFixed(t));let n=je.toLat(this.lat,e,t),r=je.toLon(this.lon,e,t);return"".concat(n,", ").concat(r)}};l(Ie,"LatLonSpherical");var Ze=Ie;y();y();y();y();function _r(i){if(!i)throw new Error("coord is required");if(!Array.isArray(i)){if(i.type==="Feature"&&i.geometry!==null&&i.geometry.type==="Point")return i.geometry.coordinates;if(i.type==="Point")return i.coordinates}if(Array.isArray(i)&&i.length>=2&&!Array.isArray(i[0])&&!Array.isArray(i[1]))return i;throw new Error("coord must be GeoJSON Point or an Array of numbers")}l(_r,"getCoord");function gn(i){if(Array.isArray(i))return i;if(i.type==="Feature"){if(i.geometry!==null)return i.geometry.coordinates}else if(i.coordinates)return i.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}l(gn,"getCoords");function Kw(i,e){return i.type==="FeatureCollection"?"FeatureCollection":i.type==="GeometryCollection"?"GeometryCollection":i.type==="Feature"&&i.geometry!==null?i.geometry.type:i.type}l(Kw,"getType");function qB(i,e,t){t===void 0&&(t={});var n=_r(i),r=_r(e),a=on(r[1]-n[1]),o=on(r[0]-n[0]),s=on(n[1]),c=on(r[1]),u=Math.pow(Math.sin(a/2),2)+Math.pow(Math.sin(o/2),2)*Math.cos(s)*Math.cos(c);return Ww(2*Math.atan2(Math.sqrt(u),Math.sqrt(1-u)),t.units)}l(qB,"distance");var ho=qB;function mg(i,e){return e===void 0&&(e={}),Zw(i,function(t,n){var r=n.geometry.coordinates;return t+ho(r[0],r[1],e)},0)}l(mg,"length");y();y();y();function gg(i,e,t){if(t===void 0&&(t={}),t.final===!0)return RB(i,e);var n=_r(i),r=_r(e),a=on(n[0]),o=on(r[0]),s=on(n[1]),c=on(r[1]),u=Math.sin(o-a)*Math.cos(c),h=Math.cos(s)*Math.sin(c)-Math.sin(s)*Math.cos(c)*Math.cos(o-a);return jd(Math.atan2(u,h))}l(gg,"bearing");function RB(i,e){var t=gg(e,i);return t=(t+180)%360,t}l(RB,"calculateFinalBearing");y();function vg(i,e,t,n){n===void 0&&(n={});var r=_r(i),a=on(r[0]),o=on(r[1]),s=on(t),c=Xw(e,n.units),u=Math.asin(Math.sin(o)*Math.cos(c)+Math.cos(o)*Math.sin(c)*Math.cos(s)),h=a+Math.atan2(Math.sin(s)*Math.sin(c)*Math.cos(o),Math.cos(c)-Math.sin(o)*Math.sin(u)),m=jd(h),f=jd(u);return zi([m,f],n.properties)}l(vg,"destination");y();y();function NB(i){if(!i)throw new Error("geojson is required");var e=[];return Gd(i,function(t){kB(t,e)}),Ss(e)}l(NB,"lineSegment");function kB(i,e){var t=[],n=i.geometry;if(n!==null){switch(n.type){case"Polygon":t=gn(n);break;case"LineString":t=[gn(n)]}t.forEach(function(r){var a=BB(r,i.properties);a.forEach(function(o){o.id=e.length,e.push(o)})})}}l(kB,"lineSegmentFeature");function BB(i,e){var t=[];return i.reduce(function(n,r){var a=ha([n,r],e);return a.bbox=FB(n,r),t.push(a),r}),t}l(BB,"createSegments");function FB(i,e){var t=i[0],n=i[1],r=e[0],a=e[1],o=t<r?t:r,s=n<a?n:a,c=t>r?t:r,u=n>a?n:a;return[o,s,c,u]}l(FB,"bbox");var O5=NB;var mC=et(pC(),1);function hF(i,e){var t={},n=[];if(i.type==="LineString"&&(i=uo(i)),e.type==="LineString"&&(e=uo(e)),i.type==="Feature"&&e.type==="Feature"&&i.geometry!==null&&e.geometry!==null&&i.geometry.type==="LineString"&&e.geometry.type==="LineString"&&i.geometry.coordinates.length===2&&e.geometry.coordinates.length===2){var r=fC(i,e);return r&&n.push(r),Ss(n)}var a=(0,mC.default)();return a.load(O5(e)),S5(O5(i),function(o){S5(a.search(o),function(s){var c=fC(o,s);if(c){var u=gn(c).join(",");t[u]||(t[u]=!0,n.push(c))}})}),Ss(n)}l(hF,"lineIntersect");function fC(i,e){var t=gn(i),n=gn(e);if(t.length!==2)throw new Error("<intersects> line1 must only contain 2 coordinates");if(n.length!==2)throw new Error("<intersects> line2 must only contain 2 coordinates");var r=t[0][0],a=t[0][1],o=t[1][0],s=t[1][1],c=n[0][0],u=n[0][1],h=n[1][0],m=n[1][1],f=(m-u)*(o-r)-(h-c)*(s-a),g=(h-c)*(a-u)-(m-u)*(r-c),b=(o-r)*(a-u)-(s-a)*(r-c);if(f===0)return null;var M=g/f,x=b/f;if(M>=0&&M<=1&&x>=0&&x<=1){var T=r+M*(o-r),E=a+M*(s-a);return zi([T,E])}return null}l(fC,"intersects");var gC=hF;function pF(i,e,t){t===void 0&&(t={});var n=zi([1/0,1/0],{dist:1/0}),r=0;return Gd(i,function(a){for(var o=gn(a),s=0;s<o.length-1;s++){var c=zi(o[s]);c.properties.dist=ho(e,c,t);var u=zi(o[s+1]);u.properties.dist=ho(e,u,t);var h=ho(c,u,t),m=Math.max(c.properties.dist,u.properties.dist),f=gg(c,u),g=vg(e,m,f+90,t),b=vg(e,m,f-90,t),M=gC(ha([g.geometry.coordinates,b.geometry.coordinates]),ha([c.geometry.coordinates,u.geometry.coordinates])),x=null;M.features.length>0&&(x=M.features[0],x.properties.dist=ho(e,x,t),x.properties.location=r+ho(c,x,t)),c.properties.dist<n.properties.dist&&(n=c,n.properties.index=s,n.properties.location=r),u.properties.dist<n.properties.dist&&(n=u,n.properties.index=s+1,n.properties.location=r+h),x&&x.properties.dist<n.properties.dist&&(n=x,n.properties.index=s),r+=h}}),n}l(pF,"nearestPointOnLine");var Yd=pF;function fF(i,e,t){var n=gn(t);if(Kw(t)!=="LineString")throw new Error("line must be a LineString");var r=Yd(t,i),a=Yd(t,e),o;r.properties.index<=a.properties.index?o=[r,a]:o=[a,r];for(var s=[o[0].geometry.coordinates],c=o[0].properties.index+1;c<o[1].properties.index+1;c++)s.push(n[c]);return s.push(o[1].geometry.coordinates),ha(s,t.properties)}l(fF,"lineSlice");var G5=fF;y();function mF(i,e){e===void 0&&(e={});var t=fg(i),n=(t[0]+t[2])/2,r=(t[1]+t[3])/2;return zi([n,r],e.properties,e)}l(mF,"center");var vC=mF;y();function gF(i,e,t){t===void 0&&(t={});for(var n=_r(i),r=gn(e),a=0;a<r.length-1;a++){var o=!1;if(t.ignoreEndVertices&&(a===0&&(o="start"),a===r.length-2&&(o="end"),a===0&&a+1===r.length-1&&(o="both")),vF(r[a],r[a+1],n,o,typeof t.epsilon>"u"?null:t.epsilon))return!0}return!1}l(gF,"booleanPointOnLine");function vF(i,e,t,n,r){var a=t[0],o=t[1],s=i[0],c=i[1],u=e[0],h=e[1],m=t[0]-s,f=t[1]-c,g=u-s,b=h-c,M=m*b-f*g;if(r!==null){if(Math.abs(M)>r)return!1}else if(M!==0)return!1;if(n){if(n==="start")return Math.abs(g)>=Math.abs(b)?g>0?s<a&&a<=u:u<=a&&a<s:b>0?c<o&&o<=h:h<=o&&o<c;if(n==="end")return Math.abs(g)>=Math.abs(b)?g>0?s<=a&&a<u:u<a&&a<=s:b>0?c<=o&&o<h:h<o&&o<=c;if(n==="both")return Math.abs(g)>=Math.abs(b)?g>0?s<a&&a<u:u<a&&a<s:b>0?c<o&&o<h:h<o&&o<c}else return Math.abs(g)>=Math.abs(b)?g>0?s<=a&&a<=u:u<=a&&a<=s:b>0?c<=o&&o<=h:h<=o&&o<=c;return!1}l(vF,"isPointOnLineSegment");var yC=gF;var yF=1e-7;var bC=.005,xC=["connection.json","manifest.geojson","map.geojson","node.geojson","styles.json","mapstack.geojson"];function H5(i,e){let t=MF(e),n=i.features.reduce((r,a)=>{let o=[a],{properties:s}=a,c=(s.entrances||[]).reduce((u,h)=>(t.has(h)&&u.push(t.get(h)),u),[]);return c.length&&(o=bF(a,c)),r.push(...o),r},[]);return Ss(n)}l(H5,"processObstructions");function bF(i,e){return e.reduce((t,n)=>{let r={epsilon:yF},a=t.findIndex(s=>yC(vC(n),s,r)),o=t[a];if(o){let[s,c]=TF(o,n);t.splice(a,1,s,c)}return t},[i])}l(bF,"splitObstructionByAllEntrances");function xF(i){return i!=null&&(i.polygons!=null||i.lineStrings!=null)}l(xF,"isPolygonStyle");function TF(i,e){let{coordinates:t}=e.geometry,{coordinates:n}=i.geometry,r=t.map(a=>Yd(i,zi(a)));return n.reduce((a,o)=>{let s=G5(zi(o),r[0],i),c=G5(zi(o),r[1],i),u=mg(s)<mg(c)?s:c;return u.properties={...i.properties,entrances:[]},a.concat([u])},[])}l(TF,"splitObstructionByEntrance");function TC(i){let e=new Map;for(let t in i){let n=i[t];if(!xF(n))continue;let{altitude:r,color:a,width:o,height:s,opacity:c}=n,u={altitude:r,color:a,width:o,height:s,opacity:c,type:t};(n.polygons||n.lineStrings).forEach(h=>{e.set(h,u)})}return e}l(TC,"getStylesMap");function MF(i){return new Map(i.features.map(e=>{let{properties:t}=e,{id:n}=t;return[n,e]}))}l(MF,"getEntranceMap");y();y();function nc(i){if(i.length===0)return;let e;for(let t of i)if(typeof t.elevation=="number"){if(!e){e=t;continue}typeof e.elevation=="number"&&(Math.abs(t.elevation)===Math.abs(e.elevation)?e=t.elevation>e.elevation?t:e:e=Math.abs(t.elevation)<Math.abs(e.elevation)?t:e)}return e}l(nc,"findMapWithElevationClosestToZero");function EF(i){if(i==null||typeof i!="object")return!1;for(let e of xC)if(i[e][Symbol.toStringTag]!=="Uint8Array")return!1;return!0}l(EF,"validateStaticMVFFiles");async function W5(i){return new Promise(async(e,t)=>{try{if(i==null||typeof i!="object")throw new Error("Error parsing data! Unzipping failed.");if(i[Symbol.toStringTag]!=="Uint8Array")throw new Error("Unexpected file type! Unzipping failed.");let r=(await import("./browser-BBFNOQJI.js")).unzipSync(i);if(!EF(r))throw new Error("MVF is missing some expect static files. Unzipping failed.");let a={"connection.json":r["connection.json"],"manifest.geojson":r["manifest.geojson"],"node.geojson":r["node.geojson"],"map.geojson":r["map.geojson"],"mapstack.geojson":r["mapstack.geojson"],"styles.json":r["styles.json"],space:{},obstruction:{},entrance:{}},o=Object.keys(r);for(let s of o){if(r[s].length===0)continue;let c=s.split("/");if(c.length<0)throw new Error("Encounted a file with no name! Unzipping failed.");if(c.length>2)throw new Error("Encountered unexpected nesting in MVF! Unzipping failed.");if(c.length!==1)if(c[0]==="image"){F.warn("MVF unzipping encountered an image. Ignoring as this case has not been implemented.");continue}else a[c[0]]==null&&(a[c[0]]={}),a[c[0]][c[1]]=r[s]}e(a)}catch(n){t(n)}})}l(W5,"unzipMVF");function wC(i){let[e,t,n,r]=fg(i);return{minLat:t,minLong:e,maxLat:r,maxLong:n}}l(wC,"getMapExtent");function wF(i,e,t){let n=t.createGeoreferences(),r=new Set;e.forEach(h=>{h.layer&&r.add(h.layer)});let a=i.id||"",o=i.externalId||a||"",s=i.elevation||0,c=[...r].map(h=>({id:h,visible:!0})),u=1/t.mapScale;return{id:a,georeference:n,name:o,shortName:o,scene:{polygons:e},elevation:s,scale:u,x_scale:u,layers:c,width:t.widthInMapUnits,height:t.heightInMapUnits}}l(wF,"convertMap");var Z5=class Z5{constructor(e){p(this,"mapExtent");p(this,"stretchRatio");p(this,"midLat");p(this,"midLong");p(this,"mapUnitRatio",1e6);p(this,"latDistance");p(this,"longDistance");p(this,"mapScale");p(this,"widthInMapUnits");p(this,"heightInMapUnits");this.mapExtent=e;let{minLat:t,minLong:n,maxLat:r,maxLong:a}=e,o=(t+r)/2,s=(n+a)/2,c=new Ze(o,a),u=new Ze(o,n),h=new Ze(t,s),m=new Ze(r,s);this.latDistance=h.distanceTo(m),this.longDistance=c.distanceTo(u);let f=this.latDistance/this.longDistance,g=(r-t)/(a-n);this.stretchRatio=f/g,this.midLat=o,this.midLong=s,this.widthInMapUnits=(a-n)*this.mapUnitRatio,this.heightInMapUnits=(r-t)*this.mapUnitRatio*this.stretchRatio,this.mapScale=this.widthInMapUnits/this.longDistance}convert(e){let t=e[1],r=(e[0]-this.midLong)*this.mapUnitRatio,a=(this.midLat-t)*this.mapUnitRatio*this.stretchRatio;return{x:r+this.widthInMapUnits/2,y:a+this.heightInMapUnits/2}}createGeoreferences(){let{minLat:e,minLong:t,maxLat:n,maxLong:r}=this.mapExtent;return[[e,t],[e,r],[n,r],[n,t]].map(o=>{let s={x:o[0],y:o[1]},c=this.convert([o[1],o[0]]);return{target:s,control:c}})}};l(Z5,"CoordinateConverter");var Tg=Z5;function CF(i,e){let t=new Map,n=[];return i.features.forEach(r=>{let a=r.properties.id;a&&!t.has(a)&&t.set(a,r)}),t.forEach((r,a)=>{let o=r.properties.map||"",s=e.get(o);if(s){let c=s.convert(r.geometry.coordinates),u=r.properties.externalId||"",h=[];r.properties.neighbors.forEach(m=>{var b;let f=(b=m.weight)!=null?b:0,g=t.get(m.id);g&&g.properties.map===o&&h.push({node:g.properties.id,map:g.properties.map,weight:f})}),n.push({id:a,map:o,externalId:u,paths:h,...c})}}),n}l(CF,"convertNodes");function AF(i,e,t){let n=[];return i.features.forEach(r=>{let a=t.convert(r.geometry.coordinates);n.push({id:r.properties.id,x:a.x,y:a.y,map:e,paths:r.properties.neighbors.map(o=>({node:o,map:e}))})}),n}l(AF,"convertNodes_MVFv1");var MC=l((i,e,t,n,r,a)=>{var g,b;let o=[],s=Math.max(a.widthInMapUnits,a.heightInMapUnits)/1e3,c=r.Walls,u=r.ExteriorWalls,h={map:i,id:"walls"+i,externalId:"walls"+i,layer:"Wall",geometry:{visible:!0,position:{x:0,y:0,z:((c==null?void 0:c.altitude)||0)*a.mapScale/s},scale:{x:1,y:1,z:((c==null?void 0:c.height)||1)*a.mapScale/s},width:c==null?void 0:c.width},material:{color:(c==null?void 0:c.color)||"#000000"},vertexes:[]},m={map:i,id:"externalWalls"+i,externalId:"externalWalls"+i,layer:"ExternalWall",geometry:{visible:!0,position:{x:0,y:0,z:((u==null?void 0:u.altitude)||0)*a.mapScale/s},scale:{x:1,y:1,z:((u==null?void 0:u.height)||1)*a.mapScale/s},width:u==null?void 0:u.width},material:{color:(u==null?void 0:u.color)||"#000000"},vertexes:[]},f;for(let M=0;M<e.features.length;M++){let x=e.features[M];if(x.geometry.type==="Point")continue;let T=((g=x.properties.kind)==null?void 0:g.toLowerCase())==="desk-entrance",E=(T?x.properties.externalId:x.properties.id)||"",S=x.properties.externalId||"",_=t.get(E)||[];if("destinationNodes"in x.properties&&x.properties.destinationNodes.forEach(P=>{_.push({map:i,id:P})}),T)t.set(S,_);else{let P=n.get(x.properties.id),q=x.properties.center?a.convert(x.properties.center):void 0,D=x.geometry.coordinates.slice(1).map(j=>j.map(G=>a.convert(G))),U=x.properties.kind||"",R=U.toLowerCase()==="void",B=1-(M+1)/e.features.length*bC;x.geometry.type==="LineString"&&((b=x.properties.kind)==null?void 0:b.toLowerCase())==="wall"?(f=x.geometry.coordinates.map(j=>a.convert(j)),x.properties.footprintComponent?m.vertexes.push(f):h.vertexes.push(f)):(f=x.geometry.coordinates[0].map(j=>a.convert(j)),o.push({entrances:_,map:i,id:E,externalId:S,layer:U,geometry:{visible:!R,position:{x:0,y:0,z:((P==null?void 0:P.altitude)||0)*a.mapScale/s},scale:{x:1,y:1,z:((P==null?void 0:P.height)||1)*a.mapScale/s*B},width:P==null?void 0:P.width},material:{color:(P==null?void 0:P.color)||"#000000"},vertexes:f,center:q,holes:D}))}}return h.vertexes.length>0&&o.push(h),m.vertexes.length>0&&o.push(m),o},"generateMappedinPolygons"),EC=l((i,e,t)=>{let n=[];return e.features.forEach(r=>{if(!r.geometry.coordinates[0].forEach)return;let a=r.properties,o=r.geometry.coordinates[0].map(h=>t.convert(h)),s=r.geometry.coordinates.slice(1).map(h=>h.map(m=>t.convert(m))),c=Math.max(t.widthInMapUnits,t.heightInMapUnits)/1e3,u=[];"entrances"in r.properties&&r.properties.entrances.forEach(h=>u.push({id:"n_"+h.id,map:h.level})),n.push({entrances:u!=null?u:[],map:i,id:r.properties.id||"",externalId:r.properties.externalId||"",layer:r.properties.layer||"Polygon",geometry:{visible:!0,position:{x:0,y:0,z:((a==null?void 0:a.altitude)||0)*t.mapScale/c},scale:{x:1,y:1,z:((a==null?void 0:a.height)||1)*t.mapScale/c}},material:{color:(a==null?void 0:a.color)||"#000000"},vertexes:o,holes:s})}),n},"generateMappedinPolygons_MVFv1");function PF(i,e,t,n,r,a,o){let s=MC(i,t,n,r,a,o),c=MC(i,e,n,r,a,o);return s.concat(c)}l(PF,"convertPolygons");function SF(i){let e=[];return i.forEach(t=>{var n;e.push({id:t.id||"",name:t.externalId||"",type:t.type||"",weight:1e3,multiplier:1,nodes:t.nodes||[],accessible:(n=t.accessible)!=null?n:!1})}),e}l(SF,"convertVortexes");function IF(i){let e=new Map;return i.features.forEach(t=>{var s,c,u,h,m,f,g;let n="",r=["n_".concat(t.properties.id)];t.properties.destinations.forEach(b=>{let M=b.split("-");n=M[0],r.push("n_".concat(M[1]))});let a=(c=(s=e.get(n))==null?void 0:s.nodes)!=null?c:[],o=new Set([...a,...r]);e.set(n,{id:n,name:(u=t.properties.name)!=null?u:"",type:(h=t.properties.type)!=null?h:"",weight:(m=t.properties.weight)!=null?m:1e3,multiplier:(f=t.properties.multiplier)!=null?f:1,nodes:Array.from(o),accessible:(g=t.properties.accessible)!=null?g:!1})}),Array.from(e.values())}l(IF,"convertVortexes_MVFv1");function X5(i){let e=new TextDecoder,t=e.decode.bind(e);try{let n={"connection.json":JSON.parse(t(i["connection.json"])),"manifest.geojson":JSON.parse(t(i["manifest.geojson"])),"styles.json":JSON.parse(t(i["styles.json"])),"map.geojson":JSON.parse(t(i["map.geojson"])),"mapstack.geojson":JSON.parse(t(i["mapstack.geojson"])),"node.geojson":JSON.parse(t(i["node.geojson"])),obstruction:{},space:{},entrance:{},annotation:{}};if(i.annotation!=null){let s=Object.keys(i.annotation);for(let c of s){let u=c.replace(/\.json|\.geojson/g,"");n.annotation[u]=JSON.parse(t(i.annotation[c]))}}let r=Object.keys(i.space);for(let s of r){let c=s.replace(/\.json|\.geojson/g,"");n.space[c]=JSON.parse(t(i.space[s]))}let a=Object.keys(i.obstruction);for(let s of a){let c=s.replace(/\.json|\.geojson/g,"");n.obstruction[c]=JSON.parse(t(i.obstruction[s]))}let o=Object.keys(i.entrance);for(let s of o){let c=s.replace(/\.json|\.geojson/g,"");n.entrance[c]=JSON.parse(t(i.entrance[s]))}return n}catch(n){throw F.error(n),new Error("MVF parsing failed! Probably encountered a bad file.")}}l(X5,"parseMVF");function CC(i,e){var n;let t=(n=e.properties.externalId)!=null?n:"";return t.length===0&&(t=e.properties.id),"location-".concat(i,"-").concat(t.toLowerCase().replace(" ","-"))}l(CC,"getLocationId");function AC(i,e){var n;let t=new Set;if(i==="entrance")t.add("Entrance");else if(i==="obstruction"){let r=e.properties.kind;r!=null&&r.length>0&&t.add(r),e.properties.footprintComponent&&t.add("Exterior")}else if(i==="space"){let r=e.properties.kind;r!=null&&r.length>0&&t.add(r==="default"?"Room":r);let a=(n=e.properties.tags)!=null?n:[];if(a.length>0)for(let o of a)t.add(o)}return Array.from(t).filter(r=>r.length>0)}l(AC,"getFeatureCategories");function PC(i){return"category-".concat(i.toLowerCase().replace(" ","-"))}l(PC,"getCategoryIdFromName");function Y5(i,e,t){let n=AC(i,e);for(let r of n){let a=PC(r);t[a]==null&&(t[a]={id:a,name:r})}}l(Y5,"mutateCategoriesWithNewFeature");function SC(i){var e,t,n;return(n=(t=(e=i==null?void 0:i.properties)==null?void 0:e.kind)==null?void 0:t.startsWith("connection"))!=null?n:!1}l(SC,"isFeatureConnection");function _F(i){var t;let e=(t=i.properties.externalId)!=null?t:"";return SC(i)&&e.length===0&&(e="unnamed-connection-"+i.properties.id),e}l(_F,"getLocationLabel");function Wd(i,e,t,n){var s;if((e.properties.externalId==null||e.properties.externalId.length===0)&&!SC(e)||i==="obstruction"&&((s=e.properties.kind)==null?void 0:s.toLowerCase())!=="desks")return;let r=_F(e),a=CC(i,e);if(n[a]==null){let c={id:a,type:"",name:r,nodes:[],polygons:[],categories:[]};n[a]=c}if(i==="space"||i==="obstruction"){let c={map:t.id,id:e.properties.id};n[a].polygons.push(c)}if("destinationNodes"in e.properties&&e.properties.destinationNodes.forEach(c=>{let u={map:t.id,node:c};n[a].nodes.push(u)}),"node"in e.properties&&e.properties.node){let c={map:t.id,node:e.properties.node};n[a].nodes.push(c)}let o=AC(i,e);for(let c of o){let u=PC(c);n[a].categories.push(u)}}l(Wd,"mutateLocationsWithNewFeature");function OF(i,e=new Map){var c,u,h,m,f,g,b,M,x;let t={},n={},{space:r,"map.geojson":a,entrance:o,obstruction:s}=i;for(let T of a){let E=(u=(c=r[T.id])==null?void 0:c.features)!=null?u:[],S=(m=(h=o[T.id])==null?void 0:h.features)!=null?m:[],_=(g=(f=s[T.id])==null?void 0:f.features)!=null?g:[];for(let D of E)["Polygon","Point"].includes(D.geometry.type)&&((b=D.properties.kind)==null?void 0:b.toLowerCase())!=="hallway"&&(Y5("space",D,n),Wd("space",D,T,t));let P=new Map;for(let D of S)P.set(D.properties.id,D),D.properties.externalId&&(Y5("entrance",D,n),Wd("entrance",D,T,t));let q={type:"Feature",geometry:{type:"LineString",coordinates:[]},properties:{id:"footprintComponent",externalId:"footprintComponent",node:void 0,metadata:void 0}};Wd("entrance",q,T,t);for(let D of _){if(Y5("obstruction",D,n),Wd("obstruction",D,T,t),D.properties.footprintComponent){let U=D.properties.entrances;for(let R of U){let B=P.get(R);B&&Wd("entrance",{...B,properties:{...B.properties,externalId:q.properties.externalId}},T,t)}}if(((M=D.properties.kind)==null?void 0:M.toLowerCase())==="desks"&&D.properties.externalId.length>0){let U=(x=e.get(D.properties.id))!=null?x:[];for(let R of U){let B=CC("obstruction",D);t[B]!=null&&t[B].nodes.push({map:R.map,node:R.id})}}}}return{locations:Object.values(t),categories:Object.values(n)}}l(OF,"createMetaDataFromMVF");function IC(i){var j,G,Q,X,ne,$,ue,be,ee,ge;let e=(j=i.obstruction)!=null?j:[],t=(G=i.space)!=null?G:[],n=(Q=i.entrance)!=null?Q:[],r=(X=i["mapstack.geojson"])!=null?X:[],a=(ne=i["map.geojson"])!=null?ne:[],o=($=i["styles.json"])!=null?$:{},s=(ue=i["manifest.geojson"])!=null?ue:{},c=(be=i["node.geojson"])!=null?be:[],u=(ee=i["connection.json"])!=null?ee:[],h={},m=new Map,f=[],g=TC(o),b=new Map,M=new Map;a.forEach(de=>{let Ae=de.id;Ae&&!M.has(Ae)&&M.set(Ae,de)}),r.forEach(({maps:de})=>{de.forEach(Ae=>{if(!M.has(Ae))return;let Fe=H5(e[Ae],n[Ae]);if(Fe.features.length){let Ce=wC(Fe),He=new Tg(Ce);m.set(Ae,He),h[Ae]=PF(Ae,Fe,t[Ae],b,g,o,He),f.push(wF(M.get(Ae),h[Ae],He))}})}),f.sort((de,Ae)=>typeof de.elevation=="number"&&typeof Ae.elevation=="number"?de.elevation-Ae.elevation:0);let x=Object.values(h).flat(),T=SF(u),E=CF(c,m),S=s.features[0],_=S.properties.name,P=S.geometry.coordinates[0],q=S.geometry.coordinates[1],D=((ge=nc(f))==null?void 0:ge.id)||"",{locations:U,categories:R}=OF(i,b);return{polygons:x,venue:{name:_,latitude:q,longitude:P,defaultMap:D},maps:f,vortexes:T,nodes:E,locations:U,mapGroups:[],locationStates:[],categories:R,themes:[],imageBinaries:new Map}}l(IC,"convertMVFToMappedin");function _C(i){var D,U,R,B,j,G,Q;let e=(D=i.obstruction)!=null?D:{},t=(U=i.space)!=null?U:{},n=(R=i.node)!=null?R:{},r=(B=i.level)!=null?B:{},a=(j=i["manifest.geojson"])!=null?j:{},o=(G=i.connection)!=null?G:{},s={},c=new Map,u=[],h=[],m=[];Object.keys(r).forEach(X=>{let ne=H5(e[X],{type:"FeatureCollection",features:[]});if(ne.features.length){let $=wC(ne),ue=new Tg($);c.set(X,ue);let be=EC(X,t[X],ue),ee=EC(X,ne,ue);s[X]=be.concat(ee),h=h.concat(AF(n[X],X,ue)),u.push(DF(r[X],s[X],ue))}m=m.concat(IF(o[X]))});let f=Object.values(s).flat(),g=a.features[0],b=g.properties.name,M=g.geometry.coordinates[0],x=g.geometry.coordinates[1],T=((Q=u[0])==null?void 0:Q.id)||"",E=new Map;f.forEach(X=>E.set(X.id,X));let S=[],_=i["location.geojson"].features.map(X=>{if(X.properties.spaces){let $=X.properties.spaces.map(ue=>ue.id).map(ue=>E.get(ue)).filter(ue=>ue);if($){let ue=[];$.forEach(be=>{ue.push(...be.entrances.map(ee=>({node:ee.id,map:ee.level})))}),S=ue}}return{...X.properties,nodes:S,polygons:X.properties.spaces}}),P=i["category.geojson"].features.map(X=>X.properties);return{polygons:f,venue:{name:b,latitude:x,longitude:M,defaultMap:T},maps:u,vortexes:m,nodes:h,locations:_,mapGroups:[],locationStates:[],categories:P,themes:[],imageBinaries:new Map}}l(_C,"convertMVFv1ToMappedin");function DF(i,e,t){let n=t.createGeoreferences(),r=new Set,a=i.features[0].properties;e.forEach(c=>{c.layer&&r.add(c.layer)});let o=[...r].map(c=>({id:c,visible:!0})),s=1/t.mapScale;return{id:a.id,georeference:n,name:a.name,shortName:a.abbreviation||a.name,scene:{polygons:e},elevation:a.elevation,scale:s,x_scale:s,layers:o,width:t.widthInMapUnits,height:t.heightInMapUnits}}l(DF,"convertMap_MVFv1");y();var Q5=class Q5{constructor(){p(this,"_subscribers",{})}publish(e,t){!this._subscribers||!this._subscribers[e]||this._subscribers[e].forEach(function(n){typeof n=="function"&&n(t)})}on(e,t){this._subscribers||(this._subscribers={}),this._subscribers[e]=this._subscribers[e]||[],this._subscribers[e].push(t)}off(e,t){if(!this._subscribers||this._subscribers[e]==null)return;let n=this._subscribers[e].indexOf(t);n!==-1&&this._subscribers[e].splice(n,1)}destroy(){this._subscribers={}}};l(Q5,"PubSub");var Li=Q5;var OC={supplementaryUrl:"https://api-gateway.mappedin.com/analytics/",headers:{},accessToken:"",clientId:"",noAuth:!1,includeHidden:!0,clientSecret:"",apiGateway:"",authorization:"",perspective:"Website",language:"",venue:""},fo,rc,Is,ac,Xd,K5,Eg,DC,J5=class J5 extends Li{constructor(t){super();w(this,Xd);w(this,Eg);p(this,"perspective");p(this,"things");p(this,"options");w(this,fo,void 0);w(this,rc,"");p(this,"updatedAt");p(this,"categories",[]);p(this,"locations",[]);p(this,"vortexes",[]);p(this,"maps",[]);p(this,"nodes",[]);p(this,"polygons",[]);p(this,"venue",{});p(this,"events",[]);p(this,"mapGroups",[]);p(this,"themes",[]);p(this,"locationStates",[]);p(this,"rankings");p(this,"currentLanguage");w(this,Is,{});p(this,"_categoriesById");p(this,"_locationsById");p(this,"_vortexesById");p(this,"_mapsById");p(this,"_nodesById");p(this,"_polygonsById");p(this,"_eventsById");p(this,"_mapGroupsById");p(this,"_locationStatesById");p(this,"_locationRankingsById");p(this,"_rankingsById");p(this,"_categoriesByExternalId");p(this,"_locationsByExternalId");p(this,"_vortexesByExternalId");p(this,"_mapsByExternalId");p(this,"_nodesByExternalId");p(this,"_polygonsByExternalId");p(this,"_eventsByExternalId");p(this,"_mapGroupsByExternalId");p(this,"_locationStatesByExternalId");p(this,"_locationRankingsByExternalId");p(this,"_rankingsByExternalId");w(this,ac,void 0);p(this,"images");p(this,"imageBinaries");p(this,"scenes");p(this,"analytics");p(this,"navigator");this.options=t,A(this,fo,sn.create(this));let n=Dr.create({...t,testMode:!(t!=null&&t.emitAnalyticsEvents)});this.analytics={locationSelected:n.locationSelected,categorySelected:n.categorySelected,getDirections:n.getDirections},globalThis.MappedinDebug||(globalThis.MappedinDebug={enable(){globalThis.sessionStorage.setItem(UT,"true")}})}generateGetters(t){try{for(let n=0,r=t.length;n<r;++n){let a=t[n];Array.isArray(this[a])&&(Object.defineProperty(this,"_".concat(a,"ByExternalId"),{configurable:!0,get(){let o=d(this,fo)[a];if(o!=null)return o;let s={};return this[a].forEach(c=>s[c.externalId]=c),d(this,fo)[a]=s,s}}),Object.defineProperty(this,"_".concat(a,"ById"),{configurable:!0,get(){let o=d(this,fo)[a];if(o!=null)return o;let s={};return this[a].forEach(c=>s[c.id]=c),d(this,fo)[a]=s,s}}))}return this}catch(n){throw new Error("Unable to generate getters, "+n)}}getCollectionItemById(t,n){let r="_".concat(t,"ById"),a="_".concat(t,"ByExternalId"),o=this[r];return o!=null&&o[n]!=null||(o=this[a],o!=null&&o[n]!=null)?o[n]:null}async hydrateFromMVF(t){let n=IC(t);return this.hydrate(n)}async hydrateFromMVFv1(t){let n=_C(t);return this.hydrate(n)}async changeLanguage(t,n=!0){var r;if(this.currentLanguage.code!==t){if(!((r=this.venue.languages)!=null&&r.find(a=>a.code===t))){F.error("Language ".concat(t," not found in venue ").concat(this.venue.slug));return}if(n&&!d(this,Is)[this.currentLanguage.code]&&(d(this,Is)[this.currentLanguage.code]=JSON.stringify(this.toJSON())),this.currentLanguage=this.venue.languages.find(a=>a.code===t),d(this,Is)[t]!=null){let a=JSON.parse(d(this,Is)[t]);await this.hydrate(a,!1,!0)}else this.options.language=this.currentLanguage.code,await this.fetch(!0);this.publish(0,this.currentLanguage)}}async hydrate(t,n=!1,r=!1){let a;if(typeof t=="string")try{A(this,rc,t),a=JSON.parse(t)}catch(h){F.error("Unable to parse JSON",h);return}else a=t,A(this,rc,JSON.stringify(a));let o=Object.keys(a);for(let h=0,m=o.length;h<m;++h){let f=o[h],g=a[f],b=Mg[f];b!=null&&typeof b.hydrate=="function"&&(r?"updateInPlace"in b&&typeof b.updateInPlace=="function"&&b.updateInPlace(this,g):this[f]=b.hydrate(g,this))}n&&await LC(a);let{images:s,scenes:c,imageBinaries:u}=a;this.images=s,this.scenes=c,this.imageBinaries=u,r||this.generateGetters(o),Z(this,Xd,K5).call(this),this.initNavigator()}async fetch(t=!1){"vortexes"in this.options.things||(this.options.things.vortexes=["name","type","accessible","weight","multiplier","nodes"]),"locationStates"in this.options.things||(this.options.things.locationStates=["name","id","value"]),wg(this.options.clientId)||this.options.things.rankings&&delete this.options.things.rankings;let{things:n}=this.options,r=[],a=Object.keys(n);for(let o=0,s=a.length;o<s;++o){let c=a[o],u=Mg[c];if(u){let h;t?"updateInPlace"in u&&typeof u.updateInPlace=="function"&&(h=u.updateInPlace(this)):h=u.fetch(this).then(m=>(this[c]=m,Promise.resolve())),r.push(h)}}return r.push(oc(this.options,"cdn-access-token",{venue:this.options.venue},!1).then(o=>A(this,ac,o.token),()=>Promise.resolve())),t||this.generateGetters(a),Promise.all(r).then(()=>{var o;this.currentLanguage=this.currentLanguage||((o=this.venue.languages)==null?void 0:o.find(s=>s.code===this.options.language))||this.venue.defaultLanguage,Z(this,Xd,K5).call(this),this.initNavigator()})}initNavigator(){this.navigator=new C5({locations:this.locations.map(t=>t.toJSON()),nodes:this.nodes.map(t=>t.toJSON()),vortexes:this.vortexes.map(t=>t.toJSON()),maps:this.maps.map(t=>t.toJSON()),polygons:this.polygons.map(t=>t.toJSON())})}toJSON(){var r;let t={};for(let a in Mg)Array.isArray(this[a])&&(t[a]=this[a].map(o=>o.toJSON()));let n={...t,venue:this.venue.toJSON()};return this.rankings!=null&&(n.rankings=(r=this.rankings)==null?void 0:r.toJSON()),delete n.locationRankings,n}toString(){return d(this,rc)||JSON.stringify(this.toJSON())}};fo=new WeakMap,rc=new WeakMap,Is=new WeakMap,ac=new WeakMap,Xd=new WeakSet,K5=l(function(){d(this,ac)&&this.maps.forEach(t=>{var n;(n=t.scene)!=null&&n.polygons&&(t.scene.polygons+="?".concat(d(this,ac)))}),Z(this,Eg,DC).call(this)},"#transformData"),Eg=new WeakSet,DC=l(function(){let t=this.categories.filter(a=>a.sortOrder).map(a=>a.sortOrder);if(t.length<=0)return;let n=Math.min(...t),r=Math.max(...t);this.polygons.forEach(a=>{var s,c;let o=_s(a,this);if(o){let u=o.categories.filter(h=>h.sortOrder).map(h=>h.sortOrder);if(u.length>0){let h=Math.min(...u);a.categoryRank=qC(h,n,r,(c=(s=a.rank)==null?void 0:s.score)!=null?c:0)}}})},"#applyCategoryRankToPolygons"),l(J5,"Mappedin");var pa=J5;y();var e6={venue:["slug","name","defaultMap","metadata","countrycode","tzid","logo","externalId","secureContentStorage","languages","topLocations","defaultLanguage"],nodes:["externalId","x","y","paths","accessible","operationHours"],vortexes:["externalId","nodes","types","accessible","filterFlags"],polygons:["vertexes","geometry","canvasBounds","layer","externalId","entrances","material"],locations:["externalId","name","type","picture","description","icon","logo","sortOrder","phone","operationHours","social","color","toMap","tags","shortName","detailsUrl","locationState","metadata","siblingGroups","gallery","showSmartLabelWhenImagePresent","amenity","filterFlags"],categories:["name","color","sortOrder","parents","icon","iconFromDefaultList"],maps:["name","subtitle","elevation","height","width","layers","shortName","scene","group","x_scale"],mapGroups:["name"],themes:["name","themeData"],rankings:["polygons"]};y();y();var t6=[0,4,6,8,10],it=l(()=>{let i=new Array(16).fill(0),e=Math.random()*4294967296;for(let n=0;n<i.length;n++)n>0&&!(n&3)&&(e=Math.random()*4294967296),i[n]=e>>>((n&3)<<3)&255;let t=i.map(n=>n.toString(16).padStart(2,"0"));return t[6]="4"+t[6][1],t[8]=["8","9","a","b"].includes(t[7][0])?t[7]:"a"+t[7][1],t6.map((n,r)=>t.slice(n,r===t6.length-1?void 0:t6[r+1]).join("")).join("-")},"randomId");y();var LF=["0","1","2","3","4","5","6","7","8","9"],qF=["\u06F1","\u06F2","\u06F3","\u06F4","\u06F5","\u06F6","\u06F7","\u06F8","\u06F9","\u06F0"],RF=["\uFF10","\uFF11","\uFF12","\uFF13","\uFF14","\uFF15","\uFF16","\uFF17","\uFF18","\uFF19"],NF=["\u1040","\u1041","\u1042","\u1043","\u1044","\u1045","\u1046","\u1047","\u1048","\u1049"],Soe=[...LF,...qF,...RF,...NF];var RC=["about","after","all","also","am","an","and","another","any","are","as","at","be","because","been","before","being","between","both","but","by","came","can","come","could","did","do","each","for","from","get","got","has","had","he","have","her","here","him","himself","his","how","if","in","into","is","it","like","make","many","me","might","more","most","much","must","my","never","now","of","on","only","or","other","our","out","over","said","same","should","since","some","still","such","take","than","that","the","their","them","then","there","these","they","this","those","through","to","too","under","up","very","was","way","we","well","were","what","where","which","while","who","with","would","you","your","a","i"];y();var kF=32,ln=!1,BF=120,i6=0,r6=class r6{constructor(e){p(this,"_callback");p(this,"_frameCount");p(this,"_ordering");p(this,"_supersededBy");p(this,"name");p(this,"_remainingFrameCount");p(this,"_lastFrameTime");p(this,"userdata");this._callback=e.callback,this._frameCount=e.frameCount!=null?e.frameCount:1,this._ordering=e.ordering!=null?e.ordering:0,this._supersededBy=e.supersededBy!=null?new Set(e.supersededBy):new Set,this.name=e.name,this.userdata=e.userdata,this._remainingFrameCount=this._frameCount,this._lastFrameTime=0,ln&&F.log("update instantiated",this.name)}getLastFrameTime(){return this._lastFrameTime}};l(r6,"FrameUpdate");var vi=r6,a6=class a6{constructor(e){p(this,"_postponed");p(this,"userdata");p(this,"_priority");p(this,"_group");p(this,"name");p(this,"_lastFrameTime");p(this,"_callback");p(this,"_complete");p(this,"_scheduled");p(this,"_cancelled");if(e.group!=null&&e.priority!=null)throw new Error("cannot specify task priority individually within group");if(e.group!=null&&e.postponeOnAdd!=null)throw new Error("cannot specify task postpone individually within group");this._callback=e.callback,this._group=e.group!=null?e.group:null,this._priority=e.priority!=null?e.priority:0,this._postponed=e.postponeOnAdd!=null?e.postponeOnAdd:!1,this.name=e.name,this.userdata=e.userdata||{},this._complete=!1,this._scheduled=!1,this._cancelled=!1,this._lastFrameTime=0,ln&&F.log("task instantiated",this.name)}isComplete(){return this._complete}getLastFrameTime(){return this._lastFrameTime}};l(a6,"FrameTask");var bt=a6,o6=class o6{constructor(e){p(this,"_postponed");p(this,"_onComplete");p(this,"_priority");p(this,"userdata");p(this,"name");p(this,"_tasks");p(this,"_scheduledTasks");p(this,"_scheduled");p(this,"_cancelled");this._onComplete=e.onComplete!=null?e.onComplete:()=>{},this._priority=e.priority!=null?e.priority:0,this._postponed=e.postponeOnAdd!=null?e.postponeOnAdd:!1,this.name=e.name,this.userdata=e.userdata,this._tasks=new Set,this._scheduledTasks=new Set,this._scheduled=!1,this._cancelled=!1,ln&&F.log("task group instantiated",this.name)}isComplete(){return this._scheduledTasks.size===0}getTasks(){return Array.from(this._tasks.values())}clear(){this._tasks.clear(),this._scheduledTasks.clear()}_popTask(){for(let e of this._scheduledTasks)return this._scheduledTasks.delete(e),e}};l(o6,"FrameTaskGroup");var fa=o6,s6=class s6{constructor(e){p(this,"_maxMillisecondsPerFrame");p(this,"_time");this._maxMillisecondsPerFrame=(e==null?void 0:e.maxMillisecondsPerFrame)!=null?e.maxMillisecondsPerFrame:kF,this._time=0}beginFrame(){this._time=performance.now()+this._maxMillisecondsPerFrame}hasTimeRemaining(){return performance.now()<=this._time}};l(s6,"RealTimeTimer");var n6=s6;var l6=class l6{constructor(e){p(this,"_raf");p(this,"options");p(this,"_timer");p(this,"_performance");p(this,"_scheduledUpdatesByOrdering");p(this,"_scheduledTasksByPriority");p(this,"_postponedTasks");p(this,"_requestAnimationFrameHandle");p(this,"_updatesToRunThisFrame");p(this,"_lastFrameTime",0);p(this,"_updatesRunLastFrame");var t;this.options=e,this._timer=(e==null?void 0:e.timer)!=null?e.timer:new n6,this._performance=(e==null?void 0:e.performance)!=null?e.performance:!1,this._scheduledUpdatesByOrdering=new sc,this._scheduledTasksByPriority=new sc,this._postponedTasks=new Set,this._requestAnimationFrameHandle=null,this._updatesToRunThisFrame=[],this._lastFrameTime=0,this._updatesRunLastFrame=new Set,this.update=this.update.bind(this),ln&&F.log("task scheduler instantiated"),(t=globalThis.MappedinDebug)!=null&&t.TEST_IOS&&(this._raf=n=>setTimeout(n,16))}clear(){for(let e of this._scheduledTasksByPriority.values())e._cancelled=!0;for(let e of this._postponedTasks.values())e._cancelled=!0;this._scheduledUpdatesByOrdering=new sc,this._scheduledTasksByPriority=new sc,this._postponedTasks=new Set,this._lastFrameTime=0,this._updatesRunLastFrame.clear(),ln&&F.log("task scheduler cleared")}destroy(){this.clear()}requestAnimationFrame(){this._requestAnimationFrameHandle==null&&(this._requestAnimationFrameHandle=typeof this._raf=="function"?this._raf(this.update):requestAnimationFrame(this.update))}update(e){var a;this._timer.beginFrame();let t;this._performance&&(t=performance.now());let n=!1;ln&&(i6===0&&(n=!0),++i6,i6%=BF);let r=this._scheduledUpdatesByOrdering.keys();for(let o=r.length-1;o>=0;--o){let s=r[o];for(let c of this._scheduledUpdatesByOrdering.get(s).values())this._updatesToRunThisFrame.push(c),n&&F.log("update scheduled to run this frame",c.name)}for(let o of this._updatesToRunThisFrame){--o._remainingFrameCount,o._remainingFrameCount<=0&&this._scheduledUpdatesByOrdering.delete(o._ordering,o),o._superseded=!1;for(let s of this._updatesToRunThisFrame)o._supersededBy.has(s)&&(o._superseded=!0,n&&F.log("update superseded",o.name,s.name))}for(let o=0;o<this._updatesToRunThisFrame.length;++o)this._updatesToRunThisFrame[o]._superseded&&(this._updatesToRunThisFrame.splice(o,1),--o);for(let o of this._updatesToRunThisFrame){let s;this._performance&&(s=performance.now()),o._callback(e),this._performance&&(o._lastFrameTime=performance.now()-s),n&&F.log("update completed",o.name)}this._updatesRunLastFrame.clear();for(let o of this._updatesToRunThisFrame)this._updatesRunLastFrame.add(o);if(this._updatesToRunThisFrame.splice(0,this._updatesToRunThisFrame.length),this._scheduledTasksByPriority.size>0)do this._executeOneTask(e);while(this._timer.hasTimeRemaining()&&this._scheduledTasksByPriority.size>0);this._performance&&(this._lastFrameTime=performance.now()-t),this._requestAnimationFrameHandle=null,(this._scheduledUpdatesByOrdering.size>0||this._scheduledTasksByPriority.size>0)&&this.requestAnimationFrame(),(a=this.options)!=null&&a.onUpdateEnd&&this.options.onUpdateEnd()}flushTasks(){for(;this._scheduledTasksByPriority.size>0;)this._executeOneTask(performance.now())}getLastFrameTime(){return this._lastFrameTime}getUpdatesRunLastFrame(){return this._updatesRunLastFrame}_executeOneTask(e){let t=this._scheduledTasksByPriority.popFromMaxKey(),n=null;F.assert(t!==void 0),Object.getPrototypeOf(t)===fa.prototype&&(n=t,t=n._popTask()),F.assert(t!==void 0),F.assert(Object.getPrototypeOf(t)===bt.prototype);let r;this._performance&&(r=performance.now()),t._callback(e),t._complete=!0,this._performance&&(t._lastFrameTime=performance.now()-r),ln&&F.log("task completed",t.name),n!=null&&(n.isComplete()?(n.clear(),n._onComplete(),ln&&F.log("group completed",n.name)):this._scheduledTasksByPriority.insert(n._priority,n))}scheduleUpdate(e){e._remainingFrameCount=e._frameCount,this._scheduledUpdatesByOrdering.insert(e._ordering,e),this.requestAnimationFrame()}scheduleTask(e){if(Object.getPrototypeOf(e)===fa)throw new Error("frame task groups are automatically scheduled when a task is added to them and cannot be manually scheduled: "+e.name);if(e._scheduled)throw new Error("cannot schedule already scheduled task: "+e.name);if(e._cancelled)throw new Error("cannot schedule cancelled task: "+e.name);let t=e;"_group"in e&&e._group!=null&&(e._group._tasks.add(e),e._group._scheduledTasks.add(e),t=e._group),t._postponed?this._postponedTasks.add(t):this._scheduledTasksByPriority.insert(t._priority,t),e._scheduled=!0,t._scheduled=!0,ln&&F.log("task scheduled",e.name),this.requestAnimationFrame()}cancelUpdate(e){this._scheduledUpdatesByOrdering.delete(e._ordering,e),ln&&F.log("update cancelled",e.name)}cancelTask(e){if(!e._scheduled)throw new Error("cannot cancel task that has not been scheduled: "+e.name);if(e._cancelled)throw new Error("cannot cancel task that has already been cancelled: "+e.name);if("_group"in e&&e._group!=null){let t=e._group.isComplete();e._group._tasks.delete(e),e._group._scheduledTasks.delete(e),e._group.isComplete()&&(this._scheduledTasksByPriority.delete(e._group._priority,e._group),t||e._group._onComplete())}else this._scheduledTasksByPriority.delete(e._priority,e),this._postponedTasks.delete(e);Object.getPrototypeOf(e)===bt.prototype?e._cancelled=!0:"clear"in e&&e.clear(),ln&&F.log("task cancelled",e.name)}postponeTask(e){if("_group"in e&&e._group!=null)throw new Error("cannot postpone individual tasks in group: "+e.name);if(e._cancelled)throw new Error("cannot postpone cancelled task: "+e.name);if(!e._postponed){if(Object.getPrototypeOf(e)===bt.prototype){if("_complete"in e)return;if(!e._scheduled)throw new Error("cannot postpone task that has not been scheduled: "+e.name)}this._scheduledTasksByPriority.delete(e._priority,e),(Object.getPrototypeOf(e)===bt.prototype||!e.isComplete())&&this._postponedTasks.add(e),e._postponed=!0,ln&&F.log("task postponed",e.name)}}resumeTask(e){if("_group"in e&&e._group!=null)throw new Error("cannot resume individual tasks in groups");if(e._cancelled)throw new Error("cannot resume cancelled task");if(e._postponed){if(Object.getPrototypeOf(e)===bt.prototype){if("_complete"in e&&e._complete)return;if(!e._scheduled)throw new Error("cannot resume unscheduled task")}this._postponedTasks.delete(e),(Object.getPrototypeOf(e)===bt.prototype||!e.isComplete())&&this._scheduledTasksByPriority.insert(e._priority,e),e._postponed=!1,this.requestAnimationFrame(),ln&&F.log("task resumed",e.name)}}setTaskPriority(e,t){if(Object.getPrototypeOf(e)===bt.prototype&&!e._scheduled)throw new Error("task must be scheduled to be reprioritized");this._scheduledTasksByPriority.has(e._priority,e)&&(this._scheduledTasksByPriority.delete(e._priority,e),this._scheduledTasksByPriority.insert(t,e)),e._priority=t,ln&&F.log("task priority changed",e.name,t)}};l(l6,"TaskScheduler");var lc=l6,c6=class c6{constructor(){p(this,"_map");p(this,"_size");p(this,"_sortedKeys");this._map=new Map,this._size=0,this._sortedKeys=[]}has(e,t){return this._map.get(e)!=null&&this._map.get(e).has(t)}get(e){return this._map.get(e)}insert(e,t){if(F.assert(typeof e=="number"&&Number.isFinite(e)),this._map.get(e)==null){this._map.set(e,new Set);for(let n=0;n<=this._sortedKeys.length;++n)if(n===this._sortedKeys.length||e<this._sortedKeys[n]){this._sortedKeys.splice(n,0,e);break}}this._map.get(e).has(t)||(this._map.get(e).add(t),++this._size)}delete(e,t){this._map.get(e)!=null&&this._map.get(e).has(t)&&(this._map.get(e).delete(t),--this._size,this._map.get(e).size===0&&(this._map.delete(e),this._sortedKeys.splice(this._sortedKeys.indexOf(e),1)))}pop(e){if(this._map.get(e)!=null){let t;for(t of this._map.get(e).values()){this._map.get(e).delete(t),--this._size;break}return this._map.get(e).size===0&&(this._map.delete(e),this._sortedKeys.splice(this._sortedKeys.indexOf(e),1)),t}}popFromMaxKey(){if(this._sortedKeys.length>0)return this.pop(this._sortedKeys[this._sortedKeys.length-1])}values(){let e=this._map.keys(),t=null,n={[Symbol.iterator]:()=>n,next:()=>{if(t==null){let a=e.next();if(a.done)return a;t=this._map.get(a.value).values()}let r=t.next();for(;r.done;){let a=e.next();if(a.done)return a;t=this._map.get(a.value).values(),r=t.next()}return r}};return n}keys(){return this._sortedKeys}get size(){let e=0;for(let t of this._map.values())e+=t.size;return F.assert(e===this._size),e}};l(c6,"Multimap");var sc=c6;var FF=.09,UF=1,VF=.025,zF=.5,jF=5e-4,GF=5e-4,HF=.01,YF=.05,NC=1,WF=.01,XF=.2;var Hoe={searchDescriptions:!0,searchTags:!0,searchTagsInCategories:!1,searchDescriptionsInCategories:!1,stopWords:RC,jsonIndex:void 0,useLocationRank:!0,emitAnalyticsEvents:C.env.NODE_ENV==="production",constants:{PRIMARY_INDEX_FUZZYNESS:FF,PRIMARY_INDEX_WEIGHT:UF,SECONDARY_INDEX_WEIGHT:VF,CATEGORY_NAME_WEIGHT:zF,LOCATION_NAME_WEIGHT:NC,CATEGORY_LOCATION_DESCRIPTION_WEIGHT:jF,CATEGORY_LOCATION_TAGS_WEIGHT:GF,CATEGORY_LOCATION_NAME_WEIGHT:HF,PRIMARY_INDEX_TAGS_NAME_WEIGHT:YF,LOCATION_DEFAULT_RANK:NC,RATIO_OF_FUZZY_TO_EXACT:WF,RATIO_OF_PREFIX_TO_EXACT:XF}};y();y();var Qd,Kd,Jd,cc,Zd=class Zd{constructor(e,t){w(this,Qd,void 0);w(this,Kd,void 0);w(this,Jd,void 0);w(this,cc,{});p(this,"defaultMap","");p(this,"address","");p(this,"city","");p(this,"countrycode","");p(this,"externalId","");p(this,"id","");p(this,"latitude");p(this,"logo");p(this,"longitude");p(this,"name","");p(this,"operationHours");p(this,"postal","");p(this,"slug","");p(this,"state","");p(this,"telephone","");p(this,"tzid","");p(this,"tzidOverride","");p(this,"utcOffset","");p(this,"website","");p(this,"secureContentStorage",!1);p(this,"defaultLanguage");p(this,"languages",[]);p(this,"topLocations",[]);A(this,Kd,e),A(this,Qd,t),Object.assign(this,t)}get metadata(){return Lt.addPendingEvent(new wd({venue:this.slug})),d(this,Jd)}set metadata(e){A(this,Jd,e)}static hydrate(e,t){return new Zd(t,e)}static async fetch(e){let t={fields:e.options.things.venue,slug:e.options.venue,limit:1};try{let n=await Yt(e.options,"venue",t);return new Zd(e,Array.isArray(n)?n[0]:n)}catch(n){return F.error("Fetch Venue:",n),{}}}get isMultiBuilding(){if(d(this,cc).isMultiBuilding==null){let e=d(this,Kd).maps,t=e.reduce((r,a)=>r.add(a.elevation),new Set),n=e.length!==t.size;d(this,cc).isMultiBuilding=n}return d(this,cc).isMultiBuilding}toJSON(){return d(this,Qd)}};Qd=new WeakMap,Kd=new WeakMap,Jd=new WeakMap,cc=new WeakMap,l(Zd,"MappedinVenue");var ma=Zd;var kC=globalThis.fetch;function vn(){if(kC==null)throw new Error("fetch is not available in your environment. Pass your own function into `setFetchFn` (node-fetch, etc)");return kC}l(vn,"isomorphicFetch");var BC,ZF=(BC=C==null?void 0:C.env)==null?void 0:BC.npm_package_version;globalThis.btoa||(globalThis.btoa=UC.encode);function VC(i){let e={...OC,...i};return e.headers={...e.headers,"mappedin-sdk-version":ZF},e.things=YC("things"in i?i.things:void 0),"platformString"in i&&(e.headers={...e.headers,"mappedin-platform-version":i.platformString}),e.noAuth||(e.accessToken?e.authorization="Bearer ".concat(e.accessToken):e.clientId&&e.clientSecret&&(e.authorization="Basic ".concat(globalThis.btoa("".concat(e.clientId,":").concat(e.clientSecret))))),e}l(VC,"parseOptions");function zC(i){return i.endsWith("/")?i:"".concat(i,"/")}l(zC,"normalizeUrl");var gse={shouldPopulateBundledImagesAsBlobs:!(typeof globalThis.navigator<"u"&&globalThis.navigator.product=="ReactNative")};async function d6(i){let e="".concat(i.authBaseUri?zC(i.authBaseUri):"https://auth-maker.mappedin.com/","api-key/token"),t=await vn()(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:i.key,secret:i.secret})});if(!t.ok)throw new Error("".concat(t.status," ").concat(t.statusText));return t.json()}l(d6,"getMakerAccessToken");async function QF(i,e){let t="".concat(i.bundleBaseUri?zC(i.bundleBaseUri):"https://app.mappedin.com/","api/venue/").concat(i.mapId,"/mvf"),n=await vn()(t,{headers:{Authorization:"Bearer ".concat(e)}});if(!n.ok)throw new Error("".concat(n.status," ").concat(n.statusText));return n.json()}l(QF,"getMakerBundleURL");async function jC(i,e){return new Promise(async(t,n)=>{try{let{url:r}=await QF(i,e),a=await vn()(r).then(s=>s.arrayBuffer()),o=new Uint8Array(a);t(o)}catch(r){n(r)}})}l(jC,"downloadMVF");async function GC(i){let e=new pa({venue:""});return await e.hydrateFromMVF(i),e}l(GC,"hydrateVenueMVF");var KC=et(WC());var XC="5.31.0";var JF="https://api2.amplitude.com/2/httpapi",$F="https://api2.amplitude.com/batch",eU="__unspecified__",h6={branch:"main",version:"0",source:"websdk"},ga,Ns,er,dc,Lr,Ag,JC,Pg,$C,eh,f6,th,m6,tr,Gi=class Gi{constructor(){w(this,Ag);w(this,Pg);w(this,eh);w(this,th);w(this,er,{});w(this,dc,!1);w(this,Lr,void 0);w(this,tr,l(async e=>{iU(e.type)&&(window.removeEventListener("visibilitychange",d(this,tr)),window.removeEventListener("pagehide",d(this,tr)),window.removeEventListener("beforeunload",d(this,tr)),window.removeEventListener("unload",d(this,tr)),await this.sendAllPendingEvents())},"#handlePageUnload"));d(Gi,Ns)==null&&A(Gi,Ns,XC),typeof navigator<"u"&&navigator.userAgent!=null&&A(this,Lr,new KC.UAParser(navigator.userAgent).getResult())}static setContext(e){A(Gi,ga,e)}static setVersion(e){A(Gi,Ns,e)}addPendingEvent(e){var r;if(d(Gi,ga)==null)return;let t=e.event_type;if(!Z(this,Pg,$C).call(this,e))return;e.event_properties==null&&(e.event_properties={});let n=d(this,er)[t];(0,QC.default)(e.event_properties,(r=n==null?void 0:n.event_properties)!=null?r:{}),d(this,er)[t]=e}async sendAllPendingEvents(){if(d(Gi,ga)==null||Object.keys(d(this,er)).length<1)return;if(d(this,dc)){F.warn("The current batch of analytics is already sending. Wait until this finishes before trying to send again.");return}let e=[];for(let t in d(this,er)){let n=d(this,er)[t],r=Z(this,eh,f6).call(this,n);r!=null&&e.push(r)}if(!(e.length<1))try{A(this,dc,!0),(await Z(this,th,m6).call(this,$F,e)).status===200&&A(this,er,{})}catch(t){F.warn("Error sending batch product analytics!",t)}finally{A(this,dc,!1)}}async load(){if(!Cd.isLoaded){let{promise:e}=Cd.load({environment:"production",client:{configuration:{trackingOptions:{osName:!0}}}});e.then(()=>{window.addEventListener("pagehide",d(this,tr)),window.addEventListener("beforeunload",d(this,tr)),window.addEventListener("unload",d(this,tr)),window.addEventListener("visibilitychange",d(this,tr))})}}async sendEventNow(e){if(d(Gi,ga)==null)return;let t=Z(this,eh,f6).call(this,e);if(t!=null)try{await Z(this,th,m6).call(this,JF,[t])}catch(n){F.warn("Error sending single product analytics event!",n)}}};ga=new WeakMap,Ns=new WeakMap,er=new WeakMap,dc=new WeakMap,Lr=new WeakMap,Ag=new WeakSet,JC=l(function(e){let t=e.event_type;return d(this,er)[t]!=null},"#isEventTypePending"),Pg=new WeakSet,$C=l(function(e){if(!Z(this,Ag,JC).call(this,e))return!0;let t=e.event_type,n=d(this,er)[t];return!(0,ZC.default)(n.event_properties,e.event_properties)},"#didEventPropertiesChange"),eh=new WeakSet,f6=l(function(e){var t,n,r,a,o,s,c,u,h,m,f,g,b,M,x,T,E;if(d(Gi,ga)!=null)return((t=e.event_properties)==null?void 0:t.venue)==null&&F.warn("Error processing product analytics event! Unspecified venue slug",e),Yl.plan==null&&F.warn("Error processing product analytics event! Unknown coinfiguration plan",e),{event_type:e.event_type,session_id:(n=Cd.client.getSessionId())!=null?n:Ig(),device_id:(r=Cd.client.getDeviceId())!=null?r:Sg(),plan:{branch:(o=(a=Yl.plan)==null?void 0:a.branch)!=null?o:h6.branch,version:(c=(s=Yl.plan)==null?void 0:s.version)!=null?c:h6.version,source:(h=(u=Yl.plan)==null?void 0:u.source)!=null?h:h6.source},os_name:(m=d(this,Lr))==null?void 0:m.browser.name,os_version:(f=d(this,Lr))==null?void 0:f.browser.version,device_manufacturer:(g=d(this,Lr))==null?void 0:g.device.vendor,device_model:(b=d(this,Lr))==null?void 0:b.device.model,event_properties:{...e.event_properties,context:d(Gi,ga),sdk_version:d(Gi,Ns),browser_name:(M=d(this,Lr))==null?void 0:M.browser.name,browser_version:(x=d(this,Lr))==null?void 0:x.browser.version,venue:(E=(T=e.event_properties)==null?void 0:T.venue)!=null?E:eU},time:e.time}},"#makeBatchFormattedEvent"),th=new WeakSet,m6=l(async function(e,t){return await vn()(e,{method:"POST",mode:"cors",headers:{"Content-Type":"application/json",Accept:"*/*"},body:JSON.stringify({api_key:Q4.production,events:t})})},"#batchSend"),tr=new WeakMap,l(Gi,"ProductAnalytics"),w(Gi,ga,void 0),w(Gi,Ns,void 0);var p6=Gi,tU=new p6,Lt=tU;function iU(i){return i==="beforeunload"||i==="pagehide"||i==="unload"||document.visibilityState==="hidden"}l(iU,"areWeLeavingThePage");var Ln,hc,wi,nh,ih=class ih extends Sn{constructor(t,n){super(t);w(this,Ln,void 0);w(this,hc,void 0);w(this,wi,{});p(this,"id","");p(this,"x",0);p(this,"y",0);p(this,"operationHours");p(this,"externalId");w(this,nh,void 0);A(this,Ln,t),A(this,hc,n);let r=Object.assign({},n);delete r.map,Object.assign(this,r)}get map(){let t=d(this,wi).map;if(typeof t<"u")return t;let n=d(this,Ln).getCollectionItemById("maps",d(this,hc).map);return d(this,wi).map=n,n}get lat(){var r;let t=d(this,wi).cachedLatLon;if(t!=null)return t.lat;let n=(r=d(this,Ln)._mapsById)==null?void 0:r[this.map.id];if(n==null)throw new Error("Map not found");return d(this,wi).cachedLatLon=n.createCoordinateByXY(this.x,this.y),d(this,wi).cachedLatLon.lat}get lon(){var r;let t=d(this,wi).cachedLatLon;if(t!=null)return t.lon;let n=(r=d(this,Ln)._mapsById)==null?void 0:r[this.map.id];if(n==null)throw new Error("Map not found");return d(this,wi).cachedLatLon=n.createCoordinateByXY(this.x,this.y),d(this,wi).cachedLatLon.lon}get paths(){let t=d(this,wi).paths;if(typeof t<"u")return t;let n=[],r=d(this,Ln)._nodesById,a=d(this,nh);if(Array.isArray(a))for(let o=0,s=a.length;o<s;++o){let c=a[o].node,u=r[c];u!=null&&n.push(u)}return d(this,wi).paths=n,n}set paths(t){A(this,nh,t)}get locations(){var o,s,c;let t=d(this,wi).locations;if(typeof t<"u")return t;let n=[],r=(c=(s=(o=sn.instances.get(d(this,Ln)))==null?void 0:o.locationsByMapId)==null?void 0:s.get(this.map.id))!=null?c:[],a=this.id;for(let u=0,h=r.length;u<h;++u){let m=r[u],f=m.nodes;if(Array.isArray(f)){for(let g=0,b=f.length;g<b;++g)if(f[g].id===a){n.push(m);break}}}return d(this,wi).locations=n,n}get polygon(){var o,s,c;let t=d(this,wi).polygon;if(typeof t<"u")return t;let n,r=(c=(s=(o=sn.instances.get(d(this,Ln)))==null?void 0:o.polygonsByMapId)==null?void 0:s.get(this.map.id))!=null?c:[],a=this.id;for(let u=0,h=r.length;u<h;++u){let m=r[u];m.entrances.map(f=>f.id).includes(a)&&(n=m)}return d(this,wi).polygon=n,n}static hydrate(t,n){return t.map(r=>new ih(n,r))}static async fetch(t){let n=t.options.things.nodes.slice();t.options.things.maps&&Wt(n,"map"),["weight","multiplier","accessible"].forEach(function(o){Wt(n,o)});let a={fields:n,venue:t.options.venue};try{return(await Yt(t.options,"node",a)).map(s=>new ih(t,s))}catch(o){return F.error("Fetch Nodes:",o),[]}}directionsTo(t,n){let r=t instanceof rn,a=d(this,Ln).venue.slug,o=new xd({with_destination_set:r||void 0,venue:a});return Lt.addPendingEvent(o),r?super.directionsTo(t,n):super.directionsTo(t,n)}distanceTo(t,n){let r=d(this,Ln).venue.slug;return Lt.addPendingEvent(new Td({venue:r})),super.distanceTo(t,n)}toJSON(){return d(this,hc)}};Ln=new WeakMap,hc=new WeakMap,wi=new WeakMap,nh=new WeakMap,l(ih,"MappedinNode");var yi=ih;y();var qr,pc,qn,ah,rh=class rh extends Sn{constructor(t,n){super(t);w(this,qr,void 0);w(this,pc,void 0);w(this,qn,{});p(this,"geometry");p(this,"perspectives");p(this,"image");p(this,"holes");p(this,"textures");p(this,"material");p(this,"label");p(this,"id","");p(this,"layer");p(this,"layerId");p(this,"name");p(this,"externalId");p(this,"vertexes");p(this,"center");p(this,"canvasBounds");p(this,"categoryRank");w(this,ah,void 0);A(this,qr,t),A(this,pc,n);let r=Object.assign({},n);delete r.map,Object.assign(this,r)}get map(){let t=d(this,qn).map;if(typeof t<"u")return t;let n=d(this,qr).getCollectionItemById("maps",d(this,pc).map);return d(this,qn).map=n,n}get locations(){var o,s;let t=d(this,qn).locations;if(typeof t<"u")return t;let n=[],r=(s=(o=sn.instances.get(d(this,qr)))==null?void 0:o.locationsByMapId.get(this.map.id))!=null?s:[],{id:a}=this;for(let c=0,u=r.length;c<u;++c){let h=r[c],m=h.polygons;if(Array.isArray(m)){for(let f=0,g=m.length;f<g;++f)if(m[f].id===a){n.push(h);break}}}return d(this,qn).locations=n,n}get entrances(){let t=d(this,qn).entrances;if(typeof t<"u")return t;let n=[],r=d(this,ah),a=d(this,qr)._nodesById;if(Array.isArray(r)){for(let o=0,s=r.length;o<s;++o){let c=r[o].id,u=a[c];u!=null&&n.push(u)}return d(this,qn).entrances=n,n}return[]}set entrances(t){A(this,ah,t)}get rank(){let t=d(this,qn).rank;if(typeof t<"u")return t;let{rankings:n}=d(this,qr);if(!(n&&n.polygons))return null;let r=n.polygons.find(a=>a.polygonId===this.id);return r?(d(this,qn).rank={score:r.score,node:r.entranceNodeId},{score:r.score,node:r.entranceNodeId}):(d(this,qn).rank=null,null)}static hydrate(t,n){return t.map(r=>new rh(n,r))}static async fetch(t){let n=t.options.things.polygons.slice();t.options.things.maps&&Wt(n,"map"),t.options.things.nodes&&Wt(n,"entrances");let r={fields:n,venue:t.options.venue};try{return(await Yt(t.options,"polygon",r)).map(o=>new rh(t,o))}catch(a){return F.error("Fetch Polygons:",a),[]}}directionsTo(t,n){let r=t instanceof rn,a=d(this,qr).venue.slug,o=new Md({with_destination_set:r||void 0,venue:a});return Lt.addPendingEvent(o),r?super.directionsTo(t,n):super.directionsTo(t,n)}distanceTo(t,n){let r=d(this,qr).venue.slug;return Lt.addPendingEvent(new Ed({venue:r})),super.distanceTo(t,n)}toJSON(){return d(this,pc)}};qr=new WeakMap,pc=new WeakMap,qn=new WeakMap,ah=new WeakMap,l(rh,"MappedinPolygon");var $n=rh;y();var nU=0,rU="9999-12-31T00:00:00.000Z";function aU(i,e,t=new Date){if(!i.states)return;let n=t||new Date,r=i.states.find(a=>{let o=new Date(a.start||nU),s=new Date(a.end||rU);return o<n&&s>n});if(r)return e.find(a=>a.value===r.type)}l(aU,"getCurrentLocationState");var eA=["name","description","shortName","tags"],yn,vo,bn,oh,sh,lh,ks=class ks extends Sn{constructor(t,n){super(t);w(this,yn,void 0);w(this,vo,void 0);w(this,bn,{});p(this,"states");p(this,"id","");p(this,"name","");p(this,"type","");p(this,"description");p(this,"sortOrder");p(this,"logo");p(this,"phone");p(this,"social");p(this,"color");p(this,"shortName");p(this,"detailsUrl");p(this,"tags");p(this,"toMap");p(this,"externalId");p(this,"showLabelWhenImagePresent");p(this,"showSmartLabelWhenImagePresent");p(this,"picture");p(this,"operationHours");p(this,"siblingGroups");p(this,"gallery");p(this,"amenity");p(this,"filterFlags");w(this,oh,void 0);w(this,sh,[]);w(this,lh,void 0);A(this,yn,t),A(this,vo,n);let r=Object.assign({},n);delete r.categories,Object.assign(this,r)}get polygons(){let t=d(this,bn).polygons;if(typeof t<"u")return t;let n=[],r=d(this,oh),a=d(this,yn)._polygonsById;if(Array.isArray(r))for(let o=0,s=r.length;o<s;++o){let c=r[o].id,u=a[c];u!=null&&n.push(u)}return d(this,bn).polygons=n,n}set polygons(t){A(this,oh,t)}get nodes(){let t=d(this,bn).nodes;if(typeof t<"u")return t;let n=[],r=d(this,sh),a=d(this,yn)._nodesById;if(r&&r.length)for(let o=0,s=r.length;o<s;++o){let c=r[o].node,u=a[c];u!=null&&n.push(u)}return d(this,bn).nodes=n,n}set nodes(t){A(this,sh,t)}get parent(){let t=d(this,bn).parent;if(typeof t<"u")return t;let n,r=d(this,yn)._locationsById,a=d(this,lh);return a!==void 0&&(n=r[a]),d(this,bn).parent=n,n}set parent(t){A(this,lh,t)}get categories(){let t=d(this,bn).categories;if(typeof t<"u")return t;let n=[];return d(this,vo).categories.forEach(r=>{let a=d(this,yn).getCollectionItemById("categories",r);a&&n.push(a)}),d(this,bn).categories=n,n}get state(){return aU(this,d(this,yn).locationStates)}clone(){let t=d(this,yn).venue.slug;return Lt.addPendingEvent(new vd({venue:t})),new ks(d(this,yn),d(this,vo))}get nodeOperationHours(){let t=d(this,bn).nodeOperationHours;if(typeof t<"u")return t;if(this.nodes==null)return{};let n=d(this,vo).nodes.reduce((r,a)=>(a.operationHours!=null&&(r[a.node]=a.operationHours),r),{});return d(this,bn).nodeOperationHours=n,n}static hydrate(t,n){return t.map(r=>new ks(n,r))}static async updateInPlace(t,n){let r=n||await ks.fetch(t),a;for(let o=0;o<r.length;o++){a=t.locations[o];for(let s of eA)a[s]=r[o][s]}}static async fetch(t){let n=t.options.things.locations.slice();t.options.things.categories&&Wt(n,"categories"),t.options.things.nodes&&Wt(n,"nodes"),t.options.things.polygons&&Wt(n,"polygons"),t.options.things.locationStates&&Wt(n,"states");let r={fields:n,venue:t.options.venue};try{let a=await Yt(t.options,"location",r);return t.options.includeHidden||(a=a.filter(o=>!o.hidden)),a.map(o=>new ks(t,o))}catch(a){return F.error("Fetch Locations:",a),[]}}directionsTo(t,n){let r=t instanceof rn,a=d(this,yn).venue.slug,o=new yd({with_destination_set:r||void 0,venue:a});return Lt.addPendingEvent(o),r?super.directionsTo(t,n):super.directionsTo(t,n)}distanceTo(t,n){let r=d(this,yn).venue.slug;return Lt.addPendingEvent(new bd({venue:r})),super.distanceTo(t,n)}toJSON(){let t={...d(this,vo)};for(let n of eA)t[n]=this[n];return delete t.color,t}};yn=new WeakMap,vo=new WeakMap,bn=new WeakMap,oh=new WeakMap,sh=new WeakMap,lh=new WeakMap,l(ks,"MappedinLocation");var Jn=ks;y();var tA=["name"],mc,Bs,ch,fc=class fc{constructor(e,t){w(this,mc,void 0);w(this,Bs,{});w(this,ch,void 0);p(this,"name");p(this,"externalId");p(this,"parents");p(this,"id");p(this,"icon");p(this,"iconFromDefaultList");p(this,"sortOrder");this.id=t.id,A(this,ch,t),A(this,mc,e),Object.assign(this,t)}get locations(){var a;let e=d(this,Bs).locations;if(typeof e<"u")return e;let t=[],{locations:n}=d(this,mc),{id:r}=this;for(let o=0,s=n.length;o<s;++o){let c=n[o],u=c.categories;if(Array.isArray(u)){for(let h=0,m=u.length;h<m;++h)if(((a=u[h])==null?void 0:a.id)===r){t.push(c);break}}}return d(this,Bs).locations=t,t}get children(){var a;let e=d(this,Bs).children;if(typeof e<"u")return e;let{categories:t}=d(this,mc),{id:n}=this,r=[];for(let o=0;o<t.length;o++)n&&((a=t[o].parents)!=null&&a.includes(n))&&r.push(t[o]);return d(this,Bs).children=r,r}static hydrate(e,t){return e.map(n=>new fc(t,n))}static async updateInPlace(e,t){let n=t||await fc.fetch(e);for(let r=0;r<n.length;r++)for(let a of tA)e.categories[r][a]=n[r][a]}static async fetch(e){let t={fields:e.options.things.categories,venue:e.options.venue};try{return(await Yt(e.options,"category",t)).map(r=>new fc(e,r))}catch(n){return F.error("Fetch Categories:",n),[]}}toJSON(){let e={...d(this,ch)};for(let t of tA)e[t]=this[t];return e}};mc=new WeakMap,Bs=new WeakMap,ch=new WeakMap,l(fc,"MappedinCategory");var mo=fc;y();var uh,va,g6=class g6{constructor(e,t){w(this,uh,void 0);w(this,va,void 0);p(this,"distance",0);p(this,"path",[]);p(this,"instructions",[]);A(this,va,e),A(this,uh,t),this.distance=t.distance,this.instructions=t.instructions.map(n=>{var a,o,s,c,u,h,m,f,g,b,M,x;let r={...n,action:{...n.action},atLocation:(a=n.atLocation)!=null&&a.id?(s=(o=d(this,va))==null?void 0:o._vortexesById)==null?void 0:s[n.atLocation.id]:void 0,node:(c=n.node)!=null&&c.id?(h=(u=d(this,va))==null?void 0:u._nodesById)==null?void 0:h[n.node.id]:void 0};if(((m=r.action)==null?void 0:m.type)==="TakeVortex"||((f=r.action)==null?void 0:f.type)==="ExitVortex"){let T=(b=d(this,va)._mapsById)==null?void 0:b[(g=r.action)==null?void 0:g.fromMap.id],E=(x=d(this,va)._mapsById)==null?void 0:x[(M=r.action)==null?void 0:M.toMap.id];T&&E&&(r.action.fromMap=T,r.action.toMap=E)}return r}),this.path=t.path.reduce((n,{id:r})=>{var o,s;let a=(s=(o=d(this,va))==null?void 0:o._nodesById)==null?void 0:s[r];return a&&n.push(a),n},[])}toJSON(){return d(this,uh)}};uh=new WeakMap,va=new WeakMap,l(g6,"MappedinDirections");var aa=g6;y();var v6=class v6{constructor(e){p(this,"destinations",[]);this.destinations=e}};l(v6,"MappedinDestinationSet");var rn=v6;y();var hh,dh=class dh{constructor(e){p(this,"id","");w(this,hh,void 0);p(this,"accessible");p(this,"name");p(this,"type");p(this,"weight");p(this,"multiplier");p(this,"nodes");p(this,"filterFlags");A(this,hh,e),Object.assign(this,e)}static hydrate(e){return e.map(t=>new dh(t))}static async fetch(e){let t=e.options.things.vortexes.slice();["name","type","accessible","weight","multiplier","nodes"].forEach(function(a){Wt(t,a)});let r={fields:t,venue:e.options.venue};try{return(await Yt(e.options,"vortex",r)).map(o=>new dh(o))}catch(a){return F.error("Fetch Vortexes:",a),[]}}toJSON(){return d(this,hh)}};hh=new WeakMap,l(dh,"MappedinVortex");var Ds=dh;y();var fh,ph=class ph{constructor(e){p(this,"id","");w(this,fh,void 0);A(this,fh,e),Object.assign(this,e)}static hydrate(e){return e.map(t=>new ph(t))}static async fetch(e){let n={fields:e.options.things.themes.slice(),venue:e.options.venue};try{return(await Yt(e.options,"apollo-theme",n)).map(a=>new ph(a))}catch(r){return F.error("Fetch Theme:",r),[]}}toJSON(){return d(this,fh)}};fh=new WeakMap,l(ph,"MappedinTheme");var _g=ph;y();var gh,mh=class mh{constructor(e){w(this,gh,void 0);p(this,"polygons",[]);A(this,gh,e),Object.assign(this,e)}static hydrate(e){return new mh(e)}static async fetch(e){try{let t=await oc({...e.options,secure:!1},"smart-labels/polygon-label-ranking",{venue:e.options.venue},!0);return new mh(t)}catch(t){return F.error("Fetch Rankings:",t),null}}toJSON(){return d(this,gh)}};gh=new WeakMap,l(mh,"MappedinRankings");var Ls=mh;y();y();var iA=["name","description"],vh,vc,yh,gc=class gc{constructor(e,t){w(this,vh,void 0);w(this,vc,void 0);w(this,yh,{});p(this,"id","");p(this,"type","");p(this,"name","");p(this,"description");p(this,"image");p(this,"startDate");p(this,"endDate");p(this,"showDate");A(this,vc,t),A(this,vh,e),Object.assign(this,t)}location(){let e=d(this,yh).location;if(typeof e<"u")return e;let t,n=d(this,vh)._locationsById,r=d(this,vc).location;if(r!=null){let a=n[r];a!=null&&(t=a)}return d(this,yh).location=t,t}static hydrate(e,t){return e.map(n=>new gc(t,n))}static async updateInPlace(e,t){let n=t||await gc.fetch(e);for(let r=0;r<n.length;r++)for(let a of iA)e.events[r][a]=n[r][a]}static async fetch(e){let t=e.options.things.events.slice();e.options.things.locations&&Wt(t,"location");let n={fields:t,venue:e.options.venue,activeAtOrAfter:Date.now()};try{return(await Yt(e.options,"event",n)).map(a=>new gc(e,a))}catch(r){return F.error("Fetch Events:",r),[]}}toJSON(){let e={...d(this,vc)};for(let t of iA)e[t]=this[t];return e}};vh=new WeakMap,vc=new WeakMap,yh=new WeakMap,l(gc,"MappedinEvent");var qs=gc;y();var nA=["name"],bh,yc=class yc{constructor(e){w(this,bh,void 0);p(this,"id","");p(this,"name","");p(this,"value","");A(this,bh,e),Object.assign(this,e)}static hydrate(e){return e.map(t=>new yc(t))}static async updateInPlace(e,t){let n=t||await yc.fetch(e);for(let r=0;r<n.length;r++)for(let a of nA)e.locationStates[r][a]=n[r][a]}static async fetch(e){let n={fields:e.options.things.locationStates.slice(),venue:e.options.venue};try{return(await Yt(e.options,"location-state",n)).map(a=>new yc(a))}catch(r){return F.error("Fetch Location States:",r),[]}}toJSON(){let e={...d(this,bh)};for(let t of nA)e[t]=this[t];return e}};bh=new WeakMap,l(yc,"MappedinLocationState");var uc=yc;y();var rA=["name","shortName"],Rr,yo,xh,bc=class bc{constructor(e,t){w(this,Rr,void 0);w(this,yo,{});w(this,xh,void 0);p(this,"id","");p(this,"group","");p(this,"name","");p(this,"shortName","");p(this,"elevation",0);p(this,"subtitle");p(this,"scale",0);p(this,"layers");p(this,"x_scale");p(this,"perspectiveId");p(this,"scene");p(this,"width",0);p(this,"height",0);p(this,"georeference",[]);p(this,"_scale",0);A(this,Rr,e),A(this,xh,t),Object.assign(this,t),this._scale=aA(this),this.scale=this.x_scale||1/this._scale}get polygons(){var e,t,n;return(n=(t=(e=sn.instances.get(d(this,Rr)))==null?void 0:e.polygonsByMapId)==null?void 0:t.get(this.id))!=null?n:[]}get locations(){var e,t,n;return(n=(t=(e=sn.instances.get(d(this,Rr)))==null?void 0:e.locationsByMapId)==null?void 0:t.get(this.id))!=null?n:[]}get nodes(){var e,t,n;return(n=(t=(e=sn.instances.get(d(this,Rr)))==null?void 0:e.nodesByMapId)==null?void 0:t.get(this.id))!=null?n:[]}get mapGroup(){let e=d(this,yo).mapGroup;if(typeof e<"u")return e;let t=this.group,n=t&&d(this,Rr)._mapGroupsById[t]||null;return d(this,yo).mapGroup=n,n}createCoordinateByXY(e,t){return new cn({x:e,y:t,map:this,mappedin:d(this,Rr)})}createCoordinate(e,t){return new cn({lat:e,lon:t,map:this,mappedin:d(this,Rr)})}getNorth(){let e;try{let t=this.georeference[0],n=this.georeference[2],r=new Ze(t.target.x,t.target.y),a=new Ze(n.target.x,n.target.y),o=(r.finalBearingTo(a)+360%360)*Math.PI/180,s=Math.atan2(n.control.y-t.control.y,n.control.x-t.control.x);e=-(o-s-Math.PI/2)}catch(t){e=0,F.warn(t),F.warn("Couldn't georeference ".concat(this.name||this.shortName||this.id,". Probably not enough geocoordinates."))}return e}static hydrate(e,t){return e.map(n=>new bc(t,n))}static async updateInPlace(e,t){let n=t||await bc.fetch(e);for(let r=0;r<n.length;r++)for(let a of rA)e.maps[r][a]=n[r][a]}static async fetch(e){var a;let t=e.options.things.maps.slice();e.options.perspective&&Wt(t,"perspectives"),e.options.things.mapGroups&&Wt(t,"group"),Wt(t,"elevation"),Wt(t,"x_scale"),Wt(t,"scale"),Wt(t,"georeference");let n={fields:t,perspective:e.options.perspective,venue:e.options.venue};try{let o=await Yt(e.options,"map",n),s=l(c=>{let u=r.layers.find(h=>h.id===c);u?u.visible=!0:r.layers.push({id:c,visible:!0})},"setVisibleLayer");for(let c=0,u=o.length;c<u;++c){var r=o[c];if(r){let h=r.perspective;h!=null&&(r.perspectiveId=h.id,t.indexOf("scene")>-1&&(r.scene=h.scene),h.layers?(r.layers.forEach(m=>{m.visible=!1}),h.layers.forEach(s)):r.layers.forEach(m=>{m.visible=!0})),delete r.perspective}if(e.options.preloadMapGeometry&&((a=r.scene)!=null&&a.polygons)&&typeof r.scene.polygons=="string"){let h=await vn()(r.scene.polygons);r.scene.polygons=await h.json()}o[c]=new bc(e,r)}return o}catch(o){return F.error("Fetch Maps:",o),[]}}get center(){if(d(this,yo).center)return d(this,yo).center;let[e,t]=[this.georeference[0].control.x,this.georeference[0].control.y],[n,r]=[this.georeference[2].control.x,this.georeference[2].control.y],{lat:a,lon:o}=this.createCoordinateByXY(e,t),{lat:s,lon:c}=this.createCoordinateByXY(n,r),u=new Ze(a,o),h=new Ze(s,c),m=u.midPointTo(h);return d(this,yo).center=m,m}toJSON(){let e={...d(this,xh)};for(let t of rA)e[t]=this[t];return e}};Rr=new WeakMap,yo=new WeakMap,xh=new WeakMap,l(bc,"MappedinMap");var go=bc;y();var Th,y6,Mh,b6,Eh,wh,Og,oA,Dg,sA,Nr,kr,Br,Fr,x6=class x6{constructor(e){w(this,Th);w(this,Mh);w(this,Og);w(this,Dg);p(this,"map");w(this,Eh,{});w(this,wh,void 0);w(this,Nr,void 0);w(this,kr,void 0);w(this,Br,void 0);w(this,Fr,void 0);let{map:t,mappedin:n}=e;e.lat!=null&&e.lon!=null&&(A(this,Nr,e.lat),A(this,kr,e.lon)),e.x!=null&&e.y!=null&&(A(this,Br,e.x),A(this,Fr,e.y)),this.map=t,A(this,wh,n)}get x(){return Z(this,Mh,b6).call(this,"x")}get y(){return Z(this,Mh,b6).call(this,"y")}get lat(){return Z(this,Th,y6).call(this,"lat")}get lon(){return Z(this,Th,y6).call(this,"lon")}absoluteDistanceTo(e){return lA([e.lat,e.lon],[this.lat,this.lon])}get nearestNode(){let e=d(this,Eh).nearestNode;if(typeof e<"u")return e;let n=sn.instances.get(d(this,wh)).findNearestNodeOnMap(this.map.id,this);return d(this,Eh).nearestNode=n,n}toJSON(){return{x:this.x,y:this.y,map:this.map,lat:this.lat,lon:this.lon}}};Th=new WeakSet,y6=l(function(e){if(typeof d(this,Nr)<"u"&&typeof d(this,kr)<"u")return e==="lat"?d(this,Nr):d(this,kr);if(typeof d(this,Br)<"u"&&typeof d(this,Fr)<"u"){let[t,n]=Z(this,Dg,sA).call(this,d(this,Br),d(this,Fr));return A(this,Nr,t),A(this,kr,n),e==="lat"?d(this,Nr):d(this,kr)}else throw Error("MappedinCoordinate is missing x and y")},"#getLatLon"),Mh=new WeakSet,b6=l(function(e){if(d(this,Br)&&d(this,Fr))return e==="x"?d(this,Br):d(this,Fr);if(d(this,Nr)!=null&&d(this,kr)!=null){let[t,n]=Z(this,Og,oA).call(this,d(this,Nr),d(this,kr));return A(this,Br,t),A(this,Fr,n),e==="x"?d(this,Br):d(this,Fr)}else throw Error("MappedinCoordinate is missing lat and lon")},"#getXY"),Eh=new WeakMap,wh=new WeakMap,Og=new WeakSet,oA=l(function(e,t){let n=this.map.georeference[0],r=new Ze(n.target.x,n.target.y),a=new Ze(e,t),o=r.distanceTo(a),s=(r.finalBearingTo(a)+360)%360*Math.PI/180||0,c=o*(1/this.map.scale),u=s+this.map.getNorth(),h=Math.sin(u)*c,m=Math.cos(u)*c;return[n.control.x+h,n.control.y-m]},"#latLonToXY"),Dg=new WeakSet,sA=l(function(e,t){let n=this.map.georeference[0],r=new Ze(n.target.x,n.target.y),a=e-n.control.x,o=n.control.y-t,s=Math.atan2(a,o),c;a===0&&o===0?c=0:a===0?c=o:c=a/Math.sin(s);let u=s-this.map.getNorth(),h=c/this.map._scale,m=r.destinationPoint(h,u*180/Math.PI);return[m.lat,m.lon]},"#xyToLatLon"),Nr=new WeakMap,kr=new WeakMap,Br=new WeakMap,Fr=new WeakMap,l(x6,"MappedinCoordinate");var cn=x6;y();var cA=["name"],Ch,Tc,Ah,xc=class xc{constructor(e,t){w(this,Ch,void 0);w(this,Tc,void 0);w(this,Ah,{});p(this,"id","");p(this,"name","");A(this,Tc,t),A(this,Ch,e),Object.assign(this,t)}get maps(){let e=d(this,Ah).maps;if(typeof e<"u")return e;let t=[],{maps:n}=d(this,Ch),{id:r}=d(this,Tc);for(let a=0,o=n.length;a<o;++a){let s=n[a];s.group===r&&t.push(s)}return d(this,Ah).maps=t,t}static hydrate(e,t){return e.map(n=>new xc(t,n))}static async updateInPlace(e,t){let n=t||await xc.fetch(e);for(let r=0;r<n.length;r++)for(let a of cA)e.mapGroups[r][a]=n[r][a]}static async fetch(e){let n={fields:e.options.things.mapGroups.slice(),venue:e.options.venue};try{return(await Yt(e.options,"map-group",n)).map(a=>new xc(e,a))}catch(r){return F.error("Fetch Map Groups:",r),[]}}toJSON(){let e={...d(this,Tc)};for(let t of cA)e[t]=this[t];return e}};Ch=new WeakMap,Tc=new WeakMap,Ah=new WeakMap,l(xc,"MappedinMapGroup");var Rs=xc;y();var pA=et(T6());y();var uA="mi-session-data",dA="mi-local-data",Fs,nr,rr,Ph=class Ph{constructor(){w(this,nr,void 0);w(this,rr,void 0);try{let e=sessionStorage.getItem(uA);e?A(this,nr,JSON.parse(e)):A(this,nr,{id:it()})}catch{A(this,nr,{id:it()})}try{let e=localStorage.getItem(dA);e?A(this,rr,JSON.parse(e)):A(this,rr,{deviceId:it()})}catch{A(this,rr,{deviceId:it()})}d(this,nr).id||(d(this,nr).id=it()),d(this,rr).deviceId||(d(this,rr).deviceId=it())}static getInstance(){return d(this,Fs)||A(this,Fs,new Ph),d(this,Fs)}static ___clearInstance(){A(this,Fs,void 0)}saveSessionData(e,t){d(this,nr)[e]=t;try{return sessionStorage.setItem(uA,JSON.stringify(d(this,nr))),!0}catch{return!1}}loadSessionData(e){let t=d(this,nr)[e];if(t!=null)return t}saveLocalData(e,t){d(this,rr)[e]=t;try{return localStorage.setItem(dA,JSON.stringify(d(this,rr))),!0}catch{return!1}}loadLocalData(e){let t=d(this,rr)[e];if(t!=null)return t}};Fs=new WeakMap,nr=new WeakMap,rr=new WeakMap,l(Ph,"SafeStorage"),w(Ph,Fs,void 0);var Sh=Ph;function wg(i){return/^[\da-f]{24}$/i.test(i)}l(wg,"isGatewayKey");function hA(i,e=!1){let t="";if(i!=null){let n="?",r=e?Object.keys(i).filter(a=>!["slug","venue"].includes(a)):Object.keys(i);for(let a=0,o=r.length;a<o;++a){let s=r[a],c=i[s];c!=null&&(t+="".concat(n+encodeURIComponent(s),"=").concat(encodeURIComponent(c)),n="&")}}return t}l(hA,"stringifyQuery");function oU(i,e,t,n=!1){var r,a;return n?"".concat(i.supplementaryUrl).concat(e,"?venue=").concat(t.venue||t.slug):(r=i.baseUrl)!=null&&r.includes("gateway")?"".concat(i.baseUrl).concat(e,"/").concat(t.venue||t.slug).concat(hA(t,(a=i.baseUrl)==null?void 0:a.includes("gateway"))):i.baseUrl+e+hA(t)}l(oU,"buildUrl");async function Yt(i,e,t,n=!1){return oc(i,e,t,n,!0)}l(Yt,"getArray");async function oc(i,e,t,n=!1,r=!1){let a=oU(i,e,t,n),o=await HC(i,a,n);if(!r&&Array.isArray(o)){if(o.length===1)return o[0];throw new Error("Invalid response object")}else return o}l(oc,"getObject");function sU(i,e,t=!1){let n={language:i.language,clientId:i.clientId,clientSecret:i.clientSecret};t&&delete n.language,n.language&&(e+="&lang=".concat(encodeURIComponent(n.language)));let{headers:r}=i;r["Content-Type"]=r["Content-Type"]||"text/json",i.accessToken?r.Authorization="Bearer ".concat(i.accessToken):i.noAuth||i.clientId&&i.clientSecret&&(r["x-mappedin-key"]=btoa(i.clientId),r["x-mappedin-secret"]=btoa(i.clientSecret)),n.language&&(r["Accept-Language"]=n.language);let a={method:"GET",headers:r};return i.secure&&(e+="&withcdntoken"),{req:a,url:e}}l(sU,"constructParamsForRequest");async function HC(i,e,t=!1){let n=sU(i,e,t),r=await vn()(n.url,n.req);if(!r.ok)throw new Error("".concat(r.status," ").concat(r.statusText));return r.json()}l(HC,"generateAPIRequest");function Wt(i,e){i.indexOf(e)<0&&i.push(e)}l(Wt,"addToSet");function lA([i,e],[t,n]){let r=new Ze(i,e),a=new Ze(t,n);return r.distanceTo(a)}l(lA,"getDistanceBetweenLatLon");function aA(i){if(i.scale||i.x_scale)return 1/(i.scale||i.x_scale);let e;try{let t=i.georeference[0],n=i.georeference[2],r=new Ze(t.target.x,t.target.y),a=new Ze(n.target.x,n.target.y),o=r.distanceTo(a),s=t.control.x-n.control.x,c=t.control.y-n.control.y;e=Math.sqrt(s*s+c*c)/o}catch(t){e=1,F.warn(t),F.warn("Couldn't georeference ".concat(i.name||i.shortName||i.id,". Probably not enough geocoordinates."))}return e}l(aA,"getMapScale");function od(i){var e;return i instanceof $n?i.entrances.map(t=>t.id):i instanceof Jn?((e=i.nodes)==null?void 0:e.map(t=>t.id))||[]:[i.id]}l(od,"getNodesForNavigatable");async function LC(i){let e={},{maps:t,images:n,scenes:r,polygons:a}=i;if(n!=null)try{let o=Object.keys(n).map(s=>fetch("data:image/png;base64,".concat(n[s])).then(c=>c.blob()).then(c=>{e[s]=c}).catch(c=>{F.error(c)}));await Promise.all(o)}catch(o){F.error(o)}return t.forEach(o=>{var c;((c=o.scene)!=null&&c.polygons||r[o.id])&&(r!=null&&r[o.id]&&(o.scene||(o.scene={}),Object.defineProperty(o.scene,"polygons",{get(){return r[o.id]}})),n!=null&&(o.scene.images=o.scene.images.map(({filename:u})=>({filename:u,url:e[u]})),o.scene.polygons.forEach(u=>{var h,m;if((h=u==null?void 0:u.image)!=null&&h.url&&(m=u==null?void 0:u.image)!=null&&m.url){let f=u.image.url.split("/"),g=e[f[f.length-1]];g&&(u.image.url=g)}})))}),n!=null&&a.forEach(o=>{var s;if((s=o==null?void 0:o.image)!=null&&s.url){let c=o.image.url.split("/"),u=e[c[c.length-1]];u&&(o.image.url=u)}}),i.images!=null&&delete i.images,i.scenes!=null&&delete i.scenes,i}l(LC,"populateBundledImagesAsBlobs");function u6(i,e,t){let n;return function(...r){let a=this,o=l(function(){n=null,t||i.apply(a,r)},"later"),s=t&&!n;clearTimeout(n),n=setTimeout(o,e),s&&i.apply(a,r)}}l(u6,"debounce");function qC(i,e,t,n=0){if(!i||i<=0)return 0;let r=0;n>=0&&n<=1&&(r=n/10);let a=1e-5,o=1+(t-i)/(t-e)+r;return Math.max(1+a,Math.min(2-a,o))}l(qC,"normalizeCategoryRank");function Sg(){return Sh.getInstance().loadLocalData("deviceId")}l(Sg,"getDeviceID");function Ig(){return Sh.getInstance().loadSessionData("id")}l(Ig,"getSessionID");var _s=l((i,e)=>{if(typeof i=="string")if(e!==void 0&&Array.isArray(e.polygons))i=e.polygons.find(function(n){return n.id===i});else return null;let t=null;if(i!=null&&i.locations!==void 0&&i.locations.length>0){t=i.locations[0];for(let n=0,r=i.locations.length;n<r;n++){let a=i.locations[n];for(;a.parent!==void 0;)a=a.parent,a.polygons.includes(i)&&(t=a);if(a.parent===void 0&&a.polygons.includes(i))return a}}return t},"getPrimaryLocationForPolygon");function YC(i){var t;let e={...i};for(let[n,r]of Object.entries(e6))e[n]=(0,pA.default)(r.concat((t=e[n])!=null?t:[]));return e}l(YC,"mergeThings");y();y();y();y();function M6(i){let e=+this._x.call(null,i),t=+this._y.call(null,i);return fA(this.cover(e,t),e,t,i)}l(M6,"default");function fA(i,e,t,n){if(isNaN(e)||isNaN(t))return i;var r,a=i._root,o={data:n},s=i._x0,c=i._y0,u=i._x1,h=i._y1,m,f,g,b,M,x,T,E;if(!a)return i._root=o,i;for(;a.length;)if((M=e>=(m=(s+u)/2))?s=m:u=m,(x=t>=(f=(c+h)/2))?c=f:h=f,r=a,!(a=a[T=x<<1|M]))return r[T]=o,i;if(g=+i._x.call(null,a.data),b=+i._y.call(null,a.data),e===g&&t===b)return o.next=a,r?r[T]=o:i._root=o,i;do r=r?r[T]=new Array(4):i._root=new Array(4),(M=e>=(m=(s+u)/2))?s=m:u=m,(x=t>=(f=(c+h)/2))?c=f:h=f;while((T=x<<1|M)===(E=(b>=f)<<1|g>=m));return r[E]=a,r[T]=o,i}l(fA,"add");function mA(i){var e,t,n=i.length,r,a,o=new Array(n),s=new Array(n),c=1/0,u=1/0,h=-1/0,m=-1/0;for(t=0;t<n;++t)isNaN(r=+this._x.call(null,e=i[t]))||isNaN(a=+this._y.call(null,e))||(o[t]=r,s[t]=a,r<c&&(c=r),r>h&&(h=r),a<u&&(u=a),a>m&&(m=a));if(c>h||u>m)return this;for(this.cover(c,u).cover(h,m),t=0;t<n;++t)fA(this,o[t],s[t],i[t]);return this}l(mA,"addAll");y();function E6(i,e){if(isNaN(i=+i)||isNaN(e=+e))return this;var t=this._x0,n=this._y0,r=this._x1,a=this._y1;if(isNaN(t))r=(t=Math.floor(i))+1,a=(n=Math.floor(e))+1;else{for(var o=r-t||1,s=this._root,c,u;t>i||i>=r||n>e||e>=a;)switch(u=(e<n)<<1|i<t,c=new Array(4),c[u]=s,s=c,o*=2,u){case 0:r=t+o,a=n+o;break;case 1:t=r-o,a=n+o;break;case 2:r=t+o,n=a-o;break;case 3:t=r-o,n=a-o;break}this._root&&this._root.length&&(this._root=s)}return this._x0=t,this._y0=n,this._x1=r,this._y1=a,this}l(E6,"default");y();function w6(){var i=[];return this.visit(function(e){if(!e.length)do i.push(e.data);while(e=e.next)}),i}l(w6,"default");y();function C6(i){return arguments.length?this.cover(+i[0][0],+i[0][1]).cover(+i[1][0],+i[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}l(C6,"default");y();y();function ci(i,e,t,n,r){this.node=i,this.x0=e,this.y0=t,this.x1=n,this.y1=r}l(ci,"default");function A6(i,e,t){var n,r=this._x0,a=this._y0,o,s,c,u,h=this._x1,m=this._y1,f=[],g=this._root,b,M;for(g&&f.push(new ci(g,r,a,h,m)),t==null?t=1/0:(r=i-t,a=e-t,h=i+t,m=e+t,t*=t);b=f.pop();)if(!(!(g=b.node)||(o=b.x0)>h||(s=b.y0)>m||(c=b.x1)<r||(u=b.y1)<a))if(g.length){var x=(o+c)/2,T=(s+u)/2;f.push(new ci(g[3],x,T,c,u),new ci(g[2],o,T,x,u),new ci(g[1],x,s,c,T),new ci(g[0],o,s,x,T)),(M=(e>=T)<<1|i>=x)&&(b=f[f.length-1],f[f.length-1]=f[f.length-1-M],f[f.length-1-M]=b)}else{var E=i-+this._x.call(null,g.data),S=e-+this._y.call(null,g.data),_=E*E+S*S;if(_<t){var P=Math.sqrt(t=_);r=i-P,a=e-P,h=i+P,m=e+P,n=g.data}}return n}l(A6,"default");y();function P6(i){if(isNaN(h=+this._x.call(null,i))||isNaN(m=+this._y.call(null,i)))return this;var e,t=this._root,n,r,a,o=this._x0,s=this._y0,c=this._x1,u=this._y1,h,m,f,g,b,M,x,T;if(!t)return this;if(t.length)for(;;){if((b=h>=(f=(o+c)/2))?o=f:c=f,(M=m>=(g=(s+u)/2))?s=g:u=g,e=t,!(t=t[x=M<<1|b]))return this;if(!t.length)break;(e[x+1&3]||e[x+2&3]||e[x+3&3])&&(n=e,T=x)}for(;t.data!==i;)if(r=t,!(t=t.next))return this;return(a=t.next)&&delete t.next,r?(a?r.next=a:delete r.next,this):e?(a?e[x]=a:delete e[x],(t=e[0]||e[1]||e[2]||e[3])&&t===(e[3]||e[2]||e[1]||e[0])&&!t.length&&(n?n[T]=t:this._root=t),this):(this._root=a,this)}l(P6,"default");function gA(i){for(var e=0,t=i.length;e<t;++e)this.remove(i[e]);return this}l(gA,"removeAll");y();function S6(){return this._root}l(S6,"default");y();function I6(){var i=0;return this.visit(function(e){if(!e.length)do++i;while(e=e.next)}),i}l(I6,"default");y();function _6(i){var e=[],t,n=this._root,r,a,o,s,c;for(n&&e.push(new ci(n,this._x0,this._y0,this._x1,this._y1));t=e.pop();)if(!i(n=t.node,a=t.x0,o=t.y0,s=t.x1,c=t.y1)&&n.length){var u=(a+s)/2,h=(o+c)/2;(r=n[3])&&e.push(new ci(r,u,h,s,c)),(r=n[2])&&e.push(new ci(r,a,h,u,c)),(r=n[1])&&e.push(new ci(r,u,o,s,h)),(r=n[0])&&e.push(new ci(r,a,o,u,h))}return this}l(_6,"default");y();function O6(i){var e=[],t=[],n;for(this._root&&e.push(new ci(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var r=n.node;if(r.length){var a,o=n.x0,s=n.y0,c=n.x1,u=n.y1,h=(o+c)/2,m=(s+u)/2;(a=r[0])&&e.push(new ci(a,o,s,h,m)),(a=r[1])&&e.push(new ci(a,h,s,c,m)),(a=r[2])&&e.push(new ci(a,o,m,h,u)),(a=r[3])&&e.push(new ci(a,h,m,c,u))}t.push(n)}for(;n=t.pop();)i(n.node,n.x0,n.y0,n.x1,n.y1);return this}l(O6,"default");y();function vA(i){return i[0]}l(vA,"defaultX");function D6(i){return arguments.length?(this._x=i,this):this._x}l(D6,"default");y();function yA(i){return i[1]}l(yA,"defaultY");function L6(i){return arguments.length?(this._y=i,this):this._y}l(L6,"default");function Ih(i,e,t){var n=new q6(e==null?vA:e,t==null?yA:t,NaN,NaN,NaN,NaN);return i==null?n:n.addAll(i)}l(Ih,"quadtree");function q6(i,e,t,n,r,a){this._x=i,this._y=e,this._x0=t,this._y0=n,this._x1=r,this._y1=a,this._root=void 0}l(q6,"Quadtree");function bA(i){for(var e={data:i.data},t=e;i=i.next;)t=t.next={data:i.data};return e}l(bA,"leaf_copy");var Hi=Ih.prototype=q6.prototype;Hi.copy=function(){var i=new q6(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,t,n;if(!e)return i;if(!e.length)return i._root=bA(e),i;for(t=[{source:e,target:i._root=new Array(4)}];e=t.pop();)for(var r=0;r<4;++r)(n=e.source[r])&&(n.length?t.push({source:n,target:e.target[r]=new Array(4)}):e.target[r]=bA(n));return i};Hi.add=M6;Hi.addAll=mA;Hi.cover=E6;Hi.data=w6;Hi.extent=C6;Hi.find=A6;Hi.remove=P6;Hi.removeAll=gA;Hi.root=S6;Hi.size=I6;Hi.visit=_6;Hi.visitAfter=O6;Hi.x=D6;Hi.y=L6;var Ur,ai,ar=class ar{constructor(e){w(this,Ur,void 0);p(this,"categories");p(this,"locations");p(this,"vortexes");p(this,"maps");p(this,"nodes");p(this,"polygons");p(this,"events");p(this,"mapGroups");p(this,"locationStates");p(this,"rankings");p(this,"languages",{});w(this,ai,{});A(this,Ur,e)}get polygonsByMapId(){if(d(this,ai).polygonsByMapId)return d(this,ai).polygonsByMapId;let e={},t;for(let r=0,a=d(this,Ur).polygons.length;r<a;++r)t=d(this,Ur).polygons[r],e[t.map.id]||(e[t.map.id]=[]),e[t.map.id].push(t);let n=Object.entries(e).reduce((r,[a,o])=>(r.set(a,o),r),new Map);return d(this,ai).polygonsByMapId=n,d(this,ai).polygonsByMapId}get nodesByMapId(){if(d(this,ai).nodesByMapId)return d(this,ai).nodesByMapId;let e={},t;for(let r=0,a=d(this,Ur).nodes.length;r<a;++r)t=d(this,Ur).nodes[r],e[t.map.id]||(e[t.map.id]=[]),e[t.map.id].push(t);let n=Object.entries(e).reduce((r,[a,o])=>(r.set(a,o),r),new Map);return d(this,ai).nodesByMapId=n,d(this,ai).nodesByMapId}findNearestNodeOnMap(e,t){var r;if(d(this,ai).nodeTreesByMap||(d(this,ai).nodeTreesByMap=new Map),!d(this,ai).nodeTreesByMap.has(e)){let a=(r=this.nodesByMapId.get(e))!=null?r:[],o=Ih();o.x(s=>s.x),o.y(s=>s.y),o.addAll(a),d(this,ai).nodeTreesByMap.set(e,o)}return d(this,ai).nodeTreesByMap.get(e).find(t.x,t.y)}get locationsByMapId(){if(d(this,ai).locationsByMapId)return d(this,ai).locationsByMapId;let e={},t;for(let r=0,a=d(this,Ur).locations.length;r<a;++r){t=d(this,Ur).locations[r];for(let o=0,s=t.polygons.length;o<s;++o)e[t.polygons[o].map.id]||(e[t.polygons[o].map.id]=[]),e[t.polygons[o].map.id].indexOf(t)===-1&&e[t.polygons[o].map.id].push(t);for(let o=0,s=t.nodes.length;o<s;++o){let c=t.nodes[o];e[c.map.id]||(e[c.map.id]=[]),e[c.map.id].indexOf(t)===-1&&e[c.map.id].push(t)}}let n=Object.entries(e).reduce((r,[a,o])=>(r.set(a,o),r),new Map);return d(this,ai).locationsByMapId=n,d(this,ai).locationsByMapId}static create(e){return ar.instances.has(e)||ar.instances.set(e,new ar(e)),ar.instances.get(e)}static clear(){ar.instances.clear()}static clearInstance(e){ar.instances.has(e)&&ar.instances.delete(e)}};Ur=new WeakMap,ai=new WeakMap,l(ar,"MappedinCache"),p(ar,"instances",new Map);var R6=ar,sn=R6;var Mg={categories:mo,locations:Jn,vortexes:Ds,maps:go,nodes:yi,polygons:$n,venue:ma,events:qs,mapGroups:Rs,themes:_g,locationStates:uc,rankings:Ls};var UA=et(BA());var FA,vU=(FA=C==null?void 0:C.env)==null?void 0:FA.npm_package_version,qg=["websdk","web","webv2","kiosk-v2","mobile","iossdk","androidsdk","reactnativesdk"],B6=qg[0],yU=!1,_h,Mc,Ec,Oh,wc,Cc,Ac,bo,Pc,Sc,Ic,Dh,_c,Us,or=class or{constructor(e){w(this,_h,void 0);w(this,Mc,void 0);w(this,Ec,void 0);w(this,Oh,void 0);w(this,wc,void 0);w(this,Cc,void 0);w(this,Ac,void 0);w(this,bo,void 0);w(this,Pc,void 0);w(this,Sc,void 0);w(this,Ic,void 0);w(this,Dh,void 0);w(this,_c,void 0);w(this,Us,void 0);var n;A(this,bo,e.clientId),A(this,Pc,e.clientSecret),A(this,Sc,e.accessToken),A(this,Ac,e.noAuth||!1);let t="https://api-gateway.mappedin.com/track-analytics/a/";!d(this,Ac)&&d(this,bo)&&!wg(d(this,bo))&&(t="https://web-proxy.mappedin.com/a/"),A(this,Ec,t),A(this,Ec,d(this,Ec)+(e.venue+"/")),A(this,_c,e.venue),A(this,Mc,!1),A(this,_h,typeof e.testMode=="boolean"?e.testMode:((n=e.testMode)==null?void 0:n.toLowerCase())==="true"),A(this,Oh,qg.find(r=>r===e.context)||qg[0]),A(this,wc,Sg()),A(this,Cc,Ig()),A(this,Ic,new Set),A(this,Dh,e.platformString||""),this.locationSelected=this.locationSelected.bind(this),this.categorySelected=this.categorySelected.bind(this),this.getDirections=u6(this.getDirections.bind(this),2500)}static create(e){return or.instance||(or.instance=new or(e)),or.instance}track(e,t){let n={...t,g:d(this,Mc)};d(this,Us)&&(n={...n,...d(this,Us)});let r=d(this,Ec)+e+"?"+UA.default.stringify(n,{skipEmptyString:!0,skipNull:!0});if(yU&&F.log("Analytics.track",r),d(this,_h))return;let a={"mi-context":B6||d(this,Oh),"mi-session":d(this,Cc),"mi-device":d(this,wc),"mappedin-sdk-version":vU,"mappedin-platform-version":d(this,Dh)};d(this,Sc)?a.Authorization="Bearer ".concat(d(this,Sc)):d(this,Ac)||d(this,Pc)&&d(this,bo)&&(a["x-mappedin-key"]=btoa(d(this,bo)),a["x-mappedin-secret"]=btoa(d(this,Pc))),vn()(r,{method:"GET",mode:"cors",headers:a})}updateAnalyticsUserPosition(e){e?A(this,Us,{...e,bluedotTimestamp:Date.now()}):A(this,Us,void 0)}locationSelected(e){let t=e.id||e;Lt.addPendingEvent(new gd({venue:d(this,_c)})),this.track("select-location",{id:t})}categorySelected(e){let t=e.id||e;Lt.addPendingEvent(new md({venue:d(this,_c)})),this.track("select-category",{id:t})}mapViewLoaded(e,t,n,r){this.track("load-mapview",{type:e,force:t,benchmark:n||-1,reason:r||"success"})}getDirections(e,t){let n={start:e.id,end:t.id,type:"location_to_location"};this.track("query-directions",n)}getSessionID(){return d(this,Cc)}getDeviceID(){return d(this,wc)}setGeolocationMode(e){A(this,Mc,e)}trackBlueDotEvent(e){e&&Object.values(or.BLUEDOT_EVENT).includes(e)&&!d(this,Ic).has(e)&&(this.track(e),d(this,Ic).add(e))}trackSearch(e){e!=null&&this.track("query-search",e)}trackSearchSuggest(e){e!=null&&this.track("query-suggest",e)}static setContext(e){let t=qg.find(n=>n===e);t&&(B6=t)}static clearContext(){B6=void 0}static destroy(){or.instance=null}};_h=new WeakMap,Mc=new WeakMap,Ec=new WeakMap,Oh=new WeakMap,wc=new WeakMap,Cc=new WeakMap,Ac=new WeakMap,bo=new WeakMap,Pc=new WeakMap,Sc=new WeakMap,Ic=new WeakMap,Dh=new WeakMap,_c=new WeakMap,Us=new WeakMap,l(or,"Analytics"),p(or,"instance",null),p(or,"BLUEDOT_EVENT",{ATTEMPT_BLUEDOT:"attempt-bluedot",FOUND_POSITION:"found-position",FOUND_FLOOR:"found-floor"});var F6=or,Dr=F6;y();y();var Lh=et(Vr());var ui={linear:Lh.default.Easing.Linear.None,"ease-in":Lh.default.Easing.Quadratic.In,"ease-out":Lh.default.Easing.Quadratic.Out,"ease-in-out":Lh.default.Easing.Quadratic.InOut};y();y();var Oc={margin:6,text:{numLines:2,lineHeight:1.2,size:11.5,maxWidth:150,foregroundColor:"white",backgroundColor:"#333"},marker:{size:5,foregroundColor:{active:"white",inactive:void 0},backgroundColor:{active:"#333",inactive:void 0}}},Rg={lightOnDark:{...Oc,text:{...Oc.text,foregroundColor:"white",backgroundColor:"#333"},marker:{...Oc.marker,foregroundColor:{active:"white",inactive:void 0},backgroundColor:{active:"#333",inactive:void 0}}},darkOnLight:{...Oc,text:{...Oc.text,foregroundColor:"#333",backgroundColor:"white"},marker:{...Oc.marker,foregroundColor:{active:"#333",inactive:void 0},backgroundColor:{active:"white",inactive:void 0}}}};y();y();var VA=!1,j6=class j6{constructor(){p(this,"textureLoader",new Pn)}async loadMapPolygons(e){return VA&&F.log("loading map: ",e.scene.polygons),(await vn()(e.scene.polygons)).json()}loadImage(e){return new Promise((t,n)=>{VA&&F.log("loading image: ",e),this.textureLoader.load(e,r=>{r.colorSpace=rt,t(r)},()=>{},n)})}};l(j6,"DefaultAssetManager");var xo=j6;var H6=class H6{constructor(){p(this,"defaultExtrudeSettings",{amount:10,bevelEnabled:!1});p(this,"materials",{});p(this,"scale",100);p(this,"assetManager",new xo);p(this,"overlayHeight",.15)}setAssetManager(e){this.assetManager=e}load(e,t,n){if(typeof e=="string")return this.assetManager.loadMapPolygons(t).then(r=>r==null||r.length===0?Promise.reject("No polygons found for venue"):this._build(r,t,n)).catch(r=>Promise.reject(r));try{return this._build(e,t,n)}catch(r){return Promise.reject(r)}}_build(e,t,n){let r=new Set;t.layers.forEach(s=>{s.visible!==!1&&r.add(s.id)});let a=new Wn,o=e.map(s=>{let c=s.layer||"Polygon",u=/__.*__/.exec(c);return r.has(c)||u?new Vs(s,t,a,this.assetManager,n):null}).filter(s=>s);return Promise.resolve({container:a,elements:o,visibleLayers:r})}};l(H6,"JSONSceneLoader");var G6=H6,Dc=new G6;y();var zA=(a=>(a.ANIMATED="animated",a.ALWAYS_ON_TOP="always_on_top",a.ALL="all",a.TWEEN="tween",a.COMPOSITE="composite",a))(zA||{}),Re=zA;y();var jA=0,bU=!1,X6=class X6{constructor(e,t){p(this,"core");p(this,"currentScene");p(this,"processedMapObjects",new Set);this.core=e,bU&&this.renderGrid(),this.transitionTo(t).then(()=>{this.core.publish(0)}).catch(n=>{F.error(n)})}get currentMap(){return this.currentScene.currentMap}renderGrid(){var e=new RT(1e4,10);e.setColors(233696766,14606046),e.position.z=-10,e.rotation.x=Math.PI/2,this.core.scene.add(e)}async transitionTo(e,t){this.core.publish(6);let n=this.currentScene;e.transitionOptions=t||{},e.currentMap=(t==null?void 0:t.activeMap)||e.maps[0],this.currentScene=e;let r=await e.preRender(t);e.mapObjectsArray=await Promise.all(r);let a=[],o=[],s=!1;if(n){s=n.currentMap.mapGroup!==e.currentMap.mapGroup;for(let c of n.mapObjects.values())a.push(c.fadeOut(void 0,{onComplete:()=>{c.onInvisible(),n.object.remove(c.object)},duration:jA}))}for(let c of e.mapObjects.values())e.object.add(c==null?void 0:c.object),c.object.position.z=0,o.push(c.fadeIn(void 0,{onComplete:()=>{c.onVisible()},duration:jA}));this.core.tryRendering(),await Promise.all(a.map(c=>c.start())),this.core.scene.add(e.object),await Promise.all([...o.map(c=>c.start()),e.focusOnCurrentMap(s?{...t,autoFocusOnActiveMap:!0}:void 0,n==null)]),n!=null&&this.core.scene.remove(n.object),e.postRender(),this.core.publish(7),n==null&&this.core.publish(0)}};l(X6,"SceneManager");var Y6=X6,W6=Y6;y();var Q6=class Q6{constructor(e,t){p(this,"dynamicFocusScene");p(this,"core");p(this,"panBounds");p(this,"mapShouldSetOnUserInteraction",!0);this.core=e,this.dynamicFocusScene=new K6(e,t),this.core.controls.dispatcher.addEventListener(this.core.controls.CAMERA_EVENTS.CHANGE_EVENT.type,()=>{this.update()}),this.core.controls.dispatcher.addEventListener(this.core.controls.CAMERA_EVENTS.ZOOM_END_EVENT.type,()=>{this.determineTargetMap()}),this.core.controls.dispatcher.addEventListener(this.core.controls.CAMERA_EVENTS.MULTI_END_EVENT.type,()=>{this.determineTargetMap()}),this.core.controls.dispatcher.addEventListener(this.core.controls.CAMERA_EVENTS.PAN_END_EVENT.type,()=>{this.determineTargetMap()}),this.transitionTo().then(()=>{this.core.publish(0)})}get currentScene(){return{resize:this.dynamicFocusScene.resize,currentMap:this.dynamicFocusScene.currentMap,mapObjects:this.core.mapObjects}}get currentMap(){return this.dynamicFocusScene.currentMap}setDefaultMapForMapGroup(e,t){let n=this.dynamicFocusScene.buildings.find(r=>r.mapGroup.id===e.id);n!=null&&n.mapGroup.maps.includes(t)&&(n.activeMap=void 0,n.defaultMap=t)}resetDefaultMapForMapGroup(e){let t=this.dynamicFocusScene.buildings.find(n=>n.mapGroup.id===e.id);t!=null&&(t.defaultMap=t.startingMap)}determineTargetMap(){let e=this.dynamicFocusScene.determineCurrentMap();this.mapShouldSetOnUserInteraction&&e!=null&&this.dynamicFocusScene.setMap(e,!0),this.update()}update(){this.core.taskScheduler.scheduleTask(new bt({name:"setDynamicFocusOpacities",callback:()=>{let e=this.dynamicFocusScene.determineBuildingsInView();this.dynamicFocusScene.setOpacities(e,this.dynamicFocusScene.currentMap)}}))}async transitionTo(e){if(this.dynamicFocusScene.loaded||(await this.dynamicFocusScene.load(),this.core.scene.add(this.dynamicFocusScene.object)),e!=null){let t=e.maps[0],n=this.dynamicFocusScene.buildings.find(r=>r.mapGroup.id===t.mapGroup.id);n!=null&&await n.setMap(t),this.dynamicFocusScene.setMap(t),this.update()}}};l(Q6,"DynamicFocusSceneManager");var Z6=Q6,Ng=Z6;y();y();function qh(i,e=!1){let t=i[0].index!==null,n=new Set(Object.keys(i[0].attributes)),r=new Set(Object.keys(i[0].morphAttributes)),a={},o={},s=i[0].morphTargetsRelative,c=new Cr,u=0;for(let h=0;h<i.length;++h){let m=i[h],f=0;if(t!==(m.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+h+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(let g in m.attributes){if(!n.has(g))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+h+'. All geometries must have compatible attributes; make sure "'+g+'" attribute exists among all geometries, or in none of them.'),null;a[g]===void 0&&(a[g]=[]),a[g].push(m.attributes[g]),f++}if(f!==n.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+h+". Make sure all geometries have the same number of attributes."),null;if(s!==m.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+h+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(let g in m.morphAttributes){if(!r.has(g))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+h+". .morphAttributes must be consistent throughout all geometries."),null;o[g]===void 0&&(o[g]=[]),o[g].push(m.morphAttributes[g])}if(e){let g;if(t)g=m.index.count;else if(m.attributes.position!==void 0)g=m.attributes.position.count;else return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+h+". The geometry must have either an index or a position attribute"),null;c.addGroup(u,g,h),u+=g}}if(t){let h=0,m=[];for(let f=0;f<i.length;++f){let g=i[f].index;for(let b=0;b<g.count;++b)m.push(g.getX(b)+h);h+=i[f].attributes.position.count}c.setIndex(m)}for(let h in a){let m=GA(a[h]);if(!m)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+h+" attribute."),null;c.setAttribute(h,m)}for(let h in o){let m=o[h][0].length;if(m===0)break;c.morphAttributes=c.morphAttributes||{},c.morphAttributes[h]=[];for(let f=0;f<m;++f){let g=[];for(let M=0;M<o[h].length;++M)g.push(o[h][M][f]);let b=GA(g);if(!b)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+h+" morphAttribute."),null;c.morphAttributes[h].push(b)}}return c}l(qh,"mergeGeometries");function GA(i){let e,t,n,r=-1,a=0;for(let u=0;u<i.length;++u){let h=i[u];if(e===void 0&&(e=h.array.constructor),e!==h.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(t===void 0&&(t=h.itemSize),t!==h.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(n===void 0&&(n=h.normalized),n!==h.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(r===-1&&(r=h.gpuType),r!==h.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;a+=h.count*t}let o=new e(a),s=new ni(o,t,n),c=0;for(let u=0;u<i.length;++u){let h=i[u];if(h.isInterleavedBufferAttribute){let m=c/t;for(let f=0,g=h.count;f<g;f++)for(let b=0;b<t;b++){let M=h.getComponent(f,b);s.setComponent(f+m,b,M)}}else o.set(h.array,c);c+=h.count*t}return r!==void 0&&(s.gpuType=r),s}l(GA,"mergeAttributes");y();var J6=class J6{constructor(){p(this,"_subscribers",{})}publish(e,t){!this._subscribers||!this._subscribers[e]||this._subscribers[e].forEach(function(n){typeof n=="function"&&n(t)})}on(e,t){this._subscribers||(this._subscribers={}),this._subscribers[e]=this._subscribers[e]||[],this._subscribers[e].push(t)}off(e,t){if(!this._subscribers||this._subscribers[e]==null)return;let n=this._subscribers[e].indexOf(t);n!==-1&&this._subscribers[e].splice(n,1)}destroy(){this._subscribers={}}};l(J6,"PubSub");var Rn=J6;function To(i){let e=new Rn;Object.assign(e,i);for(let t in i)if(t!=null){let n=i[t];if(typeof n=="function")continue;e["_".concat(t)]=n,Object.defineProperty(e,t,{get(){return e["_".concat(t)]},set(r){let a=e["_".concat(t)];e["_".concat(t)]=r,e.publish("".concat(t,"Changed"),{oldValue:a,newValue:e[t]})}})}return e}l(To,"tinyObservable");y();y();var $6=et(Vr());function Mo(i){i&&(i.map&&(i.map.dispose(),i.map=void 0),i.dispose())}l(Mo,"scrubMaterial");function ut(i){return typeof i=="string"?i:i.id}l(ut,"getObjectId");function xn(i,e){if(e!==void 0)return typeof i=="string"?e.find(function(t){return t.id===i}):i}l(xn,"getObject");function ba(i,e){for(let t=0;t<e.length;t++)i.push(e[t])}l(ba,"appendItems");function kg(i){if(i.scale||i.x_scale)return 1/(i.scale||i.x_scale);let e;try{let t=i.georeference[0],n=i.georeference[2],r=new Ze(t.target.x,t.target.y),a=new Ze(n.target.x,n.target.y),o=r.distanceTo(a),s=t.control.x-n.control.x,c=t.control.y-n.control.y;e=Math.sqrt(s*s+c*c)/o}catch(t){e=1,F.warn(t),F.warn("Couldn't georeference "+(i.name||i.shortName||i.id)+". Probably not enough geocoordinates.")}return e}l(kg,"getMapScale");function YA(i){let e;try{let t=i.georeference[0],n=i.georeference[2],r=new Ze(t.target.x,t.target.y),a=new Ze(n.target.x,n.target.y),o=(r.finalBearingTo(a)+360%360)*Math.PI/180,s=Math.atan2(n.control.y-t.control.y,n.control.x-t.control.x);e=-(o-s-Math.PI/2)}catch(t){e=0,F.warn(t),F.warn("Couldn't georeference "+(i.name||i.shortName||i.id)+". Probably not enough geocoordinates.")}return e}l(YA,"getNorth");function eb(i){return i.reduce((e,t)=>e.includes(t)?e:[...e,t],[])}l(eb,"uniq");function tb(i,e,t){let n=i*(Math.PI/180)/2,r=e/2;return t*Math.tan(n)/r}l(tb,"getProjectionScaleFactor");function WA(i,e,t){let n=[i],r=(e.x-i.x)/t,a=(e.y-i.y)/t,o=(e.z-i.z)/t;for(let s=1;s<t;s++){let c=i.clone(),u=new z(s*r,s*a,s*o);c.add(u),n.push(c)}return n.push(e),n}l(WA,"splitLine");var Rh=l((i,e)=>{let t=i.venue.defaultMap,n;if(e&&e.firstMap){let r=ut(e.firstMap);r==null?F.warn("Invalid map id provided to 'firstMap' option. Ignoring."):t=r}if(t){for(let r=0,a=i.maps.length;r<a;++r)if(i.maps[r].id===t){n=i.maps[r];break}}return n||(n=nc(i.maps)),n},"determineStartingMap");function ib(i,e=0){let t=3735928559^e,n=1103547991^e;for(let r=0,a;r<i.length;r++)a=i.charCodeAt(r),t=Math.imul(t^a,2654435761),n=Math.imul(n^a,1597334677);return t=Math.imul(t^t>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),n=Math.imul(n^n>>>16,2246822507)^Math.imul(t^t>>>13,3266489909),4294967296*(2097151&n)+(t>>>0)}l(ib,"cyrb53");function XA(i,e){let t=i.getCenter(new z),n=i.getSize(new z),{x:r,y:a,z:o}=n,s=r*e,c=a*e,u=o*e,h=t.x-s/2,m=t.x+s/2,f=t.y-c/2,g=t.y+c/2,b=t.z-u/2,M=t.z+u/2;return new Ye({x:h,y:f,z:b},{x:m,y:g,z:M})}l(XA,"addMarginMultiplierToBoundingBox");function Nn({from:i,to:e,duration:t=300,easing:n=$6.default.Easing.Quadratic.Out,delay:r=0,onUpdate:a=l(c=>{},"onUpdate"),onStart:o=l(()=>{},"onStart"),onComplete:s=l(()=>{},"onComplete")}){let c=new $6.default.Tween(i).to(e,t).easing(n).delay(r).onStart(o).onUpdate(u=>{a(u)});return{start(u){return new Promise(h=>{c.onComplete(()=>{s(),h()}).start(),u.tryRendering()})}}}l(Nn,"tweenPromise");var xU=l(i=>i,"linearEase"),Nh=l(i=>i*i,"quadEaseIn");function xa(i,e,t,n,r,a=xU){i=Math.max(e,Math.min(i,t));let o=(i-Math.min(e,t))/Math.abs(t-e),s=a(o);return n+s*(r-n)}l(xa,"interpolate");function ZA(i,e,t,n=Nh){if(e.length!==t.length)throw new Error("Input and output ranges must have the same number of values.");i=Math.max(e[0],Math.min(i,e[e.length-1]));let r=0;for(;r<e.length-1&&i>e[r+1];)r++;let a=(i-e[r])/(e[r+1]-e[r]),o=n(a);return t[r]+o*(t[r+1]-t[r])}l(ZA,"interpolateMulti");function Bg(i,e,t){let n=Object.getOwnPropertyDescriptor(i,e);n&&n.writable&&(i[e]=t)}l(Bg,"checkWritableBeforeWrite");y();var TU=(()=>{let i;return{getDeviceType(){if(i)return i;let{userAgent:e,platform:t,maxTouchPoints:n}=window.navigator,r=/(iphone|ipod|ipad)/i.test(e),a=t==="iPad"||t.indexOf("Mac")===0&&n>0&&!window.MSStream,o=/android/i.test(e);return i={isIpad:a,isMobile:o||r||a,isSafari12:/Version\/12.+Safari/.test(e),isFirefox:/Firefox/.test(e),isWindows:/windows/i.test(e)},i},_reset(){i=void 0}}})(),QA=TU.getDeviceType,KA=(()=>{let i,e,t;function n(){if(e!==void 0)return e;i||(i=document.createElement("canvas"));let a=i.getContext("webgl")||i.getContext("experimental-webgl");if(!a)return e;try{let o=QA().isFirefox?null:a.getExtension("WEBGL_debug_renderer_info");return e=o?a.getParameter(o.UNMASKED_RENDERER_WEBGL):a.getParameter(a.RENDERER),e}catch(o){return F.warn("Failed getting device info",o),e}}l(n,"getInfo");function r(){var o,s;if(!QA().isWindows)return!1;if(t!==void 0)return t;let a=(s=(o=MU())==null?void 0:o.toLowerCase())!=null?s:"";return t=a.includes("intel")&&(a.includes("uhd")||a.includes("iris")),t}return l(r,"shouldDisableOffscreenCanvas"),{getInfo:n,shouldDisableOffscreenCanvas:r,_setCanvas(a){i=a,e=void 0,t=void 0}}})(),MU=KA.getInfo,nb=KA.shouldDisableOffscreenCanvas;y();function rb(i,e,t){let n,r,a,o=null,s=0;t||(t={});let c=l(function(){s=t.leading===!1?0:Date.now(),o=null,a=i.apply(n,r),o||(n=r=null)},"later");return function(...u){let h=Date.now();!s&&t.leading===!1&&(s=h);let m=e-(h-s);return m<=0||m>e?(o&&(clearTimeout(o),o=null),s=h,a=i.apply(this,u),o||(n=u=null)):!o&&t.trailing!==!1&&(o=setTimeout(c,m)),a}}l(rb,"throttle");function hn(i,e,t=!1){let n=null,r=0;return function(...a){r++,r===1&&t===!0&&i.apply(this,a);let o=l(()=>{(!t||r>1)&&i.apply(this,a),n=null,r=0},"later");clearTimeout(n),n=setTimeout(o,e)}}l(hn,"debounce");var rP=et(ab());var JA="#define LAMBERT\nvarying vec3 vViewPosition;\nvarying vec4 vPosition;\nvarying vec4 finalPosition;\nvarying vec3 vWorldPosition;\nvarying vec3 worldNormal;\n\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n #include <uv_vertex>\n #include <color_vertex>\n #include <morphcolor_vertex>\n #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinbase_vertex>\n #include <skinnormal_vertex>\n #include <defaultnormal_vertex>\n #include <normal_vertex>\n #include <begin_vertex>\n #include <morphtarget_vertex>\n #include <skinning_vertex>\n #include <displacementmap_vertex>\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n #include <clipping_planes_vertex>\n vViewPosition = - mvPosition.xyz;\n #include <worldpos_vertex>\n #include <envmap_vertex>\n #include <shadowmap_vertex>\n #include <fog_vertex>\n // vertex normal relative to world space\n worldNormal = normal;\n // world position\n vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;\n}";var $A="#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nuniform float uTopOfGradient;\nuniform vec3 uShadowColor;\nuniform float uMinSideAlpha;\nuniform float uMaxSideAlpha;\nuniform float uFullGradientStart;\n\nvarying vec3 vWorldPosition;\nvarying vec3 worldNormal;\n\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_lambert_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvoid main() {\n #include <clipping_planes_fragment>\n vec4 diffuseColor = vec4(diffuse, opacity);\n \n // get the normalized world normal of vertex fragment\n vec3 surfaceNormal = normalize(worldNormal);\n\n // get angle relative to Z up\n float angle = degrees(acos(abs(dot(surfaceNormal, vec3(0.0, 0.0, 1.0)))));\n\n // only for vertical surfaces\n if (angle > 89.0 && angle < 91.0) {\n\n // get the percentage of the z position from the ground, up\n float percentFromZeroZ = max((abs(vWorldPosition.z) - uFullGradientStart) / uTopOfGradient, 0.0);\n \n // gradient based on percentage\n float alpha = smoothstep(uMinSideAlpha, uMaxSideAlpha, percentFromZeroZ);\n\n // mix the shadow color with the diffuse color based on the alpha and opacity\n diffuseColor = vec4(mix(diffuseColor.rgb, uShadowColor, 1.0 - alpha), opacity);\n }\n\n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include <logdepthbuf_fragment>\n #include <map_fragment>\n #include <color_fragment>\n #include <alphamap_fragment>\n #include <alphatest_fragment>\n #include <specularmap_fragment>\n #include <normal_fragment_begin>\n #include <normal_fragment_maps>\n #include <emissivemap_fragment>\n #include <lights_lambert_fragment>\n #include <lights_fragment_begin>\n #include <lights_fragment_maps>\n #include <lights_fragment_end>\n #include <aomap_fragment>\n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n #include <envmap_fragment>\n #include <output_fragment>\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n #include <fog_fragment>\n #include <premultiplied_alpha_fragment>\n #include <dithering_fragment>\n}\n";var CU=40,AU=.25,PU=30,SU="#bbbbbb",IU=-.5,_U=1,OU=1,sr={VISIBLE_MAP_HIGH:5,VISIBLE_MAP_LOW:4,VISIBLE_MAP_MARKER:3,ASYNC_MAP_HIGH:2,ASYNC_MAP_LOW:1,ASYNC_MAP_MARKER:0,MAP_LOADED:-1},Lc={MAP_ELEMENT:0,BUILDING_OUTLINE:1,MAP_HOVER:2,POLYGON_IMAGE:3};function DU(i){let e=[],t=[];for(let n=0;n<i.length;n++){let{zoomLevel:r,opacity:a}=i[n];e.push(r),t.push(a)}return{inputZoomLevel:e,outputOpacity:t}}l(DU,"convertToShortHandInterpolation");function aP(i,e){var t,n,r,a;(r=(n=(t=i.map)==null?void 0:t.image)==null?void 0:n.src)!=null&&r.includes(".png")||(a=i.userData)!=null&&a.isPolygonImage||(e===1?i.transparent=!1:i.transparent=!0)}l(aP,"setTransparency");var eP=new Zt,LU=new Ee(SU),qU=1;var tP={Floor:1,Wall:2,"Outer Wall":2.2,Anchors:4,Anchor:4,"Anchor Store":4,Polygon:5,Kiosks:6,"Inner Wall":7,"Non Public":7.5},iP=l(i=>{if(tP[i.layer])return tP[i.layer];let e=i.geometry.scale,t=i.geometry.position;return 100+(e?e.z:1)+(t?t.z:0)},"calculateScore"),nP,sb=class sb{constructor(e,t,n,r){p(this,"mergedObjectsGroup",new Wn);p(this,"hoverObjectsGroup",new Wn);p(this,"objectsByMaterials",new Map);p(this,"hoverableMeshChildren",[]);p(this,"_isVisible",!1);p(this,"needsUpdate",!1);p(this,"userData",{});p(this,"opacity",1);p(this,"outlineDarkeningFactor",0);p(this,"core");p(this,"mapObject");p(this,"name");p(this,"layers");p(this,"interpolationFn",null);p(this,"opacityInterpolation");this.mapObject=e,this.core=e.core,this.name=t,this.layers=n,this._isVisible=r}set isVisible(e){e!==this._isVisible&&(this._isVisible=e,this.core.publish(32,this.mapObject.mapClass))}get isVisible(){return this._isVisible}dispose(){this.hoverObjectsGroup.clear(),this.mergedObjectsGroup.children.forEach(e=>{e.userData.merged&&e.destroy()}),this.objectsByMaterials.clear()}setOpacity(e){var t,n;this.opacity=e;for(let{material:r}of[...this.mergedObjectsGroup.children,...this.hoverableMeshChildren]){let a=(n=(t=r.userData)==null?void 0:t.originalOpacity)!=null?n:1,o=xa(e,0,1,0,a);aP(r,o),r.opacity=o,r.needsUpdate=!0}e===0?(this.hoverObjectsGroup.visible=!1,this.mergedObjectsGroup.visible=!1):(this.hoverObjectsGroup.visible=!0,this.mergedObjectsGroup.visible=!0)}setOutlineDarkeningFactor(e){e!==this.outlineDarkeningFactor&&(this.outlineDarkeningFactor=e,this.mergedObjectsGroup.children.forEach(t=>{var n;if(t.type==="LineSegments"){let r=(n=t.material.userData)==null?void 0:n.originalColor,a=(0,rP.default)(r).darken(e).toRgbString();t.material.color.set(a),t.material.needsUpdate=!0}}))}};l(sb,"LayerGroup");var kh=sb,lb=class lb extends Rn{constructor(t,n,r,a,o){var s,c,u;super();p(this,"_flippableImagedById",{});p(this,"_started",!1);p(this,"_loaderPromise");p(this,"_promiseResolve",l(()=>{},"_promiseResolve"));p(this,"_showCount");p(this,"_taskScheduler");p(this,"_highPriorityTasks");p(this,"_lowPriorityTasks");p(this,"_markerTasks");p(this,"_mapLoadedTasks");p(this,"_visibilityLatch");p(this,"_objLoadedComplete");p(this,"_hoverableMeshChildren",[]);p(this,"imageMeshesById",{});p(this,"visible",!1);p(this,"objectsDictionary",{});p(this,"north",0);p(this,"mapScale",null);p(this,"object",new Zt);p(this,"labels",new Set);p(this,"tooltips",new Set);p(this,"markers",new Set);p(this,"box",new Ye);p(this,"textObjects",[]);p(this,"labelBatchCreator",null);p(this,"imagesToFlip",[]);p(this,"seenByCamera",!1);p(this,"threeJSMarkers",new Map);p(this,"core");p(this,"mapClass");p(this,"polygonMeshesById");p(this,"loadMethod");p(this,"loadAsync");p(this,"id");p(this,"mapRenderingStrategy");p(this,"needsUpdate",!1);p(this,"layerGroups",new Map);p(this,"loadedLayerNames",[]);p(this,"loadedElements",[]);p(this,"boundingBox");p(this,"elements",[]);p(this,"loadMethodUsed","");p(this,"mapLoaded",null);p(this,"useLivePolygons",!1);if(this.core=a,this.mapClass=t,this.polygonMeshesById=n,this._showCount=r,this.loadMethod="json",this.loadAsync=(s=o.async)!=null?s:!1,this.useLivePolygons=(c=o.useLivePolygons)!=null?c:!1,this._taskScheduler=o.taskScheduler,this.id=this.mapClass.id,this.mapRenderingStrategy=(o==null?void 0:o.mapRenderStrategy)||"SINGLE_GEOMETRY",this._highPriorityTasks=new fa({name:"_highPriorityTasks",onComplete:this._checkIfLoaded.bind(this),priority:!this.visible&&this.loadAsync?sr.ASYNC_MAP_HIGH:sr.VISIBLE_MAP_HIGH,postponeOnAdd:!this.visible&&!this.loadAsync,userdata:{}}),this._lowPriorityTasks=new fa({name:"_lowPriorityTasks",onComplete:this._checkIfLoaded.bind(this),priority:!this.visible&&this.loadAsync?sr.ASYNC_MAP_LOW:sr.VISIBLE_MAP_LOW,postponeOnAdd:!this.visible&&!this.loadAsync,userdata:{}}),this._markerTasks=new fa({name:"_markerTasks",priority:!this.visible&&this.loadAsync?sr.ASYNC_MAP_MARKER:sr.VISIBLE_MAP_MARKER,postponeOnAdd:!this.visible,userdata:{}}),this._mapLoadedTasks=new fa({name:"_mapLoadedTasks",priority:sr.MAP_LOADED,postponeOnAdd:!this.isReady(),userdata:{}}),this._visibilityLatch=null,this._objLoadedComplete=!1,this._loaderPromise=new Promise((h,m)=>{this._promiseResolve=h,nP=m}),this._objLoaded=this._objLoaded.bind(this),this._objLoadedMerged=this._objLoadedMerged.bind(this),this.enableImageFlipping=this.enableImageFlipping.bind(this),this.destroy=this.destroy.bind(this),this.core.on(32,()=>{this.needsUpdate=!0}),(u=this.core.options)!=null&&u.shadingAndOutlines){let h=l(()=>{let m=xa(this.core.controls.getZoomLevel(),16,19,0,PU);this.layerGroups.forEach(f=>{f.setOutlineDarkeningFactor(m)}),this.core.tryRendering()},"processOutline");this.core.on(0,()=>{h()}),this.core.on(9,()=>{h()})}}fade(t,{direction:n="in",onComplete:r=l(()=>{},"onComplete"),duration:a=300}){let o=typeof t=="string"?[this.layerGroups.get(t)]:this.layerGroups,s={};return o.forEach(c=>{s[c.name]=c.opacity}),{start:()=>new Promise(c=>{Nn({from:{opacity:n==="in"?0:1},to:{opacity:n==="in"?1:0},duration:a,onStart:()=>{n==="out"&&o.forEach(u=>{u.isVisible=!1})},onComplete:()=>{n==="in"&&o.forEach(u=>{u.isVisible=!0}),r(),c()},onUpdate:({opacity:u})=>{o.forEach(h=>{let m,f=s[h.name];n==="in"?m=xa(u,0,1,f,1):m=xa(u,0,1,0,f),h.setOpacity(m)}),this.core.tryRendering()}}).start(this.core),this.core.tryRendering()})}}fadeIn(t=Array.from(this.layerGroups.keys()),n={onComplete:()=>{},duration:300}){return this.fade(t,{direction:"in",onComplete:n==null?void 0:n.onComplete,duration:n==null?void 0:n.duration})}fadeOut(t=Array.from(this.layerGroups.keys()),n={onComplete:()=>{},duration:300}){return this.fade(t,{direction:"out",onComplete:n==null?void 0:n.onComplete,duration:n==null?void 0:n.duration})}renderLayerGroup(t=[],n=[]){let r=it();Array.from(this.layerGroups.values()).forEach(o=>{o.isVisible=!1,this.object.remove(o.mergedObjectsGroup),this.object.remove(o.hoverObjectsGroup),o.dispose()});let a=this.processLayerGroup(r,t,n);this.layerGroups.clear(),this.layerGroups.set(r,a),a.isVisible=!0,this.object.add(a.mergedObjectsGroup),this.object.add(a.hoverObjectsGroup),this.needsUpdate=!0}processLayers(t,n=[],r=[]){let a=[];return n.length===0&&r.length===0?a=[]:n.length>0?a=t.filter(o=>n.includes(o)):a=[...t],r.length>0&&(a=a.filter(o=>!r.includes(o))),a}processLayerGroup(t=it(),n=[],r=[],a=!0,o=this.loadedElements,s=Lc.MAP_ELEMENT){var h,m,f,g;let c=new kh(this,t,[],a),u=this.processLayers([...this.loadedLayerNames,...n],n,r);if(u.length===0&&o.length===0)return c;for(let b of o){if(this.layerGroups.has(t)?c=this.layerGroups.get(t):(c=new kh(this,t,eb(u),a),c.isVisible=a,c.mergedObjectsGroup.name=this.mapClass.id,this.layerGroups.set(t,c)),b&&b.visible&&b.polygon.layer&&u.includes(b.polygon.layer)){c.objectsByMaterials.has(b.material)?(h=c.objectsByMaterials.get(b.material))==null||h.push(b):c.objectsByMaterials.set(b.material,[b]);let M=b.material.clone();M.userData={layer:t},b.mesh.material=M,b.mesh.visible=!1,b.mesh.material.transparent=!0,b.mesh.renderOrder=Lc.MAP_HOVER,c.hoverObjectsGroup.add(b.mesh),b.isInflated||c.hoverableMeshChildren.push(b.mesh)}b&&b.imageMesh&&b.polygon.layer&&u.includes(b.polygon.layer)&&(b.imageMesh.material.userData={...b.imageMesh.material.userData,layer:t},b.imageMesh.renderOrder=Lc.POLYGON_IMAGE,c.mergedObjectsGroup.add(b.imageMesh))}for(let[b,M]of c.objectsByMaterials){let x=qh(M.map(_=>_.geometry),!1),T=b.clone(),E;if((m=this.core.options)!=null&&m.shadingAndOutlines){T.polygonOffset=!0,T.polygonOffsetFactor=1,T.polygonOffsetUnits=1,T.onBeforeCompile=q=>{q.vertexShader=JA,q.fragmentShader=$A,q.uniforms.uTopOfGradient={value:AU/(this.core.referenceMap.scale||1)},q.uniforms.uShadowColor={value:LU},q.uniforms.uMinSideAlpha={value:IU},q.uniforms.uMaxSideAlpha={value:_U},q.uniforms.uFullGradientStart={value:OU}},T.needsUpdate=!0;let _=new AT(x,CU),P=new MT({linewidth:2,userData:{originalColor:T.color.getHexString()}});E=new ET(_,P)}T.userData={...T.userData,layer:c.name,originalOpacity:(f=T.opacity)!=null?f:1},T.alphaTest=.01,aP(T,T.userData.originalOpacity);let S=new qe(x,T);S.renderOrder=s,c.mergedObjectsGroup.add(S),(g=this.core.options)!=null&&g.shadingAndOutlines&&c.mergedObjectsGroup.add(E)}return a===!1&&c.setOpacity(0),this.loadedLayerNames=eb([...this.loadedLayerNames,...n]),c}get hoverableMeshChildren(){if(this.needsUpdate){this._hoverableMeshChildren=[];for(let t of this.layerGroups.values())t.isVisible&&this._hoverableMeshChildren.push(...t.hoverableMeshChildren);this.needsUpdate=!1}return this._hoverableMeshChildren}async _objLoadedMerged(t){if(t.elements){this.elements=t.elements;let n=Object.values(this.elements),r=new z(1/0,1/0,0),a=new z(-1/0,-1/0,0);this.boundingBox={min:r,max:a},t=t.container,this.object=t,this.object.userData.type="mappedin_map",this.object.userData.mapId=this.mapClass.id,await Promise.all(n.map(o=>(o.polygon.layer&&!this.loadedLayerNames.includes(o.polygon.layer)&&this.loadedLayerNames.push(o.polygon.layer),o.load()))).then(o=>{var c,u,h,m,f,g,b,M,x,T,E,S,_,P,q,D,U;o.forEach(R=>{let B=R.getBoundingBox();if(r.min(B.min),a.max(B.max),R.imageVisible){let j=R.imageMesh;this.imageMeshesById[j.name]=j,this.polygonMeshesById[j.name]=j,R.on("texture-loaded",G=>{this.core.publish(1,G)})}R.mesh&&(this.objectsDictionary[R.polygon.id]=R.mesh,this.polygonMeshesById[R.polygon.id]=R.mesh)}),this.loadedElements=o;let s;if(((u=(c=this.core.options)==null?void 0:c.dynamicFocus)==null?void 0:u.baseMap)!=null)if(((m=(h=this.core.options)==null?void 0:h.dynamicFocus)==null?void 0:m.baseMap)===this.mapClass){let R=[];for(let B of this.loadedElements){let j=this.core.venue.getCollectionItemById("polygons",B.polygon.id),G=(f=j==null?void 0:j.locations)==null?void 0:f.find(X=>X.toMap!=null),Q=G?this.core.venue.mapGroups.find(X=>X.maps.map(ne=>ne.id).includes(G.toMap)):null;if(Q){let X="building-outline-".concat(Q.id),ne=this.processLayerGroup(X,this.loadedLayerNames,[],!0,[B],Lc.BUILDING_OUTLINE);ne.userData={location:((b=(g=this.core.options.dynamicFocus)==null?void 0:g.keepLayersActiveOnBaseMap)!=null?b:[]).length?G:void 0,toMapId:G==null?void 0:G.toMap,mapGroupId:Q.id},this.layerGroups.set(X,ne),this.object.add(ne.mergedObjectsGroup),this.object.add(ne.hoverObjectsGroup)}else R.push(B)}R.length>0?s=this.processLayerGroup("default",this.loadedLayerNames,[],!0,R):(s=new kh(this,"default",this.loadedLayerNames,!0),s.isVisible=!0)}else s=this.processLayerGroup("default",this.loadedLayerNames,[],!1,this.loadedElements);else if(Array.isArray((M=this.core.options)==null?void 0:M.layerGroups)){let R=(x=this.core.options)==null?void 0:x.layerGroups.flatMap(B=>B.layers);s=this.processLayerGroup("default",void 0,R,!0);for(let B of(T=this.core.options)==null?void 0:T.layerGroups){let j=it(),G=this.processLayerGroup(j,B.layers,void 0,(E=B.isVisible)!=null?E:!0,this.loadedElements);if((B==null?void 0:B.opacityInterpolation)!=null&&G.isVisible){let Q=B.opacityInterpolation;Array.isArray(B.opacityInterpolation)&&(Q=DU(B.opacityInterpolation)),Q instanceof Object&&"inputZoomLevel"in Q&&"outputOpacity"in Q&&((Q==null?void 0:Q.inputZoomLevel)==null||(Q==null?void 0:Q.outputOpacity)==null?F.error("Invalid opacity interpolation"):G.interpolationFn=X=>{if(Q instanceof Object&&"inputZoomLevel"in Q&&"outputOpacity"in Q)return ZA(X,Q.inputZoomLevel,Q.outputOpacity)})}G.isVisible&&(this.layerGroups.set(j,G),this.object.add(G.mergedObjectsGroup),this.object.add(G.hoverObjectsGroup))}}else if((_=(S=this.core.options)==null?void 0:S.loadOptions)!=null&&_.outdoorGeometryLayers&&Array.isArray((q=(P=this.core.options)==null?void 0:P.loadOptions)==null?void 0:q.outdoorGeometryLayers)&&((U=(D=this.core.options)==null?void 0:D.loadOptions)==null?void 0:U.outdoorGeometryLayers.length)>0){s=this.processLayerGroup("default",this.loadedLayerNames,this.core.options.loadOptions.outdoorGeometryLayers,!0,this.loadedElements);let R=this.processLayerGroup("outdoor-geometry",this.core.options.loadOptions.outdoorGeometryLayers,[],!0,this.loadedElements);this.layerGroups.set("outdoor-geometry",R),this.object.add(R.mergedObjectsGroup),this.object.add(R.hoverObjectsGroup)}else s=this.processLayerGroup("default",this.loadedLayerNames,[],!0,this.loadedElements);this.layerGroups.set("default",s),this.object.add(s.mergedObjectsGroup),this.object.add(s.hoverObjectsGroup),this.needsUpdate=!0,this._promiseResolve(this)}).catch(o=>{throw F.error(o),new Error("Error loading map using SINGLE_GEOMETRY strategy")}),this._objLoadedComplete=!0,this._onRootObjectCreated(),this._checkIfLoaded()}return this._promiseResolve(this)}_objLoaded(t){if(t.elements){this.elements=t.elements;let r=Object.values(this.elements);this.loadAsync&&r.sort((s,c)=>(s.sortScore===null&&(s.sortScore=iP(s.polygon)),c.sortScore===null&&(c.sortScore=iP(c.polygon)),c.sortScore-s.sortScore));let a=new z(1/0,1/0,0),o=new z(-1/0,-1/0,0);for(let s of r){let c=s.getBoundingBox();a.min(c.min),o.max(c.max),this.loadAsync?this._addPendingHighPriorityTask("addPolygon",()=>this._addElementToScene(s)):this._addElementToScene(s)}this.boundingBox={min:a,max:o},t=t.container}let n=t.children;for(let r=0,a=n.length;r<a;++r){let o=n[r];this.objectsDictionary[o.name]=o,this.polygonMeshesById[o.name]=o}return this.object=t,this.object.userData.type="mappedin_map",this.object.userData.mapId=this.mapClass.id,this._objLoadedComplete=!0,this._onRootObjectCreated(),this._checkIfLoaded(),this._promiseResolve(this)}loadPolygonNow(t){if(!this.elements)return;let n=this.elements[t];n&&this._addElementToScene(n)}_addElementToScene(t){if(!this.objectsDictionary[t.polygon.id]){if(t.imageVisible&&t.on("texture-loaded",n=>{this.core.publish(1,n)}),t.mesh){let n=t.mesh;this.objectsDictionary[n.name]=n,this.polygonMeshesById[n.name]=n}if(t.imageMesh){let n=t.imageMesh;this.imageMeshesById[n.name]=n,this.objectsDictionary[n.name]=n,this.polygonMeshesById[n.name]=n}}}load(){if(!this._started){this._started=!0;try{let t=this.useLivePolygons&&this.core.venue.polygons.filter(a=>a.map.id===this.mapClass.id),n=!t&&this.mapClass.scene.polygons;if((this.loadMethod==="json"||this.loadMethod===void 0)&&(t||n)){let a=t||n;this.loadMethodUsed="JSON - "+(t?"live":"published"),Dc.load(a,this.mapClass,this.mapRenderingStrategy).then(this.mapRenderingStrategy==="MULTI_GEOMETRY"?this._objLoaded:this._objLoadedMerged)}else throw new Error("Error parsing JSON scene")}catch{nP("ERROR: No 3D files for map "+(this.mapClass.name||this.mapClass.shortName||this.mapClass.id||this.mapClass))}}return this._loaderPromise}_dispose(t){let n=t;for(let r=n.children.length-1;r>=0;r--)this._dispose(n.children[r]);n.destroy(),delete this.objectsDictionary[n.name],delete this.polygonMeshesById[n.name]}destroy(){for(let t of this.hoverableMeshChildren)t.destroy();this.removeLabels(),this._removeThreeJSMarkers(),this.disableAllImageFlipping(),this.elements=[],this._dispose(this.object),this.objectsDictionary={},this.polygonMeshesById={}}add(t){var n;eP.add(t),(n=this.load())==null||n.then(()=>{eP.children.filter(a=>a.uuid===t.uuid).length===1&&this.object.add(t)})}getPositionLatLon(t,n){let r=this.mapClass.createCoordinate(t,n);return this.core.convertTo3DMapPosition(r)}addToObject(t){t.applyMatrix4(new tt().copy(this.object.matrix).invert());let n=1/this.object.scale.x;t.scale.set(n,n,n),this.object.add(t)}translateChild(t,n){t.position.set(n.x,n.y,n.z),t.applyMatrix4(new tt().copy(this.object.matrix).invert());let r=1/this.object.scale.x;t.scale.set(r,r,r)}getMapScale(){return this.mapScale==null&&(this.mapScale=kg(this.mapClass)),this.mapScale}getNorth(){return this.north==null&&(this.north=YA(this.mapClass)),this.north}enableImageFlipping(t,n){if(n=n||0,!this._flippableImagedById[t]&&this.object&&Object.keys(this.object).length>0){let r=this.object.getObjectByName(t+"_image");if(r){let a=new ub({image:r,rotation:n});this.imagesToFlip.push(a),this.core.publish(4),this.core.publish(2),this._flippableImagedById[t]=!0}}}disableAllImageFlipping(){for(let t=0,n=this.imagesToFlip.length;t<n;t++)this.imagesToFlip[t].reset();this.imagesToFlip=[],this._flippableImagedById={}}isReady(){return(this.loadAsync?this._highPriorityTasks.isComplete():this.isFullyLoaded())&&this._objLoadedComplete}isFullyLoaded(){return this._highPriorityTasks.isComplete()&&this._lowPriorityTasks.isComplete()}onVisible(){this._visibilityLatch!==!0&&(this.loadAsync?(this._taskScheduler.setTaskPriority(this._highPriorityTasks,sr.VISIBLE_MAP_HIGH),this._taskScheduler.setTaskPriority(this._lowPriorityTasks,sr.VISIBLE_MAP_LOW),this._taskScheduler.resumeTask(this._markerTasks)):(this._taskScheduler.resumeTask(this._highPriorityTasks),this._taskScheduler.resumeTask(this._lowPriorityTasks),this._taskScheduler.resumeTask(this._markerTasks)),this._visibilityLatch=!0);for(let t in this.imageMeshesById)this.imageMeshesById[t].visible=!0;for(let t of this.object.children)t.name==="path"&&(t.visible=!0);this.visible=!0,this.core.publish(8)}onInvisible(){this._visibilityLatch!==!1&&(this.loadAsync?(this._taskScheduler.setTaskPriority(this._highPriorityTasks,sr.ASYNC_MAP_HIGH),this._taskScheduler.setTaskPriority(this._lowPriorityTasks,sr.ASYNC_MAP_LOW),this._taskScheduler.postponeTask(this._markerTasks)):(this._taskScheduler.postponeTask(this._highPriorityTasks),this._taskScheduler.postponeTask(this._lowPriorityTasks),this._taskScheduler.postponeTask(this._markerTasks)),this._visibilityLatch=!1);for(let t in this.imageMeshesById)this.imageMeshesById[t].visible=!1;for(let t of this.object.children)t.name==="path"&&(t.visible=!1);this.visible=!1,this.core.publish(8)}addPendingMarkerTask(t,n){this._taskScheduler.scheduleTask(new bt({name:"addMarker",group:this._markerTasks,callback:n,userdata:{marker:t}}))}addPendingLowPriorityTask(t,n){this._taskScheduler.scheduleTask(new bt({name:t,group:this._lowPriorityTasks,callback:n}))}addPendingMapLoadedTask(t,n){this._taskScheduler.scheduleTask(new bt({name:t,group:this._mapLoadedTasks,callback:n})),this._checkIfLoaded()}_addPendingHighPriorityTask(t,n){this._taskScheduler.scheduleTask(new bt({name:t,group:this._highPriorityTasks,callback:n}))}addThreeJSMarker(t){if(!(t.object instanceof Zt))throw new Error("threeJSMarker `object` must be an instance of `Object3D`");let n=new Ug({mapId:this.id,object:t.object}),r={object:t.object};return t.object.layers.set(Ct.ANIMATED),t.position!=null&&t.object.position.copy(t.position),t.rotation!=null&&t.object.rotation.copy(t.rotation),t.scale!=null&&t.object.scale.copy(t.scale),this.threeJSMarkers.set(n,r),this._objLoadedComplete?this.addToObject(r.object):this.load().then(()=>{n._deleted||this.addToObject(r.object)}),n}removeThreeJSMarker(t){let n=this.threeJSMarkers.get(t);return n!=null?(t._deleted=!0,this.threeJSMarkers.delete(t),this._objLoadedComplete&&this.object.remove(n.object),t._destroy(),!0):!1}_removeThreeJSMarkers(){if(this._objLoadedComplete)for(let[t,n]of this.threeJSMarkers.entries())this.object.remove(n.object),t._destroy();this.threeJSMarkers.clear()}removeLabels(){if(this.labels.forEach(t=>{t.disable(),t.removeSelf()}),this.labels=new Set,!!Array.isArray(this.textObjects)){for(let t=0,n=this.textObjects.length;t<n;++t){let r=this.textObjects[t];r.removeSelf(!0),r=void 0}this.textObjects=[]}}_checkIfLoaded(){this.isReady()&&this._taskScheduler.scheduleTask(new bt({name:"onMapLoaded",callback:()=>{this._taskScheduler.resumeTask(this._mapLoadedTasks),this.mapLoaded&&typeof this.mapLoaded==typeof Function&&(this.mapLoaded(),this.mapLoaded=null)}}))}_onRootObjectCreated(){for(let t of this.threeJSMarkers.values()){let n=t;this.object.add(n.object)}}_popinChildObjects(){this.loadAsync||this.mapRenderingStrategy==="SINGLE_GEOMETRY"||this.object.traverse(t=>{t.children.length===0&&t.type==="Mesh"&&t.material.map&&(t.visible=!1,this._addPendingHighPriorityTask("addPolygon",()=>{t.visible=!0,this._showCount>=qU&&(this._showCount=0,this.core.publish(3)),this._showCount++}))})}};l(lb,"MapObject");var ob=lb,cb=class cb{constructor(e){p(this,"_deleted",!1);p(this,"_mapId");p(this,"_object");this._mapId=e.mapId,this._object=e.object}get object(){return this._object}_destroy(){this._mapId=null,this._object=null}};l(cb,"ThreeJSMarkerHandle");var Ug=cb,Vg=ob;y();var RU={STATIC:0,ANIMATED:1,ALWAYS_ON_TOP:2},Ct=RU;y();y();var oP="precision mediump float;\n\nuniform sampler2D textureLabel;\n\nvarying vec2 vUV;\nvarying vec3 vColor;\n\nvoid main() {\n gl_FragColor = texture2D(textureLabel, vUV);\n gl_FragColor.rgb = vColor;\n}";var sP="attribute vec2 position;\nattribute vec3 origin;\nattribute vec2 size;\nattribute float rotation;\nattribute vec4 uv;\nattribute vec3 color;\n\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat4 modelMatrix;\n\nvarying vec2 vUV;\nvarying vec3 vColor;\n\nvoid main() {\n vec4 mapDirectionVector = vec4(0, 1, 0, 0) * viewMatrix * modelMatrix;\n float mapDirection = atan(mapDirectionVector.y, mapDirectionVector.x);\n\n float cosRotation = cos(rotation);\n float sinRotation = sin(rotation);\n\n mat4 rotationMatrix = mat4(\n vec4(cosRotation, -sinRotation, 0.0, 0.0),\n vec4(sinRotation, cosRotation, 0.0, 0.0),\n vec4(0.0, 0.0, 1.0, 0.0),\n vec4(0.0, 0.0, 0.0, 1.0)\n );\n\n mat4 translate = mat4(\n vec4(1, 0, 0, 0),\n vec4(0, 1, 0, 0),\n vec4(0, 0, 1, 0),\n vec4(origin, 1)\n );\n\n gl_Position = projectionMatrix *\n viewMatrix *\n modelMatrix *\n translate *\n rotationMatrix *\n (vec4(position * size - vec2(0, size.y / 2.0), 0, 1));\n\n\n vec2 uvStart = uv.xy;\n vec2 uvSize = uv.zw;\n\n if (sin(mapDirection + rotation) > 0.0) {\n vUV = position * uvSize + vec2(uvStart.x, uvStart.y - uvSize.y);\n } else {\n vUV = (vec2(1, 1) - position) * uvSize + vec2(uvStart.x, uvStart.y - uvSize.y); \n }\n\n vColor = color;\n} ";var db={MARGIN:2,HEIGHT_MARGIN:.5,SIZE:1.2},jg=56,BU=jg/db.SIZE,uP=jg/2,FU=1/uP,UU=64,lP=16,qc=4,fb=class fb{constructor(){this.x=0,this.y=0,this.width=0,this.height=0,this.layer=null,this.index=null}layout(e,t,n,r,a,o){let s=this.canvasBounds.rotation*Math.PI/180,c=this.width*this.pixelsPerMu,u=this.height*this.pixelsPerMu,h;this.canvasBounds.align=="left"?h=this.margin:this.canvasBounds.align=="right"?h=this.canvasBounds.maxWidth-c-this.margin:this.canvasBounds.align=="center"&&(h=(this.canvasBounds.maxWidth-c-this.margin)/2);let m=h*Math.cos(s),f=-h*Math.sin(s),g=this.index;t.setXYZ(g,this.canvasBounds.x-e.width/2+m,-this.canvasBounds.y+e.height/2+f,this.z+.1),n.setXY(g,c,u),r.setX(g,s);let b=this.layer.canvas;a.setXYZW(g,this.x/b.width,1-this.y/b.height,this.width/b.width,this.height/b.height),o.setXYZ(g,this.color.r,this.color.g,this.color.b),t.needsUpdate=!0,n.needsUpdate=!0,r.needsUpdate=!0,a.needsUpdate=!0,o.needsUpdate=!0}};l(fb,"Label");var hb=fb,zs=class zs{constructor(e,t,n,r){this.x=e,this.y=t,this.width=n,this.height=r}leftOverSpace(e){return this.width<e.width||this.height<e.height?null:this.height*(this.width-e.width)+this.width*(this.height-e.height)}split(e,t,n){e.x=this.x,e.y=this.y,this.width-e.height<lP&&this.height-e.height<lP?t.splice(n,1):this.width===e.width?t.splice(n,1,new zs(this.x,this.y+e.height,this.width,this.height-e.height)):this.height===e.height?t.splice(n,1,new zs(this.x+e.width,this.y,this.width-e.width,this.height)):t.splice(n,1,new zs(this.x+e.width,this.y,this.width-e.width,e.height),new zs(this.x,this.y+e.height,this.width,this.height-e.height))}};l(zs,"Slot");var zg=zs,mb=class mb{constructor(e,t,n,r){let a=5;for(;Math.pow(2,a)<r;)a+=1;for(r=Math.pow(2,a),a=10;Math.pow(2,a)<n;)a+=1;n=Math.pow(2,a),this.atlas=e,this.map=t,this.canvasWidth=n,this.canvasHeight=r,this.canvas=document.createElement("canvas"),this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.context=this.canvas.getContext("2d"),this.context.textBaseline="bottom",this.spaces=[new zg(0,0,this.canvas.width,this.canvas.height)],this.free=[],this.labels=[],this.count=UU;let o=new Float32Array(this.count*3),s=new Float32Array(this.count*2),c=new Float32Array(this.count),u=new Float32Array(this.count*4),h=new Float32Array(this.count*3);this.uv=new ms(u,4,!1,1),this.uv.set(u),this.uv.needsUpdate=!0,this.origin=new ms(o,3,!1,1),this.origin.set(o),this.origin.needsUpdate=!0,this.size=new ms(s,2,!1,1),this.size.set(s),this.size.needsUpdate=!0,this.rotation=new ms(c,1,!1,1),this.rotation.set(c),this.rotation.needsUpdate=!0,this.color=new ms(h,3,!0,1),this.color.set(h),this.color.needsUpdate=!0;for(let g=0;g<this.count;g++)this.zero(g);let m=new Float32Array([0,0,0,0,1,0,1,1,0,1,0,0]),f=[0,3,1,3,2,1];this.geometry=new LT,this.geometry.setIndex(f),this.geometry.setAttribute("position",new ni(m,3)),this.geometry.setAttribute("size",this.size),this.geometry.setAttribute("origin",this.origin),this.geometry.setAttribute("rotation",this.rotation),this.geometry.setAttribute("uv",this.uv),this.geometry.setAttribute("color",this.color),this.texture=new ad(this.canvas),this.texture.anisotropy=16,this.material=new ST,this.material.vertexShader=sP,this.material.fragmentShader=oP,this.material.uniforms={textureLabel:{value:this.texture}},this.material.transparent=!0,this.mesh=new qe(this.geometry,this.material),this.obj=new Zt,this.obj.add(this.mesh),this.obj.frustumCulled=!1,this.mesh.frustumCulled=!1,this.map.add(this.obj)}space(){return this.spaces.map(e=>e.width*e.height).reduce((e,t)=>e+t)}zero(e){this.origin.array[e*3+0]=0,this.origin.array[e*3+1]=0,this.origin.array[e*3+2]=0,this.size.array[e*2+0]=0,this.size.array[e*2+1]=0,this.rotation.array[e]=0,this.uv.array[e*4+0]=0,this.uv.array[e*4+1]=0,this.uv.array[e*4+2]=0,this.uv.array[e*4+3]=0,this.color.array[e*3+0]=0,this.color.array[e*3+1]=0,this.color.array[e*3+2]=0,this.origin.needsUpdate=!0,this.size.needsUpdate=!0,this.rotation.needsUpdate=!0,this.uv.needsUpdate=!0,this.color.needsUpdate=!0}findSpace(e){if(this.free.length!=0&&this.labels.length==this.count)return!1;let t=-1;for(let n=0;n<this.spaces.length;n++){let r=this.spaces[n].leftOverSpace(e);r!==null&&(t===-1||this.spaces[n].leftOverSpace(e)<r)&&(t=n)}return t!==-1&&(this.spaces[t].split(e,this.spaces,t),e.layer=this,this.free.length===0?(e.index=this.labels.length,this.labels.push(e)):(e.index=this.free.pop(),this.labels[e.index]=e)),t!=-1}remove(e){if(e.index===void 0)return;this.zero(e.index),this.context.clearRect(e.x,e.y,e.width,e.height),this.spaces.push(new zg(e.x,e.y,e.width,e.height)),this.free.push(e.index),this.labels[e.index]=null;let t=!0;for(let n of this.labels)if(t=t&&n!=null,!t)break;t&&this.atlas.removeLayer(this)}render(e){this.context.save(),this.context.rect(e.x+1,e.y+1,e.width-1*2,e.height-1*2),this.context.clip(),this.context.font="".concat(e.size,"px ").concat(e.font),this.context.strokeStyle=e.color,this.context.lineWidth=e.size*2.5/jg;for(let t of e.lines)this.context.strokeText(t.text,t.x+e.x+qc,t.y+e.y+t.height+qc),this.context.fillText(t.text,t.x+e.x+qc,t.y+e.y+t.height+qc);this.texture.needsUpdate=!0,this.context.restore()}onWebGLContextRestored(){this.canvas=document.createElement("canvas"),this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.context=this.canvas.getContext("2d"),this.context.textBaseline="bottom",this.texture=new ad(this.canvas),this.texture.anisotropy=16,this.material.uniforms.textureLabel.value=this.texture;for(let e of this.labels)e!=null&&this.render(e)}dispose(){this.geometry.dispose(),this.material.dispose(),this.texture.dispose()}};l(mb,"AtlasLayer");var pb=mb,gb=class gb{constructor(){this.layers=[],this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d")}addLabel(e,t,n,r,a,o){let s=0,c=0;for(let m of t)c=Math.max(Math.ceil(m.width+m.x),c),s=Math.max(Math.ceil(m.height+m.y),s);let u=new hb;u.map=e,u.width=c+qc*2,u.height=s+qc*2,u.lines=t,u.font=n,u.size=r,u.canvasBounds=a.canvasBounds,u.margin=a.margin,u.heightMargin=a.heightMargin,u.pixelsPerMu=o,u.z=a.height,u.view=a,u.color=a.color;let h;for(let m of this.layers){if(h=m,h.map!==e){h=null;continue}if(h.findSpace(u))break;h=null}if(h==null){if(h=new pb(this,e,u.width,u.height),this.layers.push(h),!h.findSpace(u))return;this.layers.sort((m,f)=>f.space()-m.space())}return h.render(u),u.layout(e.mapClass,h.origin,h.size,h.rotation,h.uv,h.color),u.layer=h,u}removeLayer(e){let t=this.layers.indexOf(e);t!=-1&&this.layers.splice(t,1)}measure(e,t,n){return this.context.font="".concat(n,"px ").concat(t),this.context.measureText(e)}onWebGLContextRestored(){for(let e of this.layers)e.onWebGLContextRestored()}dispose(){for(let e of this.layers)e.dispose()}};l(gb,"Atlas");var js=gb,vb=class vb{constructor(e,t,n,r,a,o,s,c,u){p(this,"setHoverColor",l(e=>{this.hoverColor=new Ee(e)},"setHoverColor"));let h=xn(e.polygon,t.polygons);this.id=h.id,this.text=(e.shortText||e.text).trim(),this.stateText=e.stateText?" ("+e.stateText+")":"",this.fullText=this.stateText?this.text+this.stateText:this.text,this.font=e.font||r,this.atlas=u,this.canvasBounds=e.canvasBounds||h.canvasBounds,this.mapScale=n.getMapScale()||1,this.margin=(e.margin||db.MARGIN)*this.mapScale,this.heightMargin=(e.heightMargin||db.HEIGHT_MARGIN)*this.mapScale,this.scaleMin=e.scaleMin||.25,this.scaleStep=e.scaleStep>0?e.scaleStep:.25,this.multiline=e.multiline==null?!0:e.multiline,this.height=Number(e.height)||null,this.polygonMeshesById=a,this.polyId=e.polygonId||ut(e.polygon,t.polygons),this.map=n,this.color=new Ee(e.color||c.colors.text||"#000000"),this.hoverColor=new Ee(e.hoverColor||this.color),this.baseColor=this.color,this.hideOnCreate=!1,this.hoverLabelText=e.text.trim(),this.fontSize=e.fontSize*this.mapScale||e.size*BU||jg,this.hoverLabelMode=e.hoverLabelMode3D||zr.MODES.ALL,this.hoverLabelClass=e.hoverLabelClass||"mMapviewHoverLabel",this.showHoverLabel=this.hoverLabelMode==zr.MODES.ALL||this.hoverLabelMode==zr.MODES.NO_TEXT_LABEL_ONLY,this.hoverIfLabelFails=this.hoverLabelMode==zr.MODES.ALL||this.hoverLabelMode==zr.MODES.NO_TEXT_LABEL_ONLY,this.textLabelsByPolygonId=o,this.map.textObjects.push(this)}create(){let e=this;if(this.doNotCreate)return;if(e.canvasBounds==null){e.invalid=!0,e.message="No Canvas Bounds. Can't draw text '"+e.text+"'",e.showHoverLabel=e.hoverIfLabelFails;return}e.showHoverLabel=this.hoverLabelMode==zr.MODES.ALL;let t=FU*this.mapScale,n=uP/this.mapScale,r=[this.text];this.stateText.length&&r.unshift(this.fullText);for(let c of r){let u=c.split(" ").map(function(T){return{width:e.atlas.measure(T,e.font,e.fontSize).width,word:T}}),h=(this.canvasBounds.maxWidth-this.margin*2)*n,m=(this.canvasBounds.maxHeight-this.heightMargin*2)*n,f=(1-this.scaleMin)/this.scaleStep,g=0,b=this.atlas.measure(" ",this.font,this.fontSize).width,M=VU("".concat(this.fontSize,"px ").concat(this.font));for(let T=0,E=u.length;T<E;T++){let S=u[T].width,_=Math.ceil((S-h)/(S*this.scaleStep));g=Math.max(_,g)}if(this.height==null)if(this.polygonMeshesById[this.polyId]){let T=this.polygonMeshesById[this.polyId];T.geometry.boundingBox||T.geometry.computeBoundingBox(),this.height=T.geometry.boundingBox.max.z+T.position.z}else this.height=0;var a,o,s;let x=this.scaleStep;e:for(o=g;o<=f;o++){s=1-o*x;let T=u[0].width*s;a=[{text:u[0].word,width:T,height:M*s,x:0,y:0}];for(let S=1;S<u.length;S++){let _=u[S],P=(_.width+b)*s;if(T+P<h)a[a.length-1].text+=" "+_.word,a[a.length-1].width+=P,T+=P;else{if(!this.multiline)continue e;a[a.length-1].width=T,T=_.width*s,a.push({text:_.word,width:T,height:M*s,x:0,y:a[a.length-1].height+a[a.length-1].y})}}if(a.length*M*s<=m){this.invalid=!1;break}}if(this.invalid==!1)break}if(this.invalid==!1){let c=a.map(u=>Math.ceil(u.width)).reduce((u,h)=>Math.max(u,h));for(let u of a)u.x=(c-u.width)/2;this.label=this.atlas.addLabel(this.map,a,this.font,this.fontSize*s,this,t)}this.created=!0}flipIfNeeded(e){}removeSelf(e){this.created?(this.label!=null&&(this.label.layer.remove(this.label),this.label=null),e||(this.map.textObjects=this.map.textObjects.filter(t=>t!=this),Object.keys(this.textLabelsByPolygonId).forEach(t=>{this.textLabelsByPolygonId[t]==this&&delete this.textLabelsByPolygonId[t]}))):this.doNotCreate=!0}setColor(e){var a;let t=new Ee(e),n=this.color.equals(t),r=!!((a=this.label)!=null&&a.layer);this.color=t,!n&&r&&(this.label.color=this.color,this.label.layout(this.map.mapClass,this.label.layer.origin,this.label.layer.size,this.label.layer.rotation,this.label.layer.uv,this.label.layer.color))}clearColor(){this.setColor(this.baseColor)}hide(){this.label?this.label.layer.zero(this.label.index):this.hideOnCreate=!0}show(){if(this.label){let e=this.label.layer,t=this.map;this.label.layout(t.mapClass,e.origin,e.size,e.rotation,e.uv,e.color)}else this.hideOnCreate=!1}toString(){return this.hoverLabelText}};l(vb,"FlatLabel");var Bh=vb,cP=new Map,VU=l(function(i){let e=cP[i];if(e!=null)return e;let t=document.createElement("span");t.textContent="Hg",t.style.font=i;let n=document.createElement("div");n.style.cssText="display: inline-block; width: 1px; height: 0px;";let r=document.createElement("div");r.appendChild(t),r.appendChild(n),document.body.appendChild(r);try{var o=t.getBoundingClientRect()}finally{r.remove()}return o.height!=null&&(cP[i]=o.height,e=o.height),e},"getTextHeight");y();var dP=l(function(i){let e=this,t=document.createElement("div");t.style.display="none!important",t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.pointerEvents="none",this.hovering=!1;let n,r;i.appendChild(t),this.show=function(a){e.hovering||e.setPosition(n,r),e.hovering=!0,t.style.removeProperty("display"),t.textContent=a.toString(),t.className=a.hoverLabelClass},this.hide=function(){e.hovering&&(e.hovering=!1,t.style.setProperty("display","none","important"),t.textContent="")},this.setZIndex=function(a){t.style.zIndex=a},this.setPosition=function(a,o){n=a,r=o,e.hovering&&(o-t.clientHeight>0?(o=o-t.clientHeight,a+t.clientWidth>i.clientWidth&&(a=a-t.clientWidth)):a=a-t.clientWidth-10,t.style.transform="translate("+a+"px, "+o+"px)")},this.destroy=function(){i.removeChild(t)}},"HoverLabel");dP.MODES={NONE:1,NO_TEXT_LABEL_ONLY:2,ALL:3};var zr=dP;y();var bb=class bb{constructor(e){p(this,"__engine");p(this,"_initialRank",0);p(this,"screenPosition",[0,0]);p(this,"enabled",!1);p(this,"options",{});p(this,"mapId","");p(this,"id","0");p(this,"action",0);p(this,"getBoundingBoxForCurrentStrategy");p(this,"rank",0);p(this,"visible",!1);p(this,"offscreen",!1);p(this,"position",null);p(this,"dimensions",{width:0,height:0});p(this,"layer","");p(this,"_bboxes");let{rank:t,layer:n}=e;n&&(this.layer=n),!n&&e.polygon!=null&&(this.layer=e.polygon.layer),this._initialRank=t,this.rank=t}flipIfNeeded(){}setPosition(e,t=!0){var r;let n={nodeOrCoordinate:e,height:(r=this.position)==null?void 0:r.height};this.mapId=e.map.id,this.position=n,this.__engine!=null&&t&&this.__engine.debouncedUpdate()}setPriority(e){this.rank=e,this.__engine!=null&&this.__engine.debouncedUpdate()}setAction(e){this.action=e}resetPriority(){this.rank!==this._initialRank&&this.setPriority(this._initialRank)}promote(){}demote(){}get strategies(){return[]}removeSelf(){this.__engine=void 0}enable(){this.enabled=!0}disable(){this.enabled=!1}colliderDidUpdatePosition(e){this.screenPosition=e}colliderDidNotFindAHome(){this.visible=!1}colliderDidMount(){let e={width:0,height:0};this.dimensions=e}colliderDidUpdateVisiblity(){}};l(bb,"BaseCollider");var yb=bb,Gs=yb;y();y();var zU=l(function(){let e,t;return()=>{if((!t||!t)&&(e=document.createElement("canvas"),e.width=500*devicePixelRatio,e.height=500*devicePixelRatio,e.style.width="500px",e.style.height="500px",t=e.getContext("2d")),!t)throw new Error("Could not get 2D context");return{measureCanvas:e,measureCanvasContext:t}}},"createMeasureCanvasContext")(),hP=l((i,e,t,n=2,r=1.2,a={strokeText:!0})=>{let o="bold ".concat(e*devicePixelRatio,"px 'InterUI-Regular', Helvetica Neue, Arial, sans-serif"),{measureCanvasContext:s}=zU();s.font=o;let c=[],u=i.split(" "),h=0,m=0,f=0;for(;m<u.length;){let x=u[m];if(h===n&&h>0){c[h-1]+="...";break}if(c[h]==null&&(c[h]=x,m++),u.length===1){c[h]=x;break}if(u[m]==null)break;let{width:T}=s.measureText(c[h]+" "+u[m]);T<=t?(c[h]+=" "+u[m],m++):h++}c.forEach(x=>{let{width:T}=s.measureText(x);f=Math.max(T,f)});let g=e*devicePixelRatio*r,b=c.length*g;return{maxWidth:f,maxHeight:b,lines:c.length,draw:(x,T,E)=>{c.length===1?(a.strokeText&&x.strokeText(c[0],T,E),x.fillText(c[0],T,E)):(a.strokeText&&(x.strokeText(c[0],T,E-g/2),x.strokeText(c[1],T,E+g/2)),x.fillText(c[0],T,E-g/2),x.fillText(c[1],T,E+g/2))}}},"shaveText");var Db=et(ab()),Lb=et(Gh());y();var Pt=l(i=>i*devicePixelRatio,"dp"),lr=2.5,Ob=4,Nz=6,kz=10,Bz=4,jP=.5,Fz=6.5,Uz=4.5,GP=2.5,Vz=2,zz=5,HP={heightAbovePolygon:0,scale:devicePixelRatio,appearance:Rg.darkOnLight};var jz="Smart Labels do not support setting and clearing colors. Re-label the polygon with desired colors instead",Hh,Yh,Rb,Bc,Wh,Xh,wa,Zh,Jg,YP,Qh,Nb,$g,Ca,Eo,Ci=class Ci extends Gs{constructor(t,n){var s;super(t);w(this,Yh);w(this,Jg);w(this,Qh);p(this,"lines",0);p(this,"contextConfigured",!1);p(this,"fillText");p(this,"newStyle",{pinVisibility:1});p(this,"style",{top:0,left:0,textLabelVisible:!0,pinVisibility:1,textAlign:"left"});p(this,"setColor",l(()=>{F.warn(jz)},"setColor"));p(this,"clearColor",l(()=>{},"clearColor"));p(this,"zoomProportion",0);p(this,"_cache",{});p(this,"appearance");p(this,"mapView");p(this,"position");p(this,"options");w(this,Hh,!1);w(this,Bc,!0);w(this,Wh,void 0);w(this,Xh,void 0);w(this,Zh,void 0);w(this,$g,void 0);w(this,Ca,void 0);w(this,Eo,!1);if(d(Ci,wa)==null&&A(Ci,wa,{}),this.id=(s=t.id)!=null?s:it(),this.mapView=n,this.options=(0,Lb.default)({},{text:t.shortText||t.text||""},t,HP),t.rank!=null&&t.rank>0)this.rank=t.rank,this._initialRank=t.rank;else{let c=C.env.NODE_ENV==="test"?Ci.testId:Math.random();Ci.testId++,this.rank=c,this._initialRank=c}let{mapId:r,position:a}=this.options;this.position=a,t.stateText&&(this.options.text+=" (".concat(t.stateText,")")),this.mapId=r;let o=(0,Lb.default)({},this.options.appearance,HP.appearance);this.appearance={margin:o.margin,text:{lineHeight:o.text.lineHeight,numLines:o.text.numLines,size:o.text.size,maxWidth:o.text.maxWidth,foregroundColor:o.text.foregroundColor,backgroundColor:o.text.backgroundColor},marker:{size:o.marker.size,foregroundColor:{active:o.marker.foregroundColor.active,inactive:o.marker.foregroundColor.inactive||(0,Db.default)(o.marker.foregroundColor.active).setAlpha(.5).toRgbString()},backgroundColor:{active:o.marker.backgroundColor.active,inactive:o.marker.backgroundColor.inactive||(0,Db.default)(o.marker.backgroundColor.active).setAlpha(.5).toRgbString()},icon:o.marker.icon,iconSize:o.marker.iconSize||kz,iconVisibilityThreshold:o.marker.iconVisibilityThreshold==null?jP:o.marker.iconVisibilityThreshold}},this.appearance.marker.icon&&(A(this,Hh,!0),Z(this,Jg,YP).call(this))}enable(t=!0){super.enable(),t&&this.__engine!=null&&this.__engine.debouncedUpdate()}get totalTextBoxHeight(){let{height:t}=this.dimensions;return t+lr*2}get totalTextBoxWidth(){let{width:t}=this.dimensions;return t+lr*2}get totalMarkerSize(){return d(this,Bc)&&(A(this,Wh,d(this,Ca)/devicePixelRatio+GP),A(this,Bc,!1)),d(this,Wh)}get strategies(){let{width:t,height:n}=this.dimensions,{margin:r}=this.appearance;Z(this,Yh,Rb).call(this);let a=Math.max(Nz,r),o=d(this,Eo)?a/2:0,s=[{name:"RIGHT",getBoundingBox:({x:c,y:u})=>{let h=Math.max(this.totalMarkerSize,n);return[u-h/2-a,u+h/2+a,c-this.totalMarkerSize/2-a,c+this.totalMarkerSize+t+a]},onStrategySelected:c=>{this.newStyle=Object.assign({},c.style,{textAlign:"right",pinVisibility:1,top:-this.totalTextBoxHeight/2,left:this.totalMarkerSize/2+Ob/2,textLabelVisible:!0,cachedSymbol:this.getCachedSymbol("RIGHT","left",0)})}},{name:"LEFT",getBoundingBox:({x:c,y:u})=>{let h=Math.max(this.totalMarkerSize,n);return[u-h/2-a,u+h/2+a,c-this.totalMarkerSize-t-a,c+this.totalMarkerSize/2+a]},onStrategySelected:c=>{this.newStyle=Object.assign({},c.style,{textAlign:"right",pinVisibility:1,top:-this.totalTextBoxHeight/2,left:-this.totalTextBoxWidth-this.totalMarkerSize/2-Ob/2,textLabelVisible:!0,cachedSymbol:this.getCachedSymbol("LEFT","right",Pt(t))})}},{name:"TOP",getBoundingBox:({x:c,y:u})=>{let h=n+this.totalMarkerSize;return[u-h-a,u+this.totalMarkerSize/2+a,c-t/2-a,c+t/2+a]},onStrategySelected:c=>{this.newStyle=Object.assign({},c.style,{pinVisibility:1,textAlign:"center",textLabelVisible:!0,top:-this.totalTextBoxHeight-this.totalMarkerSize/2-Ob/2,left:-this.totalTextBoxWidth/2,cachedSymbol:this.getCachedSymbol("TOP","center",Pt(t/2))})}},{name:kb,getBoundingBox:({x:c,y:u})=>[u-this.totalMarkerSize/2-o,u+this.totalMarkerSize/2+o,c-this.totalMarkerSize/2-o,c+this.totalMarkerSize/2+o],onStrategySelected:c=>{this.newStyle=Object.assign({},c.style,{pinVisibility:.5,textLabelVisible:!1})}}];return this.options.text===""?[{name:"ICON_ONLY",getBoundingBox:({x:c,y:u})=>[u-this.totalMarkerSize/2-a/2,u+this.totalMarkerSize/2+a/2,c-this.totalMarkerSize/2-a/2,c+this.totalMarkerSize/2+a/2],onStrategySelected:c=>{this.newStyle=Object.assign({},c.style,{pinVisibility:1,textLabelVisible:!1})}}]:s}getCachedSymbol(t,n,r){let{width:a,height:o}=this.dimensions;if(this._cache[t]==null){let s,c=a+lr*2,u=o+lr*2;window.OffscreenCanvas!=null&&!nb()?s=new OffscreenCanvas(Pt(c+lr),Pt(u+lr)):(s=document.createElement("canvas"),s.width=Pt(c+lr),s.height=Pt(u+lr),s.style.width=c+"px",s.style.height=u+"px");let h=s.getContext("2d",{willReadFrequently:!0}),{size:m}=this.appearance.text;h.textAlign=n,h.font="bold ".concat(m*devicePixelRatio,"px 'InterUI-Regular', Helvetica Neue, Arial, sans-serif"),h.textBaseline="middle",h.lineJoin="miter",h.miterLimit=2,h.strokeStyle="white",h.lineWidth=Pt(lr),h.fillStyle=this.appearance.text.foregroundColor,h.strokeStyle=this.appearance.text.backgroundColor,this.fillText&&typeof this.fillText=="function"&&this.fillText(h,r+Pt(lr),Pt(u+lr/2)/2),this._cache[t]=s}return this._cache[t]}invalidate(){this._cache={},this.colliderDidMount()}colliderDidMount(){let{size:t,maxWidth:n,numLines:r,lineHeight:a}=this.appearance.text,o=this.options.text||"",{draw:s,lines:c,maxWidth:u,maxHeight:h}=hP(o,t,Pt(n),r,a);this.fillText=s,this.lines=c,this.dimensions={width:u/devicePixelRatio,height:h/devicePixelRatio}}colliderDidUpdatePosition(t){this.screenPosition=t}colliderDidUpdateVisiblity(){Z(this,Yh,Rb).call(this),this.action===1?this.visible=!0:this.visible=!1,this.action=0,this.style=this.newStyle}colliderDidGoOutsideGrid(){}colliderDidNotFindAHome(){this.action=2}disable(t=!0){super.disable(),this.visible=!1,t&&this.__engine!=null&&this.__engine.debouncedUpdate()}get pinCanvasSize(){return this.totalMarkerSize*2}draw(t){var T;if(!this.visible)return;let[n,r]=this.screenPosition,{pinVisibility:a,textLabelVisible:o,top:s,left:c,textAlign:u,cachedSymbol:h}=this.style,m=Pt(n),f=Pt(r),{marker:g}=this.appearance,{foregroundColor:b,backgroundColor:M}=g,x=ib("".concat(b.active,"-").concat(b.inactive,"-").concat(M.active,"-").concat(M.inactive,"-").concat(d(this,Ca)));if(d(Ci,wa)[x]){let E=a===1?d(Ci,wa)[x][0]:d(Ci,wa)[x][1];t.drawImage(E,m-Pt(this.pinCanvasSize/2),f-Pt(this.pinCanvasSize/2))}else{t.lineWidth=Pt(4);let E=Z(this,Qh,Nb).call(this,d(this,Ca),this.appearance.marker.backgroundColor.active,this.appearance.marker.foregroundColor.active),S=Z(this,Qh,Nb).call(this,d(this,Eo)?d(this,Ca):Pt(Uz),this.appearance.marker.backgroundColor.inactive,this.appearance.marker.foregroundColor.inactive);d(Ci,wa)[x]=[E,S]}if(d(this,Eo)){let E=Pt(this.appearance.marker.iconSize);(T=Ci.imagePromiseCache[d(this,Zh)])==null||T.then(S=>{t.drawImage(S,m-E/2,f-E/2,E,E)})}d(this,Xh)!==u&&(t.textAlign=u,A(this,Xh,u)),o&&h!=null&&(t.shadowColor="transparent",t.drawImage(h,m+Pt(c),f+Pt(s)))}};Hh=new WeakMap,Yh=new WeakSet,Rb=l(function(){let{iconVisibilityThreshold:t=jP}=this.appearance.marker;this.mapView.currentScale<=t&&typeof this.appearance.marker.iconSize<"u"&&d(this,Hh)?(A(this,Ca,Pt(this.appearance.marker.iconSize+Bz)),A(this,Eo,!0)):(A(this,Eo,!1),A(this,Ca,Pt(Fz))),A(this,$g,this.mapView.currentScale),A(this,Bc,!0)},"#calculateMarkerSize"),Bc=new WeakMap,Wh=new WeakMap,Xh=new WeakMap,wa=new WeakMap,Zh=new WeakMap,Jg=new WeakSet,YP=l(function(){if(!this.appearance.marker.icon)return;let t=ib(this.appearance.marker.icon);A(this,Zh,t),Ci.imagePromiseCache[t]||(Ci.imagePromiseCache[t]=new Promise(n=>{let r=new Image;r.src="data:image/svg+xml;base64, ".concat(btoa(this.appearance.marker.icon)),r.onload=function(){n(r)}}))},"#cacheImage"),Qh=new WeakSet,Nb=l(function(t,n,r){let a,o=Pt(this.pinCanvasSize);window.OffscreenCanvas!=null?a=new OffscreenCanvas(o,o):(a=document.createElement("canvas"),a.width=o,a.height=o,a.style.width=o/devicePixelRatio+"px",a.style.height=o/devicePixelRatio+"px");let s=a.getContext("2d");return s.shadowColor="rgba(0,0,0,0.3)",s.shadowOffsetY=Pt(Vz),s.shadowBlur=Pt(zz),s.beginPath(),s.arc(o/2,o/2,t/2+Pt(GP)/2,0,2*Math.PI),s.fillStyle=n,s.fill(),s.beginPath(),s.arc(o/2,o/2,t/2,0,2*Math.PI),s.shadowColor="transparent",s.fillStyle=r,s.fill(),a},"#createPinCanvas"),$g=new WeakMap,Ca=new WeakMap,Eo=new WeakMap,l(Ci,"InternalFloatingLabel"),p(Ci,"testId",0),w(Ci,wa,void 0),p(Ci,"imagePromiseCache",{});var qb=Ci,Yi=qb;y();var Fc,wo,Fb=class Fb extends Gs{constructor(){super(...arguments);p(this,"contentEl",document.createElement("div"));p(this,"containerEl",document.createElement("div"));p(this,"ready",!1);w(this,Fc,[0,0]);w(this,wo,!1)}removeSelf(){var t,n;if(this.__engine!=null&&((t=this.containerEl)==null?void 0:t.parentElement)!=null&&((n=this.containerEl)==null?void 0:n.parentElement)===this.__engine.collisionEngineContainerEl)try{this.containerEl.parentElement.removeChild(this.containerEl)}catch(r){F.warn("error removing collider from dom",r)}this.__engine=void 0,this.containerEl=null,this.contentEl=null}enable(){!this.__engine||!this.containerEl||(this.enabled=!0,this.containerEl.style.opacity="0",this.__engine.collisionEngineContainerEl.appendChild(this.containerEl),this.updateDimensionsImmediately())}disable(){if(!(!this.__engine||!this.containerEl)&&(this.enabled=!1,this.ready=!1,this.containerEl.style.opacity="0",this.containerEl.parentElement!=null&&this.containerEl.parentElement===this.__engine.collisionEngineContainerEl))try{this.containerEl.parentElement.removeChild(this.containerEl)}catch(t){F.warn("error removing collider from dom",t)}}colliderDidGoOffscreen(){this.visible=!1,this.containerEl&&(this.containerEl.style.opacity="0")}colliderDidNotFindAHome(){this.visible=!1}colliderDidUpdatePosition(t){this.containerEl&&(this.enabled&&!this.ready&&(this.containerEl.style.opacity="1",this.ready=!0),(d(this,Fc)[0]!==t[0]||d(this,Fc)[1]!==t[1])&&this.visible&&(this.containerEl.style.transform="translate3D(".concat(t[0],"px, ").concat(t[1],"px, ").concat(t[1],"px)"),A(this,Fc,t)))}updateDimensions(){A(this,wo,!0),this.visible&&(this.updateDimensionsImmediately(),A(this,wo,!1))}updateDimensionsImmediately(){if(d(this,wo)&&this.containerEl){let{width:t,height:n}=this.containerEl.getBoundingClientRect();this.dimensions={width:t,height:n},Object.assign(this.containerEl,{width:t+"px",height:n+"px"}),A(this,wo,!1),this.__engine!=null&&this.__engine.debouncedUpdate()}}colliderDidMount(){this.updateDimensions()}colliderDidUpdateVisiblity(){this.containerEl&&(this.containerEl.style.opacity=this.visible?"1":"0"),this.visible&&d(this,wo)&&this.updateDimensionsImmediately()}};Fc=new WeakMap,wo=new WeakMap,l(Fb,"HTMLCollider");var Bb=Fb,Kh=Bb;y();var Ub=et(Vr());var Uc={};function Gz(i,e){var t;return((t=Uc[i.id])==null?void 0:t[e])!=null||(Uc[i.id]==null&&(Uc[i.id]={}),i.polygons.forEach(n=>{n.entrances.forEach(r=>{Uc[i.id][r.id]=n})})),Uc[i.id][e]}l(Gz,"getPolygonByNodeId");var Co,jb=class jb{constructor(e){w(this,Co,void 0);A(this,Co,e)}get id(){return d(this,Co).id}get containerEl(){return d(this,Co).containerEl}get contentEl(){return d(this,Co).contentEl}update(){d(this,Co).updateDimensions()}};Co=new WeakMap,l(jb,"Marker");var Jh=jb,dt,Gb=class Gb{constructor(e){w(this,dt,void 0);p(this,"markersMap");p(this,"animations");A(this,dt,e),this.markersMap=new Map,this.animations=new Map}create(e,t,n){if(d(this,dt).currentMap==null)throw new Error("Unable to retrieve the current map");let r=d(this,dt).mapObjects.get(e.map.id||d(this,dt).currentMap),a=0;if(e instanceof yi){let o=Gz(r.mapClass,e.id);o!=null&&(a=o.geometry.scale.z*Math.max(r.mapClass.width,r.mapClass.height)/1e3)}return new Ao({...n,collisionRank:n==null?void 0:n.rank,contentHtml:t,mapId:r.id,position:{nodeOrCoordinate:e,height:a}})}addInternal(e,t,n){if(d(this,dt).currentMap==null)throw new Error("Unable to retrieve the current map");let r=this.create(e,t,n);return d(this,dt).smartCollisionEngine.add(r.id,r),r}add(e,t,n){if(d(this,dt).currentMap==null)throw new Error("Unable to retrieve the current map");let r=d(this,dt).mapObjects.get(e.map.id||d(this,dt).currentMap),a=this.create(e,t,n);d(this,dt).smartCollisionEngine.add(a.id,a),r.markers.add(a),d(this,dt).taskScheduler.scheduleTask(new bt({name:"addMarker",callback:()=>{a.enable(),d(this,dt).smartCollisionEngine.debouncedUpdate()}})),d(this,dt).tryRendering();let o=new Jh(a);return this.markersMap.set(a.id,{marker:o,internalMarker:a}),o}updateMap(e,t,n){var r,a;(r=d(this,dt).mapObjects.get(t))==null||r.markers.delete(e),(a=d(this,dt).mapObjects.get(n))==null||a.markers.add(e),d(this,dt).smartCollisionEngine.updateMap(e.id,t,n),e.enable()}setPosition(e,t,n){var o,s;let r;if(typeof e=="string"?r=(o=this.markersMap.get(e))==null?void 0:o.internalMarker:e instanceof Jh?r=(s=this.markersMap.get(e.id))==null?void 0:s.internalMarker:e instanceof Ao&&(r=e),!r)return;let a=r.position.nodeOrCoordinate;a.map.id!==t.map.id&&this.updateMap(r,a.map.id,t.map.id),r.setPosition(t,n),d(this,dt).tryRendering(Re.ALL)}animate(e,t,n){var b;let r=typeof e=="string"?e:e.id,a=(b=this.markersMap.get(r))==null?void 0:b.internalMarker;if(!a)return Promise.resolve();let o=this.animations.get(r);o&&(o.tween.stop(),o.resolver(),this.animations.delete(r));let s=a.position.nodeOrCoordinate,c={lat:s.lat,lon:s.lon},u={lat:t.lat,lon:t.lon},h=(n==null?void 0:n.easing)&&ui[n.easing]||Ub.default.Easing.Cubic.InOut,m,f=new Ub.default.Tween(c).to(u,(n==null?void 0:n.duration)||1e3).easing(h).onUpdate(M=>{let x=t.map.createCoordinate(M.lat,M.lon);this.setPosition(a,x)}).onComplete(()=>{this.animations.delete(r),m()}).start();s.map.id!==t.map.id&&this.updateMap(a,s.map.id,t.map.id);let g=new Promise(M=>{m=M,this.animations.set(r,{tween:f,resolver:m})});return d(this,dt).tryRendering(),g}remove(e){let t=typeof e=="string"?e:e.id;d(this,dt).smartCollisionEngine.remove(t),d(this,dt).smartCollisionEngine.debouncedUpdate(),d(this,dt).tryRendering(),this.markersMap.delete(t)}removeAll(){Array.from(d(this,dt).mapObjects.values()).forEach(e=>{e.markers.forEach(t=>{d(this,dt).smartCollisionEngine.remove(t.id)})}),d(this,dt).smartCollisionEngine.update(),d(this,dt).tryRendering(),this.markersMap=new Map}};dt=new WeakMap,l(Gb,"MarkersController");var Vb=Gb,zb=Vb;y();var Hz={top:!0,left:!0,topLeft:!0,right:!0,topRight:!0,bottom:!0,bottomLeft:!0,bottomRight:!0},$h,Vc,t2=class t2 extends Kh{constructor(t){super(t);p(this,"className","");p(this,"_el",null);p(this,"style",{});p(this,"position");p(this,"containerClassesLength");p(this,"updateClassName",l(t=>{if(!this.containerEl)return;let n=this.containerEl.classList.item(this.containerClassesLength);n&&this.containerEl.classList.remove(n),this.containerEl.classList.add("tooltip--anchor-".concat(t)),A(this,Vc,t)},"updateClassName"));w(this,$h,"-1");w(this,Vc,"");let{html:n,contentHtml:r,text:a,position:o,selector:s,map:c,padding:u=0,collisionRank:h=3,defaultAnchorType:m="top",enabledAnchorTypes:f,interactive:g=!1}=t,b=t2.getContainerElClasses(g);if(this.containerClassesLength=b.split(" ").length,this.position=o,!this.containerEl)return;this.containerEl.innerHTML=n||'<div class="'.concat(b,'"><div class="mappedin-tooltip__content" style="padding: ').concat(u,'px">').concat(a||r,"</div></div>"),this.rank=h,this.mapId=c,this.id=it();let M=n?s:".mappedin-tooltip";this.containerEl=M?this.containerEl.querySelector(M):null,this.containerEl&&(this.contentEl=this.containerEl.firstElementChild),this._el=this.contentEl,this.options={collisionRank:h,padding:u/Math.SQRT2,defaultAnchorType:m,enabledAnchorTypes:{...Hz,...f},interactive:g}}get strategies(){let{width:t,height:n}=this.dimensions,{padding:r}=this.options,a=r/2;return[{name:"top",getBoundingBox:({x:c,y:u})=>[u-n-r,u-r,c-t/2,c+t/2+r/2],onStrategySelected:()=>{this.style.top=-n-r+"px",this.style.left=-t/2+"px",this.className="top"}},{name:"right",getBoundingBox:({x:c,y:u})=>[u-n/2-r/2,u+n/2+r/2,c+r,c+r+t],onStrategySelected:()=>{this.style.top=-n/2+"px",this.style.left=r+"px",this.className="right"}},{name:"left",getBoundingBox:({x:c,y:u})=>[u-n/2,u+n/2,c-t-r,c],onStrategySelected:()=>{this.style.top=-n/2+"px",this.style.left=-t-r+"px",this.className="left"}},{name:"bottom",getBoundingBox:({x:c,y:u})=>[u+r,u+r+n,c-t/2,c+t/2],onStrategySelected:()=>{this.style.top=r+"px",this.style.left=-t/2+"px",this.className="bottom"}},{name:"bottomLeft",getBoundingBox:({x:c,y:u})=>[u+a+r,u+a+n+r,c-t-a,c-a],onStrategySelected:()=>{this.style.top=r+"px",this.style.left=-t-r+"px",this.className="bottom-left"}},{name:"bottomRight",getBoundingBox:({x:c,y:u})=>[u+a,u+a+n+r,c+a,c+a+t+r],onStrategySelected:()=>{this.style.top=r+"px",this.style.left=r+"px",this.className="bottom-right"}},{name:"topLeft",getBoundingBox:({x:c,y:u})=>[u-n-a,u-a,c-t-a,c-a],onStrategySelected:()=>{this.style.top=-n-r+"px",this.style.left=-t-r+"px",this.className="top-left"}},{name:"topRight",getBoundingBox:({x:c,y:u})=>[u-n-a,u-a,c+a+r,c+a+t+r],onStrategySelected:()=>{this.style.top=-n-r+"px",this.style.left=r+"px",this.className="top-right"}}].filter(c=>this.options.enabledAnchorTypes[c.name]===!0)}colliderDidMount(){this.updateDimensions()}updateDimensionsImmediately(){super.updateDimensionsImmediately(),A(this,Vc,""),A(this,$h,"-1")}setAction(t){super.setAction(t),this.visible=t===1}colliderDidNotFindAHome(){this.options.collisionRank===4?this.visible=!0:this.setAction(2)}colliderDidGoOffscreen(){}colliderDidUpdateVisiblity(){let t=this.action===1?"1":"0";this.containerEl&&(d(this,$h)!=t&&(this.containerEl.style.opacity=t),t==="0"?this.updateInteractive(!1):this.updateInteractive(!this.options.interactive),d(this,Vc)!==this.className&&(this.updateClassName(this.className),this.visible===!0&&(this.updateDimensionsImmediately(),Object.assign(this.containerEl.style,this.style))))}updateInteractive(t){if(!this.containerEl)return;let n=this.containerEl.classList.item(1);if(!n)return;let r=t?"pointer-events-auto":"pointer-events-none";n!==r&&this.containerEl.classList.replace(n,r)}static getContainerElClasses(t){return"mappedin-tooltip ".concat(t?"pointer-events-none":"pointer-events-auto")}};$h=new WeakMap,Vc=new WeakMap,l(t2,"SmartTooltip");var Hb=t2,Ws=Hb;y();var Yz={anchor:0},Wb=class Wb extends Kh{constructor(t){super(t);p(this,"_el",null);p(this,"style",{});p(this,"polygon");p(this,"position");let{contentHtml:n,position:r,mapId:a,id:o,collisionRank:s=3}=t;this.position=r,this.containerEl&&(this.containerEl.innerHTML='<div class="mappedin-marker__wrapper"><div class="mappedin-marker">'.concat(n,"</div></div>"),this.rank=s,this.mapId=a,this.id=typeof o=="string"?o:it(),this.containerEl=this.containerEl.querySelector(".mappedin-marker"),this.contentEl=this.containerEl?this.containerEl.firstElementChild:null,this._el=this.contentEl,this.options={...Yz,...t})}get strategies(){let{width:t,height:n}=this.dimensions;return[{name:"center",getBoundingBox:({x:r,y:a})=>{let o=a-n/2,s=a+n/2,c=r-t/2,u=r+t/2;switch(this.options.anchor){case 1:{o=a-n,s=a;break}case 3:{o=a,s=a+n;break}case 2:{c=r-t,u=r;break}case 4:{c=r,u=r+t;break}}return[o,s,c,u]},onStrategySelected:()=>{let r=-n/2+"px",a=-t/2+"px";switch(this.style.top=r,this.style.left=a,this.options.anchor){case 1:{this.style.top=-n+"px";break}case 3:{this.style.top="0px";break}case 2:{this.style.left=-t+"px";break}case 4:{this.style.left="0px";break}default:this.style.top=r,this.style.left=a}}}]}colliderDidMount(){this.updateDimensions()}setAction(t){super.setAction(t),this.visible=t===1}colliderDidNotFindAHome(){this.setAction(2)}colliderDidUpdatePosition(t){super.colliderDidUpdatePosition(t)}colliderDidGoOffscreen(){}colliderDidUpdateVisiblity(){this.containerEl&&(this.containerEl.style.opacity=this.action===1?"1":"0"),super.colliderDidUpdateVisiblity(),this.visible===!0&&this.containerEl&&Object.assign(this.containerEl.style,this.style)}};l(Wb,"InternalMarker");var Yb=Wb,Ao=Yb;y();y();var n2=500,r2="ease-out",a2=.6,Xs=void 0,o2=7.9,Zb=1;function Wz(i,e){let t=i.getCenter(new z),n=i.getSize(new z),{x:r,y:a,z:o}=n,s=r*e,c=a*e,u=o*e,h=t.x-s/2,m=t.x+s/2,f=t.y-c/2,g=t.y+c/2,b=t.z-u/2,M=t.z+u/2;return new Ye({x:h,y:f,z:b},{x:m,y:g,z:M})}l(Wz,"addMarginMultiplierToBoundingBox");function s2(i,e){let{margin:t,radius:n}=e,r=i.boundingBox,a=new Ye(r.min,r.max).clone().applyMatrix4(i.object.matrix),o=Wz(a,t!=null?t:1),s={min:o.min,max:o.max,margin:t,radius:n,center:o.getCenter(new z)};s.min.z=(s.max.z+s.min.z)/2,s.max.z=s.min.z;let c={x:(s.max.x+s.min.x)/2,y:(s.max.y+s.min.y)/2,z:(s.max.z+s.min.z)/2},u=Math.sqrt((s.max.x-c.x)**2+(s.max.y-c.y)**2);return s.radius=u,s.center=o.getCenter(new z),s}l(s2,"getPanBoundsForObject");var ht,Kb=class Kb{constructor(e,t){p(this,"maps");w(this,ht,void 0);p(this,"mapObjectsArray",[]);p(this,"transitionOptions");p(this,"object",new Zt);p(this,"currentMap");p(this,"mapObjects",new Map);A(this,ht,t),this.object.userData.name="mappedin-scene",this.maps=e.sort((n,r)=>n.elevation-r.elevation),e.forEach(n=>{let r=d(this,ht).mapObjects.get(n.id);this.mapObjects.set(n.id,r)}),this.object.position.set(0,0,0)}get mapObjectsByMapGroup(){let e=Array.from(this.mapObjects.values());return e.filter(t=>{var n;return(n=t.mapClass.mapGroup)==null?void 0:n.id}).length===0?{_:e}:Array.from(this.mapObjects.values()).reduce((t,n)=>(n.mapClass.mapGroup&&(t[n.mapClass.mapGroup.id]?t[n.mapClass.mapGroup.id].push(n):t[n.mapClass.mapGroup.id]=[n]),t),{})}determineMapPositionAndRotation(e){var q,D;let t=((q=d(this,ht).referenceMap)==null?void 0:q.scale)||1,n=e.scale||1,r=((D=d(this,ht).referenceMap)==null?void 0:D.getNorth())||0,a=e.getNorth()||0,{x:o,y:s}=e.georeference[0].target,{x:c,y:u}=e.georeference[2].target,h=new Ze(o,s),m=new Ze(c,u),{lat:f,lon:g}=h.midpointTo(m),b=d(this,ht).referenceMap.createCoordinate(f,g),{x:M,y:x}=d(this,ht).convertTo3DMapPosition(b),T=[M,x,0],E=n/t,S=a-r;return{position:T,scale:[E,E,E],rotation:[0,0,S]}}async prepare(e,t){this.transitionOptions=t||{},this.currentMap=(t==null?void 0:t.activeMap)||this.maps[0],e.currentScene=this;let n=await this.preRender(t);this.mapObjectsArray=await Promise.all(n)}resize(){}focusOnCurrentMap(e,t){return new Promise(n=>{var S,_,P,q,D,U;let r=this.mapObjects.get(this.currentMap.id);r.object.updateMatrixWorld();let a=d(this,ht).loadOptions&&d(this,ht).loadOptions.zoomOverrides&&d(this,ht).loadOptions.zoomOverrides.zoomMultiplier||o2,o=r.getMapScale()*r.object.scale.x;Bg(d(this,ht).controls,"zoomFactor",o/a);let s=s2(r,d(this,ht).controls.panBounds);d(this,ht).controls.panBounds=s;let c=(S=e==null?void 0:e.focusOn)==null?void 0:S.targets,u=((_=e==null?void 0:e.focusOn)==null?void 0:_.options)||{},h={boundingBox:s},m=(P=u==null?void 0:u.rotation)!=null?P:Xs,f=u==null?void 0:u.tilt,g=(q=u==null?void 0:u.easing)!=null?q:r2,b=(D=u==null?void 0:u.duration)!=null?D:n2,{min:M,max:x}=s,T=[new z(M.x,M.y,M.z),new z(M.x,x.y,M.z),new z(x.x,M.y,M.z),new z(x.x,x.y,M.z),new z(M.x,M.y,x.z),new z(M.x,x.y,x.z),new z(x.x,M.y,x.z),new z(x.x,x.y,x.z)],{zoom:E}=d(this,ht).getCameraFrameForPoints(T,1,1,d(this,ht).cachedPadding,!1);d(this,ht).controls.restrictZoomLimits(E),d(this,ht).controls.expandZoomLimits(E),t?(d(this,ht).controls.setMulti(s.center,E,Xs,a2),n(void 0)):e!=null&&e.autoFocusOnActiveMap?(c!=null&&(h={...c,points:((U=c==null?void 0:c.coordinates)==null?void 0:U.map(R=>d(this,ht).convertTo3DMapPosition({x:R.x,y:R.y})))||[]}),d(this,ht).focusOn({...h,...u,duration:b,rotation:m,doNotEmitFocusOnEvent:!0,focusZoomFactor:1,minZoom:u==null?void 0:u.minZoom,padding:u.safeAreaInsets,tilt:f,curve:ui[g],callback:()=>{n(void 0)},cancelledCallback:()=>{n(void 0)}})):(d(this,ht).tryRendering(),n(void 0))})}async preRender(e){this.currentMap=(e==null?void 0:e.activeMap)||this.maps[0],this.transitionOptions=e;let t=[];for(let n in this.mapObjectsByMapGroup)this.mapObjectsByMapGroup[n].forEach(r=>{t.push(r.load().then(()=>{if(!d(this,ht).sceneManager.processedMapObjects.has(r)){let{position:a,rotation:o,scale:s}=this.determineMapPositionAndRotation(r.mapClass);r.object.position.set(...a),r.object.rotation.set(...o),r.object.scale.set(...s),r.box=new Ye().setFromObject(r.object),r.object.name=r.mapClass.id,d(this,ht).sceneManager.processedMapObjects.add(r)}return r}).catch(a=>{F.error(a)}))});return t}unmount(){}postRender(){d(this,ht).imageFlippingEnabled&&(this.mapObjectsArray.forEach(e=>{var t;(t=d(this,ht).imageFlippingCache[e.id])==null||t.forEach(([n,r])=>{e.enableImageFlipping(n,r)})}),d(this,ht).publish(4,!0))}};ht=new WeakMap,l(Kb,"MapViewScene");var Qb=Kb,Aa=Qb;y();var e7=et(Vr());var Jb=!1,Xz=2e3,Zz=2e3,Qz=l(([i,e],[t,n])=>{let r={x:i,y:e},a={x:t,y:n};function o(c,u){let h=u.x-c.x,m=u.y-c.y;return Math.sqrt(h*h+m*m)}l(o,"distanceBetweenPoints");let s={x:(r.x+a.x)/2,y:(r.y+a.y)/2};return o(s,r)},"getRadiusOfSquare"),$b=l(i=>{let e=new z,t=new z;for(let s of i)e.min(s),t.max(s);let n=new Cr,r=new ni(new Float32Array(8*3),3);for(let s=0;s<8;s++){let c=i[s].clone();r.setXYZ(s,c.x,c.y,c.z)}n.setAttribute("position",r);let a=[0,2,1,0,3,2,1,6,5,1,2,6,5,7,4,5,6,7,4,3,0,4,7,3,3,6,2,3,7,6,0,5,4,0,1,5],o=new ni(new Uint16Array(a),1);return n.setIndex(o),n},"createBoxFromPoints"),WP=50,me,i7=class i7 extends Aa{constructor(t,n,r=!0){var o,s;super(t,n);w(this,me,void 0);p(this,"containerBoxHelper");p(this,"viewportBox");p(this,"currentMapWrapperMesh");p(this,"currentMapWrapperBoxHelper");p(this,"viewportMesh");p(this,"stackContainerMesh");p(this,"currentMinTilt");p(this,"hasOutdoorGeometry",!1);p(this,"hasMapLabels");p(this,"scrollToMap",l(async(t,n=500)=>new Promise(r=>{let a=this.mapObjects.get(t.id);new e7.default.Tween({z:d(this,me).controls.getPedestal()}).to({z:a.object.position.z},n).easing(e7.default.Easing.Quadratic.InOut).onUpdate(({z:o})=>{d(this,me).controls.setPedestal(o)}).onComplete(()=>{d(this,me).controls.setPedestal(d(this,me).controls.getPedestal(),!0),d(this,me).tryRendering(),r(void 0)}).start()}),"scrollToMap"));p(this,"updateFrame",l(t=>{let n=this.containerBoxHelper.max.z,r=this.containerBoxHelper.min.z;t.pedestal<n&&t.pedestal>r&&(this.currentMapWrapperMesh.position.z=t.pedestal,this.viewportMesh.position.z=t.pedestal,this.currentMapWrapperBoxHelper.setFromObject(this.currentMapWrapperMesh),this.viewportBox.setFromObject(this.viewportMesh),this.mapObjects.forEach(a=>{a.box.setFromObject(a.object),(this.currentMapWrapperBoxHelper.containsBox(a.box)||this.currentMapWrapperBoxHelper.intersectsBox(a.box))&&this.currentMap!==a.mapClass&&(this.currentMap=a.mapClass,d(this,me).publish(5,a.mapClass))}),d(this,me).controls.orbit.position.z=t.pedestal,d(this,me).tryRendering())},"updateFrame"));p(this,"labels",new Map);p(this,"createMapLabels",l(()=>{if(this.hasMapLabels){for(let t of this.mapObjects.values()){let n=t.object.position.clone(),r=Qz([this.containerBoxHelper.min.x,this.containerBoxHelper.min.y],[this.containerBoxHelper.max.x,this.containerBoxHelper.max.y]),a=Math.PI/4,o=new z(Math.cos(a)*r,Math.sin(a)*r,0),s=d(this,me).cameraObject,c=new z;s.getWorldDirection(c);let u=new rd().setFromUnitVectors(o.clone().normalize(),c.clone().cross(new z(0,0,-1)).normalize()),h=n.clone().add(o.clone().applyQuaternion(u));h.z=t.object.position.z;let m=new Em(100,100,100),f=new Oi({color:"red"});new qe(m,f).position.copy(h);let b=d(this,me).markers.addInternal(d(this,me).convert3DMapPositionToCoordinate(h,t.mapClass),"<div style=\"color: #333333; text-shadow: 0px 0px #efefef;font-family: 'Lato', sans-serif; font-size: 24px; font-weight: 300; line-height: 58px;\">".concat(t.mapClass.shortName,"</div>"),{rank:4});b.enable(),this.labels.set(t,[o,n,b])}d(this,me).controls.dispatcher.addEventListener(d(this,me).controls.CAMERA_EVENTS.CHANGE_EVENT.type,this.updateLabels)}},"createMapLabels"));p(this,"updateLabels",l(()=>{let t=d(this,me).cameraObject;t.updateMatrixWorld(!0),t.updateProjectionMatrix();for(let[n,[r,a,o]]of this.labels){let s=new z;t.getWorldDirection(s);let c=new rd().setFromUnitVectors(r.clone().normalize(),s.clone().cross(new z(0,0,-1)).normalize()),u=a.clone().add(r.clone().applyQuaternion(c));d(this,me).markers.setPosition(o,d(this,me).convert3DMapPositionToCoordinate(u,n.mapClass),!1)}},"updateLabels"));p(this,"destroyLabels",l(()=>{if(this.hasMapLabels){d(this,me).controls.dispatcher.removeEventListener(d(this,me).controls.CAMERA_EVENTS.CHANGE_EVENT.type,this.updateLabels);for(let[t,n,r]of this.labels.values())d(this,me).smartCollisionEngine.remove(r.id);d(this,me).smartCollisionEngine.update(),this.labels=new Map,d(this,me).tryRendering()}},"destroyLabels"));A(this,me,n),this.object.position.set(0,0,0);let a=(s=(o=d(this,me).options)==null?void 0:o.loadOptions)==null?void 0:s.outdoorGeometryLayers;this.hasOutdoorGeometry=Array.isArray(a)&&a.length>0,this.hasMapLabels=r}lockControls(){d(this,me).controls.enablePedestal=!0,d(this,me).controls.enableRotate=!0,d(this,me).controls.enablePan=!1,d(this,me).controls.enableZoom=!1;let{minTilt:t}=d(this,me).controls;this.currentMinTilt=t,d(this,me).controls.minTilt=Zb}unlockControls(){var t;d(this,me).controls.enablePedestal=!1,d(this,me).controls.enableRotate=!0,d(this,me).controls.enablePan=!0,d(this,me).controls.enableZoom=!0,d(this,me).controls.minTilt=(t=this.currentMinTilt)!=null?t:d(this,me).controls.minTilt}createStackBoundingBox(){var T,E;let t=new NT(this.object,"rgba(160, 160, 160)");Jb&&d(this,me).scene.add(t);let n=new Ye().setFromObject(t),r=300,a=((E=(T=this.transitionOptions)==null?void 0:T.verticalDistanceBetweenMaps)!=null?E:WP)/d(this,me).venue.maps[0].scale,o=this.computeMapZ(this.mapObjectsArray[0],0,this.transitionOptions),s=this.computeMapZ(this.mapObjectsArray[this.mapObjectsArray.length-1],this.mapObjectsArray.length-1,this.transitionOptions),c=[new z(n.min.x,n.min.y,o),new z(n.min.x,n.max.y,o),new z(n.max.x,n.min.y,o),new z(n.max.x,n.max.y,o),new z(n.min.x,n.min.y,s),new z(n.min.x,n.max.y,s),new z(n.max.x,n.min.y,s),new z(n.max.x,n.max.y,s)],u=new qe($b(c),new Oi({color:"blue",wireframe:!0}));Jb&&d(this,me).scene.add(u);let h=[new z(n.min.x,n.min.y,-a/2),new z(n.min.x,n.max.y,-a/2),new z(n.max.x,n.min.y,-a/2),new z(n.max.x,n.max.y,-a/2),new z(n.min.x,n.min.y,a/2),new z(n.min.x,n.max.y,a/2),new z(n.max.x,n.min.y,a/2),new z(n.max.x,n.max.y,a/2)],m=new qe($b(h),new Oi({color:"red",wireframe:!0}));m.visible=!1,m.applyMatrix4(this.object.matrixWorld);let f=r*3+200,g=[new z(n.min.x,n.min.y,-f/2),new z(n.min.x,n.max.y,-f/2),new z(n.max.x,n.min.y,-f/2),new z(n.max.x,n.max.y,-f/2),new z(n.min.x,n.min.y,f/2),new z(n.min.x,n.max.y,f/2),new z(n.max.x,n.min.y,f/2),new z(n.max.x,n.max.y,f/2)],b=new qe($b(g),new Oi({color:"blue",wireframe:!0}));b.visible=!1,b.applyMatrix4(this.object.matrixWorld),this.viewportBox=new Ye().setFromObject(b),d(this,me).scene.add(b);let M=new Ye().setFromObject(m);d(this,me).scene.add(m),this.stackContainerMesh=u,this.containerBoxHelper=new Ye().setFromObject(u),this.currentMapWrapperMesh=m,Jb&&(this.currentMapWrapperMesh.visible=!0),this.currentMapWrapperBoxHelper=M,this.viewportMesh=b;let x=d(this,me).controls.getPedestal();this.currentMapWrapperMesh.position.z=x,this.viewportMesh.position.z=x,this.currentMapWrapperBoxHelper.setFromObject(this.currentMapWrapperMesh),this.viewportBox.setFromObject(this.viewportMesh)}focusOnStackBox(t){return new Promise(n=>{var u,h,m,f,g;let r=((u=t==null?void 0:t.focusOn)==null?void 0:u.options)||{},a=(h=r==null?void 0:r.rotation)!=null?h:Xs,o=(m=r==null?void 0:r.tilt)!=null?m:Zb,s=(f=r==null?void 0:r.easing)!=null?f:r2,c=(g=r==null?void 0:r.duration)!=null?g:n2;d(this,me).focusOn({...r,boundingBox:this.currentMapWrapperBoxHelper,duration:c,rotation:a,padding:r.safeAreaInsets,tilt:o,focusZoomFactor:1,curve:ui[s],callback:()=>{n(void 0)}})})}unmount(){this.unlockControls(),d(this,me).controls.dispatcher.removeEventListener(d(this,me).controls.CAMERA_EVENTS.PEDESTAL_CHANGE_EVENT.type,this.updateFrame),d(this,me).scene.remove(this.currentMapWrapperMesh),d(this,me).scene.remove(this.viewportMesh),d(this,me).scene.remove(this.currentMapWrapperBoxHelper),d(this,me).scene.remove(this.viewportBox),d(this,me).scene.remove(this.stackContainerMesh),this.destroyLabels()}computeMapZ(t,n,r){var a;return(n!=null?n:t.mapClass.elevation)*(((a=r==null?void 0:r.verticalDistanceBetweenMaps)!=null?a:WP)/d(this,me).referenceMap.scale)}async prepare(t,n){await super.prepare(t,n)}postRender(){super.postRender(),this.createMapLabels(),d(this,me).cameraObject.updateProjectionMatrix(),d(this,me).controls.dispatcher.addEventListener(d(this,me).controls.CAMERA_EVENTS.PEDESTAL_CHANGE_EVENT.type,this.updateFrame)}expandMaps(t,n){var s,c;let r=this.mapObjects.get(this.currentMap.id),a=((c=(s=n==null?void 0:n.focusOn)==null?void 0:s.options)==null?void 0:c.duration)||Zz,o=t.flatMap((u,h)=>{if(u===r&&this.hasOutdoorGeometry)return[u.fadeOut("outdoor-geometry")];let m=this.computeMapZ(u,h,n);this.object.add(u.object);let f=[Nn({from:{z:r.object.position.z},to:{z:m},duration:a,onUpdate:({z:g})=>{u.object.position.z=g,d(this,me).tryRendering()}}),u.fadeIn("default")];return this.hasOutdoorGeometry&&f.push(u.fadeOut("outdoor-geometry")),f});return{start:()=>Promise.all(o.map(u=>u.start(d(this,me))))}}contractMaps(t=this.mapObjects.get(this.currentMap.id)){var s,c;let n=this.mapObjectsArray,r=this.transitionOptions,a=((c=(s=r==null?void 0:r.focusOn)==null?void 0:s.options)==null?void 0:c.duration)||Xz,o=n.flatMap(u=>t===u?{start:()=>Promise.resolve()}:[Nn({from:{z:u.object.position.z},to:{z:t.object.position.z},duration:a,onUpdate:({z:h})=>{u.object.position.z=h,d(this,me).tryRendering()}}),u.fadeOut()]);return{start:()=>Promise.all(o.map(u=>u.start(d(this,me))))}}resize(){this.focusOnStackBox({focusOn:{options:{tilt:d(this,me).controls.getTilt(),rotation:d(this,me).controls.getRotation()}}})}};me=new WeakMap,l(i7,"MapViewStackScene");var t7=i7,ep=t7;y();y();var n7=class n7 extends $a{constructor(e,t={}){let n=t.font;if(n===void 0)super();else{let r=n.generateShapes(e,t.size);t.depth=t.height!==void 0?t.height:50,t.bevelThickness===void 0&&(t.bevelThickness=10),t.bevelSize===void 0&&(t.bevelSize=8),t.bevelEnabled===void 0&&(t.bevelEnabled=!1),super(r,t)}this.type="TextGeometry"}};l(n7,"TextGeometry");var l2=n7;var Ia=et(tS());y();var c7=et(dS());function hS(i){this.name="JSClipperError",this.message=i,this.stack=new Error().stack}l(hS,"JSClipperError");hS.prototype=Error.prototype;c7.default.Error=function(i){throw new hS(i)};var Pa=c7.default;y();y();var u7=class u7{constructor(e){this.isFont=!0,this.type="Font",this.data=e}generateShapes(e,t=100){let n=[],r=pH(e,t,this.data);for(let a=0,o=r.length;a<o;a++)n.push(...r[a].toShapes());return n}};l(u7,"Font");var p2=u7;function pH(i,e,t){let n=Array.from(i),r=e/t.resolution,a=(t.boundingBox.yMax-t.boundingBox.yMin+t.underlineThickness)*r,o=[],s=0,c=0;for(let u=0;u<n.length;u++){let h=n[u];if(h==="\n")s=0,c-=a;else{let m=fH(h,r,s,c,t);s+=m.offsetX,o.push(m.path)}}return o}l(pH,"createPaths");function fH(i,e,t,n,r){let a=r.glyphs[i]||r.glyphs["?"];if(!a){console.error('THREE.Font: character "'+i+'" does not exists in font family '+r.familyName+".");return}let o=new kT,s,c,u,h,m,f,g,b;if(a.o){let M=a._cachedOutline||(a._cachedOutline=a.o.split(" "));for(let x=0,T=M.length;x<T;)switch(M[x++]){case"m":s=M[x++]*e+t,c=M[x++]*e+n,o.moveTo(s,c);break;case"l":s=M[x++]*e+t,c=M[x++]*e+n,o.lineTo(s,c);break;case"q":u=M[x++]*e+t,h=M[x++]*e+n,m=M[x++]*e+t,f=M[x++]*e+n,o.quadraticCurveTo(m,f,u,h);break;case"b":u=M[x++]*e+t,h=M[x++]*e+n,m=M[x++]*e+t,f=M[x++]*e+n,g=M[x++]*e+t,b=M[x++]*e+n,o.bezierCurveTo(m,f,g,b,u,h);break}}return{offsetX:a.ha*e,path:o}}l(fH,"createPath");var Gc={glyphs:{"0":{ha:765,x_min:66,x_max:700,o:"m 700 497 q 683 282 700 377 q 627 121 665 187 q 528 21 589 56 q 382 -14 468 -14 q 242 21 302 -14 q 144 121 183 56 q 86 282 105 187 q 66 497 66 377 q 84 712 66 617 q 139 872 101 807 q 236 972 176 938 q 382 1007 296 1007 q 522 973 463 1007 q 621 873 582 939 q 680 713 661 808 q 700 497 700 618 m 192 497 q 202 319 192 395 q 235 193 212 243 q 293 117 257 142 q 382 92 330 92 q 471 117 434 92 q 531 192 507 142 q 565 318 554 242 q 575 497 575 395 q 565 675 575 599 q 531 801 554 751 q 471 876 507 851 q 382 901 434 901 q 293 876 330 901 q 235 801 257 851 q 202 675 212 751 q 192 497 192 599 z "},"1":{ha:765,x_min:121,x_max:482,o:"m 482 0 l 363 0 l 363 619 q 363 682 363 648 q 365 748 363 715 q 367 811 366 781 q 368 864 368 841 q 348 843 357 852 q 330 826 339 834 q 311 809 321 818 q 286 787 300 800 l 186 705 l 121 789 l 380 991 l 482 991 l 482 0 z "},"2":{ha:765,x_min:65,x_max:684,o:"m 684 0 l 65 0 l 65 106 l 302 364 q 393 465 353 419 q 461 553 433 510 q 505 641 490 597 q 519 736 519 684 q 508 806 519 776 q 475 858 496 837 q 425 890 454 880 q 359 901 395 901 q 243 875 295 901 q 144 808 191 849 l 75 889 q 134 935 102 913 q 201 972 165 956 q 277 997 237 987 q 361 1006 317 1006 q 478 987 426 1006 q 568 935 531 969 q 624 851 604 901 q 644 741 644 802 q 626 631 644 683 q 577 528 608 578 q 502 427 545 477 q 407 321 458 376 l 216 118 l 216 113 l 684 113 l 684 0 z "},"3":{ha:765,x_min:56,x_max:682,o:"m 652 760 q 636 669 652 710 q 592 599 621 629 q 525 550 564 569 q 437 522 486 530 l 437 518 q 620 442 557 503 q 682 282 682 380 q 660 163 682 217 q 593 69 638 109 q 480 8 549 30 q 318 -14 412 -14 q 179 -2 244 -14 q 56 40 113 9 l 56 155 q 183 107 115 124 q 315 90 252 90 q 423 104 378 90 q 498 142 469 117 q 542 204 528 168 q 555 286 555 241 q 537 365 555 332 q 486 419 519 398 q 405 451 453 441 q 297 461 357 461 l 207 461 l 207 564 l 297 564 q 395 577 352 564 q 466 616 437 591 q 510 675 495 641 q 525 751 525 710 q 513 814 525 787 q 478 862 500 842 q 425 891 456 881 q 355 901 393 901 q 228 879 283 901 q 122 819 172 856 l 60 904 q 117 943 85 925 q 186 976 149 962 q 266 998 223 989 q 355 1006 308 1006 q 484 987 429 1006 q 576 936 539 969 q 633 858 614 903 q 652 760 652 813 z "},"4":{ha:765,x_min:16,x_max:737,o:"m 737 222 l 593 222 l 593 0 l 473 0 l 473 222 l 16 222 l 16 330 l 465 997 l 593 997 l 593 335 l 737 335 l 737 222 m 473 335 l 473 576 q 474 656 473 614 q 477 738 475 698 q 480 812 478 777 q 482 869 481 846 l 476 869 q 464 839 471 856 q 449 806 457 823 q 431 774 440 789 q 415 747 422 758 l 136 335 l 473 335 z "},"5":{ha:765,x_min:89,x_max:688,o:"m 370 608 q 495 590 437 608 q 596 534 553 571 q 663 444 639 498 q 688 318 688 389 q 665 179 688 241 q 596 75 642 117 q 484 9 551 32 q 330 -14 417 -14 q 262 -10 296 -14 q 198 0 229 -7 q 139 16 167 6 q 89 40 111 26 l 89 157 q 141 129 111 141 q 205 109 172 117 q 272 96 238 100 q 334 92 305 92 q 429 104 387 92 q 500 143 471 117 q 545 210 530 170 q 561 304 561 250 q 501 453 561 401 q 328 504 441 504 q 288 502 309 504 q 245 498 267 500 q 204 492 224 495 q 171 486 185 489 l 110 525 l 147 991 l 615 991 l 615 879 l 254 879 l 228 595 q 285 604 250 599 q 370 608 321 608 z "},"6":{ha:765,x_min:77,x_max:701,o:"m 77 424 q 84 566 77 495 q 109 701 91 636 q 158 821 127 766 q 237 918 189 877 q 353 982 286 959 q 510 1006 420 1006 q 538 1005 523 1006 q 570 1003 554 1004 q 601 999 586 1001 q 627 993 615 996 l 627 888 q 573 900 603 896 q 514 904 543 904 q 407 889 453 904 q 326 848 360 875 q 270 785 292 822 q 233 704 247 749 q 212 610 218 660 q 203 505 205 559 l 211 505 q 244 551 224 530 q 289 588 263 572 q 347 612 315 603 q 419 621 379 621 q 536 601 484 621 q 625 542 588 581 q 681 447 661 503 q 701 319 701 391 q 680 180 701 242 q 620 76 659 119 q 525 9 581 33 q 400 -14 469 -14 q 273 13 332 -14 q 170 94 214 39 q 102 230 127 148 q 77 424 77 312 m 399 90 q 473 104 439 90 q 531 146 507 118 q 569 217 555 174 q 582 319 582 260 q 571 405 582 367 q 537 469 559 442 q 481 509 515 495 q 403 524 448 524 q 320 508 357 524 q 256 466 282 492 q 215 408 229 441 q 200 343 200 376 q 213 253 200 298 q 250 172 225 208 q 312 113 275 136 q 399 90 349 90 z "},"7":{ha:765,x_min:61,x_max:699,o:"m 191 0 l 572 879 l 61 879 l 61 991 l 699 991 l 699 893 l 322 0 l 191 0 z "},"8":{ha:765,x_min:72,x_max:694,o:"m 383 1007 q 491 992 440 1007 q 579 947 541 977 q 640 873 618 918 q 663 768 663 828 q 649 686 663 723 q 612 620 635 650 q 555 567 588 591 q 485 525 523 544 q 562 478 524 504 q 629 420 600 452 q 676 348 659 388 q 694 258 694 308 q 672 145 694 196 q 608 60 649 95 q 510 5 567 24 q 383 -14 452 -14 q 251 5 309 -14 q 153 57 193 23 q 93 141 113 92 q 72 253 72 191 q 87 345 72 304 q 128 418 102 385 q 189 475 154 450 q 264 519 224 500 q 201 565 231 541 q 151 621 172 590 q 117 688 130 651 q 104 770 104 725 q 127 873 104 829 q 189 947 150 918 q 278 992 227 977 q 383 1007 328 1007 m 193 252 q 204 185 193 216 q 238 134 215 155 q 296 101 261 113 q 380 89 332 89 q 464 101 428 89 q 525 135 500 113 q 562 188 549 157 q 574 257 574 219 q 561 321 574 292 q 523 374 547 349 q 463 420 498 398 q 386 463 429 441 l 366 472 q 237 379 280 431 q 193 252 193 326 m 382 904 q 268 868 310 904 q 225 764 225 832 q 237 697 225 725 q 270 648 249 669 q 320 609 291 626 q 385 575 350 591 q 446 608 417 590 q 496 648 475 625 q 530 699 517 670 q 542 764 542 727 q 499 868 542 832 q 382 904 456 904 z "},"9":{ha:765,x_min:72,x_max:697,o:"m 697 568 q 690 426 697 497 q 665 291 683 355 q 616 171 647 227 q 536 74 585 115 q 421 10 488 33 q 264 -14 354 -14 q 235 -13 251 -14 q 204 -11 220 -12 q 174 -7 189 -9 q 147 -1 159 -5 l 147 104 q 201 92 171 96 q 260 87 231 87 q 410 119 351 87 q 504 206 469 151 q 553 333 538 260 q 571 486 568 406 l 562 486 q 530 441 549 462 q 485 404 511 420 q 427 380 459 389 q 354 371 394 371 q 237 391 290 371 q 149 450 185 411 q 92 544 112 488 q 72 672 72 600 q 93 811 72 749 q 154 917 115 873 q 249 983 193 960 q 374 1006 304 1006 q 501 979 442 1006 q 604 899 560 953 q 672 762 647 844 q 697 568 697 680 m 375 901 q 301 888 334 901 q 243 846 267 874 q 205 774 218 817 q 192 672 192 731 q 203 587 192 625 q 237 523 214 549 q 293 482 259 496 q 371 468 326 468 q 454 484 417 468 q 518 525 492 500 q 559 583 545 551 q 574 648 574 616 q 561 739 574 694 q 524 820 549 784 q 462 879 499 857 q 375 901 425 901 z "}," ":{ha:361,x_min:0,x_max:0,o:""},"!":{ha:374,x_min:100,x_max:272,o:"m 228 281 l 146 281 l 111 991 l 262 991 l 228 281 m 100 75 q 106 119 100 101 q 125 148 113 137 q 152 164 136 159 q 186 170 168 170 q 219 164 203 170 q 247 148 235 159 q 265 119 258 137 q 272 75 272 101 q 265 32 272 50 q 247 3 258 14 q 219 -14 235 -9 q 186 -20 203 -20 q 152 -14 168 -20 q 125 3 136 -9 q 106 32 113 14 q 100 75 100 50 z "},'"':{ha:558,x_min:90,x_max:468,o:"m 224 991 l 196 633 l 118 633 l 90 991 l 224 991 m 468 991 l 440 633 l 363 633 l 335 991 l 468 991 z "},"#":{ha:897,x_min:35,x_max:863,o:"m 667 606 l 624 383 l 814 383 l 814 290 l 606 290 l 550 0 l 450 0 l 507 290 l 310 290 l 254 0 l 157 0 l 210 290 l 35 290 l 35 383 l 228 383 l 272 606 l 86 606 l 86 699 l 289 699 l 345 991 l 444 991 l 389 699 l 587 699 l 644 991 l 742 991 l 685 699 l 863 699 l 863 606 l 667 606 m 328 383 l 525 383 l 568 606 l 371 606 l 328 383 z "},$:{ha:765,x_min:83,x_max:668,o:"m 668 302 q 651 216 668 255 q 603 149 634 178 q 526 102 571 121 q 424 75 481 83 l 424 -81 l 330 -81 l 330 69 q 262 72 296 69 q 195 81 227 75 q 134 96 162 87 q 83 117 105 105 l 83 233 q 135 211 106 222 q 197 191 165 200 q 264 177 230 182 q 330 171 298 171 l 330 465 q 225 508 270 486 q 152 559 181 530 q 109 625 123 588 q 94 713 94 663 q 111 796 94 758 q 158 862 127 833 q 233 908 189 890 q 330 932 277 926 l 330 1054 l 424 1054 l 424 935 q 549 917 492 931 q 652 882 606 903 l 607 783 q 522 814 569 800 q 424 832 474 828 l 424 546 q 529 503 484 525 q 606 452 575 480 q 652 388 637 424 q 668 302 668 351 m 549 302 q 542 343 549 325 q 520 377 535 362 q 482 406 506 393 q 424 431 458 418 l 424 178 q 518 220 487 187 q 549 302 549 254 m 214 711 q 219 668 214 687 q 239 632 225 648 q 275 604 252 616 q 330 579 297 591 l 330 829 q 242 788 270 819 q 214 711 214 758 z "},"%":{ha:1146,x_min:69,x_max:1076,o:"m 170 696 q 194 528 170 584 q 272 472 218 472 q 378 696 378 472 q 272 918 378 918 q 194 863 218 918 q 170 696 170 808 m 478 696 q 466 564 478 623 q 429 466 454 506 q 365 405 404 426 q 272 383 326 383 q 184 405 222 383 q 121 466 146 426 q 82 564 95 506 q 69 696 69 623 q 81 827 69 769 q 118 924 93 884 q 181 985 142 964 q 272 1006 219 1006 q 361 985 323 1006 q 426 924 399 964 q 465 827 452 884 q 478 696 478 769 m 768 298 q 792 131 768 186 q 871 75 817 75 q 977 298 977 75 q 871 521 977 521 q 792 466 817 521 q 768 298 768 410 m 1076 298 q 1064 167 1076 225 q 1027 69 1053 109 q 963 8 1002 29 q 871 -14 924 -14 q 783 8 821 -14 q 719 69 745 29 q 681 167 694 109 q 668 298 668 225 q 680 429 668 372 q 716 527 692 487 q 780 587 741 566 q 871 608 818 608 q 960 587 922 608 q 1024 527 998 566 q 1063 429 1050 487 q 1076 298 1076 372 m 903 991 l 353 0 l 245 0 l 796 991 l 903 991 z "},"&":{ha:975,x_min:74,x_max:953,o:"m 286 790 q 292 745 286 767 q 308 701 297 723 q 337 656 319 679 q 379 608 355 633 q 448 653 419 632 q 496 696 477 674 q 525 741 515 718 q 534 793 534 765 q 526 838 534 817 q 502 873 517 859 q 463 897 486 888 q 412 905 441 905 q 320 875 354 905 q 286 790 286 845 m 378 96 q 450 103 417 96 q 512 125 484 111 q 565 157 541 138 q 611 196 589 175 l 349 472 q 286 428 313 450 q 240 382 259 407 q 212 329 222 358 q 203 262 203 300 q 215 195 203 226 q 249 142 227 164 q 304 108 271 120 q 378 96 336 96 m 74 258 q 87 353 74 311 q 127 428 101 394 q 191 491 153 462 q 277 549 229 520 q 235 599 256 573 q 200 655 215 625 q 175 718 184 684 q 165 790 165 751 q 182 881 165 841 q 231 950 199 922 q 310 992 263 978 q 416 1007 357 1007 q 517 992 473 1007 q 592 950 562 978 q 640 881 623 922 q 656 790 656 841 q 639 710 656 747 q 593 641 622 673 q 528 583 565 610 q 450 532 491 556 l 689 279 q 722 319 707 299 q 748 363 736 340 q 769 412 760 386 q 785 471 778 439 l 909 471 q 885 388 899 426 q 853 317 871 351 q 813 255 836 284 q 765 199 791 227 l 953 0 l 800 0 l 686 117 q 621 62 653 86 q 551 21 588 38 q 473 -4 515 5 q 378 -14 431 -14 q 250 4 307 -14 q 154 57 193 22 q 95 143 115 92 q 74 258 74 193 z "},"'":{ha:314,x_min:90,x_max:224,o:"m 224 991 l 196 633 l 118 633 l 90 991 l 224 991 z "},"(":{ha:418,x_min:56,x_max:376,o:"m 56 380 q 68 548 56 465 q 105 708 80 630 q 169 857 130 785 q 260 991 207 928 l 376 991 q 232 704 281 861 q 183 382 183 547 q 196 221 183 301 q 232 64 208 141 q 292 -84 256 -12 q 375 -220 328 -156 l 260 -220 q 169 -89 207 -159 q 105 57 130 -19 q 68 215 80 134 q 56 380 56 296 z "},")":{ha:418,x_min:41,x_max:363,o:"m 363 380 q 351 215 363 296 q 313 57 338 134 q 249 -89 288 -19 q 158 -220 211 -159 l 43 -220 q 125 -84 90 -156 q 186 64 161 -12 q 222 221 210 141 q 235 382 235 301 q 186 704 235 547 q 41 991 137 861 l 158 991 q 249 857 211 928 q 313 708 288 785 q 351 548 338 630 q 363 380 363 465 z "},"*":{ha:765,x_min:56,x_max:708,o:"m 450 1055 l 421 789 l 690 864 l 708 733 l 452 714 l 618 493 l 497 428 l 378 671 l 271 428 l 146 493 l 310 714 l 56 733 l 75 864 l 340 789 l 311 1055 l 450 1055 z "},"+":{ha:765,x_min:69,x_max:696,o:"m 332 439 l 69 439 l 69 541 l 332 541 l 332 804 l 433 804 l 433 541 l 696 541 l 696 439 l 433 439 l 433 178 l 332 178 l 332 439 z "},",":{ha:347,x_min:43,x_max:256,o:"m 245 161 l 256 146 q 233 68 246 109 q 204 -16 220 26 q 171 -99 188 -58 q 136 -179 153 -141 l 43 -179 q 63 -93 53 -138 q 82 -4 73 -48 q 98 83 91 41 q 111 161 106 125 l 245 161 z "},"-":{ha:447,x_min:56,x_max:392,o:"m 56 315 l 56 429 l 392 429 l 392 315 l 56 315 z "},".":{ha:372,x_min:100,x_max:272,o:"m 100 75 q 106 119 100 101 q 125 148 113 137 q 152 164 136 159 q 186 170 168 170 q 219 164 203 170 q 247 148 235 159 q 265 119 258 137 q 272 75 272 101 q 265 32 272 50 q 247 3 258 14 q 219 -14 235 -9 q 186 -20 203 -20 q 152 -14 168 -20 q 125 3 136 -9 q 106 32 113 14 q 100 75 100 50 z "},"/":{ha:518,x_min:14,x_max:504,o:"m 504 991 l 135 0 l 14 0 l 383 991 l 504 991 z "},":":{ha:372,x_min:100,x_max:272,o:"m 100 75 q 106 119 100 101 q 125 148 113 137 q 152 164 136 159 q 186 170 168 170 q 219 164 203 170 q 247 148 235 159 q 265 119 258 137 q 272 75 272 101 q 265 32 272 50 q 247 3 258 14 q 219 -14 235 -9 q 186 -20 203 -20 q 152 -14 168 -20 q 125 3 136 -9 q 106 32 113 14 q 100 75 100 50 m 100 669 q 106 714 100 696 q 125 743 113 732 q 152 759 136 754 q 186 764 168 764 q 219 759 203 764 q 247 743 235 754 q 265 714 258 732 q 272 669 272 696 q 265 627 272 644 q 247 597 258 609 q 219 581 235 586 q 186 575 203 575 q 152 581 168 575 q 125 597 136 586 q 106 627 113 609 q 100 669 100 644 z "},";":{ha:372,x_min:43,x_max:272,o:"m 245 161 l 256 146 q 233 68 246 109 q 204 -16 220 26 q 171 -99 188 -58 q 136 -179 153 -141 l 43 -179 q 63 -93 53 -138 q 82 -4 73 -48 q 98 83 91 41 q 111 161 106 125 l 245 161 m 100 669 q 106 714 100 696 q 125 743 113 732 q 152 759 136 754 q 186 764 168 764 q 219 759 203 764 q 247 743 235 754 q 265 714 258 732 q 272 669 272 696 q 265 627 272 644 q 247 597 258 609 q 219 581 235 586 q 186 575 203 575 q 152 581 168 575 q 125 597 136 586 q 106 627 113 609 q 100 669 100 644 z "},"<":{ha:765,x_min:69,x_max:696,o:"m 696 161 l 69 449 l 69 518 l 696 844 l 696 736 l 197 489 l 696 271 l 696 161 z "},"=":{ha:765,x_min:69,x_max:696,o:"m 69 578 l 69 679 l 696 679 l 696 578 l 69 578 m 69 300 l 69 401 l 696 401 l 696 300 l 69 300 z "},">":{ha:765,x_min:69,x_max:696,o:"m 69 271 l 568 489 l 69 736 l 69 844 l 696 518 l 696 449 l 69 161 l 69 271 z "},"?":{ha:591,x_min:25,x_max:546,o:"m 191 281 l 191 306 q 196 376 191 345 q 214 434 201 407 q 250 487 227 461 q 306 542 272 513 q 361 592 338 570 q 399 638 385 615 q 421 689 414 662 q 428 751 428 715 q 418 811 428 784 q 388 857 408 838 q 340 887 369 876 q 273 897 311 897 q 166 880 217 897 q 68 839 115 862 l 25 937 q 144 986 80 966 q 273 1006 208 1006 q 387 988 336 1006 q 473 939 437 971 q 527 859 508 906 q 546 753 546 812 q 537 672 546 707 q 509 606 528 636 q 464 547 491 575 q 400 486 437 518 q 342 433 365 456 q 307 389 320 410 q 290 345 294 368 q 285 293 285 323 l 285 281 l 191 281 m 158 75 q 165 119 158 101 q 183 148 172 137 q 210 164 195 159 q 244 170 226 170 q 278 164 262 170 q 305 148 294 159 q 323 119 317 137 q 330 75 330 101 q 323 32 330 50 q 305 3 317 14 q 278 -14 294 -9 q 244 -20 262 -20 q 210 -14 226 -20 q 183 3 195 -9 q 165 32 172 14 q 158 75 158 50 z "},"@":{ha:1203,x_min:74,x_max:1129,o:"m 1129 496 q 1123 411 1129 454 q 1104 331 1116 369 q 1072 259 1091 292 q 1027 202 1053 227 q 968 164 1001 178 q 896 150 935 150 q 841 160 865 150 q 798 187 816 170 q 769 226 781 204 q 754 272 758 248 l 751 272 q 721 224 739 247 q 679 185 703 202 q 624 159 654 169 q 558 150 594 150 q 466 169 506 150 q 397 222 425 188 q 355 304 370 256 q 340 411 340 353 q 360 536 340 479 q 418 635 380 593 q 509 699 456 676 q 629 722 563 722 q 690 720 660 722 q 749 712 721 717 q 800 702 777 707 q 839 690 823 696 l 823 408 q 822 384 823 393 q 822 370 822 375 q 822 361 822 364 q 822 357 822 359 q 829 298 822 321 q 848 261 836 275 q 874 242 859 248 q 904 237 888 237 q 959 258 935 237 q 999 314 983 279 q 1023 397 1015 349 q 1031 497 1031 444 q 1002 668 1031 593 q 921 795 972 743 q 799 873 869 846 q 644 900 728 900 q 442 862 530 900 q 295 757 355 825 q 205 597 236 690 q 175 395 175 505 q 202 213 175 292 q 280 79 229 134 q 409 -3 332 25 q 586 -31 486 -31 q 668 -26 627 -31 q 746 -13 708 -21 q 817 6 783 -5 q 880 28 851 16 l 880 -68 q 749 -109 822 -94 q 587 -123 675 -123 q 371 -89 466 -123 q 209 12 275 -54 q 109 173 143 78 q 74 390 74 269 q 114 628 74 517 q 228 819 154 738 q 408 945 302 899 q 644 991 513 991 q 839 957 750 991 q 992 859 928 923 q 1093 703 1057 795 q 1129 496 1129 611 m 449 408 q 483 278 449 318 q 575 237 517 237 q 639 253 612 237 q 682 296 665 268 q 708 363 699 324 q 720 449 717 402 l 729 621 q 684 630 710 626 q 629 635 658 635 q 545 615 579 635 q 489 564 511 595 q 458 491 468 532 q 449 408 449 450 z "},A:{ha:844,x_min:0,x_max:844,o:"m 715 0 l 607 307 l 237 307 l 127 0 l 0 0 l 364 996 l 479 996 l 844 0 l 715 0 m 567 419 l 467 707 q 457 736 463 719 q 445 774 451 754 q 433 817 439 795 q 421 860 427 839 q 410 817 416 839 q 398 773 404 794 q 386 735 392 753 q 376 707 380 718 l 278 419 l 567 419 z "},B:{ha:863,x_min:135,x_max:786,o:"m 135 991 l 406 991 q 558 978 492 991 q 669 936 625 965 q 736 858 713 906 q 758 741 758 810 q 745 662 758 699 q 707 597 732 625 q 645 551 682 570 q 561 526 608 532 l 561 519 q 649 496 608 511 q 720 454 690 481 q 768 387 751 427 q 786 288 786 346 q 764 166 786 220 q 700 76 742 113 q 599 20 659 39 q 464 0 539 0 l 135 0 l 135 991 m 261 571 l 427 571 q 522 581 484 571 q 585 611 561 591 q 619 662 608 631 q 629 732 629 692 q 577 848 629 813 q 412 884 525 884 l 261 884 l 261 571 m 261 465 l 261 107 l 441 107 q 542 121 501 107 q 607 159 582 134 q 642 217 631 183 q 653 293 653 252 q 642 363 653 331 q 605 417 631 395 q 538 453 580 440 q 433 465 496 465 l 261 465 z "},C:{ha:838,x_min:85,x_max:798,o:"m 538 895 q 406 867 465 895 q 306 788 347 840 q 241 663 264 736 q 218 496 218 589 q 238 326 218 400 q 298 201 258 252 q 398 123 338 150 q 538 97 458 97 q 652 109 598 97 q 760 136 707 121 l 760 26 q 707 8 733 16 q 651 -4 680 1 q 590 -11 623 -9 q 517 -14 557 -14 q 324 23 406 -14 q 190 127 243 60 q 111 288 136 194 q 85 497 85 382 q 114 703 85 610 q 201 864 144 797 q 343 968 258 931 q 538 1006 428 1006 q 677 991 611 1006 q 798 947 744 976 l 745 842 q 652 879 702 863 q 538 895 602 895 z "},D:{ha:950,x_min:135,x_max:865,o:"m 865 505 q 833 285 865 380 q 739 127 800 191 q 587 32 677 64 q 383 0 497 0 l 135 0 l 135 991 l 411 991 q 599 960 515 991 q 742 868 683 929 q 833 715 801 806 q 865 505 865 625 m 732 501 q 709 672 732 600 q 644 791 687 745 q 539 861 602 838 q 397 884 477 884 l 261 884 l 261 109 l 371 109 q 641 208 550 109 q 732 501 732 307 z "},E:{ha:733,x_min:135,x_max:650,o:"m 650 0 l 135 0 l 135 991 l 650 991 l 650 880 l 261 880 l 261 574 l 624 574 l 624 464 l 261 464 l 261 111 l 650 111 l 650 0 z "},F:{ha:682,x_min:135,x_max:650,o:"m 261 0 l 135 0 l 135 991 l 650 991 l 650 880 l 261 880 l 261 530 l 624 530 l 624 419 l 261 419 l 261 0 z "},G:{ha:958,x_min:85,x_max:859,o:"m 530 524 l 859 524 l 859 37 q 783 16 821 25 q 705 0 745 6 q 621 -10 665 -7 q 526 -14 577 -14 q 338 22 420 -14 q 199 124 256 58 q 114 284 143 190 q 85 497 85 379 q 117 708 85 614 q 211 868 149 802 q 363 970 273 935 q 570 1006 454 1006 q 714 991 645 1006 q 843 947 783 976 l 794 838 q 742 859 770 849 q 684 877 713 869 q 622 890 654 885 q 559 895 591 895 q 413 867 477 895 q 306 788 349 840 q 241 663 263 736 q 218 496 218 589 q 237 334 218 408 q 296 208 256 261 q 401 126 337 155 q 557 97 466 97 q 611 99 587 97 q 657 103 636 100 q 697 110 678 106 q 733 117 715 113 l 733 412 l 530 412 l 530 524 z "},H:{ha:974,x_min:135,x_max:839,o:"m 839 0 l 713 0 l 713 463 l 261 463 l 261 0 l 135 0 l 135 991 l 261 991 l 261 574 l 713 574 l 713 991 l 839 991 l 839 0 z "},I:{ha:471,x_min:56,x_max:415,o:"m 415 0 l 56 0 l 56 69 l 172 97 l 172 895 l 56 922 l 56 991 l 415 991 l 415 922 l 298 895 l 298 97 l 415 69 l 415 0 z "},J:{ha:376,x_min:-125,x_max:252,o:"m -20 -264 q -80 -259 -54 -264 q -125 -248 -106 -255 l -125 -139 q -75 -149 -102 -145 q -18 -153 -49 -153 q 32 -146 7 -153 q 78 -123 58 -140 q 112 -76 99 -106 q 125 0 125 -46 l 125 991 l 252 991 l 252 14 q 232 -110 252 -58 q 176 -196 212 -162 q 91 -247 140 -231 q -20 -264 41 -264 z "},K:{ha:804,x_min:135,x_max:804,o:"m 804 0 l 661 0 l 355 473 l 261 396 l 261 0 l 135 0 l 135 991 l 261 991 l 261 496 l 343 610 l 650 991 l 791 991 l 439 559 l 804 0 z "},L:{ha:682,x_min:135,x_max:650,o:"m 135 0 l 135 991 l 261 991 l 261 113 l 650 113 l 650 0 l 135 0 z "},M:{ha:1208,x_min:135,x_max:1074,o:"m 545 0 l 244 868 l 239 868 q 245 768 243 818 q 250 679 248 726 q 252 593 252 631 l 252 0 l 135 0 l 135 991 l 322 991 l 602 183 l 606 183 l 886 991 l 1074 991 l 1074 0 l 947 0 l 947 602 q 949 682 947 637 q 952 769 950 728 q 957 867 955 817 l 951 867 l 648 0 l 545 0 z "},N:{ha:1013,x_min:135,x_max:878,o:"m 878 0 l 732 0 l 244 821 l 239 821 q 245 717 243 768 q 250 625 248 673 q 252 538 252 576 l 252 0 l 135 0 l 135 991 l 279 991 l 765 175 l 770 175 q 765 277 768 227 q 763 321 764 298 q 761 367 762 344 q 760 410 760 389 q 760 449 760 431 l 760 991 l 878 991 l 878 0 z "},O:{ha:1031,x_min:85,x_max:945,o:"m 945 497 q 917 288 945 382 q 836 127 890 194 q 701 23 781 60 q 515 -14 621 -14 q 324 23 405 -14 q 190 127 243 60 q 111 289 136 194 q 85 498 85 383 q 111 708 85 614 q 190 868 136 802 q 325 971 243 935 q 517 1007 406 1007 q 702 971 622 1007 q 836 868 781 935 q 917 707 890 801 q 945 497 945 613 m 218 497 q 236 330 218 404 q 290 204 254 256 q 382 124 326 152 q 515 97 438 97 q 649 124 593 97 q 741 204 705 152 q 794 330 777 256 q 811 497 811 404 q 794 665 811 591 q 741 790 777 739 q 650 868 705 841 q 517 896 594 896 q 383 868 439 896 q 290 790 327 841 q 236 665 254 739 q 218 497 218 591 z "},P:{ha:800,x_min:135,x_max:729,o:"m 729 701 q 710 583 729 640 q 649 482 692 526 q 536 412 606 438 q 363 386 466 386 l 261 386 l 261 0 l 135 0 l 135 991 l 380 991 q 537 972 471 991 q 646 916 603 953 q 709 825 688 879 q 729 701 729 770 m 261 493 l 349 493 q 459 504 412 493 q 537 539 506 515 q 583 601 568 563 q 599 694 599 640 q 543 837 599 791 q 370 884 488 884 l 261 884 l 261 493 z "},Q:{ha:1029,x_min:85,x_max:945,o:"m 945 497 q 928 332 945 408 q 879 194 911 255 q 799 87 847 132 q 688 17 751 43 q 763 -95 717 -47 q 871 -184 810 -144 l 789 -281 q 660 -164 719 -231 q 567 -11 602 -97 q 542 -13 555 -12 q 515 -14 528 -14 q 324 23 405 -14 q 190 127 243 60 q 111 289 136 194 q 85 498 85 383 q 111 708 85 614 q 190 868 136 802 q 325 971 243 935 q 517 1007 406 1007 q 702 971 622 1007 q 836 868 781 935 q 917 707 890 801 q 945 497 945 613 m 218 497 q 236 330 218 404 q 290 204 254 256 q 382 124 326 152 q 515 97 438 97 q 649 124 593 97 q 741 204 705 152 q 794 330 777 256 q 811 497 811 404 q 794 665 811 591 q 741 790 777 739 q 650 868 705 841 q 517 896 594 896 q 383 868 439 896 q 290 790 327 841 q 236 665 254 739 q 218 497 218 591 z "},R:{ha:819,x_min:135,x_max:803,o:"m 261 410 l 261 0 l 135 0 l 135 991 l 376 991 q 643 922 557 991 q 729 710 729 852 q 712 607 729 651 q 668 531 696 563 q 606 479 641 500 q 533 444 570 458 l 803 0 l 654 0 l 416 410 l 261 410 m 261 517 l 372 517 q 476 529 433 517 q 546 564 519 541 q 586 622 574 587 q 599 704 599 657 q 585 787 599 753 q 543 842 571 821 q 472 874 515 864 q 370 884 429 884 l 261 884 l 261 517 z "},S:{ha:721,x_min:71,x_max:657,o:"m 657 265 q 634 148 657 199 q 567 60 610 96 q 461 5 524 24 q 321 -14 399 -14 q 180 -2 245 -14 q 71 33 115 10 l 71 154 q 123 133 94 143 q 185 114 153 122 q 252 101 218 106 q 321 96 287 96 q 481 136 429 96 q 533 253 533 177 q 523 317 533 290 q 489 367 513 344 q 422 411 464 389 q 318 457 381 432 q 213 509 258 481 q 140 572 169 537 q 97 652 111 608 q 83 754 83 697 q 105 861 83 814 q 166 940 127 907 q 260 989 205 972 q 380 1006 315 1006 q 526 990 461 1006 q 640 951 590 975 l 595 846 q 495 880 551 865 q 379 895 439 895 q 251 856 296 895 q 205 753 205 818 q 216 686 205 714 q 250 635 226 658 q 312 592 273 612 q 408 550 351 572 q 516 500 470 526 q 594 441 563 474 q 641 366 625 409 q 657 265 657 323 z "},T:{ha:721,x_min:14,x_max:707,o:"m 424 0 l 297 0 l 297 880 l 14 880 l 14 991 l 707 991 l 707 880 l 424 880 l 424 0 z "},U:{ha:970,x_min:125,x_max:844,o:"m 844 993 l 844 350 q 822 206 844 273 q 754 91 800 140 q 641 14 709 42 q 481 -14 573 -14 q 328 13 394 -14 q 216 87 261 39 q 148 202 171 135 q 125 353 125 270 l 125 991 l 252 991 l 252 346 q 310 162 252 227 q 488 97 369 97 q 591 115 548 97 q 663 167 635 134 q 704 246 690 200 q 718 347 718 292 l 718 993 l 844 993 z "},V:{ha:789,x_min:0,x_max:789,o:"m 654 991 l 789 991 l 457 0 l 330 0 l 0 991 l 134 991 l 334 363 q 368 244 353 301 q 393 136 382 186 q 419 244 404 186 q 456 367 435 301 l 654 991 z "},W:{ha:1227,x_min:14,x_max:1214,o:"m 549 991 l 682 991 l 838 411 q 858 335 848 373 q 876 261 867 297 q 891 194 884 226 q 901 136 897 162 q 908 193 904 162 q 918 257 912 223 q 929 325 923 290 q 943 393 936 360 l 1079 991 l 1214 991 l 965 0 l 838 0 l 665 636 q 647 707 656 671 q 631 776 638 744 q 615 848 623 813 q 600 777 608 814 q 585 707 593 745 q 567 632 576 669 l 403 0 l 275 0 l 14 991 l 147 991 l 298 389 q 313 324 307 357 q 326 257 320 290 q 336 193 332 224 q 345 136 341 162 q 353 195 348 161 q 365 264 358 228 q 379 339 372 301 q 396 410 387 376 l 549 991 z "},X:{ha:760,x_min:0,x_max:760,o:"m 760 0 l 616 0 l 376 431 l 127 0 l 0 0 l 307 518 l 21 991 l 155 991 l 380 612 l 607 991 l 736 991 l 450 522 l 760 0 z "},Y:{ha:732,x_min:0,x_max:732,o:"m 366 490 l 596 991 l 732 991 l 429 386 l 429 0 l 302 0 l 302 379 l 0 991 l 138 991 l 366 490 z "},Z:{ha:749,x_min:56,x_max:693,o:"m 693 0 l 56 0 l 56 98 l 538 879 l 69 879 l 69 991 l 679 991 l 679 893 l 197 113 l 693 113 l 693 0 z "},"[":{ha:421,x_min:111,x_max:386,o:"m 386 -220 l 111 -220 l 111 991 l 386 991 l 386 890 l 235 890 l 235 -118 l 386 -118 l 386 -220 z "},"\\":{ha:518,x_min:16,x_max:505,o:"m 136 991 l 505 0 l 385 0 l 16 991 l 136 991 z "},"]":{ha:421,x_min:35,x_max:310,o:"m 35 -118 l 186 -118 l 186 890 l 35 890 l 35 991 l 310 991 l 310 -220 l 35 -220 l 35 -118 z "},"^":{ha:739,x_min:28,x_max:711,o:"m 28 372 l 339 999 l 408 999 l 711 372 l 602 372 l 374 871 l 137 372 l 28 372 z "},_:{ha:571,x_min:-3,x_max:574,o:"m 574 -220 l -3 -220 l -3 -125 l 574 -125 l 574 -220 z "},"`":{ha:802,x_min:267,x_max:533,o:"m 533 842 l 452 842 q 400 889 428 861 q 346 947 372 917 q 299 1004 320 977 q 267 1050 277 1031 l 267 1064 l 415 1064 q 440 1014 426 1041 q 471 959 455 986 q 503 905 486 931 q 533 860 519 880 l 533 842 z "},a:{ha:737,x_min:64,x_max:627,o:"m 538 0 l 513 103 l 507 103 q 463 51 485 73 q 414 14 440 28 q 355 -7 387 0 q 279 -14 322 -14 q 193 0 233 -14 q 125 40 154 13 q 80 110 96 68 q 64 208 64 151 q 142 379 64 319 q 380 444 220 439 l 505 449 l 505 496 q 495 572 505 541 q 467 621 486 602 q 421 648 448 640 q 358 656 393 656 q 253 640 302 656 q 160 600 205 623 l 117 693 q 229 739 167 720 q 358 758 290 758 q 478 744 427 758 q 561 700 528 730 q 610 623 594 670 q 627 510 627 576 l 627 0 l 538 0 m 311 86 q 388 99 353 86 q 449 138 423 112 q 489 204 475 164 q 504 297 504 243 l 504 364 l 407 359 q 304 346 346 357 q 238 316 263 335 q 203 269 214 296 q 192 207 192 241 q 225 115 192 144 q 311 86 258 86 z "},b:{ha:814,x_min:118,x_max:737,o:"m 454 758 q 570 734 518 758 q 660 661 623 709 q 717 541 696 612 q 737 374 737 469 q 717 206 737 278 q 660 85 696 134 q 570 11 623 36 q 454 -14 518 -14 q 382 -5 414 -14 q 323 19 349 4 q 277 53 297 33 q 241 94 257 73 l 233 94 l 208 0 l 118 0 l 118 1055 l 241 1055 l 241 800 q 241 750 241 777 q 239 700 240 723 q 236 647 237 673 l 241 647 q 277 691 257 671 q 322 726 296 711 q 381 750 349 741 q 454 758 414 758 m 431 656 q 340 638 376 656 q 282 586 304 621 q 251 498 260 551 q 241 374 241 445 q 251 252 241 305 q 282 162 260 199 q 340 107 304 126 q 432 89 377 89 q 567 163 524 89 q 610 375 610 237 q 567 586 610 516 q 431 656 524 656 z "},c:{ha:643,x_min:77,x_max:596,o:"m 403 -14 q 275 8 334 -14 q 171 76 215 29 q 102 194 127 122 q 77 368 77 267 q 102 549 77 475 q 173 670 128 623 q 279 737 218 716 q 408 758 339 758 q 512 747 461 758 q 596 718 562 735 l 559 614 q 525 627 544 621 q 486 638 506 633 q 446 647 465 644 q 408 650 426 650 q 253 582 302 650 q 204 370 204 513 q 253 160 204 227 q 403 94 302 94 q 502 107 458 94 q 583 136 547 119 l 583 26 q 505 -3 547 7 q 403 -14 463 -14 z "},d:{ha:814,x_min:77,x_max:696,o:"m 578 100 l 572 100 q 537 56 557 77 q 491 20 517 35 q 433 -5 465 4 q 359 -14 400 -14 q 244 11 296 -14 q 155 84 192 35 q 97 204 117 132 q 77 371 77 276 q 97 539 77 467 q 155 660 117 611 q 244 733 192 709 q 359 758 296 758 q 432 749 399 758 q 491 726 465 741 q 537 691 517 711 q 572 650 557 671 l 581 650 q 576 694 578 673 q 574 730 575 711 q 572 760 572 749 l 572 1055 l 696 1055 l 696 0 l 596 0 l 578 100 m 383 89 q 470 104 435 89 q 528 152 506 120 q 561 232 550 184 q 572 343 571 279 l 572 371 q 563 493 572 439 q 532 582 554 546 q 473 637 510 618 q 382 656 437 656 q 247 582 290 656 q 204 370 204 508 q 247 158 204 228 q 383 89 290 89 z "},e:{ha:743,x_min:77,x_max:673,o:"m 412 -14 q 276 12 338 -14 q 170 85 214 37 q 101 204 125 133 q 77 367 77 275 q 99 532 77 459 q 162 655 121 604 q 259 732 203 705 q 385 758 316 758 q 505 734 452 758 q 596 666 559 710 q 653 561 633 623 q 673 425 673 500 l 673 349 l 204 349 q 259 156 208 218 q 414 94 311 94 q 478 98 448 94 q 535 107 507 101 q 588 124 562 114 q 640 146 614 134 l 640 36 q 587 14 613 23 q 533 -2 561 4 q 476 -11 506 -8 q 412 -14 447 -14 m 382 656 q 259 603 304 656 q 207 449 214 550 l 541 449 q 531 533 541 495 q 503 599 522 572 q 454 641 484 626 q 382 656 424 656 z "},f:{ha:457,x_min:20,x_max:510,o:"m 441 652 l 275 652 l 275 0 l 151 0 l 151 652 l 20 652 l 20 703 l 151 749 l 151 814 q 166 934 151 886 q 211 1010 182 982 q 281 1051 239 1039 q 376 1063 323 1063 q 450 1055 416 1063 q 510 1038 484 1047 l 478 942 q 432 955 457 949 q 380 961 408 961 q 334 955 353 961 q 301 932 314 948 q 282 887 288 916 q 275 815 275 859 l 275 745 l 441 745 l 441 652 z "},g:{ha:720,x_min:25,x_max:692,o:"m 692 745 l 692 668 l 558 650 q 590 589 577 626 q 603 505 603 552 q 587 410 603 454 q 539 334 571 366 q 459 284 507 302 q 349 267 412 267 q 319 267 334 267 q 294 269 304 267 q 272 254 283 262 q 251 235 260 245 q 236 210 242 224 q 231 180 231 197 q 239 151 231 162 q 261 134 247 140 q 294 125 275 127 q 334 123 313 123 l 453 123 q 559 107 516 123 q 630 64 603 92 q 670 0 658 37 q 682 -78 682 -37 q 660 -185 682 -138 q 593 -266 638 -233 q 478 -316 547 -298 q 314 -334 408 -334 q 187 -319 241 -334 q 97 -278 133 -305 q 43 -213 61 -251 q 25 -126 25 -174 q 38 -55 25 -85 q 74 -1 52 -24 q 126 35 96 21 q 187 57 155 50 q 140 98 159 70 q 122 161 122 125 q 144 233 122 203 q 212 292 165 263 q 159 325 183 304 q 118 374 135 347 q 93 434 102 401 q 83 501 83 467 q 100 609 83 562 q 151 690 117 656 q 233 741 184 723 q 349 758 283 758 q 400 754 374 758 q 446 745 427 751 l 692 745 m 142 -122 q 151 -169 142 -147 q 179 -206 159 -191 q 232 -231 199 -222 q 314 -240 265 -240 q 503 -201 440 -240 q 566 -89 566 -162 q 557 -38 566 -58 q 531 -7 549 -18 q 481 8 512 4 q 407 12 451 12 l 288 12 q 238 7 264 12 q 191 -14 212 1 q 156 -55 170 -28 q 142 -122 142 -81 m 204 505 q 241 389 204 427 q 345 351 277 351 q 447 389 412 351 q 482 507 482 427 q 447 630 482 591 q 343 669 411 669 q 240 629 276 669 q 204 505 204 588 z "},h:{ha:818,x_min:118,x_max:707,o:"m 583 0 l 583 479 q 548 612 583 568 q 436 656 512 656 q 344 638 381 656 q 284 586 307 621 q 251 501 261 551 q 241 386 241 451 l 241 0 l 118 0 l 118 1055 l 241 1055 l 241 742 l 236 644 l 243 644 q 283 695 260 673 q 334 730 307 716 q 393 751 362 745 q 457 758 425 758 q 644 693 581 758 q 707 486 707 629 l 707 0 l 583 0 z "},i:{ha:359,x_min:109,x_max:253,o:"m 241 0 l 118 0 l 118 745 l 241 745 l 241 0 m 109 946 q 129 1005 109 987 q 180 1023 150 1023 q 209 1019 195 1023 q 232 1005 222 1015 q 247 981 241 996 q 253 946 253 966 q 232 887 253 907 q 180 868 210 868 q 129 887 150 868 q 109 946 109 906 z "},j:{ha:359,x_min:-46,x_max:253,o:"m 45 -334 q -9 -329 12 -334 q -46 -317 -31 -324 l -46 -216 q -10 -227 -28 -223 q 32 -231 8 -231 q 66 -225 50 -231 q 93 -207 81 -220 q 112 -172 105 -194 q 118 -115 118 -150 l 118 745 l 241 745 l 241 -107 q 230 -201 241 -159 q 194 -272 218 -243 q 133 -318 170 -302 q 45 -334 96 -334 m 109 946 q 129 1005 109 987 q 180 1023 150 1023 q 209 1019 195 1023 q 232 1005 222 1015 q 247 981 241 996 q 253 946 253 966 q 232 887 253 907 q 180 868 210 868 q 129 887 150 868 q 109 946 109 906 z "},k:{ha:689,x_min:118,x_max:684,o:"m 232 385 l 323 500 l 522 745 l 665 745 l 393 422 l 684 0 l 542 0 l 314 342 l 240 286 l 240 0 l 118 0 l 118 1055 l 240 1055 l 240 571 l 229 385 l 232 385 z "},l:{ha:359,x_min:118,x_max:241,o:"m 241 0 l 118 0 l 118 1055 l 241 1055 l 241 0 z "},m:{ha:1244,x_min:118,x_max:1133,o:"m 1010 0 l 1010 479 q 976 612 1010 568 q 871 656 942 656 q 787 640 821 656 q 730 593 752 624 q 698 516 708 562 q 688 411 688 471 l 688 0 l 564 0 l 564 479 q 530 612 564 568 q 425 656 496 656 q 338 638 373 656 q 281 586 302 621 q 251 501 260 551 q 241 386 241 451 l 241 0 l 118 0 l 118 745 l 218 745 l 236 644 l 243 644 q 281 695 259 673 q 331 730 304 716 q 388 751 357 745 q 449 758 418 758 q 584 728 530 758 q 664 635 638 699 l 669 635 q 712 690 687 667 q 766 728 736 713 q 828 751 795 743 q 895 758 861 758 q 1073 693 1013 758 q 1133 486 1133 629 l 1133 0 l 1010 0 z "},n:{ha:818,x_min:118,x_max:707,o:"m 583 0 l 583 479 q 548 612 583 568 q 436 656 512 656 q 344 638 381 656 q 284 586 307 621 q 251 501 261 551 q 241 386 241 451 l 241 0 l 118 0 l 118 745 l 218 745 l 236 644 l 243 644 q 283 695 260 673 q 334 730 307 716 q 393 751 362 745 q 457 758 425 758 q 644 693 581 758 q 707 486 707 629 l 707 0 l 583 0 z "},o:{ha:802,x_min:77,x_max:725,o:"m 725 374 q 702 209 725 281 q 637 87 680 136 q 534 12 595 38 q 399 -14 474 -14 q 270 12 329 -14 q 168 87 211 38 q 101 209 125 136 q 77 374 77 281 q 99 537 77 466 q 164 658 122 609 q 267 733 206 707 q 403 758 328 758 q 532 733 473 758 q 634 658 591 707 q 701 537 677 609 q 725 374 725 466 m 204 374 q 251 160 204 232 q 401 89 297 89 q 552 160 506 89 q 597 374 597 232 q 551 586 597 515 q 400 656 505 656 q 250 586 296 656 q 204 374 204 515 z "},p:{ha:814,x_min:118,x_max:737,o:"m 454 -14 q 382 -5 414 -14 q 323 19 349 4 q 277 53 297 33 q 241 94 257 73 l 233 94 q 237 50 235 71 q 240 14 239 33 q 241 -16 241 -5 l 241 -334 l 118 -334 l 118 745 l 218 745 l 236 644 l 241 644 q 277 689 257 668 q 322 725 296 709 q 381 749 349 740 q 454 758 414 758 q 570 734 518 758 q 660 661 623 709 q 717 541 696 612 q 737 374 737 469 q 717 206 737 278 q 660 85 696 134 q 570 11 623 36 q 454 -14 518 -14 m 431 656 q 343 640 379 656 q 286 593 308 625 q 253 513 264 561 q 241 401 243 466 l 241 374 q 251 252 241 305 q 282 162 260 199 q 340 107 304 126 q 432 89 377 89 q 567 163 524 89 q 610 375 610 237 q 567 586 610 516 q 431 656 524 656 z "},q:{ha:814,x_min:77,x_max:696,o:"m 383 89 q 470 104 435 89 q 528 152 506 120 q 561 232 550 184 q 572 343 571 279 l 572 371 q 563 493 572 439 q 532 582 554 546 q 473 637 510 618 q 382 656 437 656 q 247 582 290 656 q 204 370 204 508 q 247 158 204 228 q 383 89 290 89 m 359 -14 q 244 11 296 -14 q 155 84 192 35 q 97 204 117 132 q 77 371 77 276 q 97 539 77 467 q 155 660 117 611 q 244 733 192 709 q 359 758 296 758 q 432 749 399 758 q 490 725 465 740 q 536 689 516 709 q 572 644 557 668 l 578 644 l 596 745 l 696 745 l 696 -334 l 572 -334 l 572 -16 q 574 17 572 -3 q 576 55 575 37 q 581 100 578 77 l 572 100 q 537 56 557 77 q 491 20 517 35 q 433 -5 465 4 q 359 -14 400 -14 z "},r:{ha:554,x_min:118,x_max:526,o:"m 440 758 q 484 756 460 758 q 526 751 509 755 l 510 637 q 471 643 491 641 q 433 646 451 646 q 355 628 391 646 q 295 579 320 611 q 255 502 269 547 q 241 401 241 456 l 241 0 l 118 0 l 118 745 l 218 745 l 233 608 l 239 608 q 275 665 256 637 q 318 712 294 692 q 372 746 342 733 q 440 758 402 758 z "},s:{ha:627,x_min:61,x_max:564,o:"m 564 204 q 544 109 564 150 q 487 41 524 68 q 398 0 450 14 q 281 -14 346 -14 q 154 -2 207 -14 q 61 33 101 10 l 61 146 q 108 124 82 135 q 162 106 134 114 q 221 93 191 98 q 281 87 251 87 q 356 95 325 87 q 406 116 387 102 q 434 150 425 130 q 443 195 443 170 q 436 233 443 216 q 411 266 429 250 q 362 300 393 283 q 282 338 331 317 q 194 379 233 359 q 128 425 155 399 q 86 483 101 450 q 72 561 72 515 q 91 645 72 608 q 143 707 109 682 q 224 745 177 732 q 330 758 272 758 q 451 744 396 758 q 554 707 505 730 l 511 607 q 421 641 467 627 q 326 656 374 656 q 224 633 257 656 q 191 568 191 610 q 198 527 191 545 q 225 494 206 509 q 276 462 244 478 q 355 427 308 446 q 443 386 404 406 q 508 340 481 366 q 549 282 535 315 q 564 204 564 250 z "},t:{ha:471,x_min:22,x_max:444,o:"m 343 87 q 371 89 355 87 q 400 92 386 90 q 426 97 414 94 q 444 102 438 100 l 444 8 q 422 0 435 4 q 392 -7 408 -4 q 358 -12 376 -10 q 323 -14 340 -14 q 245 -3 281 -14 q 183 35 210 8 q 142 106 157 61 q 127 220 127 151 l 127 652 l 22 652 l 22 707 l 127 760 l 180 916 l 252 916 l 252 745 l 439 745 l 439 652 l 252 652 l 252 220 q 273 121 252 154 q 343 87 294 87 z "},u:{ha:818,x_min:111,x_max:700,o:"m 600 0 l 582 100 l 575 100 q 535 49 558 71 q 484 14 511 28 q 425 -7 456 0 q 361 -14 393 -14 q 252 2 299 -14 q 174 51 205 18 q 127 136 143 84 q 111 258 111 187 l 111 745 l 235 745 l 235 265 q 271 133 235 177 q 382 89 307 89 q 474 106 437 89 q 534 158 511 124 q 567 243 557 193 q 576 358 576 293 l 576 745 l 700 745 l 700 0 l 600 0 z "},v:{ha:665,x_min:0,x_max:665,o:"m 254 0 l 0 745 l 127 745 l 262 330 q 280 273 270 308 q 300 201 290 237 q 319 132 311 164 q 330 82 328 99 l 335 82 q 347 132 338 99 q 365 201 355 164 q 385 273 375 237 q 403 330 395 308 l 538 745 l 665 745 l 411 0 l 254 0 z "},w:{ha:1036,x_min:14,x_max:1022,o:"m 684 0 l 570 418 q 563 445 567 430 q 555 477 559 460 q 546 512 551 494 q 538 547 542 530 q 518 628 528 586 l 514 628 q 496 546 505 585 q 480 476 488 512 q 464 415 471 440 l 347 0 l 204 0 l 14 745 l 143 745 l 232 349 q 245 282 239 318 q 258 212 252 247 q 269 146 264 177 q 277 96 274 115 l 281 96 q 290 143 284 113 q 303 205 296 172 q 317 270 310 238 q 332 325 325 302 l 453 745 l 586 745 l 703 325 q 716 271 709 302 q 732 207 724 239 q 745 145 739 175 q 754 96 751 115 l 758 96 q 765 143 760 113 q 775 208 769 172 q 788 280 781 243 q 803 349 795 317 l 896 745 l 1022 745 l 829 0 l 684 0 z "},x:{ha:694,x_min:24,x_max:669,o:"m 277 382 l 37 745 l 178 745 l 347 467 l 517 745 l 657 745 l 416 382 l 669 0 l 529 0 l 347 296 l 164 0 l 24 0 l 277 382 z "},y:{ha:679,x_min:7,x_max:672,o:"m 7 745 l 135 745 l 281 329 q 300 272 290 302 q 318 212 310 242 q 333 155 327 182 q 342 103 339 127 l 346 103 q 357 149 349 120 q 373 211 364 178 q 392 276 382 244 q 410 330 402 308 l 545 745 l 672 745 l 378 -97 q 337 -196 359 -152 q 286 -270 315 -239 q 217 -317 256 -300 q 123 -334 178 -334 q 62 -330 88 -334 q 18 -322 37 -326 l 18 -224 q 54 -230 33 -227 q 100 -232 76 -232 q 156 -224 132 -232 q 197 -201 180 -216 q 228 -165 215 -186 q 250 -115 240 -143 l 289 -7 l 7 745 z "},z:{ha:612,x_min:56,x_max:557,o:"m 557 0 l 56 0 l 56 85 l 419 652 l 78 652 l 78 745 l 545 745 l 545 646 l 189 93 l 557 93 l 557 0 z "},"{":{ha:492,x_min:41,x_max:457,o:"m 339 -11 q 347 -64 339 -43 q 371 -97 355 -85 q 408 -113 386 -109 q 457 -118 430 -117 l 457 -220 q 360 -208 405 -219 q 284 -173 316 -197 q 233 -111 252 -149 q 215 -21 215 -74 l 215 205 q 171 304 215 275 q 41 334 126 334 l 41 439 q 171 468 126 439 q 215 567 215 497 l 215 793 q 233 883 215 846 q 284 944 252 920 q 360 980 316 968 q 457 991 405 991 l 457 890 q 408 885 430 890 q 371 869 386 881 q 347 837 355 857 q 339 783 339 816 l 339 558 q 299 445 339 487 q 180 390 258 404 l 180 382 q 299 327 258 368 q 339 214 339 286 l 339 -11 z "},"|":{ha:765,x_min:332,x_max:433,o:"m 332 1055 l 433 1055 l 433 -334 l 332 -334 l 332 1055 z "},"}":{ha:492,x_min:35,x_max:450,o:"m 153 214 q 193 327 153 286 q 311 382 233 368 l 311 390 q 193 445 233 404 q 153 558 153 487 l 153 783 q 144 837 153 816 q 121 869 136 857 q 84 885 106 881 q 35 890 62 890 l 35 991 q 131 980 87 991 q 208 944 176 968 q 258 883 240 920 q 277 793 277 846 l 277 567 q 288 507 277 532 q 321 468 299 483 q 376 446 343 452 q 450 439 408 439 l 450 334 q 321 304 366 334 q 277 205 277 275 l 277 -21 q 258 -111 277 -74 q 208 -173 240 -149 q 131 -208 176 -197 q 35 -220 87 -219 l 35 -118 q 84 -113 62 -117 q 121 -97 106 -109 q 144 -64 136 -85 q 153 -11 153 -43 l 153 214 z "},"~":{ha:765,x_min:69,x_max:696,o:"m 359 441 q 316 460 334 452 q 282 472 297 467 q 253 478 267 476 q 224 479 239 479 q 184 473 205 479 q 144 455 164 467 q 105 429 124 444 q 69 397 86 414 l 69 507 q 237 581 137 581 q 274 579 257 581 q 310 573 291 577 q 351 560 328 568 q 406 538 374 551 q 449 519 431 527 q 484 508 468 512 q 513 502 500 503 q 542 500 527 500 q 581 506 561 500 q 622 524 602 513 q 661 550 642 535 q 696 582 680 565 l 696 472 q 528 399 629 399 q 491 400 508 399 q 455 407 474 402 q 414 419 437 411 q 359 441 391 428 z "}," ":{ha:361,x_min:0,x_max:0,o:""},"\xA1":{ha:374,x_min:100,x_max:272,o:"m 144 458 l 227 458 l 261 -253 l 110 -253 l 144 458 m 272 664 q 266 620 272 638 q 247 591 259 602 q 220 575 235 580 q 186 570 204 570 q 153 575 168 570 q 125 591 137 580 q 106 620 113 602 q 100 664 100 638 q 106 707 100 689 q 125 736 113 724 q 153 753 137 747 q 186 758 168 758 q 220 753 204 758 q 247 736 235 747 q 266 707 259 724 q 272 664 272 689 z "},"\xA2":{ha:765,x_min:127,x_max:647,o:"m 635 163 q 564 134 601 144 q 475 122 526 123 l 475 -14 l 382 -14 l 382 126 q 276 160 323 135 q 196 231 229 186 q 145 343 163 276 q 127 504 127 411 q 145 668 127 600 q 196 783 163 737 q 276 855 229 829 q 382 889 323 880 l 382 1006 l 475 1006 l 475 895 q 570 881 524 892 q 647 854 616 870 l 611 750 q 576 763 595 757 q 537 775 557 770 q 497 783 517 780 q 460 786 477 786 q 304 718 353 786 q 256 505 256 649 q 305 297 256 363 q 454 231 354 231 q 554 243 509 231 q 635 272 598 256 l 635 163 z "},"\xA3":{ha:765,x_min:46,x_max:718,o:"m 452 1004 q 583 989 524 1004 q 686 950 642 974 l 642 852 q 556 887 604 872 q 457 901 508 901 q 397 892 425 901 q 349 863 369 883 q 317 811 328 843 q 306 734 306 779 l 306 534 l 561 534 l 561 441 l 306 441 l 306 298 q 298 226 306 256 q 277 174 290 196 q 247 138 264 153 q 211 113 229 123 l 718 113 l 718 0 l 46 0 l 46 104 q 101 126 76 112 q 143 163 125 140 q 172 219 161 186 q 182 297 182 252 l 182 441 l 47 441 l 47 534 l 182 534 l 182 754 q 202 860 182 813 q 257 938 222 906 q 342 987 293 970 q 452 1004 392 1004 z "},"\xA4":{ha:765,x_min:83,x_max:681,o:"m 126 490 q 138 567 126 530 q 171 635 150 603 l 83 722 l 150 789 l 236 701 q 304 735 268 723 q 382 747 341 747 q 459 735 422 747 q 526 701 495 723 l 614 789 l 681 724 l 593 636 q 626 568 614 605 q 639 490 639 531 q 627 412 639 450 q 593 345 615 375 l 679 258 l 614 193 l 526 279 q 459 247 495 258 q 382 235 422 235 q 304 247 341 235 q 236 281 267 259 l 150 195 l 85 260 l 171 346 q 138 413 150 376 q 126 490 126 450 m 220 490 q 232 427 220 456 q 267 375 245 397 q 318 340 289 353 q 382 328 348 328 q 447 340 416 328 q 499 375 477 353 q 534 427 522 397 q 547 490 547 456 q 534 555 547 525 q 499 608 522 585 q 447 643 477 630 q 382 656 416 656 q 318 643 348 656 q 267 608 289 630 q 232 555 245 585 q 220 490 220 525 z "},"\xA5":{ha:765,x_min:20,x_max:746,o:"m 382 490 l 616 991 l 746 991 l 485 471 l 647 471 l 647 378 l 443 378 l 443 271 l 647 271 l 647 178 l 443 178 l 443 0 l 322 0 l 322 178 l 118 178 l 118 271 l 322 271 l 322 378 l 118 378 l 118 471 l 277 471 l 20 991 l 150 991 l 382 490 z "},"\xA6":{ha:765,x_min:332,x_max:433,o:"m 332 1055 l 433 1055 l 433 526 l 332 526 l 332 1055 m 332 196 l 433 196 l 433 -334 l 332 -334 l 332 196 z "},"\xA7":{ha:675,x_min:82,x_max:585,o:"m 93 549 q 102 611 93 583 q 126 661 111 640 q 161 698 141 683 q 201 724 180 713 q 122 788 151 749 q 93 884 93 827 q 112 958 93 925 q 164 1015 130 991 q 245 1050 198 1038 q 351 1063 293 1063 q 470 1049 417 1063 q 572 1014 524 1036 l 534 920 q 443 952 490 939 q 347 965 395 965 q 245 945 280 965 q 211 886 211 925 q 219 852 211 868 q 247 822 227 837 q 298 791 266 807 q 378 755 330 775 q 465 714 427 736 q 530 666 503 692 q 570 607 556 640 q 585 532 585 574 q 576 468 585 496 q 554 416 568 439 q 523 376 541 393 q 486 349 505 359 q 559 286 533 323 q 585 196 585 249 q 565 110 585 148 q 508 46 545 73 q 419 7 471 20 q 301 -7 366 -7 q 175 4 228 -7 q 82 37 122 16 l 82 144 q 129 124 103 134 q 183 106 155 114 q 242 94 212 98 q 301 89 272 89 q 379 97 348 89 q 430 118 411 105 q 456 149 448 132 q 464 184 464 166 q 458 219 464 204 q 435 250 452 235 q 386 282 418 265 q 302 319 354 298 q 214 361 253 340 q 148 409 175 382 q 107 469 121 435 q 93 549 93 503 m 197 564 q 207 517 197 538 q 238 476 216 496 q 293 438 259 456 q 376 399 328 419 l 400 389 q 428 410 414 397 q 453 437 441 422 q 471 472 464 453 q 478 514 478 491 q 469 562 478 540 q 438 603 460 583 q 380 643 416 623 q 288 682 343 662 q 255 666 271 677 q 226 641 239 656 q 205 606 213 625 q 197 564 197 586 z "},"\xA8":{ha:802,x_min:208,x_max:593,o:"m 208 946 q 227 999 208 983 q 273 1015 246 1015 q 319 999 300 1015 q 339 946 339 982 q 319 893 339 910 q 273 876 300 876 q 227 893 246 876 q 208 946 208 910 m 463 946 q 481 999 463 983 q 528 1015 500 1015 q 552 1011 541 1015 q 573 999 564 1007 q 587 977 582 990 q 593 946 593 964 q 573 893 593 910 q 528 876 553 876 q 481 893 500 876 q 463 946 463 910 z "},"\xA9":{ha:1156,x_min:68,x_max:1088,o:"m 604 714 q 531 699 563 714 q 477 656 499 684 q 445 587 456 628 q 433 496 433 547 q 443 402 433 443 q 474 334 453 361 q 527 291 494 306 q 604 277 559 277 q 638 279 620 277 q 676 286 656 281 q 714 295 695 290 q 750 307 733 301 l 750 218 q 717 205 734 211 q 683 194 701 199 q 644 187 665 189 q 600 184 624 184 q 479 207 531 184 q 394 271 428 229 q 342 370 359 312 q 325 497 325 427 q 343 622 325 566 q 397 720 361 679 q 485 783 433 760 q 604 806 536 806 q 692 794 647 806 q 777 764 736 783 l 734 677 q 666 705 699 695 q 604 714 633 714 m 68 496 q 86 631 68 566 q 137 753 104 696 q 217 857 170 810 q 320 936 264 903 q 442 987 377 969 q 578 1006 507 1006 q 713 987 648 1006 q 835 936 779 969 q 939 857 892 903 q 1018 753 985 810 q 1069 631 1051 696 q 1088 496 1088 566 q 1069 360 1088 425 q 1018 238 1051 295 q 939 135 985 182 q 835 56 892 89 q 713 4 779 22 q 578 -14 648 -14 q 442 4 507 -14 q 320 56 377 22 q 217 135 264 89 q 137 238 170 182 q 86 360 104 295 q 68 496 68 425 m 142 496 q 176 326 142 406 q 270 188 210 247 q 408 94 329 128 q 578 60 488 60 q 747 94 668 60 q 886 188 827 128 q 980 326 945 247 q 1014 496 1014 406 q 980 665 1014 586 q 886 804 945 745 q 747 898 827 863 q 578 932 668 932 q 408 898 488 932 q 270 804 329 863 q 176 665 210 745 q 142 496 142 586 z "},\u00AA:{ha:460,x_min:46,x_max:392,o:"m 330 541 l 311 596 q 286 569 299 581 q 257 549 273 557 q 222 536 241 541 q 179 532 203 532 q 125 541 150 532 q 83 567 101 549 q 56 610 66 584 q 46 671 46 636 q 94 777 46 740 q 239 817 142 813 l 306 819 l 306 840 q 285 908 306 889 q 227 928 264 928 q 163 918 194 928 q 104 893 133 908 l 72 961 q 146 991 106 979 q 227 1003 186 1003 q 352 967 311 1003 q 392 848 392 931 l 392 541 l 330 541 m 256 753 q 198 745 221 751 q 161 728 175 739 q 141 704 147 718 q 135 669 135 689 q 152 620 135 635 q 197 604 169 604 q 240 611 220 604 q 274 633 260 618 q 297 670 289 648 q 306 722 306 692 l 306 755 l 256 753 z "},"\xAB":{ha:676,x_min:56,x_max:621,o:"m 56 375 l 265 656 l 345 603 l 183 367 l 345 131 l 265 78 l 56 357 l 56 375 m 332 375 l 542 656 l 621 603 l 460 367 l 621 131 l 542 78 l 332 357 l 332 375 z "},"\xAC":{ha:765,x_min:69,x_max:696,o:"m 696 541 l 696 178 l 595 178 l 595 439 l 69 439 l 69 541 l 696 541 z "},"\xAD":{ha:447,x_min:56,x_max:392,o:"m 56 315 l 56 429 l 392 429 l 392 315 l 56 315 z "},"\xAE":{ha:1092,x_min:61,x_max:1023,o:"m 61 494 q 124 749 61 631 q 300 933 188 866 q 543 1001 412 1001 q 785 933 673 1001 q 960 749 897 866 q 1023 494 1023 631 q 962 244 1023 361 q 789 57 901 127 q 543 -14 677 -14 q 297 56 409 -14 q 123 243 184 126 q 61 494 61 359 m 139 494 q 193 278 139 378 q 341 123 248 179 q 543 66 434 66 q 745 124 652 66 q 892 279 839 181 q 945 494 945 378 q 892 708 945 610 q 745 863 839 806 q 543 920 652 920 q 340 864 434 920 q 193 709 247 808 q 139 494 139 610 m 443 444 l 443 214 l 347 214 l 347 790 l 534 790 q 695 746 638 790 q 753 616 753 701 q 666 489 753 533 q 749 351 749 455 l 749 309 q 761 225 749 251 l 761 214 l 663 214 q 653 301 653 239 q 651 376 653 364 q 562 444 640 441 l 443 444 m 443 530 l 549 530 q 627 554 597 532 q 657 613 657 576 q 631 683 657 663 q 536 704 604 704 l 443 704 l 443 530 z "},"\xAF":{ha:694,x_min:-4,x_max:699,o:"m 699 1055 l -4 1055 l -4 1150 l 699 1150 l 699 1055 z "},"\xB0":{ha:595,x_min:83,x_max:511,o:"m 83 791 q 100 874 83 836 q 146 943 117 913 q 214 989 175 972 q 297 1006 253 1006 q 380 989 341 1006 q 448 943 419 972 q 494 874 477 913 q 511 791 511 836 q 494 709 511 747 q 448 641 477 670 q 380 596 419 612 q 297 579 341 579 q 214 596 253 579 q 146 641 175 612 q 100 709 117 670 q 83 791 83 747 m 167 791 q 177 742 167 765 q 205 701 187 718 q 246 673 222 683 q 297 663 270 663 q 348 673 324 663 q 390 701 372 683 q 418 742 408 718 q 428 791 428 765 q 418 843 428 819 q 390 885 408 867 q 348 913 372 903 q 297 924 324 924 q 246 913 270 924 q 205 885 222 903 q 177 843 187 867 q 167 791 167 819 z "},"\xB1":{ha:765,x_min:69,x_max:696,o:"m 332 439 l 69 439 l 69 541 l 332 541 l 332 804 l 433 804 l 433 541 l 696 541 l 696 439 l 433 439 l 433 178 l 332 178 l 332 439 m 69 0 l 69 102 l 696 102 l 696 0 l 69 0 z "},"\xB2":{ha:460,x_min:33,x_max:421,o:"m 421 397 l 33 397 l 33 473 l 175 628 q 238 699 214 670 q 276 750 262 728 q 295 793 290 773 q 300 836 300 813 q 277 902 300 880 q 218 924 255 924 q 152 907 184 924 q 90 864 121 890 l 37 928 q 119 982 74 960 q 220 1004 164 1004 q 293 993 260 1004 q 349 961 326 982 q 385 908 372 939 q 397 839 397 878 q 388 776 397 805 q 359 718 378 747 q 314 658 341 689 q 253 590 288 627 l 153 484 l 421 484 l 421 397 z "},"\xB3":{ha:460,x_min:21,x_max:418,o:"m 400 851 q 373 762 400 798 q 298 710 345 726 q 388 659 358 694 q 418 570 418 623 q 404 495 418 529 q 362 437 391 461 q 292 399 334 413 q 191 386 249 386 q 101 394 143 386 q 21 424 60 403 l 21 514 q 109 478 64 491 q 189 465 153 465 q 286 493 256 465 q 315 571 315 522 q 279 644 315 621 q 178 667 243 667 l 111 667 l 111 743 l 178 743 q 269 770 240 743 q 297 840 297 797 q 290 878 297 862 q 272 904 283 894 q 244 919 260 914 q 210 924 228 924 q 137 910 170 924 q 69 871 104 896 l 22 936 q 63 964 42 951 q 106 985 83 977 q 155 999 130 994 q 211 1004 181 1004 q 293 993 258 1004 q 353 961 329 981 q 388 912 376 941 q 400 851 400 884 z "},"\xB4":{ha:802,x_min:267,x_max:533,o:"m 267 860 q 297 905 281 880 q 329 959 313 931 q 359 1014 345 986 q 385 1064 374 1041 l 533 1064 l 533 1050 q 501 1004 522 1031 q 453 947 479 977 q 400 889 427 917 q 349 842 372 861 l 267 842 l 267 860 z "},\u00B5:{ha:825,x_min:118,x_max:707,o:"m 241 265 q 277 133 241 177 q 389 89 313 89 q 481 106 444 89 q 542 158 519 124 q 574 243 564 193 q 583 358 583 293 l 583 745 l 707 745 l 707 0 l 607 0 l 589 100 l 582 100 q 500 15 549 43 q 382 -14 452 -14 q 297 2 333 -14 q 237 46 261 18 q 239 -7 238 20 q 241 -59 241 -31 q 241 -117 241 -88 l 241 -334 l 118 -334 l 118 745 l 241 745 l 241 265 z "},"\xB6":{ha:909,x_min:77,x_max:764,o:"m 764 -176 l 682 -176 l 682 947 l 542 947 l 542 -176 l 460 -176 l 460 379 q 361 367 418 367 q 244 384 296 367 q 154 441 191 401 q 97 547 117 481 q 77 707 77 612 q 99 873 77 806 q 161 981 121 940 q 258 1038 201 1021 q 382 1055 314 1055 l 764 1055 l 764 -176 z "},"\xB7":{ha:372,x_min:100,x_max:272,o:"m 100 490 q 106 534 100 516 q 125 563 113 552 q 152 579 136 574 q 186 585 168 585 q 219 579 203 585 q 247 563 235 574 q 265 534 258 552 q 272 490 272 516 q 265 448 272 465 q 247 418 258 430 q 219 401 235 407 q 186 396 203 396 q 152 401 168 396 q 125 418 136 407 q 106 448 113 430 q 100 490 100 465 z "},"\xB8":{ha:285,x_min:24,x_max:277,o:"m 277 -195 q 229 -297 277 -260 q 79 -334 181 -334 q 49 -332 64 -334 q 24 -328 34 -330 l 24 -254 q 51 -257 34 -256 q 78 -258 67 -258 q 153 -244 126 -258 q 180 -196 180 -229 q 172 -168 180 -180 q 147 -147 163 -156 q 110 -132 132 -138 q 64 -119 89 -125 l 125 0 l 207 0 l 168 -78 q 211 -92 191 -83 q 245 -115 231 -101 q 268 -149 260 -129 q 277 -195 277 -168 z "},"\xB9":{ha:460,x_min:43,x_max:300,o:"m 208 991 l 300 991 l 300 397 l 201 397 l 201 747 q 202 785 201 764 q 203 825 202 805 q 205 865 204 846 q 207 899 206 884 q 184 873 197 887 q 157 848 172 860 l 93 799 l 43 864 l 208 991 z "},\u00BA:{ha:486,x_min:45,x_max:441,o:"m 441 768 q 428 668 441 712 q 388 594 414 624 q 325 548 361 564 q 241 532 288 532 q 163 548 199 532 q 100 594 127 564 q 59 668 74 624 q 45 768 45 712 q 59 868 45 825 q 98 942 73 912 q 161 987 124 972 q 244 1003 198 1003 q 322 987 286 1003 q 385 942 359 972 q 427 868 412 912 q 441 768 441 825 m 134 768 q 159 647 134 688 q 243 606 184 606 q 326 647 300 606 q 351 768 351 688 q 326 889 351 850 q 243 928 300 928 q 159 889 184 928 q 134 768 134 850 z "},"\xBB":{ha:676,x_min:57,x_max:623,o:"m 623 357 l 412 78 l 334 131 l 494 367 l 334 603 l 412 656 l 623 375 l 623 357 m 346 357 l 136 78 l 57 131 l 218 367 l 57 603 l 136 656 l 346 375 l 346 357 z "},"\xBC":{ha:1023,x_min:43,x_max:962,o:"m 208 991 l 300 991 l 300 397 l 201 397 l 201 747 q 202 785 201 764 q 203 825 202 805 q 205 865 204 846 q 207 899 206 884 q 184 873 197 887 q 157 848 172 860 l 93 799 l 43 864 l 208 991 m 815 991 l 265 0 l 159 0 l 709 991 l 815 991 m 962 131 l 878 131 l 878 1 l 781 1 l 781 131 l 526 131 l 526 206 l 782 599 l 878 599 l 878 217 l 962 217 l 962 131 m 781 217 l 781 349 q 782 411 781 378 q 785 478 783 445 q 774 458 781 471 q 760 431 768 446 q 745 404 753 417 q 730 380 736 390 l 625 217 l 781 217 z "},"\xBD":{ha:1023,x_min:30,x_max:977,o:"m 195 991 l 287 991 l 287 397 l 189 397 l 189 747 q 189 785 189 764 q 190 825 189 805 q 192 865 191 846 q 194 899 193 884 q 172 873 184 887 q 144 848 159 860 l 80 799 l 30 864 l 195 991 m 801 991 l 251 0 l 144 0 l 694 991 l 801 991 m 977 1 l 589 1 l 589 77 l 730 231 q 793 302 769 273 q 831 354 818 331 q 850 396 845 376 q 855 439 855 416 q 833 505 855 484 q 774 527 810 527 q 708 510 739 527 q 646 467 676 493 l 593 531 q 674 586 629 564 q 775 608 720 608 q 849 596 816 608 q 905 564 882 585 q 940 512 928 543 q 953 442 953 481 q 943 379 953 408 q 915 321 933 350 q 870 261 897 292 q 808 193 843 231 l 708 87 l 977 87 l 977 1 z "},"\xBE":{ha:1023,x_min:21,x_max:1008,o:"m 400 851 q 373 762 400 798 q 298 710 345 726 q 388 659 358 694 q 418 570 418 623 q 404 495 418 529 q 362 437 391 461 q 292 399 334 413 q 191 386 249 386 q 101 394 143 386 q 21 424 60 403 l 21 514 q 109 478 64 491 q 189 465 153 465 q 286 493 256 465 q 315 571 315 522 q 279 644 315 621 q 178 667 243 667 l 111 667 l 111 743 l 178 743 q 269 770 240 743 q 297 840 297 797 q 290 878 297 862 q 272 904 283 894 q 244 919 260 914 q 210 924 228 924 q 137 910 170 924 q 69 871 104 896 l 22 936 q 63 964 42 951 q 106 985 83 977 q 155 999 130 994 q 211 1004 181 1004 q 293 993 258 1004 q 353 961 329 981 q 388 912 376 941 q 400 851 400 884 m 879 991 l 329 0 l 222 0 l 772 991 l 879 991 m 1008 131 l 923 131 l 923 1 l 826 1 l 826 131 l 572 131 l 572 206 l 827 599 l 923 599 l 923 217 l 1008 217 l 1008 131 m 826 217 l 826 349 q 827 411 826 378 q 830 478 828 445 q 820 458 827 471 q 806 431 813 446 q 790 404 798 417 q 776 380 782 390 l 671 217 l 826 217 z "},"\xBF":{ha:591,x_min:46,x_max:567,o:"m 401 458 l 401 433 q 396 363 401 394 q 377 305 391 332 q 342 252 364 277 q 286 197 320 226 q 231 147 254 170 q 193 101 208 124 q 171 51 178 77 q 164 -12 164 24 q 174 -72 164 -45 q 204 -118 184 -98 q 252 -148 223 -137 q 318 -158 281 -158 q 426 -141 375 -158 q 524 -100 477 -123 l 567 -199 q 448 -247 511 -227 q 318 -267 384 -267 q 204 -249 255 -267 q 119 -199 154 -232 q 65 -120 84 -167 q 46 -14 46 -73 q 55 68 46 33 q 82 134 64 103 q 128 193 100 164 q 192 253 155 221 q 250 306 227 283 q 285 350 272 329 q 302 394 298 371 q 307 446 307 416 l 307 458 l 401 458 m 433 664 q 427 620 433 638 q 409 591 420 602 q 381 575 397 580 q 347 570 366 570 q 314 575 330 570 q 287 591 298 580 q 268 620 275 602 q 261 664 261 638 q 268 707 261 689 q 287 736 275 724 q 314 753 298 747 q 347 758 330 758 q 381 753 366 758 q 409 736 397 747 q 427 707 420 724 q 433 664 433 689 z "},\u00C0:{ha:844,x_min:0,x_max:844,o:"m 715 0 l 607 307 l 237 307 l 127 0 l 0 0 l 364 996 l 479 996 l 844 0 l 715 0 m 567 419 l 467 707 q 457 736 463 719 q 445 774 451 754 q 433 817 439 795 q 421 860 427 839 q 410 817 416 839 q 398 773 404 794 q 386 735 392 753 q 376 707 380 718 l 278 419 l 567 419 m 488 1071 l 406 1071 q 355 1118 382 1090 q 301 1176 327 1146 q 253 1233 275 1206 q 221 1279 232 1261 l 221 1293 l 370 1293 q 395 1243 380 1270 q 425 1188 410 1215 q 457 1135 441 1160 q 488 1089 473 1109 l 488 1071 z "},\u00C1:{ha:844,x_min:0,x_max:844,o:"m 715 0 l 607 307 l 237 307 l 127 0 l 0 0 l 364 996 l 479 996 l 844 0 l 715 0 m 567 419 l 467 707 q 457 736 463 719 q 445 774 451 754 q 433 817 439 795 q 421 860 427 839 q 410 817 416 839 q 398 773 404 794 q 386 735 392 753 q 376 707 380 718 l 278 419 l 567 419 m 362 1089 q 393 1135 377 1109 q 425 1188 409 1160 q 455 1243 441 1215 q 480 1293 469 1270 l 629 1293 l 629 1279 q 596 1233 618 1261 q 549 1176 575 1206 q 495 1118 523 1146 q 444 1071 468 1090 l 362 1071 l 362 1089 z "},\u00C2:{ha:844,x_min:0,x_max:844,o:"m 715 0 l 607 307 l 237 307 l 127 0 l 0 0 l 364 996 l 479 996 l 844 0 l 715 0 m 567 419 l 467 707 q 457 736 463 719 q 445 774 451 754 q 433 817 439 795 q 421 860 427 839 q 410 817 416 839 q 398 773 404 794 q 386 735 392 753 q 376 707 380 718 l 278 419 l 567 419 m 646 1071 l 564 1071 q 493 1127 530 1094 q 421 1197 456 1160 q 349 1127 385 1160 q 278 1071 313 1094 l 196 1071 l 196 1089 q 237 1135 214 1109 q 282 1188 260 1160 q 325 1243 305 1215 q 356 1293 345 1270 l 486 1293 q 517 1243 497 1270 q 560 1188 537 1215 q 606 1135 583 1160 q 646 1089 629 1109 l 646 1071 z "},\u00C3:{ha:844,x_min:0,x_max:844,o:"m 715 0 l 607 307 l 237 307 l 127 0 l 0 0 l 364 996 l 479 996 l 844 0 l 715 0 m 567 419 l 467 707 q 457 736 463 719 q 445 774 451 754 q 433 817 439 795 q 421 860 427 839 q 410 817 416 839 q 398 773 404 794 q 386 735 392 753 q 376 707 380 718 l 278 419 l 567 419 m 524 1072 q 470 1084 496 1072 q 417 1111 443 1096 q 368 1137 391 1125 q 322 1149 344 1149 q 275 1131 292 1149 q 250 1071 259 1113 l 179 1071 q 194 1145 182 1112 q 223 1201 205 1178 q 266 1237 241 1225 q 322 1250 291 1250 q 378 1238 351 1250 q 431 1212 406 1226 q 480 1186 457 1198 q 524 1174 504 1174 q 570 1192 554 1174 q 595 1251 585 1209 l 667 1251 q 652 1178 663 1211 q 623 1121 641 1145 q 580 1085 605 1098 q 524 1072 555 1072 z "},\u00C4:{ha:844,x_min:0,x_max:844,o:"m 715 0 l 607 307 l 237 307 l 127 0 l 0 0 l 364 996 l 479 996 l 844 0 l 715 0 m 567 419 l 467 707 q 457 736 463 719 q 445 774 451 754 q 433 817 439 795 q 421 860 427 839 q 410 817 416 839 q 398 773 404 794 q 386 735 392 753 q 376 707 380 718 l 278 419 l 567 419 m 231 1175 q 250 1228 231 1212 q 296 1244 269 1244 q 342 1228 322 1244 q 361 1175 361 1211 q 342 1122 361 1139 q 296 1105 322 1105 q 250 1122 269 1105 q 231 1175 231 1139 m 485 1175 q 504 1228 485 1212 q 550 1244 523 1244 q 575 1240 563 1244 q 595 1228 587 1236 q 610 1206 604 1219 q 615 1175 615 1194 q 595 1122 615 1139 q 550 1105 576 1105 q 504 1122 523 1105 q 485 1175 485 1139 z "},\u00C5:{ha:844,x_min:0,x_max:844,o:"m 715 0 l 607 307 l 237 307 l 127 0 l 0 0 l 364 996 l 479 996 l 844 0 l 715 0 m 567 419 l 467 707 q 457 736 463 719 q 445 774 451 754 q 433 817 439 795 q 421 860 427 839 q 410 817 416 839 q 398 773 404 794 q 386 735 392 753 q 376 707 380 718 l 278 419 l 567 419 m 575 1074 q 563 1011 575 1039 q 531 965 551 984 q 481 936 510 946 q 420 926 453 926 q 358 936 386 926 q 310 965 330 946 q 279 1011 290 984 q 269 1072 269 1038 q 279 1134 269 1107 q 310 1179 290 1160 q 358 1208 330 1198 q 420 1218 386 1218 q 481 1208 452 1218 q 530 1180 509 1198 q 563 1134 551 1161 q 575 1074 575 1107 m 496 1072 q 474 1128 496 1108 q 420 1149 453 1149 q 365 1128 386 1149 q 343 1072 343 1108 q 362 1016 343 1036 q 420 996 382 996 q 474 1016 453 996 q 496 1072 496 1036 z "},\u00C6:{ha:1183,x_min:-1,x_max:1100,o:"m 1100 0 l 585 0 l 585 307 l 262 307 l 125 0 l -1 0 l 443 991 l 1100 991 l 1100 880 l 711 880 l 711 574 l 1074 574 l 1074 464 l 711 464 l 711 111 l 1100 111 l 1100 0 m 311 419 l 585 419 l 585 880 l 511 880 l 311 419 z "},\u00C7:{ha:838,x_min:85,x_max:798,o:"m 538 895 q 406 867 465 895 q 306 788 347 840 q 241 663 264 736 q 218 496 218 589 q 238 326 218 400 q 298 201 258 252 q 398 123 338 150 q 538 97 458 97 q 652 109 598 97 q 760 136 707 121 l 760 26 q 707 8 733 16 q 651 -4 680 1 q 590 -11 623 -9 q 517 -14 557 -14 q 324 23 406 -14 q 190 127 243 60 q 111 288 136 194 q 85 497 85 382 q 114 703 85 610 q 201 864 144 797 q 343 968 258 931 q 538 1006 428 1006 q 677 991 611 1006 q 798 947 744 976 l 745 842 q 652 879 702 863 q 538 895 602 895 m 621 -195 q 573 -297 621 -260 q 424 -334 526 -334 q 394 -332 409 -334 q 368 -328 378 -330 l 368 -254 q 395 -257 378 -256 q 422 -258 412 -258 q 498 -244 471 -258 q 525 -196 525 -229 q 516 -168 525 -180 q 492 -147 507 -156 q 455 -132 476 -138 q 408 -119 433 -125 l 469 0 l 551 0 l 513 -78 q 555 -92 536 -83 q 590 -115 575 -101 q 613 -149 604 -129 q 621 -195 621 -168 z "},\u00C8:{ha:733,x_min:135,x_max:650,o:"m 650 0 l 135 0 l 135 991 l 650 991 l 650 880 l 261 880 l 261 574 l 624 574 l 624 464 l 261 464 l 261 111 l 650 111 l 650 0 m 484 1071 l 402 1071 q 351 1118 378 1090 q 297 1176 323 1146 q 249 1233 271 1206 q 217 1279 228 1261 l 217 1293 l 366 1293 q 391 1243 376 1270 q 421 1188 406 1215 q 453 1135 437 1160 q 484 1089 469 1109 l 484 1071 z "},\u00C9:{ha:733,x_min:135,x_max:650,o:"m 650 0 l 135 0 l 135 991 l 650 991 l 650 880 l 261 880 l 261 574 l 624 574 l 624 464 l 261 464 l 261 111 l 650 111 l 650 0 m 309 1089 q 340 1135 324 1109 q 372 1188 356 1160 q 402 1243 388 1215 q 427 1293 416 1270 l 576 1293 l 576 1279 q 544 1233 565 1261 q 496 1176 522 1206 q 443 1118 470 1146 q 391 1071 415 1090 l 309 1071 l 309 1089 z "},\u00CA:{ha:733,x_min:135,x_max:650,o:"m 650 0 l 135 0 l 135 991 l 650 991 l 650 880 l 261 880 l 261 574 l 624 574 l 624 464 l 261 464 l 261 111 l 650 111 l 650 0 m 615 1071 l 533 1071 q 462 1127 498 1094 q 390 1197 425 1160 q 317 1127 353 1160 q 247 1071 281 1094 l 165 1071 l 165 1089 q 205 1135 182 1109 q 251 1188 229 1160 q 294 1243 274 1215 q 325 1293 314 1270 l 455 1293 q 486 1243 466 1270 q 529 1188 506 1215 q 575 1135 551 1160 q 615 1089 598 1109 l 615 1071 z "},\u00CB:{ha:733,x_min:135,x_max:650,o:"m 650 0 l 135 0 l 135 991 l 650 991 l 650 880 l 261 880 l 261 574 l 624 574 l 624 464 l 261 464 l 261 111 l 650 111 l 650 0 m 201 1175 q 220 1228 201 1212 q 266 1244 239 1244 q 312 1228 292 1244 q 332 1175 332 1211 q 312 1122 332 1139 q 266 1105 292 1105 q 220 1122 239 1105 q 201 1175 201 1139 m 455 1175 q 474 1228 455 1212 q 520 1244 493 1244 q 545 1240 533 1244 q 566 1228 557 1236 q 580 1206 574 1219 q 585 1175 585 1194 q 566 1122 585 1139 q 520 1105 546 1105 q 474 1122 493 1105 q 455 1175 455 1139 z "},\u00CC:{ha:471,x_min:42,x_max:415,o:"m 415 0 l 56 0 l 56 69 l 172 97 l 172 895 l 56 922 l 56 991 l 415 991 l 415 922 l 298 895 l 298 97 l 415 69 l 415 0 m 309 1071 l 227 1071 q 176 1118 203 1090 q 122 1176 148 1146 q 74 1233 96 1206 q 42 1279 53 1261 l 42 1293 l 191 1293 q 216 1243 201 1270 q 246 1188 231 1215 q 278 1135 262 1160 q 309 1089 294 1109 l 309 1071 z "},\u00CD:{ha:471,x_min:56,x_max:441,o:"m 415 0 l 56 0 l 56 69 l 172 97 l 172 895 l 56 922 l 56 991 l 415 991 l 415 922 l 298 895 l 298 97 l 415 69 l 415 0 m 174 1089 q 205 1135 189 1109 q 237 1188 221 1160 q 267 1243 253 1215 q 292 1293 281 1270 l 441 1293 l 441 1279 q 409 1233 430 1261 q 361 1176 387 1206 q 308 1118 335 1146 q 256 1071 280 1090 l 174 1071 l 174 1089 z "},\u00CE:{ha:471,x_min:12,x_max:462,o:"m 415 0 l 56 0 l 56 69 l 172 97 l 172 895 l 56 922 l 56 991 l 415 991 l 415 922 l 298 895 l 298 97 l 415 69 l 415 0 m 462 1071 l 380 1071 q 309 1127 345 1094 q 237 1197 272 1160 q 164 1127 200 1160 q 94 1071 128 1094 l 12 1071 l 12 1089 q 52 1135 29 1109 q 98 1188 75 1160 q 141 1243 121 1215 q 172 1293 161 1270 l 302 1293 q 333 1243 313 1270 q 375 1188 353 1215 q 421 1135 398 1160 q 462 1089 445 1109 l 462 1071 z "},\u00CF:{ha:471,x_min:43,x_max:428,o:"m 415 0 l 56 0 l 56 69 l 172 97 l 172 895 l 56 922 l 56 991 l 415 991 l 415 922 l 298 895 l 298 97 l 415 69 l 415 0 m 43 1175 q 62 1228 43 1212 q 109 1244 81 1244 q 155 1228 135 1244 q 174 1175 174 1211 q 155 1122 174 1139 q 109 1105 135 1105 q 62 1122 81 1105 q 43 1175 43 1139 m 298 1175 q 317 1228 298 1212 q 363 1244 336 1244 q 388 1240 376 1244 q 408 1228 399 1236 q 422 1206 417 1219 q 428 1175 428 1194 q 408 1122 428 1139 q 363 1105 389 1105 q 317 1122 336 1105 q 298 1175 298 1139 z "},\u00D0:{ha:950,x_min:32,x_max:865,o:"m 32 546 l 135 546 l 135 991 l 411 991 q 599 960 515 991 q 742 868 683 929 q 833 715 801 806 q 865 505 865 625 q 833 285 865 380 q 739 127 800 191 q 587 32 677 64 q 383 0 497 0 l 135 0 l 135 436 l 32 436 l 32 546 m 732 501 q 709 672 732 600 q 644 791 687 745 q 539 861 602 838 q 397 884 477 884 l 261 884 l 261 546 l 489 546 l 489 436 l 261 436 l 261 109 l 371 109 q 641 208 550 109 q 732 501 732 307 z "},\u00D1:{ha:1013,x_min:135,x_max:878,o:"m 878 0 l 732 0 l 244 821 l 239 821 q 245 717 243 768 q 250 625 248 673 q 252 538 252 576 l 252 0 l 135 0 l 135 991 l 279 991 l 765 175 l 770 175 q 765 277 768 227 q 763 321 764 298 q 761 367 762 344 q 760 410 760 389 q 760 449 760 431 l 760 991 l 878 991 l 878 0 m 614 1072 q 560 1084 587 1072 q 507 1111 533 1096 q 458 1137 481 1125 q 412 1149 434 1149 q 366 1131 382 1149 q 340 1071 349 1113 l 269 1071 q 284 1145 273 1112 q 313 1201 295 1178 q 356 1237 331 1225 q 412 1250 381 1250 q 468 1238 441 1250 q 522 1212 496 1226 q 571 1186 547 1198 q 614 1174 594 1174 q 660 1192 644 1174 q 686 1251 675 1209 l 757 1251 q 742 1178 753 1211 q 713 1121 731 1145 q 670 1085 695 1098 q 614 1072 645 1072 z "},\u00D2:{ha:1031,x_min:85,x_max:945,o:"m 945 497 q 917 288 945 382 q 836 127 890 194 q 701 23 781 60 q 515 -14 621 -14 q 324 23 405 -14 q 190 127 243 60 q 111 289 136 194 q 85 498 85 383 q 111 708 85 614 q 190 868 136 802 q 325 971 243 935 q 517 1007 406 1007 q 702 971 622 1007 q 836 868 781 935 q 917 707 890 801 q 945 497 945 613 m 218 497 q 236 330 218 404 q 290 204 254 256 q 382 124 326 152 q 515 97 438 97 q 649 124 593 97 q 741 204 705 152 q 794 330 777 256 q 811 497 811 404 q 794 665 811 591 q 741 790 777 739 q 650 868 705 841 q 517 896 594 896 q 383 868 439 896 q 290 790 327 841 q 236 665 254 739 q 218 497 218 591 m 590 1071 l 509 1071 q 457 1118 485 1090 q 403 1176 429 1146 q 356 1233 377 1206 q 323 1279 334 1261 l 323 1293 l 472 1293 q 497 1243 483 1270 q 528 1188 512 1215 q 559 1135 543 1160 q 590 1089 576 1109 l 590 1071 z "},\u00D3:{ha:1031,x_min:85,x_max:945,o:"m 945 497 q 917 288 945 382 q 836 127 890 194 q 701 23 781 60 q 515 -14 621 -14 q 324 23 405 -14 q 190 127 243 60 q 111 289 136 194 q 85 498 85 383 q 111 708 85 614 q 190 868 136 802 q 325 971 243 935 q 517 1007 406 1007 q 702 971 622 1007 q 836 868 781 935 q 917 707 890 801 q 945 497 945 613 m 218 497 q 236 330 218 404 q 290 204 254 256 q 382 124 326 152 q 515 97 438 97 q 649 124 593 97 q 741 204 705 152 q 794 330 777 256 q 811 497 811 404 q 794 665 811 591 q 741 790 777 739 q 650 868 705 841 q 517 896 594 896 q 383 868 439 896 q 290 790 327 841 q 236 665 254 739 q 218 497 218 591 m 441 1089 q 472 1135 456 1109 q 504 1188 488 1160 q 534 1243 520 1215 q 559 1293 549 1270 l 708 1293 l 708 1279 q 676 1233 697 1261 q 628 1176 654 1206 q 575 1118 602 1146 q 524 1071 547 1090 l 441 1071 l 441 1089 z "},\u00D4:{ha:1031,x_min:85,x_max:945,o:"m 945 497 q 917 288 945 382 q 836 127 890 194 q 701 23 781 60 q 515 -14 621 -14 q 324 23 405 -14 q 190 127 243 60 q 111 289 136 194 q 85 498 85 383 q 111 708 85 614 q 190 868 136 802 q 325 971 243 935 q 517 1007 406 1007 q 702 971 622 1007 q 836 868 781 935 q 917 707 890 801 q 945 497 945 613 m 218 497 q 236 330 218 404 q 290 204 254 256 q 382 124 326 152 q 515 97 438 97 q 649 124 593 97 q 741 204 705 152 q 794 330 777 256 q 811 497 811 404 q 794 665 811 591 q 741 790 777 739 q 650 868 705 841 q 517 896 594 896 q 383 868 439 896 q 290 790 327 841 q 236 665 254 739 q 218 497 218 591 m 743 1071 l 661 1071 q 590 1127 627 1094 q 518 1197 553 1160 q 446 1127 481 1160 q 375 1071 410 1094 l 293 1071 l 293 1089 q 334 1135 311 1109 q 379 1188 357 1160 q 422 1243 402 1215 q 453 1293 442 1270 l 583 1293 q 614 1243 594 1270 q 657 1188 634 1215 q 703 1135 680 1160 q 743 1089 726 1109 l 743 1071 z "},\u00D5:{ha:1031,x_min:85,x_max:945,o:"m 945 497 q 917 288 945 382 q 836 127 890 194 q 701 23 781 60 q 515 -14 621 -14 q 324 23 405 -14 q 190 127 243 60 q 111 289 136 194 q 85 498 85 383 q 111 708 85 614 q 190 868 136 802 q 325 971 243 935 q 517 1007 406 1007 q 702 971 622 1007 q 836 868 781 935 q 917 707 890 801 q 945 497 945 613 m 218 497 q 236 330 218 404 q 290 204 254 256 q 382 124 326 152 q 515 97 438 97 q 649 124 593 97 q 741 204 705 152 q 794 330 777 256 q 811 497 811 404 q 794 665 811 591 q 741 790 777 739 q 650 868 705 841 q 517 896 594 896 q 383 868 439 896 q 290 790 327 841 q 236 665 254 739 q 218 497 218 591 m 604 1072 q 550 1084 577 1072 q 498 1111 524 1096 q 448 1137 472 1125 q 403 1149 425 1149 q 356 1131 372 1149 q 330 1071 340 1113 l 260 1071 q 274 1145 263 1112 q 303 1201 286 1178 q 347 1237 321 1225 q 403 1250 372 1250 q 459 1238 431 1250 q 512 1212 486 1226 q 561 1186 538 1198 q 604 1174 585 1174 q 650 1192 635 1174 q 676 1251 666 1209 l 747 1251 q 733 1178 744 1211 q 704 1121 722 1145 q 661 1085 686 1098 q 604 1072 635 1072 z "},\u00D6:{ha:1031,x_min:85,x_max:945,o:"m 945 497 q 917 288 945 382 q 836 127 890 194 q 701 23 781 60 q 515 -14 621 -14 q 324 23 405 -14 q 190 127 243 60 q 111 289 136 194 q 85 498 85 383 q 111 708 85 614 q 190 868 136 802 q 325 971 243 935 q 517 1007 406 1007 q 702 971 622 1007 q 836 868 781 935 q 917 707 890 801 q 945 497 945 613 m 218 497 q 236 330 218 404 q 290 204 254 256 q 382 124 326 152 q 515 97 438 97 q 649 124 593 97 q 741 204 705 152 q 794 330 777 256 q 811 497 811 404 q 794 665 811 591 q 741 790 777 739 q 650 868 705 841 q 517 896 594 896 q 383 868 439 896 q 290 790 327 841 q 236 665 254 739 q 218 497 218 591 m 323 1175 q 342 1228 323 1212 q 389 1244 361 1244 q 435 1228 415 1244 q 454 1175 454 1211 q 435 1122 454 1139 q 389 1105 415 1105 q 342 1122 361 1105 q 323 1175 323 1139 m 578 1175 q 597 1228 578 1212 q 643 1244 616 1244 q 668 1240 656 1244 q 688 1228 680 1236 q 703 1206 697 1219 q 708 1175 708 1194 q 688 1122 708 1139 q 643 1105 669 1105 q 597 1122 616 1105 q 578 1175 578 1139 z "},"\xD7":{ha:765,x_min:96,x_max:671,o:"m 311 490 l 96 707 l 167 778 l 382 562 l 600 778 l 671 708 l 453 490 l 669 273 l 600 204 l 382 419 l 167 205 l 97 275 l 311 490 z "},\u00D8:{ha:1031,x_min:85,x_max:945,o:"m 882 986 l 819 885 q 913 720 881 818 q 945 497 945 621 q 917 288 945 382 q 836 127 890 194 q 701 23 781 60 q 515 -14 621 -14 q 297 35 387 -14 l 244 -52 l 151 1 l 212 100 q 116 269 146 168 q 85 498 85 370 q 111 708 85 614 q 190 868 136 802 q 325 971 243 935 q 517 1007 406 1007 q 635 993 581 1007 q 734 953 690 979 l 789 1039 l 882 986 m 218 497 q 234 337 218 408 q 282 214 250 267 l 675 854 q 604 885 642 874 q 517 896 565 896 q 383 868 439 896 q 290 790 327 841 q 236 665 254 739 q 218 497 218 591 m 811 497 q 751 774 811 671 l 359 136 q 430 107 391 117 q 515 97 469 97 q 649 124 593 97 q 741 204 705 152 q 794 330 777 256 q 811 497 811 404 z "},\u00D9:{ha:970,x_min:125,x_max:844,o:"m 844 993 l 844 350 q 822 206 844 273 q 754 91 800 140 q 641 14 709 42 q 481 -14 573 -14 q 328 13 394 -14 q 216 87 261 39 q 148 202 171 135 q 125 353 125 270 l 125 991 l 252 991 l 252 346 q 310 162 252 227 q 488 97 369 97 q 591 115 548 97 q 663 167 635 134 q 704 246 690 200 q 718 347 718 292 l 718 993 l 844 993 m 574 1071 l 493 1071 q 441 1118 469 1090 q 388 1176 414 1146 q 340 1233 361 1206 q 308 1279 319 1261 l 308 1293 l 456 1293 q 482 1243 467 1270 q 512 1188 496 1215 q 544 1135 528 1160 q 574 1089 560 1109 l 574 1071 z "},\u00DA:{ha:970,x_min:125,x_max:844,o:"m 844 993 l 844 350 q 822 206 844 273 q 754 91 800 140 q 641 14 709 42 q 481 -14 573 -14 q 328 13 394 -14 q 216 87 261 39 q 148 202 171 135 q 125 353 125 270 l 125 991 l 252 991 l 252 346 q 310 162 252 227 q 488 97 369 97 q 591 115 548 97 q 663 167 635 134 q 704 246 690 200 q 718 347 718 292 l 718 993 l 844 993 m 400 1089 q 431 1135 415 1109 q 463 1188 447 1160 q 493 1243 479 1215 q 518 1293 507 1270 l 667 1293 l 667 1279 q 634 1233 656 1261 q 587 1176 613 1206 q 533 1118 561 1146 q 482 1071 506 1090 l 400 1071 l 400 1089 z "},\u00DB:{ha:970,x_min:125,x_max:844,o:"m 844 993 l 844 350 q 822 206 844 273 q 754 91 800 140 q 641 14 709 42 q 481 -14 573 -14 q 328 13 394 -14 q 216 87 261 39 q 148 202 171 135 q 125 353 125 270 l 125 991 l 252 991 l 252 346 q 310 162 252 227 q 488 97 369 97 q 591 115 548 97 q 663 167 635 134 q 704 246 690 200 q 718 347 718 292 l 718 993 l 844 993 m 707 1071 l 625 1071 q 554 1127 591 1094 q 482 1197 517 1160 q 410 1127 446 1160 q 339 1071 374 1094 l 257 1071 l 257 1089 q 298 1135 275 1109 q 343 1188 321 1160 q 386 1243 366 1215 q 417 1293 406 1270 l 547 1293 q 578 1243 558 1270 q 621 1188 598 1215 q 667 1135 644 1160 q 707 1089 690 1109 l 707 1071 z "},\u00DC:{ha:970,x_min:125,x_max:844,o:"m 844 993 l 844 350 q 822 206 844 273 q 754 91 800 140 q 641 14 709 42 q 481 -14 573 -14 q 328 13 394 -14 q 216 87 261 39 q 148 202 171 135 q 125 353 125 270 l 125 991 l 252 991 l 252 346 q 310 162 252 227 q 488 97 369 97 q 591 115 548 97 q 663 167 635 134 q 704 246 690 200 q 718 347 718 292 l 718 993 l 844 993 m 293 1175 q 312 1228 293 1212 q 358 1244 331 1244 q 404 1228 385 1244 q 424 1175 424 1211 q 404 1122 424 1139 q 358 1105 385 1105 q 312 1122 331 1105 q 293 1175 293 1139 m 547 1175 q 566 1228 547 1212 q 612 1244 585 1244 q 637 1240 625 1244 q 658 1228 649 1236 q 672 1206 667 1219 q 677 1175 677 1194 q 658 1122 677 1139 q 612 1105 638 1105 q 566 1122 585 1105 q 547 1175 547 1139 z "},\u00DD:{ha:732,x_min:0,x_max:732,o:"m 366 490 l 596 991 l 732 991 l 429 386 l 429 0 l 302 0 l 302 379 l 0 991 l 138 991 l 366 490 m 300 1089 q 331 1135 315 1109 q 362 1188 347 1160 q 393 1243 378 1215 q 418 1293 407 1270 l 566 1293 l 566 1279 q 534 1233 555 1261 q 487 1176 513 1206 q 433 1118 460 1146 q 382 1071 406 1090 l 300 1071 l 300 1089 z "},\u00DE:{ha:800,x_min:135,x_max:729,o:"m 729 530 q 710 412 729 469 q 649 311 692 355 q 536 241 606 267 q 363 215 466 215 l 261 215 l 261 0 l 135 0 l 135 991 l 261 991 l 261 821 l 380 821 q 537 801 471 821 q 646 745 603 782 q 709 654 688 708 q 729 530 729 600 m 261 322 l 349 322 q 459 333 412 322 q 537 368 506 344 q 583 430 568 392 q 599 524 599 469 q 543 667 599 621 q 370 713 488 713 l 261 713 l 261 322 z "},\u00DF:{ha:836,x_min:118,x_max:774,o:"m 685 854 q 670 786 685 816 q 634 731 656 755 q 588 686 613 706 q 541 647 562 665 q 505 610 519 628 q 490 571 490 591 q 495 546 490 557 q 513 521 500 534 q 550 491 526 508 q 612 449 574 475 q 680 399 650 424 q 731 347 710 375 q 763 287 751 319 q 774 212 774 254 q 755 111 774 153 q 702 40 736 68 q 620 0 667 13 q 514 -14 572 -14 q 401 -2 448 -14 q 318 33 354 10 l 318 146 q 358 124 336 135 q 404 106 380 114 q 454 93 429 98 q 505 87 480 87 q 571 96 543 87 q 616 120 598 104 q 642 157 633 135 q 650 205 650 178 q 644 250 650 230 q 624 289 638 270 q 585 328 609 308 q 522 371 560 347 q 451 421 479 398 q 404 467 422 444 q 378 513 386 490 q 371 566 371 537 q 385 629 371 602 q 420 677 399 656 q 465 717 441 699 q 511 755 490 735 q 546 797 532 774 q 559 850 559 820 q 548 899 559 878 q 517 934 537 920 q 468 955 496 948 q 406 961 440 961 q 342 955 372 961 q 290 932 313 948 q 255 887 268 916 q 241 815 241 859 l 241 0 l 118 0 l 118 814 q 139 932 118 884 q 199 1009 161 980 q 290 1050 237 1038 q 406 1063 343 1063 q 519 1050 468 1063 q 608 1011 571 1037 q 665 946 644 985 q 685 854 685 907 z "},\u00E0:{ha:737,x_min:64,x_max:627,o:"m 538 0 l 513 103 l 507 103 q 463 51 485 73 q 414 14 440 28 q 355 -7 387 0 q 279 -14 322 -14 q 193 0 233 -14 q 125 40 154 13 q 80 110 96 68 q 64 208 64 151 q 142 379 64 319 q 380 444 220 439 l 505 449 l 505 496 q 495 572 505 541 q 467 621 486 602 q 421 648 448 640 q 358 656 393 656 q 253 640 302 656 q 160 600 205 623 l 117 693 q 229 739 167 720 q 358 758 290 758 q 478 744 427 758 q 561 700 528 730 q 610 623 594 670 q 627 510 627 576 l 627 0 l 538 0 m 311 86 q 388 99 353 86 q 449 138 423 112 q 489 204 475 164 q 504 297 504 243 l 504 364 l 407 359 q 304 346 346 357 q 238 316 263 335 q 203 269 214 296 q 192 207 192 241 q 225 115 192 144 q 311 86 258 86 m 460 842 l 378 842 q 327 889 355 861 q 273 947 299 917 q 225 1004 247 977 q 193 1050 204 1031 l 193 1064 l 342 1064 q 367 1014 353 1041 q 397 959 382 986 q 429 905 413 931 q 460 860 446 880 l 460 842 z "},\u00E1:{ha:737,x_min:64,x_max:627,o:"m 538 0 l 513 103 l 507 103 q 463 51 485 73 q 414 14 440 28 q 355 -7 387 0 q 279 -14 322 -14 q 193 0 233 -14 q 125 40 154 13 q 80 110 96 68 q 64 208 64 151 q 142 379 64 319 q 380 444 220 439 l 505 449 l 505 496 q 495 572 505 541 q 467 621 486 602 q 421 648 448 640 q 358 656 393 656 q 253 640 302 656 q 160 600 205 623 l 117 693 q 229 739 167 720 q 358 758 290 758 q 478 744 427 758 q 561 700 528 730 q 610 623 594 670 q 627 510 627 576 l 627 0 l 538 0 m 311 86 q 388 99 353 86 q 449 138 423 112 q 489 204 475 164 q 504 297 504 243 l 504 364 l 407 359 q 304 346 346 357 q 238 316 263 335 q 203 269 214 296 q 192 207 192 241 q 225 115 192 144 q 311 86 258 86 m 302 860 q 333 905 317 880 q 365 959 349 931 q 395 1014 381 986 q 420 1064 410 1041 l 569 1064 l 569 1050 q 537 1004 558 1031 q 489 947 515 977 q 436 889 463 917 q 385 842 408 861 l 302 842 l 302 860 z "},\u00E2:{ha:737,x_min:64,x_max:627,o:"m 538 0 l 513 103 l 507 103 q 463 51 485 73 q 414 14 440 28 q 355 -7 387 0 q 279 -14 322 -14 q 193 0 233 -14 q 125 40 154 13 q 80 110 96 68 q 64 208 64 151 q 142 379 64 319 q 380 444 220 439 l 505 449 l 505 496 q 495 572 505 541 q 467 621 486 602 q 421 648 448 640 q 358 656 393 656 q 253 640 302 656 q 160 600 205 623 l 117 693 q 229 739 167 720 q 358 758 290 758 q 478 744 427 758 q 561 700 528 730 q 610 623 594 670 q 627 510 627 576 l 627 0 l 538 0 m 311 86 q 388 99 353 86 q 449 138 423 112 q 489 204 475 164 q 504 297 504 243 l 504 364 l 407 359 q 304 346 346 357 q 238 316 263 335 q 203 269 214 296 q 192 207 192 241 q 225 115 192 144 q 311 86 258 86 m 605 842 l 523 842 q 452 898 488 865 q 380 968 415 930 q 307 898 343 930 q 237 842 271 865 l 155 842 l 155 860 q 195 905 172 880 q 241 959 218 931 q 284 1014 264 986 q 315 1064 304 1041 l 445 1064 q 476 1014 456 1041 q 518 959 496 986 q 565 905 541 931 q 605 860 588 880 l 605 842 z "},\u00E3:{ha:737,x_min:64,x_max:627,o:"m 538 0 l 513 103 l 507 103 q 463 51 485 73 q 414 14 440 28 q 355 -7 387 0 q 279 -14 322 -14 q 193 0 233 -14 q 125 40 154 13 q 80 110 96 68 q 64 208 64 151 q 142 379 64 319 q 380 444 220 439 l 505 449 l 505 496 q 495 572 505 541 q 467 621 486 602 q 421 648 448 640 q 358 656 393 656 q 253 640 302 656 q 160 600 205 623 l 117 693 q 229 739 167 720 q 358 758 290 758 q 478 744 427 758 q 561 700 528 730 q 610 623 594 670 q 627 510 627 576 l 627 0 l 538 0 m 311 86 q 388 99 353 86 q 449 138 423 112 q 489 204 475 164 q 504 297 504 243 l 504 364 l 407 359 q 304 346 346 357 q 238 316 263 335 q 203 269 214 296 q 192 207 192 241 q 225 115 192 144 q 311 86 258 86 m 474 843 q 420 855 447 843 q 368 881 393 867 q 318 908 342 896 q 273 920 294 920 q 226 902 242 920 q 200 842 210 884 l 130 842 q 144 916 133 882 q 173 972 155 949 q 216 1008 191 996 q 273 1021 241 1021 q 329 1009 301 1021 q 382 983 356 997 q 431 957 408 968 q 474 945 454 945 q 520 962 505 945 q 546 1022 536 980 l 617 1022 q 603 948 614 981 q 573 892 591 916 q 530 856 555 869 q 474 843 505 843 z "},\u00E4:{ha:737,x_min:64,x_max:627,o:"m 538 0 l 513 103 l 507 103 q 463 51 485 73 q 414 14 440 28 q 355 -7 387 0 q 279 -14 322 -14 q 193 0 233 -14 q 125 40 154 13 q 80 110 96 68 q 64 208 64 151 q 142 379 64 319 q 380 444 220 439 l 505 449 l 505 496 q 495 572 505 541 q 467 621 486 602 q 421 648 448 640 q 358 656 393 656 q 253 640 302 656 q 160 600 205 623 l 117 693 q 229 739 167 720 q 358 758 290 758 q 478 744 427 758 q 561 700 528 730 q 610 623 594 670 q 627 510 627 576 l 627 0 l 538 0 m 311 86 q 388 99 353 86 q 449 138 423 112 q 489 204 475 164 q 504 297 504 243 l 504 364 l 407 359 q 304 346 346 357 q 238 316 263 335 q 203 269 214 296 q 192 207 192 241 q 225 115 192 144 q 311 86 258 86 m 185 946 q 204 999 185 983 q 250 1015 223 1015 q 296 999 277 1015 q 316 946 316 982 q 296 893 316 910 q 250 876 277 876 q 204 893 223 876 q 185 946 185 910 m 439 946 q 458 999 439 983 q 505 1015 477 1015 q 529 1011 517 1015 q 550 999 541 1007 q 564 977 559 990 q 570 946 570 964 q 550 893 570 910 q 505 876 530 876 q 458 893 477 876 q 439 946 439 910 z "},\u00E5:{ha:737,x_min:64,x_max:627,o:"m 538 0 l 513 103 l 507 103 q 463 51 485 73 q 414 14 440 28 q 355 -7 387 0 q 279 -14 322 -14 q 193 0 233 -14 q 125 40 154 13 q 80 110 96 68 q 64 208 64 151 q 142 379 64 319 q 380 444 220 439 l 505 449 l 505 496 q 495 572 505 541 q 467 621 486 602 q 421 648 448 640 q 358 656 393 656 q 253 640 302 656 q 160 600 205 623 l 117 693 q 229 739 167 720 q 358 758 290 758 q 478 744 427 758 q 561 700 528 730 q 610 623 594 670 q 627 510 627 576 l 627 0 l 538 0 m 311 86 q 388 99 353 86 q 449 138 423 112 q 489 204 475 164 q 504 297 504 243 l 504 364 l 407 359 q 304 346 346 357 q 238 316 263 335 q 203 269 214 296 q 192 207 192 241 q 225 115 192 144 q 311 86 258 86 m 531 989 q 519 927 531 954 q 487 880 507 899 q 437 851 466 861 q 376 842 409 842 q 314 851 342 842 q 266 880 286 861 q 235 926 246 899 q 224 987 224 953 q 235 1049 224 1022 q 266 1095 246 1076 q 314 1123 286 1114 q 376 1133 342 1133 q 437 1123 408 1133 q 486 1095 465 1114 q 519 1049 507 1076 q 531 989 531 1023 m 452 987 q 430 1044 452 1023 q 376 1064 409 1064 q 320 1044 342 1064 q 299 987 299 1023 q 318 931 299 951 q 376 911 338 911 q 430 931 409 911 q 452 987 452 951 z "},\u00E6:{ha:1157,x_min:64,x_max:1088,o:"m 64 208 q 142 379 64 319 q 380 444 220 439 l 505 449 l 505 496 q 495 572 505 541 q 467 621 486 602 q 421 648 448 640 q 358 656 393 656 q 253 640 302 656 q 160 600 205 623 l 117 693 q 229 739 167 720 q 358 758 290 758 q 503 729 447 758 q 589 637 559 701 q 680 727 623 695 q 806 758 736 758 q 924 734 871 758 q 1013 666 976 710 q 1068 561 1049 623 q 1088 425 1088 500 l 1088 349 l 632 349 q 685 156 635 218 q 835 94 735 94 q 897 98 868 94 q 952 107 926 101 q 1004 124 979 114 q 1054 146 1029 134 l 1054 36 q 1002 14 1027 23 q 950 -2 977 4 q 894 -11 923 -8 q 832 -14 865 -14 q 670 25 739 -14 q 559 142 602 64 q 511 76 536 105 q 453 27 485 47 q 381 -3 420 7 q 292 -14 342 -14 q 202 0 243 -14 q 130 40 160 13 q 81 110 99 68 q 64 208 64 151 m 192 207 q 225 115 192 144 q 311 86 258 86 q 388 99 353 86 q 449 138 423 112 q 489 204 475 164 q 504 297 504 243 l 504 364 l 407 359 q 304 346 346 357 q 238 316 263 335 q 203 269 214 296 q 192 207 192 241 m 803 656 q 685 603 728 656 q 635 449 642 550 l 954 449 q 945 533 954 495 q 918 599 937 572 q 871 641 899 626 q 803 656 842 656 z "},\u00E7:{ha:643,x_min:77,x_max:596,o:"m 403 -14 q 275 8 334 -14 q 171 76 215 29 q 102 194 127 122 q 77 368 77 267 q 102 549 77 475 q 173 670 128 623 q 279 737 218 716 q 408 758 339 758 q 512 747 461 758 q 596 718 562 735 l 559 614 q 525 627 544 621 q 486 638 506 633 q 446 647 465 644 q 408 650 426 650 q 253 582 302 650 q 204 370 204 513 q 253 160 204 227 q 403 94 302 94 q 502 107 458 94 q 583 136 547 119 l 583 26 q 505 -3 547 7 q 403 -14 463 -14 m 495 -195 q 447 -297 495 -260 q 298 -334 399 -334 q 268 -332 283 -334 q 242 -328 252 -330 l 242 -254 q 269 -257 252 -256 q 296 -258 286 -258 q 372 -244 345 -258 q 399 -196 399 -229 q 390 -168 399 -180 q 366 -147 381 -156 q 329 -132 350 -138 q 282 -119 307 -125 l 343 0 l 425 0 l 387 -78 q 429 -92 410 -83 q 464 -115 449 -101 q 487 -149 478 -129 q 495 -195 495 -168 z "},\u00E8:{ha:743,x_min:77,x_max:673,o:"m 412 -14 q 276 12 338 -14 q 170 85 214 37 q 101 204 125 133 q 77 367 77 275 q 99 532 77 459 q 162 655 121 604 q 259 732 203 705 q 385 758 316 758 q 505 734 452 758 q 596 666 559 710 q 653 561 633 623 q 673 425 673 500 l 673 349 l 204 349 q 259 156 208 218 q 414 94 311 94 q 478 98 448 94 q 535 107 507 101 q 588 124 562 114 q 640 146 614 134 l 640 36 q 587 14 613 23 q 533 -2 561 4 q 476 -11 506 -8 q 412 -14 447 -14 m 382 656 q 259 603 304 656 q 207 449 214 550 l 541 449 q 531 533 541 495 q 503 599 522 572 q 454 641 484 626 q 382 656 424 656 m 460 842 l 378 842 q 327 889 355 861 q 273 947 299 917 q 225 1004 247 977 q 193 1050 204 1031 l 193 1064 l 342 1064 q 367 1014 353 1041 q 397 959 382 986 q 429 905 413 931 q 460 860 446 880 l 460 842 z "},\u00E9:{ha:743,x_min:77,x_max:673,o:"m 412 -14 q 276 12 338 -14 q 170 85 214 37 q 101 204 125 133 q 77 367 77 275 q 99 532 77 459 q 162 655 121 604 q 259 732 203 705 q 385 758 316 758 q 505 734 452 758 q 596 666 559 710 q 653 561 633 623 q 673 425 673 500 l 673 349 l 204 349 q 259 156 208 218 q 414 94 311 94 q 478 98 448 94 q 535 107 507 101 q 588 124 562 114 q 640 146 614 134 l 640 36 q 587 14 613 23 q 533 -2 561 4 q 476 -11 506 -8 q 412 -14 447 -14 m 382 656 q 259 603 304 656 q 207 449 214 550 l 541 449 q 531 533 541 495 q 503 599 522 572 q 454 641 484 626 q 382 656 424 656 m 322 860 q 353 905 337 880 q 385 959 369 931 q 415 1014 401 986 q 440 1064 429 1041 l 589 1064 l 589 1050 q 556 1004 578 1031 q 509 947 535 977 q 455 889 483 917 q 404 842 428 861 l 322 842 l 322 860 z "},\u00EA:{ha:743,x_min:77,x_max:673,o:"m 412 -14 q 276 12 338 -14 q 170 85 214 37 q 101 204 125 133 q 77 367 77 275 q 99 532 77 459 q 162 655 121 604 q 259 732 203 705 q 385 758 316 758 q 505 734 452 758 q 596 666 559 710 q 653 561 633 623 q 673 425 673 500 l 673 349 l 204 349 q 259 156 208 218 q 414 94 311 94 q 478 98 448 94 q 535 107 507 101 q 588 124 562 114 q 640 146 614 134 l 640 36 q 587 14 613 23 q 533 -2 561 4 q 476 -11 506 -8 q 412 -14 447 -14 m 382 656 q 259 603 304 656 q 207 449 214 550 l 541 449 q 531 533 541 495 q 503 599 522 572 q 454 641 484 626 q 382 656 424 656 m 602 842 l 520 842 q 449 898 486 865 q 377 968 412 930 q 304 898 340 930 q 234 842 269 865 l 152 842 l 152 860 q 193 905 170 880 q 238 959 216 931 q 281 1014 261 986 q 312 1064 301 1041 l 442 1064 q 473 1014 453 1041 q 516 959 493 986 q 562 905 538 931 q 602 860 585 880 l 602 842 z "},\u00EB:{ha:743,x_min:77,x_max:673,o:"m 412 -14 q 276 12 338 -14 q 170 85 214 37 q 101 204 125 133 q 77 367 77 275 q 99 532 77 459 q 162 655 121 604 q 259 732 203 705 q 385 758 316 758 q 505 734 452 758 q 596 666 559 710 q 653 561 633 623 q 673 425 673 500 l 673 349 l 204 349 q 259 156 208 218 q 414 94 311 94 q 478 98 448 94 q 535 107 507 101 q 588 124 562 114 q 640 146 614 134 l 640 36 q 587 14 613 23 q 533 -2 561 4 q 476 -11 506 -8 q 412 -14 447 -14 m 382 656 q 259 603 304 656 q 207 449 214 550 l 541 449 q 531 533 541 495 q 503 599 522 572 q 454 641 484 626 q 382 656 424 656 m 182 946 q 201 999 182 983 q 248 1015 220 1015 q 294 999 274 1015 q 313 946 313 982 q 294 893 313 910 q 248 876 274 876 q 201 893 220 876 q 182 946 182 910 m 437 946 q 456 999 437 983 q 502 1015 475 1015 q 527 1011 515 1015 q 547 999 538 1007 q 562 977 556 990 q 567 946 567 964 q 547 893 567 910 q 502 876 528 876 q 456 893 475 876 q 437 946 437 910 z "},\u00EC:{ha:359,x_min:-23,x_max:243,o:"m 241 0 l 118 0 l 118 745 l 241 745 l 241 0 m 243 842 l 162 842 q 111 889 138 861 q 57 947 83 917 q 9 1004 31 977 q -23 1050 -12 1031 l -23 1064 l 125 1064 q 151 1014 136 1041 q 181 959 165 986 q 213 905 197 931 q 243 860 229 880 l 243 842 z "},\u00ED:{ha:359,x_min:118,x_max:392,o:"m 241 0 l 118 0 l 118 745 l 241 745 l 241 0 m 125 860 q 156 905 140 880 q 188 959 172 931 q 218 1014 204 986 q 243 1064 233 1041 l 392 1064 l 392 1050 q 360 1004 381 1031 q 312 947 338 977 q 259 889 286 917 q 208 842 231 861 l 125 842 l 125 860 z "},\u00EE:{ha:359,x_min:-45,x_max:405,o:"m 241 0 l 118 0 l 118 745 l 241 745 l 241 0 m 405 842 l 323 842 q 252 898 288 865 q 180 968 215 930 q 107 898 143 930 q 37 842 71 865 l -45 842 l -45 860 q -5 905 -28 880 q 41 959 18 931 q 84 1014 64 986 q 115 1064 104 1041 l 245 1064 q 276 1014 256 1041 q 318 959 296 986 q 365 905 341 931 q 405 860 388 880 l 405 842 z "},\u00EF:{ha:359,x_min:-12,x_max:372,o:"m 241 0 l 118 0 l 118 745 l 241 745 l 241 0 m -12 946 q 7 999 -12 983 q 53 1015 26 1015 q 99 999 79 1015 q 119 946 119 982 q 99 893 119 910 q 53 876 79 876 q 7 893 26 876 q -12 946 -12 910 m 242 946 q 261 999 242 983 q 307 1015 280 1015 q 332 1011 320 1015 q 353 999 344 1007 q 367 977 361 990 q 372 946 372 964 q 353 893 372 910 q 307 876 333 876 q 261 893 280 876 q 242 946 242 910 z "},\u00F0:{ha:802,x_min:75,x_max:725,o:"m 725 389 q 702 218 725 292 q 637 92 680 143 q 534 13 595 40 q 399 -14 474 -14 q 269 9 328 -14 q 166 74 210 31 q 99 180 123 117 q 75 323 75 243 q 97 467 75 404 q 158 572 118 529 q 255 636 198 614 q 383 659 312 659 q 505 638 452 659 q 586 578 557 618 l 591 581 q 530 726 570 661 q 428 846 489 791 l 254 742 l 204 819 l 351 908 q 295 946 324 927 q 235 982 267 964 l 282 1065 q 368 1019 326 1044 q 449 965 409 995 l 603 1059 l 653 982 l 521 903 q 604 806 566 859 q 668 689 642 753 q 710 551 695 626 q 725 389 725 476 m 597 357 q 586 431 597 395 q 551 495 574 467 q 490 540 527 523 q 401 557 452 557 q 312 541 349 557 q 252 496 275 526 q 217 421 228 466 q 205 319 205 377 q 217 225 205 268 q 252 153 228 183 q 313 105 276 122 q 401 89 350 89 q 552 156 506 89 q 597 357 597 224 z "},\u00F1:{ha:818,x_min:118,x_max:707,o:"m 583 0 l 583 479 q 548 612 583 568 q 436 656 512 656 q 344 638 381 656 q 284 586 307 621 q 251 501 261 551 q 241 386 241 451 l 241 0 l 118 0 l 118 745 l 218 745 l 236 644 l 243 644 q 283 695 260 673 q 334 730 307 716 q 393 751 362 745 q 457 758 425 758 q 644 693 581 758 q 707 486 707 629 l 707 0 l 583 0 m 515 843 q 461 855 488 843 q 408 881 434 867 q 359 908 382 896 q 313 920 335 920 q 267 902 283 920 q 241 842 250 884 l 170 842 q 185 916 174 882 q 214 972 196 949 q 257 1008 232 996 q 313 1021 282 1021 q 369 1009 342 1021 q 422 983 397 997 q 472 957 448 968 q 515 945 495 945 q 561 962 545 945 q 587 1022 576 980 l 658 1022 q 643 948 654 981 q 614 892 632 916 q 571 856 596 869 q 515 843 546 843 z "},\u00F2:{ha:802,x_min:77,x_max:725,o:"m 725 374 q 702 209 725 281 q 637 87 680 136 q 534 12 595 38 q 399 -14 474 -14 q 270 12 329 -14 q 168 87 211 38 q 101 209 125 136 q 77 374 77 281 q 99 537 77 466 q 164 658 122 609 q 267 733 206 707 q 403 758 328 758 q 532 733 473 758 q 634 658 591 707 q 701 537 677 609 q 725 374 725 466 m 204 374 q 251 160 204 232 q 401 89 297 89 q 552 160 506 89 q 597 374 597 232 q 551 586 597 515 q 400 656 505 656 q 250 586 296 656 q 204 374 204 515 m 506 842 l 425 842 q 373 889 401 861 q 319 947 345 917 q 272 1004 293 977 q 239 1050 250 1031 l 239 1064 l 388 1064 q 413 1014 399 1041 q 444 959 428 986 q 475 905 459 931 q 506 860 492 880 l 506 842 z "},\u00F3:{ha:802,x_min:77,x_max:725,o:"m 725 374 q 702 209 725 281 q 637 87 680 136 q 534 12 595 38 q 399 -14 474 -14 q 270 12 329 -14 q 168 87 211 38 q 101 209 125 136 q 77 374 77 281 q 99 537 77 466 q 164 658 122 609 q 267 733 206 707 q 403 758 328 758 q 532 733 473 758 q 634 658 591 707 q 701 537 677 609 q 725 374 725 466 m 204 374 q 251 160 204 232 q 401 89 297 89 q 552 160 506 89 q 597 374 597 232 q 551 586 597 515 q 400 656 505 656 q 250 586 296 656 q 204 374 204 515 m 321 860 q 352 905 336 880 q 384 959 368 931 q 414 1014 399 986 q 439 1064 428 1041 l 587 1064 l 587 1050 q 555 1004 576 1031 q 508 947 534 977 q 454 889 481 917 q 403 842 427 861 l 321 842 l 321 860 z "},\u00F4:{ha:802,x_min:77,x_max:725,o:"m 725 374 q 702 209 725 281 q 637 87 680 136 q 534 12 595 38 q 399 -14 474 -14 q 270 12 329 -14 q 168 87 211 38 q 101 209 125 136 q 77 374 77 281 q 99 537 77 466 q 164 658 122 609 q 267 733 206 707 q 403 758 328 758 q 532 733 473 758 q 634 658 591 707 q 701 537 677 609 q 725 374 725 466 m 204 374 q 251 160 204 232 q 401 89 297 89 q 552 160 506 89 q 597 374 597 232 q 551 586 597 515 q 400 656 505 656 q 250 586 296 656 q 204 374 204 515 m 622 842 l 540 842 q 469 898 505 865 q 397 968 432 930 q 324 898 360 930 q 254 842 288 865 l 172 842 l 172 860 q 212 905 189 880 q 258 959 235 931 q 301 1014 281 986 q 332 1064 321 1041 l 462 1064 q 493 1014 473 1041 q 535 959 513 986 q 582 905 558 931 q 622 860 605 880 l 622 842 z "},\u00F5:{ha:802,x_min:77,x_max:725,o:"m 725 374 q 702 209 725 281 q 637 87 680 136 q 534 12 595 38 q 399 -14 474 -14 q 270 12 329 -14 q 168 87 211 38 q 101 209 125 136 q 77 374 77 281 q 99 537 77 466 q 164 658 122 609 q 267 733 206 707 q 403 758 328 758 q 532 733 473 758 q 634 658 591 707 q 701 537 677 609 q 725 374 725 466 m 204 374 q 251 160 204 232 q 401 89 297 89 q 552 160 506 89 q 597 374 597 232 q 551 586 597 515 q 400 656 505 656 q 250 586 296 656 q 204 374 204 515 m 499 843 q 445 855 472 843 q 393 881 418 867 q 343 908 367 896 q 298 920 319 920 q 251 902 267 920 q 225 842 235 884 l 155 842 q 169 916 158 882 q 198 972 180 949 q 241 1008 216 996 q 298 1021 267 1021 q 354 1009 326 1021 q 407 983 381 997 q 456 957 433 968 q 499 945 479 945 q 545 962 530 945 q 571 1022 561 980 l 642 1022 q 628 948 639 981 q 598 892 616 916 q 555 856 581 869 q 499 843 530 843 z "},\u00F6:{ha:802,x_min:77,x_max:725,o:"m 725 374 q 702 209 725 281 q 637 87 680 136 q 534 12 595 38 q 399 -14 474 -14 q 270 12 329 -14 q 168 87 211 38 q 101 209 125 136 q 77 374 77 281 q 99 537 77 466 q 164 658 122 609 q 267 733 206 707 q 403 758 328 758 q 532 733 473 758 q 634 658 591 707 q 701 537 677 609 q 725 374 725 466 m 204 374 q 251 160 204 232 q 401 89 297 89 q 552 160 506 89 q 597 374 597 232 q 551 586 597 515 q 400 656 505 656 q 250 586 296 656 q 204 374 204 515 m 203 946 q 222 999 203 983 q 269 1015 241 1015 q 315 999 295 1015 q 334 946 334 982 q 315 893 334 910 q 269 876 295 876 q 222 893 241 876 q 203 946 203 910 m 458 946 q 477 999 458 983 q 523 1015 496 1015 q 548 1011 536 1015 q 568 999 559 1007 q 583 977 577 990 q 588 946 588 964 q 568 893 588 910 q 523 876 549 876 q 477 893 496 876 q 458 946 458 910 z "},"\xF7":{ha:765,x_min:69,x_max:696,o:"m 69 439 l 69 541 l 696 541 l 696 439 l 69 439 m 304 253 q 311 293 304 277 q 327 319 317 309 q 352 333 338 329 q 382 338 366 338 q 412 333 397 338 q 437 319 426 329 q 454 293 448 309 q 460 253 460 277 q 454 215 460 231 q 437 188 448 199 q 412 173 426 178 q 382 168 397 168 q 352 173 366 168 q 327 188 338 178 q 311 215 317 199 q 304 253 304 231 m 304 726 q 311 766 304 750 q 327 792 317 782 q 352 807 338 802 q 382 811 366 811 q 412 807 397 811 q 437 792 426 802 q 454 766 448 782 q 460 726 460 750 q 454 688 460 704 q 437 662 448 672 q 412 646 426 651 q 382 642 397 642 q 352 646 366 642 q 327 662 338 651 q 311 688 317 672 q 304 726 304 704 z "},\u00F8:{ha:802,x_min:78,x_max:726,o:"m 726 374 q 704 209 726 281 q 638 87 681 136 q 536 12 596 38 q 400 -14 475 -14 q 249 22 315 -14 l 203 -52 l 114 -1 l 168 87 q 102 209 125 136 q 78 374 78 281 q 101 537 78 466 q 165 658 123 609 q 268 733 208 707 q 404 758 329 758 q 485 748 447 758 q 557 720 524 739 l 603 793 l 692 743 l 637 656 q 703 535 680 606 q 726 374 726 465 m 205 374 q 212 272 205 317 q 233 193 218 228 l 503 632 q 457 650 483 644 q 401 656 432 656 q 251 586 297 656 q 205 374 205 515 m 599 374 q 572 549 599 481 l 302 111 q 348 94 323 100 q 403 89 372 89 q 553 160 507 89 q 599 374 599 232 z "},\u00F9:{ha:818,x_min:111,x_max:700,o:"m 600 0 l 582 100 l 575 100 q 535 49 558 71 q 484 14 511 28 q 425 -7 456 0 q 361 -14 393 -14 q 252 2 299 -14 q 174 51 205 18 q 127 136 143 84 q 111 258 111 187 l 111 745 l 235 745 l 235 265 q 271 133 235 177 q 382 89 307 89 q 474 106 437 89 q 534 158 511 124 q 567 243 557 193 q 576 358 576 293 l 576 745 l 700 745 l 700 0 l 600 0 m 470 842 l 389 842 q 337 889 365 861 q 283 947 309 917 q 236 1004 257 977 q 203 1050 214 1031 l 203 1064 l 352 1064 q 377 1014 363 1041 q 408 959 392 986 q 439 905 423 931 q 470 860 456 880 l 470 842 z "},\u00FA:{ha:818,x_min:111,x_max:700,o:"m 600 0 l 582 100 l 575 100 q 535 49 558 71 q 484 14 511 28 q 425 -7 456 0 q 361 -14 393 -14 q 252 2 299 -14 q 174 51 205 18 q 127 136 143 84 q 111 258 111 187 l 111 745 l 235 745 l 235 265 q 271 133 235 177 q 382 89 307 89 q 474 106 437 89 q 534 158 511 124 q 567 243 557 193 q 576 358 576 293 l 576 745 l 700 745 l 700 0 l 600 0 m 332 860 q 362 905 347 880 q 394 959 378 931 q 425 1014 410 986 q 450 1064 439 1041 l 598 1064 l 598 1050 q 566 1004 587 1031 q 518 947 545 977 q 465 889 492 917 q 414 842 437 861 l 332 842 l 332 860 z "},\u00FB:{ha:818,x_min:111,x_max:700,o:"m 600 0 l 582 100 l 575 100 q 535 49 558 71 q 484 14 511 28 q 425 -7 456 0 q 361 -14 393 -14 q 252 2 299 -14 q 174 51 205 18 q 127 136 143 84 q 111 258 111 187 l 111 745 l 235 745 l 235 265 q 271 133 235 177 q 382 89 307 89 q 474 106 437 89 q 534 158 511 124 q 567 243 557 193 q 576 358 576 293 l 576 745 l 700 745 l 700 0 l 600 0 m 631 842 l 549 842 q 477 898 514 865 q 406 968 441 930 q 333 898 369 930 q 262 842 297 865 l 180 842 l 180 860 q 221 905 198 880 q 267 959 244 931 q 310 1014 290 986 q 340 1064 330 1041 l 471 1064 q 502 1014 481 1041 q 544 959 522 986 q 590 905 567 931 q 631 860 614 880 l 631 842 z "},\u00FC:{ha:818,x_min:111,x_max:700,o:"m 600 0 l 582 100 l 575 100 q 535 49 558 71 q 484 14 511 28 q 425 -7 456 0 q 361 -14 393 -14 q 252 2 299 -14 q 174 51 205 18 q 127 136 143 84 q 111 258 111 187 l 111 745 l 235 745 l 235 265 q 271 133 235 177 q 382 89 307 89 q 474 106 437 89 q 534 158 511 124 q 567 243 557 193 q 576 358 576 293 l 576 745 l 700 745 l 700 0 l 600 0 m 210 946 q 229 999 210 983 q 275 1015 248 1015 q 321 999 301 1015 q 340 946 340 982 q 321 893 340 910 q 275 876 301 876 q 229 893 248 876 q 210 946 210 910 m 464 946 q 483 999 464 983 q 529 1015 502 1015 q 554 1011 542 1015 q 574 999 566 1007 q 589 977 583 990 q 594 946 594 964 q 574 893 594 910 q 529 876 555 876 q 483 893 502 876 q 464 946 464 910 z "},\u00FD:{ha:679,x_min:7,x_max:672,o:"m 7 745 l 135 745 l 281 329 q 300 272 290 302 q 318 212 310 242 q 333 155 327 182 q 342 103 339 127 l 346 103 q 357 149 349 120 q 373 211 364 178 q 392 276 382 244 q 410 330 402 308 l 545 745 l 672 745 l 378 -97 q 337 -196 359 -152 q 286 -270 315 -239 q 217 -317 256 -300 q 123 -334 178 -334 q 62 -330 88 -334 q 18 -322 37 -326 l 18 -224 q 54 -230 33 -227 q 100 -232 76 -232 q 156 -224 132 -232 q 197 -201 180 -216 q 228 -165 215 -186 q 250 -115 240 -143 l 289 -7 l 7 745 m 276 860 q 307 905 291 880 q 339 959 323 931 q 369 1014 355 986 q 394 1064 383 1041 l 543 1064 l 543 1050 q 510 1004 532 1031 q 463 947 489 977 q 409 889 437 917 q 358 842 382 861 l 276 842 l 276 860 z "},\u00FE:{ha:814,x_min:118,x_max:737,o:"m 241 644 q 277 689 257 668 q 322 725 296 709 q 381 749 349 740 q 454 758 414 758 q 570 734 518 758 q 660 661 623 709 q 717 541 696 612 q 737 374 737 469 q 717 206 737 278 q 660 85 696 134 q 570 11 623 36 q 454 -14 518 -14 q 382 -5 414 -14 q 323 19 349 4 q 277 53 297 33 q 241 94 257 73 l 233 94 q 237 50 235 71 q 240 14 239 33 q 241 -16 241 -5 l 241 -334 l 118 -334 l 118 1055 l 241 1055 l 241 745 l 236 644 l 241 644 m 431 656 q 343 640 379 656 q 286 593 308 625 q 253 513 264 561 q 241 401 243 466 l 241 374 q 251 252 241 305 q 282 162 260 199 q 340 107 304 126 q 432 89 377 89 q 567 163 524 89 q 610 375 610 237 q 567 586 610 516 q 431 656 524 656 z "},\u00FF:{ha:679,x_min:7,x_max:672,o:"m 7 745 l 135 745 l 281 329 q 300 272 290 302 q 318 212 310 242 q 333 155 327 182 q 342 103 339 127 l 346 103 q 357 149 349 120 q 373 211 364 178 q 392 276 382 244 q 410 330 402 308 l 545 745 l 672 745 l 378 -97 q 337 -196 359 -152 q 286 -270 315 -239 q 217 -317 256 -300 q 123 -334 178 -334 q 62 -330 88 -334 q 18 -322 37 -326 l 18 -224 q 54 -230 33 -227 q 100 -232 76 -232 q 156 -224 132 -232 q 197 -201 180 -216 q 228 -165 215 -186 q 250 -115 240 -143 l 289 -7 l 7 745 m 155 946 q 174 999 155 983 q 220 1015 193 1015 q 266 999 246 1015 q 286 946 286 982 q 266 893 286 910 q 220 876 246 876 q 174 893 193 876 q 155 946 155 910 m 409 946 q 428 999 409 983 q 474 1015 447 1015 q 499 1011 487 1015 q 519 999 511 1007 q 534 977 528 990 q 539 946 539 964 q 519 893 539 910 q 474 876 500 876 q 428 893 447 876 q 409 946 409 910 z "},\u0131:{ha:359,x_min:118,x_max:241,o:"m 241 0 l 118 0 l 118 745 l 241 745 l 241 0 z "},"\u02C6":{ha:802,x_min:175,x_max:625,o:"m 625 842 l 543 842 q 472 898 509 865 q 400 968 435 930 q 328 898 363 930 q 257 842 292 865 l 175 842 l 175 860 q 216 905 193 880 q 261 959 239 931 q 304 1014 284 986 q 335 1064 324 1041 l 465 1064 q 496 1014 476 1041 q 539 959 516 986 q 585 905 562 931 q 625 860 608 880 l 625 842 z "},"\u02DA":{ha:802,x_min:248,x_max:554,o:"m 554 989 q 542 927 554 954 q 510 880 530 899 q 460 851 489 861 q 399 842 432 842 q 337 851 365 842 q 289 880 309 861 q 258 926 269 899 q 248 987 248 953 q 258 1049 248 1022 q 289 1095 269 1076 q 337 1123 309 1114 q 399 1133 365 1133 q 460 1123 431 1133 q 509 1095 488 1114 q 542 1049 530 1076 q 554 989 554 1023 m 475 987 q 453 1044 475 1023 q 399 1064 432 1064 q 343 1044 365 1064 q 322 987 322 1023 q 341 931 322 951 q 399 911 361 911 q 453 931 432 911 q 475 987 475 951 z "},"\u02DC":{ha:802,x_min:175,x_max:663,o:"m 519 843 q 466 855 492 843 q 413 881 439 867 q 363 908 387 896 q 318 920 340 920 q 271 902 288 920 q 245 842 255 884 l 175 842 q 190 916 178 882 q 219 972 201 949 q 262 1008 237 996 q 318 1021 287 1021 q 374 1009 347 1021 q 427 983 401 997 q 476 957 453 968 q 519 945 500 945 q 566 962 550 945 q 591 1022 581 980 l 663 1022 q 648 948 659 981 q 619 892 637 916 q 576 856 601 869 q 519 843 551 843 z "},"\u2013":{ha:694,x_min:56,x_max:639,o:"m 56 315 l 56 429 l 639 429 l 639 315 l 56 315 z "},"\u2014":{ha:1389,x_min:56,x_max:1333,o:"m 56 315 l 56 429 l 1333 429 l 1333 315 l 56 315 z "},"\u2018":{ha:243,x_min:16,x_max:228,o:"m 25 652 l 16 667 q 38 745 25 703 q 67 828 52 786 q 100 912 83 870 q 135 991 118 954 l 228 991 q 208 905 218 950 q 189 816 198 861 q 173 730 180 772 q 160 652 165 688 l 25 652 z "},"\u2019":{ha:243,x_min:16,x_max:228,o:"m 218 991 l 228 977 q 205 898 218 939 q 176 815 192 857 q 143 731 160 772 q 109 652 125 690 l 16 652 q 35 737 25 692 q 54 827 45 782 q 71 913 63 871 q 83 991 78 956 l 218 991 z "},"\u201A":{ha:347,x_min:43,x_max:256,o:"m 245 161 l 256 146 q 233 68 246 109 q 204 -16 220 26 q 171 -99 188 -58 q 136 -179 153 -141 l 43 -179 q 63 -93 53 -138 q 82 -4 73 -48 q 98 83 91 41 q 111 161 106 125 l 245 161 z "},"\u201C":{ha:504,x_min:16,x_max:489,o:"m 286 652 l 277 667 q 299 745 286 703 q 328 828 313 786 q 361 912 344 870 q 396 991 379 954 l 489 991 q 469 905 479 950 q 450 816 459 861 q 434 730 441 772 q 421 652 427 688 l 286 652 m 25 652 l 16 667 q 38 745 25 703 q 67 828 52 786 q 100 912 83 870 q 135 991 118 954 l 228 991 q 208 905 218 950 q 189 816 198 861 q 173 730 180 772 q 160 652 165 688 l 25 652 z "},"\u201D":{ha:504,x_min:16,x_max:489,o:"m 218 991 l 228 977 q 205 898 218 939 q 176 815 192 857 q 143 731 160 772 q 109 652 125 690 l 16 652 q 35 737 25 692 q 54 827 45 782 q 71 913 63 871 q 83 991 78 956 l 218 991 m 479 991 l 489 977 q 466 898 479 939 q 437 815 453 857 q 404 731 421 772 q 370 652 387 690 l 277 652 q 296 737 286 692 q 315 827 306 782 q 332 913 324 871 q 345 991 339 956 l 479 991 z "},"\u201E":{ha:608,x_min:43,x_max:517,o:"m 245 161 l 256 146 q 233 68 246 109 q 204 -16 220 26 q 171 -99 188 -58 q 136 -179 153 -141 l 43 -179 q 63 -93 53 -138 q 82 -4 73 -48 q 98 83 91 41 q 111 161 106 125 l 245 161 m 507 161 l 517 146 q 494 68 507 109 q 465 -16 481 26 q 432 -99 449 -58 q 397 -179 414 -141 l 304 -179 q 324 -93 314 -138 q 343 -4 334 -48 q 359 83 352 41 q 372 161 367 125 l 507 161 z "},"\u2022":{ha:522,x_min:102,x_max:421,o:"m 102 507 q 114 589 102 555 q 148 645 126 623 q 198 675 169 666 q 261 685 227 685 q 323 675 294 685 q 374 645 353 666 q 409 589 396 623 q 421 507 421 555 q 409 426 421 460 q 374 371 396 392 q 323 339 353 349 q 261 329 294 329 q 198 339 227 329 q 148 371 169 349 q 114 426 126 392 q 102 507 102 460 z "},"\u2039":{ha:400,x_min:56,x_max:345,o:"m 56 375 l 265 656 l 345 603 l 183 367 l 345 131 l 265 78 l 56 357 l 56 375 z "},"\u203A":{ha:400,x_min:56,x_max:345,o:"m 345 357 l 135 78 l 56 131 l 216 367 l 56 603 l 135 656 l 345 375 l 345 357 z "},"\u2044":{ha:180,x_min:-239,x_max:418,o:"m 418 991 l -132 0 l -239 0 l 311 991 l 418 991 z "}},familyName:"Droid Sans",ascender:1293,descender:-334,underlinePosition:-154,underlineThickness:102,boundingBox:{yMin:-492,xMin:-352,yMax:1907,xMax:1966},resolution:1e3,original_font_information:{format:0,copyright:"Digitized data copyright \xA9 2007, Google Corporation.",fontFamily:"Droid Sans",fontSubfamily:"Regular",uniqueID:"Ascender - Droid Sans",fullName:"Droid Sans",version:"Version 1.00 build 113",postScriptName:"DroidSans",trademark:"Droid is a trademark of Google and may be registered in certain jurisdictions.",manufacturer:"Ascender Corporation",description:"Droid Sans is a humanist sans serif typeface designed for user interfaces and electronic communication.",manufacturerURL:"http://www.ascendercorp.com/",designerURL:"http://www.ascendercorp.com/typedesigners.html",licence:"Licensed under the Apache License, Version 2.0",licenceURL:"http://\xAEwww.apache.org/licenses/LICENSE-2.0",compatibleFullName:"Droid Sans"},cssFontWeight:"normal",cssFontStyle:"normal"};var h7=class h7{constructor(){this.fonts={},this.getFont=this.getFont.bind(this)}getFont(e){if(this.fonts[e])return this.fonts[e];if(!e)return Promise.resolve(pS);switch(e){case"arrival":return this.fonts[e]=import("./Arrival-7CH7MHGT.js").then(t=>Sa(t)),this.fonts[e];case"chalet-parisnineteensixty":return this.fonts[e]=import("./Chalet-HJY2RRWP.js").then(t=>Sa(t)),this.fonts[e];case"helvetica neue":return this.fonts[e]=import("./HelveticaNeue-KYLSWWLS.js").then(t=>Sa(t)),this.fonts[e];case"helvetiker":return this.fonts[e]=import("./Helvetiker-INS43MZX.js").then(t=>Sa(t)),this.fonts[e];case"lato":return this.fonts[e]=import("./Lato-ULDR5SED.js").then(t=>Sa(t)),this.fonts[e];case"myriad pro":return this.fonts[e]=import("./MyriadPro-ZAEETUH5.js").then(t=>Sa(t)),this.fonts[e];case"proxima nova medium":return this.fonts[e]=import("./ProximaNova-Q6CVROCO.js").then(t=>Sa(t)),this.fonts[e];case"simon circular book":return this.fonts[e]=import("./SimonCircular-I6ROXOEJ.js").then(t=>Sa(t)),this.fonts[e];default:return Promise.resolve(pS)}}};l(h7,"FontLib");var d7=h7,fS=new d7,Sa=l(function(i){let e={},t={};Object.keys(Gc.glyphs).forEach(function(a){t[a]=Gc.glyphs[a]}),Object.keys(i.glyphs).forEach(function(a){t[a]=i.glyphs[a]}),Object.keys(Gc).forEach(function(a){e[a]=Gc[a]}),e.glyphs=t;let n=new p2(e);n._mSupportedCharacters=Object.keys(e.glyphs).join("");let r=n._mSupportedCharacters.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");return n._mInvalidCharacters=new RegExp("[^"+r+"]","g"),n},"createFont"),pS=Sa(Gc);y();var ap="x",op="y",Js="z";function p7(i,e,t){i.computeBoundingBox();let n=i.boundingBox,r=Math.max(t.width,t.height)/1e3,a=Math.max(t.width*r,t.height*r),o={min:new z(0,0,0),max:new z(1,1,1).multiplyScalar(a)},s={};e.forEach(de=>{s[de.name]=de});let c=i.getAttribute("position"),u=i.getAttribute("normal"),h=i.getAttribute("uv");F.assert(c.count==u.count),F.assert(c.count==h.count);let m,f;i.index?(F.assert(i.index.count%3===0),m=i.index.count/3,f=l(function(de,Ae){return i.index.getX(de*3+Ae)},"meshIndex")):(F.assert(c.count%3===0),m=c.count/3,f=l(function(de,Ae){return de*3+Ae},"meshIndex"));let g=s.side||{},b=s.front||{},M=g.repeat!=null?g.repeat.u:1,x=g.repeat!=null?g.repeat.v:1,T=g.offset!=null?g.offset.u:1,E=g.offset!=null?g.offset.v:1,S=g.rotation!=null?g.rotation:0,_=g.useLocalScaling||!1,P=b.repeat!=null?b.repeat.u:1,q=b.repeat!=null?b.repeat.v:1,D=b.offset!=null?b.offset.u:1,U=b.offset!=null?b.offset.v:1,R=b.rotation!=null?b.rotation:0,B=b.useLocalScaling||!1;for(let de=0;de<m;++de){let Ae=u.getX(f(de,0))+u.getX(f(de,1))+u.getX(f(de,2)),Fe=u.getY(f(de,0))+u.getY(f(de,1))+u.getY(f(de,2)),Ce=u.getZ(f(de,0))+u.getZ(f(de,1))+u.getZ(f(de,2)),He=Math.abs(Ae),kt=Math.abs(Fe),$e=Math.abs(Ce);var j,G;He<=kt&&He<=$e?(j=ap,kt<=$e?G=op:G=Js):kt<=He&&kt<=$e?(j=op,He<=$e?G=ap:G=Js):(j=Js,He<=kt?G=ap:G=op),j===Js&&(j=G,G=Js);var Q,X,ne,$,ue,be;G===Js||j===Js?(Q=M,X=x,ne=T,$=E,ue=S,be=_?n:o):(Q=P,X=q,ne=D,$=U,ue=R,be=B?n:o);let ae=be.min,ce=be.max,Le=Math.abs(ce[j]-ae[j]),St=Math.abs(ce[G]-ae[G]),I=ue*Math.PI/180||0,N=Math.cos(I),O=Math.sin(I);for(let H=0;H<3;H++){let Y=c.getX(f(de,H)),W=c.getY(f(de,H)),J=c.getZ(f(de,H));var ee,ge;j===ap?ee=Q*(Y-ae[j])/Le+ne:j===op?ee=Q*(W-ae[j])/Le+ne:ee=Q*(J-ae[j])/Le+ne,G===ap?ge=X*(Y-ae[G])/St+$:G===op?ge=X*(W-ae[G])/St+$:ge=X*(J-ae[G])/St+$,ee-=.5,ge-=.5;let Te=ee*N-ge*O+.5,se=ee*O+ge*N+.5;h.setX(f(de,H),Te),h.setY(f(de,H),se)}}i.uvsNeedUpdate=!0}l(p7,"updateUVs");var gH=.22,_e=class _e extends Rn{constructor(t,n,r,a,o="SINGLE_GEOMETRY"){var h,m;super();p(this,"polygon");p(this,"mapClass");p(this,"container");p(this,"visible");p(this,"mode");p(this,"assetManager");p(this,"imageVisible");p(this,"labelVisible");p(this,"polygonHeight");p(this,"geometry");p(this,"mesh");p(this,"material");p(this,"labelMesh");p(this,"imageMesh");p(this,"isInflated",!1);p(this,"sortScore",null);p(this,"boundingBox");this.mode=o,this.polygon=t,this.mapClass=n,this.container=r,this.assetManager=a;let s=t.geometry.visible!==!1,c=((h=t.image)==null?void 0:h.visible)===!0&&(t.image.url!=null||t.image.original!=null),u=((m=t.label)==null?void 0:m.visible)===!0&&t.label.text!=null;(s||c||u)&&_e._setPolygonDefaults(t),this.visible=s,this.imageVisible=c,this.labelVisible=u,this.load=this.load.bind(this),c&&(this.imageMesh=new qe(new nn(1,1)))}static getDefaultMaterial(){return _e.defaultMaterial||(_e.defaultMaterial=new Ar({color:0})),_e.defaultMaterial}static getWeightedCenter(t){let n=t.reduce((r,a)=>({x:r.x+a.x,y:r.y+a.y}),{x:0,y:0});return n.x/=t.length,n.y/=t.length,n}static getBoundingCentre(t){let n=1/0,r=1/0,a=-1/0,o=-1/0;return t.forEach(s=>{s.x>a&&(a=s.x),s.x<n&&(n=s.x),s.y>o&&(o=s.y),s.y<r&&(r=s.y)}),{x:(n+a)/2,y:(r+o)/2}}static _makeFromCoords(t,n,r,a){let o=new t;a.boundingBox==null&&(a.boundingBox={min:{x:1/0,y:1/0,z:0},max:{x:-1/0,y:-1/0,z:0}});let s=a.boundingBox.min.x,c=a.boundingBox.min.y,u=a.boundingBox.max.x,h=a.boundingBox.max.y,m=-r.width/2,f=r.height/2;return n.forEach(g=>{g.x+m>u&&(u=g.x+m),g.x+m<s&&(s=g.x+m),-g.y+f>h&&(h=-g.y+f),-g.y+f<c&&(c=-g.y+f)}),a.boundingBox={min:{x:s,y:c,z:0},max:{x:u,y:h,z:0}},o.moveTo(n[0].x-r.width/2,-n[0].y+r.height/2),n.slice(1).forEach(g=>o.lineTo(g.x-r.width/2,-g.y+r.height/2)),o.lineTo(n[0].x-r.width/2,-n[0].y+r.height/2),o}static _inflate(t,n){let r=this.scale,a=new Pa.ClipperOffset,o=t.map(c=>c.map(u=>({X:u.x*r,Y:u.y*r})));a.AddPaths(o,Pa.JoinType.jtRound,Pa.EndType.etOpenRound);let s=new Pa.PolyTree;return a.Execute(s,n*r),s.m_AllPolys.map(c=>c.IsHole()===!1?{coords:c.m_polygon.map(u=>({x:u.X/r,y:u.Y/r})),holes:c.m_Childs.map(u=>u.m_polygon.map(h=>({x:h.X/r,y:h.Y/r})))}:void 0).filter(Boolean)}static _setPolygonDefaults(t){let n={visible:!0,position:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0},scale:{x:1,y:1,z:5},bevel:{size:0,thickness:0,segments:1},offset:0};return t.layer||(t.layer="Polygon"),t.geometry=(0,Ia.default)(t.geometry,n),t.geometry.bevel=(0,Ia.default)(t.geometry.bevel,n.bevel),t.image&&(t.image.position=(0,Ia.default)(t.image.position,n.position),t.image.rotation=(0,Ia.default)(t.image.rotation,n.rotation),t.image.scale=(0,Ia.default)(t.image.scale,n.scale)),t.label&&(t.label.position=(0,Ia.default)(t.label.position,n.position),t.label.rotation=(0,Ia.default)(t.label.rotation,n.rotation),t.label.scale=(0,Ia.default)(t.label.scale,n.scale),t.label.color=t.label.color||"#000000",t.label.fontSize=t.label.fontSize||20),t}getBoundingBox(){if(this.boundingBox)return this.boundingBox;let t=1/0,n=1/0,r=-1/0,a=-1/0,o=-this.mapClass.width/2,s=this.mapClass.height/2;return this.polygon.vertexes.forEach(c=>{c.x+o>r&&(r=c.x+o),c.x+o<t&&(t=c.x+o),-c.y+s>a&&(a=-c.y+s),-c.y+s<n&&(n=-c.y+s)}),this.boundingBox={min:{x:t,y:n,z:0},max:{x:r,y:a,z:0}},this.boundingBox}async load(){var a;let t=this,n=t.polygon,r=t.mapClass;if(this.visible){let o=n.vertexes,s=Math.max(r.width,r.height)/1e3;(this.imageVisible||n.geometry.offset)&&(o=_e._clip(o,0),o=_e._clip(o,n.geometry.offset));let c=[];if(n.geometry.width)_e._inflate(o,(n.geometry.width||gH)/2/r.scale).forEach(({coords:b,holes:M})=>{let x=_e._makeFromCoords(jl,b,r,t);x.holes=M.map(T=>_e._makeFromCoords(l4,T,r,t)),c.push(x)}),this.isInflated=!0;else{let g=_e._makeFromCoords(jl,o,r,t);n.holes&&(g.holes=n.holes.map(b=>_e._makeFromCoords(l4,b,r,t))),c.push(g)}n.vertexes=o;let u;n.geometry.bevel?u={bevelEnabled:!0,depth:n.geometry.scale.z*s,bevelThickness:n.geometry.bevel.thickness*n.geometry.scale.z*s,bevelSize:n.geometry.bevel.size*s,bevelSegments:n.geometry.bevel.segments||1}:u={bevelEnabled:!1,depth:n.geometry.scale.z*s},this.polygonHeight=n.geometry.scale.z*Math.max(this.mapClass.width,this.mapClass.height)/1e3;let h=Array.isArray(n.textures)&&n.textures.filter(g=>g.image&&Object.keys(g.image).length).length,m=_e._normalizeColor(n.material.color),f=(a=n.material.opacity)!=null?a:1;if(c.length>1?this.geometry=qh(c.map(g=>new $a(g,u)),!1):this.geometry=new $a(c[0],u),h&&Array.isArray(n.textures)){let g=n.textures.find(P=>P.name==="front"),b=n.textures.find(P=>P.name==="side"),M=b&&b.useFrontFaceImage,x=g&&g.image&&(g.image.url||g.image.original),T=b&&b.image&&(b.image.url||b.image.original);p7(this.geometry,n.textures,r);let E,S;try{x&&(E=await this.assetManager.loadImage(x),E.mapping=t4,E.wrapS=fi,E.wrapT=fi,E.anisotropy=16),!M&&T?(S=await this.assetManager.loadImage(T),S.mapping=t4,S.wrapS=fi,S.wrapT=fi,S.anisotropy=16):E&&(S=E)}catch{F.error("Error loading texture",x||T,"for polygon",n==null?void 0:n.id)}let _={color:m,transparent:!0,opacity:f,side:f<1?Yn:ed};S===E?this.material=new Ar({..._,map:E}):this.material=[new Ar({..._,map:E}),new Ar({..._,map:S})]}else this.material=_e._getMaterial(n.material.color,f,n.map);this.mesh=new qe(this.geometry,this.mode==="MULTI_GEOMETRY"?this.material:_e.hoverMeshMaterial),this.mesh.name=n.id,Array.isArray(this.mesh.material)||(this.mesh.material.needsUpdate=!0),this.mode==="MULTI_GEOMETRY"?(this.mesh.translateZ(n.geometry.position.z*s),this.container.add(this.mesh)):(this.geometry.translate(0,0,n.geometry.position.z*s),this.mesh.renderOrder=1)}return this.imageVisible||this.labelVisible?(this.imageVisible&&this._addImage(n,r),this.labelVisible&&this._addLabel(n,r),this):this}_addLabel(t,n){var u;if(((u=t==null?void 0:t.label)==null?void 0:u.text)==null)return;let r=Math.max(n.width,n.height)/1e3,a=_e.getWeightedCenter(t.vertexes),o=t.label.position,s=t.label.rotation.z,c=t.label.text.split("\n");fS.getFont(t.label.fontFamily).then(h=>{if(!t.label)return;let m={font:h,size:t.label.fontSize*r,height:_e.overlayHeight,bevelEnabled:!1,curveSegments:4,align:t.label.align||"left"},f=0,g=c.reverse().map((j,G)=>(j.length>c[f].length&&(f=G),new l2(j,m))),b=g[f],M=new qe(b),T=new Ye().setFromObject(M).getSize(new z).x,E=_e._getMaterial(t.label.color,void 0,t.map),S=0,_=c.map((j,G)=>{let Q=g[G],X=new qe(Q,E),$=new Ye().setFromObject(X).getSize(new z),ue;return m.align==="left"?ue=0:m.align==="right"?ue=T-$.x:ue=(T-$.x)/2,X.position.set(ue,S,0),X.geometry.translate(ue,S,0),S+=m.size*1.25,X.geometry}),P=qh(_),q=new qe(P,E);P.computeBoundingBox();let D=P.boundingBox,U=D.max.x-D.min.x,R=D.max.y-D.min.y,B=t.geometry.position.z+t.geometry.scale.z;q.translateX(a.x-n.width/2+o.x-U/2),q.translateY(-a.y+n.height/2+o.y-R/2),q.rotation.set(0,0,s*Math.PI/180),q.translateZ((_e.overlayHeight+B)*r),this.labelMesh=q,this.container.add(q)})}_addImage(t,n){var s,c;if((t==null?void 0:t.image)==null)return;let r=t.image.url||t.image.original;r instanceof Blob&&(r=URL.createObjectURL(r));let a,o=new Ar({transparent:!0,depthWrite:!1,side:Yn});o.userData={isPolygonImage:!0,originalOpacity:(s=o.opacity)!=null?s:1,originalTransparency:(c=o.transparent)!=null?c:!1},this.imageMesh.material=o,this.imageMesh.renderOrder=Lc.POLYGON_IMAGE,this.imageMesh.name=t.id+"_image",this.container.add(this.imageMesh),this.imageMesh.visible=!1,_e.imagesLoadingInProgress.has(r)?a=_e.imagesLoadingInProgress.get(r):(a=this.assetManager.loadImage(r).then(u=>(u.anisotropy=16,[u])),_e.imagesLoadingInProgress.set(r,a)),a.then(([u])=>{if(t.image==null)return;o.map=u,o.needsUpdate=!0;let h=this.getBoundingBox(),m=Math.max(n.width,n.height)/1e3,f=t.vertexes,g;t.image._isAbsolutelyPositioned?g={x:t.image.position.x,y:t.image.position.y}:t.image.fitToBounds?g=_e.getBoundingCentre(f):g=_e.getWeightedCenter(f);let b=t.image.fitToBounds||t.image._isAbsolutelyPositioned?0:t.image.position.x,M=t.image.fitToBounds||t.image._isAbsolutelyPositioned?0:t.image.position.y,x=t.geometry.position.z+t.geometry.scale.z;t.image.position&&(this.imageMesh.position.x=g.x-n.width/2+b,this.imageMesh.position.y=-g.y+n.height/2+M,this.imageMesh.translateZ((x+t.image.position.z)*m)),t.image.rotation&&this.imageMesh.rotation.set(t.image.rotation.x*Math.PI/180,t.image.rotation.y*Math.PI/180,t.image.rotation.z*Math.PI/180);let T=u.image.width,E=u.image.height;typeof r=="string"&&URL!=null&&typeof URL.revokeObjectURL=="function"&&URL.revokeObjectURL(r);let S={x:t.image.viewBox.width,y:t.image.viewBox.height},_;t.image.useLocalScaling===!1?_=m:_=Math.min(h.max.x-h.min.x,h.max.y-h.min.y)/Math.max(S.x,S.y),t.image.fitToBounds?this.imageMesh.scale.set(h.max.x-h.min.x,h.max.y-h.min.y,1):t.image.scale&&this.imageMesh.scale.set(t.image.scale.x*_*t.image.viewBox.width,t.image.scale.y*_*t.image.viewBox.height,1),this.imageMesh.translateZ(_e.overlayHeight*m),u.repeat=new he(t.image.viewBox.width/T,t.image.viewBox.height/E),u.offset=new he(0,(u.image.height-t.image.viewBox.height)/u.image.height),this.publish("texture-loaded",u)}).catch(()=>{F.error("Error loading image",r,"for polygon",t==null?void 0:t.id)})}static _normalizeColor(t){let n=t.replace(/#/,"");return n.length===3&&(n="".concat(n[0]).concat(n[0]).concat(n[1]).concat(n[1]).concat(n[2]).concat(n[2])),parseInt(n,16)}static _getMaterial(t,n,r){let a=_e._normalizeColor(t),o,s=n<1?a+"_"+n:a;if(_e.materials[r]=_e.materials[r]||{},_e.materials[r][s])o=_e.materials[r][s];else{let c={color:a,side:n<1?Yn:ed};n<1&&(c.transparent=!0,c.opacity=n),_e.materials[r][s]=new Ar(c),o=_e.materials[r][s]}return o}static _clip(t,n){n/=2;let r=_e.scale,a=t.map(o=>({X:o.x*r,Y:o.y*r}));for(let o=8;o!==0;o--){let s=new Pa.ClipperOffset;s.AddPath(a,Pa.JoinType.jtMiter,Pa.EndType.etClosedPolygon);let c=new Pa.Paths;try{if(s.Execute(c,n*r),c.length)return c[0].map(h=>({x:h.X/r,y:h.Y/r}));n/=2}catch{n/=2}}return a}};l(_e,"Element"),p(_e,"defaultMaterial"),p(_e,"hoverMeshMaterial",new Ar({color:"#333"})),p(_e,"materials",{}),p(_e,"defaultExtrudeSettings",{depth:10,bevelEnabled:!1}),p(_e,"scale",100),p(_e,"overlayHeight",.15),p(_e,"imagesLoadingInProgress",new Map);var f7=_e,Vs=f7;y();y();var f2=Math.PI*2,sp=Math.PI/2,m7=Math.PI*1.5;var vH=l(function(i){let e=i.image,t=i.rotation||0,n=e.position.clone(),r=e.rotation.z,a=t,o=l(function(){let s=e.geometry;s.boundingBox||s.computeBoundingBox(),t=(t+Math.PI)%f2,e.rotation.z=e.rotation.z+Math.PI,e.translateX(-2*(s.boundingBox.min.x+(s.boundingBox.max.x-s.boundingBox.min.x)/2)),e.translateY(-2*(s.boundingBox.min.y+(s.boundingBox.max.y-s.boundingBox.min.y)/2))},"flip");this.flipIfNeeded=function(s){let c=(t-s+f2)%f2;(c>sp&&c<m7||c<-sp&&c>-m7)&&o()},this.reset=function(){e.position.x=n.x,e.position.y=n.y,e.rotation.z=r,t=a}},"FlippableImage"),ub=vH;y();y();function m2(i,e){var q,D;let t=((q=e.referenceMap)==null?void 0:q.scale)||1,n=i.scale||1,r=((D=e.referenceMap)==null?void 0:D.getNorth())||0,a=i.getNorth()||0,{x:o,y:s}=i.georeference[0].target,{x:c,y:u}=i.georeference[2].target,h=new Ze(o,s),m=new Ze(c,u),{lat:f,lon:g}=h.midpointTo(m),b=e.referenceMap.createCoordinate(f,g),{x:M,y:x}=e.convertTo3DMapPosition(b),T=[M,x,0],E=n/t,S=a-r;return{position:T,scale:[E,E,E],rotation:[0,0,S]}}l(m2,"determineMapPositionAndRotation");var y7=class y7{constructor(e,t,n,r,a,o){p(this,"core");p(this,"layerGroup");p(this,"mapGroup");p(this,"defaultMap");p(this,"activeMap");p(this,"visibleMap");p(this,"startingMap");p(this,"baseMap");p(this,"venue");p(this,"object",new Zt);p(this,"mapObjects",[]);p(this,"loading",!1);p(this,"activeMapOpacity",-1);p(this,"buildingOpacity",-1);p(this,"animating",!1);p(this,"processedMapObjects",new Set);p(this,"state","out-of-view");p(this,"determineMapPositionAndRotation",m2);this.core=e,this.venue=o,this.mapGroup=t,this.layerGroup=n,this.startingMap=r,this.defaultMap=r,this.activeMap=r,this.baseMap=a,this.mapObjects=t.maps.map(s=>e.mapObjects.get(s.id)),n.mergedObjectsGroup.children.forEach(s=>{s.userData.building=this}),this.core.on(7,()=>{this.determineMapVisibility()})}determineMapVisibility(){for(let e of this.mapObjects)this.core.currentMap===e.mapClass.id?e.visible||e.onVisible():e.visible&&e.onInvisible()}setActiveMapOpacity(e,t){var n,r;if(this.activeMapOpacity!==e){if(typeof t=="number"){this.tweenActiveMapOpacity(e,t);return}this.animating||(this.activeMapOpacity=e,this.visibleMap!=null&&((r=(n=this.visibleMapObject)==null?void 0:n.layerGroups.get("default"))==null||r.setOpacity(e)))}}tweenActiveMapOpacity(e,t=300){this.animating=!0,Nn({from:{opacity:this.activeMapOpacity},to:{opacity:e},duration:t,onUpdate:({opacity:n})=>{var r,a;this.activeMapOpacity=n,this.visibleMap!=null&&((a=(r=this.visibleMapObject)==null?void 0:r.layerGroups.get("default"))==null||a.setOpacity(n)),this.core.tryRendering()},onComplete:()=>{this.animating=!1}}).start(this.core)}setBuildingOutlineOpacity(e){this.buildingOpacity!==e&&(this.buildingOpacity=e,this.layerGroup.setOpacity(e))}get activeMapObject(){return this.activeMap?this.core.mapObjects.get(this.activeMap.id):void 0}get visibleMapObject(){return this.visibleMap?this.core.mapObjects.get(this.visibleMap.id):void 0}get defaultMapObject(){return this.core.mapObjects.get(this.defaultMap.id)}get baseMapObject(){return this.core.mapObjects.get(this.baseMap.id)}onInView(){this.state!=="in-view"&&(this.visibleMap!==this.activeMap&&(this.activeMap==null?this.setMap(this.defaultMap):this.setMap(this.activeMap)),this.state="in-view")}onOutOfView(){this.state!=="out-of-view"&&(this.visibleMap!==this.defaultMap&&(this.activeMap=this.defaultMap),this.state="out-of-view")}async setMap(e){var n;this.loading=!0,this.visibleMap=void 0;let t=this.core.mapObjects.get(e.id);try{if(await t.load(),!this.processedMapObjects.has(t)){let{position:r,rotation:a,scale:o}=this.determineMapPositionAndRotation(e,this.core);t.object.position.set(...r),t.object.rotation.set(...a),t.object.scale.set(...o),t.box=new Ye().setFromObject(t.object),t.object.name=e.id,this.processedMapObjects.add(t)}}catch(r){F.error(r)}this.object.children.length>0&&this.object.children.forEach(r=>{this.object.remove(r)}),this.activeMapOpacity!==-1&&((n=t.layerGroups.get("default"))==null||n.setOpacity(this.activeMapOpacity)),t.layerGroups.get("default").isVisible=!0,this.object.add(t.object),this.visibleMap=e,this.activeMap=e,this.determineMapVisibility(),this.loading=!1,this.core.tryRendering()}};l(y7,"Building");var g7=y7,v7=g7;y();var yH=15.8,mS=17,gS=new wm,bH=!1,T7=class T7{constructor(e,t){p(this,"core");p(this,"buildings",[]);p(this,"object",new Zt);p(this,"panBounds");p(this,"loaded",!1);p(this,"baseMapObject");p(this,"raycasters");p(this,"baseMap");p(this,"options");p(this,"resize",l(()=>{this.buildRaycasters()},"resize"));p(this,"currentMap");p(this,"buildingVisiblityMap",new Map);p(this,"buildingsByPolygonId",new Map);var n;this.core=e,this.baseMap=t,this.baseMapObject=this.core.mapObjects.get(this.baseMap.id),this.currentMap=this.baseMap,this.options={indoorsFullyVisibleZoomLevel:mS,buildingFullyVisibleZoomLevel:yH,setMapAtZoomLevel:mS,preloadDefaultMaps:!1,baseMap:this.baseMap,keepLayersActiveOnBaseMap:[],...(n=this.core.options)==null?void 0:n.dynamicFocus},this.core.on(7,()=>{this.core.currentMap===this.baseMap.id?this.baseMapObject.onVisible():this.baseMapObject.onInvisible()}),this.buildRaycasters()}buildRaycasters(){let e=new he(this.core.canvasWidth/2,this.core.canvasHeight/2),t=new he(e.x/1.2,e.y/1.2),n=new he(e.x+(e.x-t.x),t.y),r=new he(t.x,e.y+(e.y-t.y)),a=new he(n.x,r.y);this.raycasters=[e,t,n,r,a].map((o,s)=>{if(bH){let f=document.createElement("div");f.style.position="absolute",f.style.top=o.y+"px",f.style.left=o.x+"px",f.style.width="10px",f.style.height="10px",f.style.backgroundColor="red",document.body.append(f)}let c=o.x/this.core.canvasWidth*2-1,u=-(o.y/this.core.canvasHeight)*2+1,h=new z(c,u,0),m=new Xn;return m.setFromCamera(h,this.core.cameraObject),[m,h,s===0?10:1]})}updateRaycasters(){for(let[e,t]of this.raycasters)e.setFromCamera(t,this.core.cameraObject)}expandToBaseMapBounds(){this.baseMapObject.object.updateMatrixWorld();let e=this.baseMapObject.getMapScale()*this.baseMapObject.object.scale.x,t=s2(this.baseMapObject,this.core.controls.panBounds),n=this.core.loadOptions&&this.core.loadOptions.zoomOverrides&&this.core.loadOptions.zoomOverrides.zoomMultiplier||o2;Bg(this.core.controls,"zoomFactor",e/n),t.center=new z,this.panBounds=t,this.core.controls.panBounds=t;let{min:r,max:a}=t,o=[new z(r.x,r.y,r.z),new z(r.x,a.y,r.z),new z(a.x,r.y,r.z),new z(a.x,a.y,r.z),new z(r.x,r.y,a.z),new z(r.x,a.y,a.z),new z(a.x,r.y,a.z),new z(a.x,a.y,a.z)],{zoom:s}=this.core.getCameraFrameForPoints(o,1,1,this.core.cachedPadding,!1);this.core.controls.setMulti(t.center,s,Xs,a2)}async load(){this.core.publish(6),await this.baseMapObject.load(),this.object=this.baseMapObject.object;let{position:e,rotation:t,scale:n}=m2(this.baseMap,this.core),r=this.baseMapObject.object;r.position.set(...e),r.rotation.set(...t),r.scale.set(...n),this.baseMapObject.box=new Ye().setFromObject(this.baseMapObject.object),this.baseMapObject.object.name=this.baseMap.id;let a=Array.from(this.baseMapObject.layerGroups).filter(([o])=>o.includes("building"));this.buildings=await this.createBuildings(a),this.buildings.forEach(o=>{this.object.add(o.object)}),this.expandToBaseMapBounds(),this.baseMapObject.onVisible(),this.core.publish(7),this.loaded=!0}setMap(e,t=!1){if(this.currentMap===e)return Promise.resolve();if(this.core.publish(6),e===this.baseMap)return this.currentMap=this.baseMap,t&&(this.core.setMapReason="dynamic-focus-user-interaction"),this.core.publish(7),Promise.resolve();let n=e.mapGroup;return this.buildings.find(a=>a.mapGroup.id===n.id).setMap(e).then(()=>{this.currentMap=e,t&&(this.core.setMapReason="dynamic-focus-user-interaction"),this.core.publish(7)})}get buildingsInView(){return Array.from(this.buildingVisiblityMap.entries()).filter(([e,t])=>t).map(([e,t])=>e)}determineBuildingsInView(){if(this.core.controls.getZoomLevel()<this.options.buildingFullyVisibleZoomLevel)for(let n of this.buildings)this.buildingVisiblityMap.set(n,!1);let t=this.core.cameraObject;gS.setFromProjectionMatrix(new tt().multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse));for(let n of this.buildings)for(let r of n.layerGroup.mergedObjectsGroup.children)gS.intersectsObject(r)?this.buildingVisiblityMap.set(n,!0):this.buildingVisiblityMap.set(n,!1);return this.buildingsInView}determineCurrentMap(){if(this.core.controls.getZoomLevel()<this.options.setMapAtZoomLevel)return this.baseMap;this.updateRaycasters();let t=new Map,n=Array.from(this.buildingVisiblityMap.keys()).flatMap(o=>o.layerGroup.mergedObjectsGroup.children),r=-1/0,a=null;for(let[o,s,c]of this.raycasters)o.intersectObjects(n).forEach(u=>{let h=u.object.userData.building;t.has(h)||t.set(h,0);let m=t.get(h)+c;t.set(h,m),m>r&&(a=h,r=m)});return a!=null?a.activeMap:this.currentMap}setOpacities(e=[],t){let n=this.core.controls.getZoomLevel();if(n<this.options.buildingFullyVisibleZoomLevel){this.buildings.forEach(s=>{s.onOutOfView(),s.setActiveMapOpacity(0),s.setBuildingOutlineOpacity(1)});return}let r=xa(n,this.options.buildingFullyVisibleZoomLevel,this.options.indoorsFullyVisibleZoomLevel,0,1,Nh),a=xa(r,0,1,0,.6,Nh),o=xa(r,0,1,1,0,Nh);this.buildings.forEach(s=>{e.includes(s)?(s.onInView(),s.setBuildingOutlineOpacity(o),s.visibleMap===t&&r>0?s.setActiveMapOpacity(r,300):s.setActiveMapOpacity(a,300)):(s.onOutOfView(),s.setActiveMapOpacity(0),s.setBuildingOutlineOpacity(1))})}async createBuildings(e){let t=[];return e.forEach(([n,r])=>{let a=this.core.venue.getCollectionItemById("maps",r.userData.toMapId),o=this.core.venue.getCollectionItemById("mapGroups",r.userData.mapGroupId),s=new v7(this.core,o,r,a,this.baseMap,this.core.venue);t.push(s),this.buildingVisiblityMap.set(s,!1)}),this.options.preloadDefaultMaps&&await Promise.all(t.map(n=>n.setMap(n.startingMap))),t}};l(T7,"DynamicFocusScene");var b7=T7,K6=b7;y();var jr=et(Vr());var vS="attribute float pathDistance;\nattribute vec3 pathNormal;\nattribute vec3 pathTangent;\n\nuniform vec2 uvScale;\nuniform float vertexes;\nuniform float complete;\nuniform float nearRadius;\nuniform float farRadius;\nuniform float nearZoom;\nuniform float farZoom;\nuniform float pulse;\nuniform float pulseLength;\nuniform bool pathIsVertical;\nuniform bool displayArrowsOnPath;\nuniform vec2 cameraParameters;\nuniform float flattenFactor;\n\nvarying float zoomLevel;\nvarying float radius;\nvarying vec2 fragTexcoord;\nvarying float fragTopTextureU;\nvarying float fragPathDistance;\n\n// Map the x value from the range [xMin, xMax] to the range [yMin, yMax] using\n// linear interpolation/extrapolation.\n//\n// This performs a pure linear mapping `y = mx + b` where\n// `m = (yMax - yMin) / (xMax - xMin)`,\n// `b = -xMin * (yMax - yMin) / (xMax - xMin) + yMin`.\nfloat remap(float x, float xMin, float xMax, float yMin, float yMax) {\n return (x - xMin) / (xMax - xMin) * (yMax - yMin) + yMin;\n}\n\n// Map the x value from [xMin, xMax] to the range [yMin, yMax] using linear\n// interpolation, clamping result values outside [yMin, yMax].\nfloat clampRemap(float x, float xMin, float xMax, float yMin, float yMax) {\n return clamp(remap(x, xMin, xMax, yMin, yMax), yMin, yMax);\n}\n\nvoid main() {\n fragPathDistance = pathDistance;\n\n // We can get an origin point for the cross-section of the path by\n // subtracting the surface normal times the radius, since the surface normal\n // points strictly away from the centre.\n vec3 origin = position - nearRadius * normal;\n\n // Inflate the path along its surface normal to increase its radius from\n // `nearRadius` to `farRadius` when the camera is at `farZoom`.\n vec3 adjustedPosition = position;\n zoomLevel = clampRemap(cameraParameters.x, nearZoom, farZoom, 0.0, 1.0);\n adjustedPosition += normal * (farRadius - nearRadius) * zoomLevel;\n\n // Determine how far the path extends \"up\" or \"down\" in the direction of the\n // path normal.\n float height = dot(adjustedPosition - origin, pathNormal);\n\n // Flatten the bottom half of the path entirely so that it's flat\n // against the floor. This makes the path look nicer when it's\n // semitransparent behind opaque geometry, so you don't see it\n // peeking through.\n float desiredHeight = max(height, 0.0);\n\n desiredHeight = desiredHeight * flattenFactor;\n\n float flattenMagnitude = height - desiredHeight;\n adjustedPosition = adjustedPosition - pathNormal * flattenMagnitude;\n\n // Transform the vertices into NDC.\n vec4 mvPosition = modelViewMatrix * vec4(adjustedPosition, 1.0);\n gl_Position = projectionMatrix * mvPosition;\n\n fragTexcoord = uv;\n\n // Compute a texture coordinate for mapping the arrow texture to the path.\n // We don't want to use the u-value that Three.js provides, because the\n // path may end up twisting arbitrarily -- but we want the arrow texture to\n // always be on the top of the path.\n vec3 bitangent = cross(normal, pathTangent);\n fragTopTextureU = -dot(bitangent, pathNormal) * 0.5 + 0.5;\n\n radius = mix(nearRadius, farRadius, zoomLevel);\n}\n";var yS='#define ARROW_FADING_POINT 0.15\n\nuniform float complete;\nuniform float nearRadius;\nuniform float farRadius;\nuniform vec2 resolution;\nuniform vec2 cameraParameters;\nuniform vec3 color;\nuniform float pathLength;\nuniform bool showPulse;\nuniform vec3 pulseColor;\nuniform float pulse;\nuniform float pulseLength;\nuniform bool pathIsVertical;\nuniform bool displayArrowsOnPath;\nuniform float arrowAnimationTimer;\nuniform sampler2D arrowTexture;\n\nvarying float zoomLevel;\nvarying float radius;\nvarying vec2 fragTexcoord;\nvarying float fragTopTextureU;\nvarying float fragPathDistance;\n\n// How long the arrow should be, as a factor of `pathRadius`. Since we\'ve\n// mostly flattened the top of the path, values near 2.0 (the diameter)\n// will probably look best.\nconst float arrowLength = 2.0;\n\n// How much of a relative margin the arrow texture should have inside the\n// area laid out for it. Useful to pull the arrow away from the edges of the\n// path, which slope down.\nconst float arrowMargin = 0.1;\n\n// How many arrow-lengths of space should be between arrows on a short path.\nconst float arrowSpacingOnShortPath = 6.0;\n\n// How many arrow-lengths of space should be between arrows on a long path.\nconst float arrowSpacingOnLongPath = 7.5;\n\n// How long a path must be to be considered "long", as a factor of\n// the path radius.\nconst float longPathLength = 200.;\n\n// How long a path must be to be considered "short", as a factor of the\n// path radius.\nconst float shortPathLength = 75.;\n\n// How much of the path\'s length the fade-in should comprise when going from\n// zero opacity to full opacity.\nconst float completeLength = 0.1;\n\n// Map the x value from the range [xMin, xMax] to the range [yMin, yMax] using\n// linear interpolation/extrapolation.\n//\n// This performs a pure linear mapping `y = mx + b` where\n// `m = (yMax - yMin) / (xMax - xMin)`,\n// `b = -xMin * (yMax - yMin) / (xMax - xMin) + yMin`.\nfloat remap(float x, float xMin, float xMax, float yMin, float yMax) {\n return (x - xMin) / (xMax - xMin) * (yMax - yMin) + yMin;\n}\n\n// Map the x value from [xMin, xMax] to the range [yMin, yMax] using linear\n// interpolation, clamping result values outside [yMin, yMax].\nfloat clampRemap(float x, float xMin, float xMax, float yMin, float yMax) {\n return clamp(remap(x, xMin, xMax, yMin, yMax), yMin, yMax);\n}\n\nvoid main(void) {\n // Compute the opacity of the path based on the distance from the current\n // fragment to the `complete` value as it varies from 0.0 to 1.0.\n // Fragments that are at the `complete` value or past it will be fully\n // transparent, while fragments that are at `complete - completeLength`\n // or before it will be fully opaque. However, we adjust the `complete`\n // value here so that it overshoots by one full `completeLength`, so that\n // the entire path will be opaque when the `complete` value is at 1.0.\n float completeLocation = complete * (1.0 + completeLength);\n float completeAmount = clampRemap(\n fragPathDistance,\n completeLocation - completeLength,\n completeLocation,\n 0.0,\n 1.0\n );\n float opacity = 1.0 - smoothstep(0.0, 1.0, completeAmount);\n\n // 2020/01/09 Terence Dickson\n // When we render the background and overlay for the mapbox outdoor context\n // behind everything else in single-buffer rendering, the fact that the path\n // writes to the depth buffer means that the background and overlay will not\n // be drawn behind the path even when the path is still fading in. The effect\n // is subtle and is only visible in single-buffer rendering so this quick fix\n // prevents writes to the depth buffer for zero opacity fragments, which gets\n // rid of the most visually-offensive ghosting.\n if (opacity <= 0.0) {\n discard;\n }\n\n // Push in the texture coordinates so that they ramp up\n // at `arrowMargin` instead of at zero; this remapping looks somewhat\n // like this:\n // 1 ^ ___\n // | /\n // | /\n // | /\n // | /\n // |___/\n // 0 +---------->\n // 0 ^ 1\n // arrowMargin\n // Making the arrows narrower on the path.\n float u = fragTopTextureU;\n u = clamp(\n u * (1. / (1. - arrowMargin * 2.)) - (1. / (1. - arrowMargin * 2.) - 1.) / 2.,\n 0.0,\n 1.0\n );\n\n float arrowSpacing = clampRemap(\n pathLength,\n shortPathLength * radius,\n longPathLength * radius,\n arrowSpacingOnShortPath,\n arrowSpacingOnLongPath\n );\n\n // Reduce the spacing between arrows when the camera zooms out, as increasing\n // the path radius will increase the arrow size and thus be able to fit\n // fewer arrows on in total, and this secondary movement of the arrows\n // "zooming off" the end of the path is unpleasant\n float expandAmount = mix(1.0, farRadius / nearRadius, zoomLevel);\n float effectiveArrowSpacing =\n arrowSpacing * 1.0 / expandAmount +\n arrowMargin * 2.0;\n\n float effectiveArrowLength = arrowLength * radius * (1. - arrowMargin * 2.0);\n\n // Adjust the slope of the vertical texture coordinate so that it goes\n // from 0 to 1 along the length of the arrow plus the spacing between\n // arrows, and adjust its x-intercept so that one arrow moves to the\n // exact position of the next arrow as `arrowAnimationTimer` goes\n // from 0 to 1\n float v = (\n fragTexcoord.x * (pathLength / effectiveArrowLength)\n - arrowAnimationTimer * (1. + effectiveArrowSpacing)\n );\n\n // Compute a "looping sawtooth" wave for determining the vertical texture\n // coordinates of the arrow texture, roughly as follows:\n // 3 ^ /\n // | ___/\n // 2 | /\n // | ___/\n // 1 | /\n // |___/\n // 0 +--------------->\n // 0 ^ ^\n // ^ |_|\n // | effectiveArrowLength\n // |___|\n // effectiveArrowSpacing\n //\n // This is effectively equivalent to this sort of sawtooth wave:\n // ^\n // 1 | / / /\n // |___/ ___/ ___/\n // 0 +--------------->\n //\n // Causing the image of the arrow to repeat, with dead space (the bottom\n // edge of the texture stretched out) between the arrows at the provided\n // spacing. The reason why the "looping" design is preferred is because\n // it takes advantage of WebGL\'s `GL_REPEAT` texture wrapping behaviour\n // to avoid the discontinuity that can end up causing visual artifacts.\n if (mod(v, (1. + effectiveArrowSpacing)) < 1.) {\n v = v - effectiveArrowSpacing * floor(v / (1. + effectiveArrowSpacing));\n } else {\n v = ceil(v / (1. + effectiveArrowSpacing));\n }\n\n // Use the r-component of the texture to determine whether the arrow covers\n // this fragment or not\n vec2 sampleTexcoord = vec2(u, v);\n float arrowAmount = 0.0;\n vec3 secondColor = pulseColor;\n\n if (displayArrowsOnPath) {\n arrowAmount = texture2D(arrowTexture, sampleTexcoord).r;\n float delta = 1.0 - abs(fragPathDistance * 2.0 - 1.0);\n secondColor = mix(color, pulseColor, 1.0 - smoothstep(ARROW_FADING_POINT, 0.0, delta));\n }\n\n if (showPulse) {\n // Add the pulse color to the path by determining how far the current fragment\n // is from `pulse`\n float pulseLocation = remap(\n pulse,\n 0.0,\n 1.0,\n -pulseLength,\n 1.0 + pulseLength\n );\n float pulseDistance = smoothstep(\n 0.0,\n pulseLength,\n abs(fragPathDistance - pulseLocation)\n );\n\n // Blend the pulse color to the path based on how close this fragment is to\n // the `pulse` value and whether it\'s covered by an arrow -- but if it\'s\n // covered by *both*, then we go back to using the regular path color\n // (making arrows look like "holes" when they\'re overlapping the pulse.)\n float pulseLevel = abs(1.0 - pulseDistance - arrowAmount);\n\n gl_FragColor = vec4(mix(color, secondColor, pulseLevel), opacity);\n } else if (displayArrowsOnPath) {\n gl_FragColor = vec4(mix(color, pulseColor, arrowAmount), opacity);\n } else {\n gl_FragColor = vec4(color, opacity);\n }\n #include <encodings_fragment>\n}';y();var bS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M25.86,2.59A10.12,10.12,0,0,0,22.4.65a14,14,0,0,0-8.85.14A10.33,10.33,0,0,0,10,3.1,9.78,9.78,0,0,0,7.72,6.68,10,10,0,0,0,7,11h6a6.3,6.3,0,0,1,.18-2.33,5.57,5.57,0,0,1,1-1.77,4.05,4.05,0,0,1,1.5-1.13,6.87,6.87,0,0,1,4.5-.08,4.4,4.4,0,0,1,1.6.88,3.37,3.37,0,0,1,.93,1.22A3.84,3.84,0,0,1,23,9.29a3.15,3.15,0,0,1-.38,1.5,10.54,10.54,0,0,1-1.26,1.72,18.9,18.9,0,0,1-1.78,1.8c-.71.66-1.4,1.34-2,2C16.31,17.55,14,19,14,21v6h6V23c0-.63,0-1,1-2s1.24-1.3,2-2,1.69-1.66,2.5-2.52a14,14,0,0,0,2.28-2.81,7.51,7.51,0,0,0,1.08-4.05,9.68,9.68,0,0,0-.78-3.91A8.34,8.34,0,0,0,25.86,2.59Z"/><circle cx="17" cy="33" r="3"/></svg>';var xS="data:image/png;base64,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";var TS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><polygon points="36 14.99 28 7.99 28 12.99 17 12.99 17 16.99 28 16.99 28 21.99 36 14.99"/><path d="M24,29H15V7L6,2H24v9h2V0H0V29l14.94,7L15,31H26V19H24Z"/></svg>';var MS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M12.85,18.24H9.25a1.27,1.27,0,0,0-1.2,1.2v4.8c0,.43.65,1.07,1.08,1.18v5.52c0,1.09,1.2,1.09,1.2,0v-5.5h1.44v5.5c0,1.09,1.2,1.09,1.2,0V25.42c.43-.11,1.08-.75,1.08-1.18v-4.8A1.26,1.26,0,0,0,12.85,18.24Z"/><circle cx="11.05" cy="15.85" r="1.5"/><path d="M26.82,18.24h-3.6a1.26,1.26,0,0,0-1.2,1.2v4.8c0,.43.65,1.07,1.08,1.18v5.52c0,1.09,1.2,1.09,1.2,0v-5.5h1.44v5.5c0,1.09,1.2,1.09,1.2,0V25.42c.43-.11,1.08-.75,1.08-1.18v-4.8A1.27,1.27,0,0,0,26.82,18.24Z"/><circle cx="25.02" cy="15.85" r="1.5"/><path d="M19.79,18.24h-3.6a1.27,1.27,0,0,0-1.2,1.2v4.8c0,.43.66,1.07,1.08,1.18v5.52c0,1.09,1.2,1.09,1.2,0v-5.5h1.44v5.5c0,1.09,1.2,1.09,1.2,0V25.42A1.68,1.68,0,0,0,21,24.24v-4.8A1.26,1.26,0,0,0,19.79,18.24Z"/><path d="M18,17.35a1.5,1.5,0,1,0-1.5-1.5A1.51,1.51,0,0,0,18,17.35Z"/><path d="M28.79,10H7.27c-2.82,0-5.11,2-5.11,4.51V31.6c0,2.49,2.29,4.51,5.11,4.51H28.79c2.82,0,5.12-2,5.12-4.51V14.51C33.91,12,31.61,10,28.79,10Zm2.85,21.6a2.7,2.7,0,0,1-2.85,2.51H7.27A2.7,2.7,0,0,1,4.42,31.6V14.51A2.7,2.7,0,0,1,7.27,12H28.79a2.7,2.7,0,0,1,2.85,2.51Z"/><polygon points="27 4 26 3 24 5 24 0 22 0 22 5 20 3 19 4 23 8 27 4"/><polygon points="17 4 16 5 14 3 14 8 12 8 12 3 10 5 9 4 13 0 17 4"/></svg>';var ES='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M12.85,18.24H9.25a1.27,1.27,0,0,0-1.2,1.2v4.8c0,.43.65,1.07,1.08,1.18v5.52c0,1.09,1.2,1.09,1.2,0v-5.5h1.44v5.5c0,1.09,1.2,1.09,1.2,0V25.42c.43-.11,1.08-.75,1.08-1.18v-4.8A1.26,1.26,0,0,0,12.85,18.24Z"/><circle cx="11.05" cy="15.85" r="1.5"/><path d="M26.82,18.24h-3.6a1.26,1.26,0,0,0-1.2,1.2v4.8c0,.43.65,1.07,1.08,1.18v5.52c0,1.09,1.2,1.09,1.2,0v-5.5h1.44v5.5c0,1.09,1.2,1.09,1.2,0V25.42c.43-.11,1.08-.75,1.08-1.18v-4.8A1.27,1.27,0,0,0,26.82,18.24Z"/><circle cx="25.02" cy="15.85" r="1.5"/><path d="M19.79,18.24h-3.6a1.27,1.27,0,0,0-1.2,1.2v4.8c0,.43.66,1.07,1.08,1.18v5.52c0,1.09,1.2,1.09,1.2,0v-5.5h1.44v5.5c0,1.09,1.2,1.09,1.2,0V25.42A1.68,1.68,0,0,0,21,24.24v-4.8A1.26,1.26,0,0,0,19.79,18.24Z"/><path d="M18,17.35a1.5,1.5,0,1,0-1.5-1.5A1.51,1.51,0,0,0,18,17.35Z"/><path d="M28.79,10H7.27c-2.82,0-5.11,2-5.11,4.51V31.6c0,2.49,2.29,4.51,5.11,4.51H28.79c2.82,0,5.12-2,5.12-4.51V14.51C33.91,12,31.61,10,28.79,10Zm2.85,21.6a2.7,2.7,0,0,1-2.85,2.51H7.27A2.7,2.7,0,0,1,4.42,31.6V14.51A2.7,2.7,0,0,1,7.27,12H28.79a2.7,2.7,0,0,1,2.85,2.51Z"/><polygon points="22 4 21 5 19 3 19 8 17 8 17 3 15 5 14 4 18 0 22 4"/></svg>';var wS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M12.85,18.24H9.25a1.27,1.27,0,0,0-1.2,1.2v4.8c0,.43.65,1.07,1.08,1.18v5.52c0,1.09,1.2,1.09,1.2,0v-5.5h1.44v5.5c0,1.09,1.2,1.09,1.2,0V25.42c.43-.11,1.08-.75,1.08-1.18v-4.8A1.26,1.26,0,0,0,12.85,18.24Z"/><circle cx="11.05" cy="15.85" r="1.5"/><path d="M26.82,18.24h-3.6a1.26,1.26,0,0,0-1.2,1.2v4.8c0,.43.65,1.07,1.08,1.18v5.52c0,1.09,1.2,1.09,1.2,0v-5.5h1.44v5.5c0,1.09,1.2,1.09,1.2,0V25.42c.43-.11,1.08-.75,1.08-1.18v-4.8A1.27,1.27,0,0,0,26.82,18.24Z"/><circle cx="25.02" cy="15.85" r="1.5"/><path d="M19.79,18.24h-3.6a1.27,1.27,0,0,0-1.2,1.2v4.8c0,.43.66,1.07,1.08,1.18v5.52c0,1.09,1.2,1.09,1.2,0v-5.5h1.44v5.5c0,1.09,1.2,1.09,1.2,0V25.42A1.68,1.68,0,0,0,21,24.24v-4.8A1.26,1.26,0,0,0,19.79,18.24Z"/><path d="M18,17.35a1.5,1.5,0,1,0-1.5-1.5A1.51,1.51,0,0,0,18,17.35Z"/><path d="M28.79,10H7.27c-2.82,0-5.11,2-5.11,4.51V31.6c0,2.49,2.29,4.51,5.11,4.51H28.79c2.82,0,5.12-2,5.12-4.51V14.51C33.91,12,31.61,10,28.79,10Zm2.85,21.6a2.7,2.7,0,0,1-2.85,2.51H7.27A2.7,2.7,0,0,1,4.42,31.6V14.51A2.7,2.7,0,0,1,7.27,12H28.79a2.7,2.7,0,0,1,2.85,2.51Z"/><polygon points="22 4 21 3 19 5 19 0 17 0 17 5 15 3 14 4 18 8 22 4"/></svg>';var CS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><polygon points="4 16 18 0 31.99 16 4 16"/><polygon points="31.99 20 18 36 4 20 31.99 20"/></svg>';var AS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M18,8a3,3,0,1,0-3-3A3,3,0,0,0,18,8Z"/><path d="M33,10H27a3.65,3.65,0,0,0-3,1l-2.76,2.75V12.39a2.48,2.48,0,0,0-2.46-2.47H17.22a2.48,2.48,0,0,0-2.47,2.47v7.87L9,26a3.26,3.26,0,0,1-2,1H3c-2.28,0-3,1.79-3,3.93A2.76,2.76,0,0,0,3,34H9a3.77,3.77,0,0,0,3-1L27,18a3.29,3.29,0,0,1,2.49-1h3.26A3.43,3.43,0,0,0,36,13.44C36,12.08,35,10,33,10Zm0,5H29c-1.47,0-1.92-.08-3,1L11,31a3.15,3.15,0,0,1-2,1H3c-.82,0-1-.29-1-1.16S2.12,28.9,3,29H7a3.87,3.87,0,0,0,3-1L25,13a2.72,2.72,0,0,1,2-1h6c.68,0,1,1.05,1,1.44S34,15,33,15Z"/><polygon points="30.18 26.18 26 31 26 28 24 28 24 34 31 34 31 32 28 32 31.69 27.59 30.18 26.18"/></svg>';var PS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M18,8a3,3,0,1,0-3-3A3,3,0,0,0,18,8Z"/><path d="M33,10H27a3.65,3.65,0,0,0-3,1l-2.76,2.75V12.39a2.48,2.48,0,0,0-2.46-2.47H17.22a2.48,2.48,0,0,0-2.47,2.47v7.87L9,26a3.26,3.26,0,0,1-2,1H3c-2.28,0-3,1.79-3,3.93A2.76,2.76,0,0,0,3,34H9a3.77,3.77,0,0,0,3-1L27,18a3.29,3.29,0,0,1,2.49-1h3.26A3.43,3.43,0,0,0,36,13.44C36,12.08,35,10,33,10Zm0,5H29c-1.47,0-1.92-.08-3,1L11,31a3.15,3.15,0,0,1-2,1H3c-.82,0-1-.29-1-1.16S2.12,28.9,3,29H7a3.87,3.87,0,0,0,3-1L25,13a2.72,2.72,0,0,1,2-1h6c.68,0,1,1.05,1,1.44S34,15,33,15Z"/><polygon points="25.67 34 29.84 29.18 29.84 32.18 31.84 32.18 31.84 26.18 24.84 26.18 24.84 28.18 27.84 28.18 24.16 32.58 25.67 34"/></svg>';var SS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M36,34H0L36,2ZM12,30H32V12Z"/></svg>';var IS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M36,34H0L36,2ZM12,30H32V12Z"/><polygon points="18.18 4.18 14 9 14 6 12 6 12 12 19 12 19 10 16 10 19.69 5.59 18.18 4.18"/></svg>';var _S='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M36,34H0L36,2ZM12,30H32V12Z"/><polygon points="13.82 13.82 18 9 18 12 20 12 20 6 13 6 13 8 16 8 12.31 12.41 13.82 13.82"/></svg>';var OS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M10,0,26,2s-5.59,5.68-5.56,5.71C23.32,10.88,23.94,15.27,24,18V36H20V18c-.05-2.09-.54-5.32-2.47-7.53L12,16Z"/></svg>';var DS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M26,0,10,2s5.59,5.68,5.57,5.71C12.68,10.88,12.06,15.27,12,18V36h4V18c.06-2.09.54-5.32,2.47-7.53L24,16Z"/></svg>';var LS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><polygon points="35.99 2 30 2 25.99 2 25.99 6.59 25.99 8.84 24 8.84 19.99 8.84 19.99 13.43 19.99 15.67 13.99 15.67 13.99 15.69 13.99 20.27 13.99 22.52 12 22.52 7.99 22.52 7.99 27.12 7.99 29.36 0 29.36 0 33.95 7.99 33.95 11.99 33.95 12 33.95 12 27.12 13.99 27.12 18 27.12 18 22.52 18 20.27 19.99 20.27 24 20.27 24 15.67 24 13.43 25.99 13.43 30 13.43 30 8.84 30 6.59 35.99 6.59 35.99 2"/></svg>';var qS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><polygon points="30 2.03 25.99 2.03 25.99 6.63 25.99 8.87 24 8.87 19.99 8.87 19.99 13.47 19.99 15.71 13.99 15.71 13.99 15.73 13.99 20.31 13.99 22.57 12 22.57 7.99 22.57 7.99 27.16 7.99 29.4 0 29.4 0 34 7.99 34 11.99 34 12 34 12 27.16 13.99 27.16 18 27.16 18 22.57 18 20.31 19.99 20.31 24 20.31 24 15.71 24 13.47 25.99 13.47 30 13.47 30 8.87 30 6.63 35.99 6.63 35.99 2.03 30 2.03"/><polygon points="30.17 26.18 26 31 26 28 24 28 24 34 31 34 31 32 28 32 31.68 27.59 30.17 26.18"/></svg>';var RS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><polygon points="30 2.03 25.99 2.03 25.99 6.63 25.99 8.87 24 8.87 19.99 8.87 19.99 13.47 19.99 15.71 13.99 15.71 13.99 15.73 13.99 20.31 13.99 22.57 12 22.57 7.99 22.57 7.99 27.16 7.99 29.4 0 29.4 0 34 7.99 34 11.99 34 12 34 12 27.16 13.99 27.16 18 27.16 18 22.57 18 20.31 19.99 20.31 24 20.31 24 15.71 24 13.47 25.99 13.47 30 13.47 30 8.87 30 6.63 35.99 6.63 35.99 2.03 30 2.03"/><polygon points="24.83 33.82 29 29 29 32 31 32 31 26 24 26 24 28 27 28 23.32 32.41 24.83 33.82"/></svg>';var NS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M5,10,17,0V8a11,11,0,0,1,8.44,3.5c2.88,3.2,3.5,7.8,3.56,10.5V36H25V22c-.05-2.11-.54-5.61-2.53-7.82A7.1,7.1,0,0,0,17,12v8Z"/></svg>';var kS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M29,10,17,0V8a11,11,0,0,0-8.44,3.5C5.68,14.7,5.06,19.3,5,22V36H9V22c.06-2.11.54-5.61,2.53-7.82A7.1,7.1,0,0,1,17,12v8Z"/></svg>';var BS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M20,0c-5.38,0-9.79,5.34-10,12H2L12,24,22,12H14c.19-4.39,2.86-8,6-8s6,4.58,6,10V36h4V14C30,6.13,25.6,0,20,0Z"/></svg>';var FS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M21,3c-.44-.92-1-3-3-3s-2.63,2.16-3,3C15,3,2,29,2,33a2.65,2.65,0,0,0,3,3c2,0,6.1-2.2,9-4,2-1,3-2,4-2s2,1,4,2c0,0,7,4,9,4a2.65,2.65,0,0,0,3-3C34,29,21,3,21,3Z"/></svg>';var US='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M18,4A14,14,0,1,1,4,18,14,14,0,0,1,18,4m0-4A18,18,0,1,0,36,18,18,18,0,0,0,18,0Z"/><circle cx="18" cy="18" r="6"/></svg>';var VS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M18,0A13.83,13.83,0,0,0,4,14c0,4,1,9,7,12,2,1,6.15,8.67,7,10,3.38-5.44,5-9,7-10,6-3,7-8,7-12A13.83,13.83,0,0,0,18,0Zm0,19a5,5,0,1,1,5-5A5,5,0,0,1,18,19Z"/></svg>';var zS='<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><title>mappedin-icon</title><path d="M18,0A13.83,13.83,0,0,0,4,14c0,4,1,9,7,12,2,1,6.15,8.67,7,10,3.38-5.44,5-9,7-10,6-3,7-8,7-12A13.83,13.83,0,0,0,18,0Z"/></svg>';var jS='<?xml version="1.0" encoding="UTF-8"?>\n<svg width="25px" height="30px" viewBox="0 0 25 30" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <!-- Generator: Sketch 57.1 (83088) - https://sketch.com -->\n <title>Marker Pin</title>\n <desc>Created with Sketch.</desc>\n <defs>\n <path d="M5.5,15 C6.34615385,14.1176471 7.33333333,12.9411765 8.46153846,11.4705882 C10.1538462,9.26470588 11,7.18962511 11,5.73529412 C11,2.56777864 8.53756612,0 5.5,0 C2.46243388,0 0,2.56777864 0,5.73529412 C0,7.1924534 0.846153846,9.26470588 2.53846154,11.4705882 C3.66666667,12.9411765 4.65384615,14.1176471 5.5,15 Z" id="path-1"></path>\n <filter x="-104.5%" y="-63.3%" width="309.1%" height="259.8%" filterUnits="objectBoundingBox" id="filter-2">\n <feMorphology radius="2" operator="dilate" in="SourceAlpha" result="shadowSpreadOuter1"></feMorphology>\n <feOffset dx="0" dy="2" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>\n <feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>\n <feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>\n <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>\n </filter>\n </defs>\n <g id="CE-1261" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n <g id="Final-MVP-Markers" transform="translate(-204.000000, -523.000000)">\n <g id="Marker-Pin" transform="translate(211.000000, 528.000000)">\n <g id="Oval-Copy-25">\n <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>\n <path stroke="#FFFFFF" stroke-width="1.5" d="M4.95868222,15.5191099 C4.09118889,14.6145045 3.08708286,13.4178617 1.94340415,11.9271041 C0.219570966,9.68012899 -0.75,7.4435468 -0.75,5.73529412 C-0.75,2.16043095 2.04102866,-0.75 5.5,-0.75 C8.95897134,-0.75 11.75,2.16043095 11.75,5.73529412 C11.75,7.44173178 10.7794284,9.68143336 9.05659585,11.9271041 C7.91291714,13.4178617 6.90881111,14.6145045 6.04131778,15.5191099 L5.5,16.0835856 L4.95868222,15.5191099 Z" fill="#FFFFFF" fill-rule="evenodd"></path>\n </g>\n </g>\n </g>\n </g>\n</svg>\n';var GS='<?xml version="1.0" encoding="UTF-8"?>\n<svg width="23px" height="27px" viewBox="0 0 23 27" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <!-- Generator: Sketch 57.1 (83088) - https://sketch.com -->\n <title>Oval Copy 25</title>\n <desc>Created with Sketch.</desc>\n <defs>\n <path d="M5.5,15 C6.34615385,14.1176471 7.33333333,12.9411765 8.46153846,11.4705882 C10.1538462,9.26470588 11,7.18962511 11,5.73529412 C11,2.56777864 8.53756612,0 5.5,0 C2.46243388,0 0,2.56777864 0,5.73529412 C0,7.1924534 0.846153846,9.26470588 2.53846154,11.4705882 C3.66666667,12.9411765 4.65384615,14.1176471 5.5,15 Z" id="path-1"></path>\n <filter x="-90.9%" y="-53.3%" width="281.8%" height="236.1%" filterUnits="objectBoundingBox" id="filter-2">\n <feMorphology radius="0.5" operator="dilate" in="SourceAlpha" result="shadowSpreadOuter1"></feMorphology>\n <feOffset dx="0" dy="2" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>\n <feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>\n <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>\n </filter>\n </defs>\n <g id="CE-1261" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n <g id="Final-MVP-Markers" transform="translate(-205.000000, -524.000000)">\n <g id="Marker-Pin" transform="translate(211.000000, 528.000000)">\n <g id="Oval-Copy-25">\n <use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>\n <use fill="#000000" fill-rule="evenodd" xlink:href="#path-1"></use>\n </g>\n </g>\n </g>\n </g>\n</svg>\n';var HS='<?xml version="1.0" encoding="UTF-8"?>\n<svg width="36px" height="36px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <!-- Generator: Sketch 57.1 (83088) - https://sketch.com -->\n <defs>\n <filter id="f3" x="-50%" y="-50%" width="200%" height="200%">\n <feMorphology radius="3" operator="dilate" in="SourceAlpha" result="shadowSpreadOuter1"></feMorphology>\n <feOffset dx="0" dy="2" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>\n <feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>\n <feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>\n <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>\n </filter>\n </defs>\n <circle cx="50" cy="50" r="40" fill="white" filter="url(#f3)"/>\n <circle cx="50" cy="50" r="40" fill="white"/>\n</svg>\n';var YS='<?xml version="1.0" encoding="UTF-8"?>\n<svg width="36px" height="36px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <!-- Generator: Sketch 57.1 (83088) - https://sketch.com -->\n <circle cx="50" cy="50" r="30" />\n</svg>\n';var WS='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 468.614 468.614">\n <g>\n <path d="M291.299 116.517h-3.501c10.635-12.36 17.102-28.378 17.102-45.915C304.899 31.666 273.219 0 234.305 0c-38.93 0-70.584 31.666-70.584 70.602 0 17.537 6.477 33.555 17.093 45.915h-3.51c-19.645 0-35.626 15.997-35.626 35.645v117.105c0 19.648 15.982 35.633 35.626 35.633h1.372v128.07c0 20.332 10.697 35.645 24.884 35.645h61.468c14.208 0 24.908-15.312 24.908-35.645V304.9h1.363c19.642 0 35.639-15.984 35.639-35.633V152.161c-.006-19.647-15.998-35.644-35.639-35.644z" fill="#386460" />\n <path d="M291.299 116.517h-3.501c10.635-12.36 17.102-28.378 17.102-45.915C304.899 31.666 273.219 0 234.305 0c-38.93 0-70.584 31.666-70.584 70.602 0 17.537 6.477 33.555 17.093 45.915h-3.51c-19.645 0-35.626 15.997-35.626 35.645v117.105c0 19.648 15.982 35.633 35.626 35.633h1.372v128.07c0 20.332 10.697 35.645 24.884 35.645h61.468c14.208 0 24.908-15.312 24.908-35.645V304.9h1.363c19.642 0 35.639-15.984 35.639-35.633V152.161c-.006-19.647-15.998-35.644-35.639-35.644z" style="fill:none;stroke-width:8px;stroke:white" />\n </g>\n</svg>';var XS='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">\n <g>\n <path d="M12 0a8 8 0 00-8 8c0 1.421.382 2.75 1.031 3.906.108.192.221.381.344.563L12 24l6.625-11.531c.102-.151.19-.311.281-.469l.063-.094A7.954 7.954 0 0020 8a8 8 0 00-8-8zm0 4a4 4 0 110 8 4 4 0 010-8z" fill="#e74c3c"/>\n <path d="M12 0a8 8 0 00-8 8c0 1.421.382 2.75 1.031 3.906.108.192.221.381.344.563L12 24l6.625-11.531c.102-.151.19-.311.281-.469l.063-.094A7.954 7.954 0 0020 8a8 8 0 00-8-8zm0 4a4 4 0 110 8 4 4 0 010-8z" style="fill:none;stroke-width:1px;stroke-linecap:round;stroke:white"/>\n <path d="M12 3a5 5 0 100 10 5 5 0 000-10zm0 2a3 3 0 110 6 3 3 0 010-6z" fill="#c0392b"/>\n </g>\n</svg>';var ZS="data:image/png;base64,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";var QS="data:image/png;base64,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";var _a=new Map([["journey-departure",WS],["journey-destination",XS],["question-mark",bS],["arrow",xS],["door",TS],["elevator",MS],["elevator-up",ES],["elevator-down",wS],["elevator-alt",CS],["escalator-down",AS],["escalator-up",PS],["ramp",SS],["ramp-down",IS],["ramp-up",_S],["sligntTurnLeft",OS],["sightTurnRight",DS],["stairs",LS],["stairs-down",qS],["stairs-up",RS],["turnLeft",NS],["turnRight",kS],["uTurn",BS],["blue-arrow",FS],["start",US],["destination-marker-back",VS],["destination-marker-front",zS],["smart-label-pin-back",jS],["smart-label-pin-front",GS],["smart-label-circle-back",HS],["smart-label-circle-front",YS],["logo",ZS],["logo-icon-slate",QS]]);var eY=10,tY=new Pn,g2={adjustedAltitude:!1,color:"#4b90e2",pulseColor:"#ffffff",pulseIterations:1,nearRadius:1.8,nearZoom:375,farZoom:1e4,drawDuration:1200,maxAdjustedAltitude:1/0,minAdjustedAltitude:-1/0,curve:jr.default.Easing.Cubic.InOut,displayArrowsOnPath:!1,animateArrowsOnPath:!0},iY={color:"#7ed321",pulseColor:"#ffffff",nearRadius:1.8,nearZoom:375,farZoom:1e4,drawDuration:800,curve:jr.default.Easing.Cubic.InOut,displayArrowsOnPath:!1,animateArrowsOnPath:!0},KS=2.3,nY=600,$s,_7=class _7{constructor(e){w(this,$s,void 0);A(this,$s,e)}get id(){return d(this,$s).id}get nodes(){return d(this,$s).nodes}get coordinates(){return d(this,$s).coordinates}};$s=new WeakMap,l(_7,"Path");var v2=_7,O7=class O7{constructor(e,t,n){p(this,"id");p(this,"nodes",[]);p(this,"coordinates",[]);p(this,"pathSegments");p(this,"options");this.id=it(),e.forEach(r=>{r instanceof yi?this.nodes.push(r):r instanceof cn&&this.coordinates.push(r)}),this.pathSegments=t,this.options=n}};l(O7,"InternalPath");var M7=O7,lp,w7,cp,C7,up,A7,dp,P7,y2,JS,b2,$S,hp,S7,D7=class D7{constructor(e){w(this,lp);w(this,cp);w(this,up);w(this,dp);w(this,y2);w(this,b2);w(this,hp);p(this,"core");p(this,"altitudeAdjustmentMap");p(this,"maxAdjustedAltitude");p(this,"minAdjustedAltitude");p(this,"adjustedAltitude");p(this,"pathSegments",new Map);p(this,"pathsById",new Map);p(this,"pathsByMeshId",new Map);p(this,"connectionsPathMeshes",new Wn);this.core=e,this.core.scene.add(this.connectionsPathMeshes),this.altitudeAdjustmentMap=new Map,this.adjustedAltitude=!!g2.adjustedAltitude,this.maxAdjustedAltitude=g2.maxAdjustedAltitude,this.minAdjustedAltitude=g2.minAdjustedAltitude}get altitudeAdjustment(){var c;let e=this.core.currentMap,{mapClass:t}=this.core.mapObjects.get(e),n=t.scale,r=Math.max(t.width,t.height)/1e3;if(!this.adjustedAltitude)return 0;if(this.altitudeAdjustmentMap.has(e))return this.altitudeAdjustmentMap.get(e);let a=this.maxAdjustedAltitude/n,o=this.minAdjustedAltitude/n,s=(c=t.polygons)==null?void 0:c.reduce((u,{geometry:h,image:m,label:f})=>{var g;if(((g=h==null?void 0:h.scale)==null?void 0:g.z)!==void 0){let b=h.scale.z*r,M=h.visible!==!1,x=(m==null?void 0:m.visible)===!0&&(m.url!=null||m.original!=null),T=(f==null?void 0:f.visible)===!0&&f.text!=null;M&&!x&&!T&&b<=a&&b>=o&&(u=Math.max(u,b))}return u},0);return this.altitudeAdjustmentMap.set(e,s||0),s}getPathLength(e){let t=0;for(let n=0,r=e.length-1;n<r;++n){let a=e[n],o=e[n+1];a.path.includes(o)&&(t+=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)))}return t}drawPath(e,t={}){let n=Z(this,up,A7).call(this,e,t),r=new M7(e,n,t),a=new v2(r);return Z(this,lp,w7).call(this,a,r),a}redrawPath(e,t={}){var a;let n=(a=this.pathsById.get(e.id))==null?void 0:a.internalPath;if(n==null){F.warn("A path that does not exist cannot be redrawn.");return}(t==null||Object.keys(t).length<1)&&(t=n.options),n.pathSegments.forEach(o=>{Z(this,hp,S7).call(this,o)});let r=Z(this,up,A7).call(this,n.nodes,t);n.pathSegments=r,Z(this,cp,C7).call(this,e),Z(this,lp,w7).call(this,e,n)}removePath(e){let t;typeof e=="string"?t=e:t=e.id;let n=this.pathsById.get(t);if(n==null)return;let r=n.internalPath.pathSegments;if(r)for(let a of r){let o=this.pathSegments.get(a.id);Z(this,hp,S7).call(this,o)}Z(this,cp,C7).call(this,n.path)}hideConnectionSegments(){this.connectionsPathMeshes.children.forEach(e=>{e.visible=!1}),this.core.tryRendering()}showConnectionSegments(){this.connectionsPathMeshes.children.forEach(e=>{e.visible=!0}),this.core.tryRendering()}removeAllPaths(){for(let{path:e}of this.pathsById.values())this.removePath(e);this.pathSegments.clear(),this.core.renderer.disposeOfRenderLists(),this.core.tryRendering()}};lp=new WeakSet,w7=l(function(e,t){for(let n of t.pathSegments)this.pathSegments.set(n.id,n),this.pathsByMeshId.set(n.object.uuid,{path:e,internalPath:t});this.pathsById.set(t.id,{path:e,internalPath:t})},"#addPathToCache"),cp=new WeakSet,C7=l(function(e){let t=this.pathsById.get(e.id);if(t==null)return;let n=t.internalPath;for(let r of n.pathSegments)this.pathSegments.delete(r.id),this.pathsByMeshId.delete(r.object.uuid);this.pathsById.delete(n.id)},"#removePathFromCache"),up=new WeakSet,A7=l(function(e,t={}){let n={...g2,...t,connectionPathOptions:{...iY,...t.connectionPathOptions}};this.maxAdjustedAltitude=n.maxAdjustedAltitude,this.minAdjustedAltitude=n.minAdjustedAltitude,this.adjustedAltitude=!!n.adjustedAltitude;let r=t.pulsePauseDuration||nY;n.connectionPathOptions.farRadius==null&&n.connectionPathOptions.nearRadius!=null&&(n.connectionPathOptions.farRadius=n.connectionPathOptions.nearRadius*KS),n.farRadius==null&&n.nearRadius!=null&&(n.farRadius=n.nearRadius*KS);let a,o,s,c=0,u=e.reduce((f,g,b)=>{let M=e[b+1],x=e[b-1];if(b===0)a=g.map.id;else if(g.map.id!=a||M==null){let T=M==null&&g.map.id===a?b:b-1;s=Z(this,y2,JS).call(this,e.slice(c,T+1),a,{...n,animateDrawing:a===this.core.currentMap?n.animateDrawing:!1,drawDuration:a===this.core.currentMap?n.drawDuration:0}),c=b,f.push(s),o!=null&&(o.tween.chain(s.tween),o.pulseTween.chain(s.pulseTween),o.pulseTween.onComplete(o.resetPulse)),o=s,x!=null&&x.map.id!==g.map.id&&n.drawConnectionSegments===!0&&this.core.visibleMapsInCurrentScene.length>1&&this.core.stackedMaps.enabled&&(s=Z(this,b2,$S).call(this,[x,g],n.connectionPathOptions),f.push(s),o!=null&&(o.tween.chain(s.tween),o.pulseTween.chain(s.pulseTween),o.pulseTween.onComplete(o.resetPulse)),o=s),a=g.map.id}return f},[]),h=1,m=n.pulseIterations||1/0;if(u.length>0){let f=u[0],g=u[u.length-1];f.tween.start(),f.tween.onComplete(()=>{f.pulseTween.start()}),g.endPauseTween=new jr.default.Tween({}).to({value:1},r).chain(f.pulseTween).onUpdate(()=>this.core.tryRendering(Re.TWEEN)),m>1&&g.pulseTween.chain(g.endPauseTween),g.pulseTween.onComplete(()=>{h+1>=m?u.forEach(b=>{b.pulseTween.onComplete(()=>{}),b.pulseTween.stop(),b.endPauseTween&&b.endPauseTween.stop(),b.resetPulse(),this.core.tryRendering(Re.ANIMATED)}):(g.resetPulse(),f.resetPulse()),h++})}return this.core.tryRendering(Re.ANIMATED),u},"#drawAllPathSegments"),dp=new WeakSet,P7=l(function(e,t,n){n=n||{};let r=n.color||"#ff834c",a=n.pulseColor||"#000000",o=n.nearRadius!==void 0?n.nearRadius:1.8,s=n.farRadius!==void 0?n.farRadius:o,c=n.nearZoom!==void 0?n.nearZoom:375,u=n.farZoom!==void 0?n.farZoom:1e4,h=n.drawDuration!==void 0?n.drawDuration:1500,m=n.curve||jr.default.Easing.Cubic.InOut,f=n.displayArrowsOnPath||!1,g=n.animateArrowsOnPath||!1,b=n.isConnectionPathSegment||!1,M=n.displayArrowsOnPath||n.flattenPath||!1,x=n.showPulse!==void 0?n.showPulse:!0,T=n.animateDrawing!==void 0?n.animateDrawing:!0,E=0;if(b)for(let ae=1;ae<e.length;++ae){let ce=e[ae].x-e[ae-1].x,Le=e[ae].z-e[ae-1].z;E+=Math.sqrt(ce*ce+Le*Le)}else{e[0].z+=this.altitudeAdjustment;for(let ae=1;ae<e.length;++ae){e[ae].z+=this.altitudeAdjustment;let ce=e[ae].x-e[ae-1].x,Le=e[ae].y-e[ae-1].y,St=e[ae].z-e[ae-1].z;E+=Math.sqrt(ce*ce+Le*Le+St*St)}}let S=tY.load(_a.get("arrow"));S.colorSpace=rt;let _={vertexes:{type:"f",value:1},resolution:{type:"v2",value:this.core.resolution},cameraParameters:{type:"v2",value:new he(this.core.controls.getZoom(),this.core.controls.getTilt())},complete:{type:"f",value:T?0:1},color:{type:"c",value:new Ee(r)},pathLength:{type:"f",value:E},nearRadius:{type:"f",value:o},farRadius:{type:"f",value:s},nearZoom:{type:"f",value:c},farZoom:{type:"f",value:u},pulseColor:{type:"c",value:new Ee(a)},pulse:{type:"f",value:0},pulseLength:{type:"f",value:.075},pathIsVertical:{type:"b",value:b},arrowAnimationTimer:{type:"f",value:0},arrowTexture:{type:"t",value:S},displayArrowsOnPath:{type:"b",value:f},flattenFactor:{type:"f",value:M?.05:1},showPulse:{type:"b",value:x}},P=new wT(e);P.curveType="catmullrom",P.tension=0;let q=30,D=8,U=q*t.length,R=new PT(P,U,o,D,!1),B=new Float32Array(R.attributes.position.count);for(let ae=t.length;ae<B.length;ae++)B[ae]=ae;R.setAttribute("vertexIndex",new ni(B,1));let j=new Float32Array(R.attributes.position.count),G=new ni(j,1);for(let ae=0;ae<=U;ae++)for(let ce=0;ce<=D;++ce)G.setX(ae*(D+1)+ce,ae/U);R.setAttribute("pathDistance",G);let Q=new Float32Array(R.attributes.normal.count*3),X=new ni(Q,3);for(let ae=0;ae<U;ae++){let ce=R.tangents[ae];for(let Le=0;Le<=D;++Le)X.setXYZ(ae*(D+1)+Le,ce.x,ce.y,ce.z)}R.setAttribute("pathTangent",X);let ne=new Float32Array(R.attributes.normal.count*3),$=new ni(ne,3);for(let ae=0;ae<U;ae++){let ce=R.tangents[ae];var ue,be,ee;b?(ue=ce.x*ce.y,be=-1+ce.y*ce.y,ee=ce.z*ce.y):(ue=-ce.x*ce.z,be=-ce.y*ce.z,ee=1-ce.z*ce.z);let Le=Math.sqrt(ue*ue+be*be+ee*ee);Le===0&&(Le=1);let St=ue/Le,I=be/Le,N=ee/Le;for(let O=0;O<=D;++O)$.setXYZ(ae*(D+1)+O,St,I,N)}R.setAttribute("pathNormal",$);let ge=new We({uniforms:_,vertexShader:vS,fragmentShader:yS});ge.transparent=!0,ge.alphaTest=.5,_.resolution.value.x=this.core.renderer.getBufferSize().width,_.resolution.value.y=this.core.renderer.getBufferSize().height,_.vertexes.value=B.length,_.arrowTexture.value.wrapS=fi,_.arrowTexture.value.wrapT=fi,_.arrowTexture.value.anisotropy=this.core.renderer.getMaxAnisotropy();let de=new qe(R,ge),Ae=l(()=>{this.core.tryRendering(Re.ANIMATED)},"tryRenderingAnimated"),Fe=new jr.default.Tween(_.pulse).to({value:1},h).easing(m).onUpdate(Ae),Ce=new jr.default.Tween(_.complete).to({value:1},h).easing(m).onUpdate(Ae),He=3e3,kt=new jr.default.Tween(_.arrowAnimationTimer).to({value:1},He).easing(jr.default.Easing.Linear.None).repeat(1/0).onUpdate(Ae);f&&g&&kt.start();let $e={id:de.id,nodes:t,mapId:n.mapId,object:de,tween:Ce,pulseTween:Fe,arrowAnimationTween:kt,reset:function(){_.complete.value=0},resetPulse:function(){_.pulse.value=0}};return ge.userData={layer:b?"vertical-path":"path"},$e},"#drawSegment"),y2=new WeakSet,JS=l(function(e,t,n={color:"#ff834c",pulseColor:"white",pulseIterations:1/0,nearRadius:1.8,nearZoom:375,farZoom:1e4,drawDuration:1500,displayArrowsOnPath:!1}){let r=n.nearRadius||2,a=n.farRadius||n.nearRadius||2,o=t?this.core.venue.maps.find(b=>b.id===t):this.core.venue.maps.find(b=>b.id===this.core.currentMap),s=(o==null?void 0:o.scale)||1;if(r=r/s,a=a/s,this.core.currentMap==null)throw new Error("Unable to retrieve the current map");let c=t?ut(t):this.core.currentMap,u=[],h=r/2;for(let b=0;b<e.length;b++){let M=e[b],x=new z(M.x-o.width/2,-M.y+o.height/2,h);u.push(x)}let m=h-.1;u.push(u[u.length-1].clone().setZ(m)),u.unshift(u[0].clone().setZ(m));let f=Z(this,dp,P7).call(this,u,e,{...n,nearRadius:r,farRadius:a,mapId:c});f.object.name="path",f.object.layers.set(Ct.ANIMATED);let g=this.core.mapObjects.get(c);return this.core.visibleMapObjectsInCurrentScene.includes(g)||(f.object.visible=!1),g.add(f.object),f},"#drawPathSegment"),b2=new WeakSet,$S=l(function(e,t={color:"#7dd322",pulseColor:"#ffffff",pulseIterations:1/0,nearRadius:1.8,nearZoom:375,farZoom:1e4,drawDuration:1500,curve:jr.default.Easing.Cubic.InOut,displayArrowsOnPath:!1}){let n=t.nearRadius||2,r=t.farRadius||t.nearRadius||2,a=this.core.referenceMap,o=(a==null?void 0:a.scale)||1;n=n/o,r=r/o;let s=this.core.convertTo3DMapPosition(e[0]),c=this.core.convertTo3DMapPosition(e[1]),u=WA(s,c,eY),h=Z(this,dp,P7).call(this,u,e,{...t,nearRadius:n,farRadius:r,mapId:this.core.referenceMap.id,isConnectionPathSegment:!0}),m=new Ye().setFromObject(h.object),f=new z;return m.getCenter(f),h.object.layers.set(Ct.ANIMATED),h.object.geometry.center(),h.object.position.copy(f),this.core.billboardManager.add(h.object),this.connectionsPathMeshes.add(h.object),h},"#drawConnectionPathSegment"),hp=new WeakSet,S7=l(function(e){e&&(this.core.scene.remove(e.object),typeof e.object.destroy=="function"&&e.object.destroy(),e.pulseTween.stop(),e.endPauseTween&&e.endPauseTween.stop(),e.tween.stop(),e.arrowAnimationTween.stop(),e.pulseTween=void 0,e.tween=void 0,e.arrowAnimationTween=void 0,this.pathSegments.delete(e.id),this.connectionsPathMeshes.remove(e.object),this.core.billboardManager.remove(e.object))},"#removePathSegment"),l(D7,"PathsController");var E7=D7,I7=E7;y();y();y();var rY=l(({image:i})=>i!=null&&i.visible?!!(i.url||i.original):!1,"imageVisible"),x2=l((i,e)=>rY(i)&&e[i.id+"_image"],"imageVisibleAndRendered");function eI(i,e,t,n){let r=[],a=(t==null?void 0:t.locations)||i.locations;for(let o of i.polygons){let[s]=o.entrances;if(!s||n!=null&&n.id&&n.id!==s.map.id||!o.geometry.visible)continue;let c;if(c=_s(o,i)){let u=(t==null?void 0:t.createDespiteImage)||c.showLabelWhenImagePresent||c.showSmartLabelWhenImagePresent;if(x2(o,e)&&!u||!a.includes(c))continue;let h=(t==null?void 0:t.excludeTypes)||[];if(h.length>0&&h.includes(c.type))continue;let m=aY(o,s,c,t||{});m!=null&&r.push(m)}}return r}l(eI,"createLabelObjects");function aY(i,e,t,n){var h,m,f,g,b;let r=C.env.NODE_ENV==="test"?Yi.testId:Math.random();Yi.testId++;let a=t.name,o=t.shortName,s;t.states&&t.states.length>0&&(s=((h=t.state)==null?void 0:h.id)&&((f=n==null?void 0:n.translationMap)==null?void 0:f[(m=t.state)==null?void 0:m.id])||((g=t.state)==null?void 0:g.name)||null);let c;return n.groupRankingByCategory&&(c=i==null?void 0:i.categoryRank),{interactive:n.interactive,polygon:i,rank:c||((b=i.rank)==null?void 0:b.score)||r,text:s==null?o||a:(o||a)+" (".concat(s,")"),appearance:n.appearance,createDespiteImage:n.createDespiteImage,mapId:e.map.id,position:{nodeOrCoordinate:e}}}l(aY,"createLabelOptionsObject");var R7=et(Gh());y();var q7=class q7 extends Li{constructor(){var t;super();p(this,"_recalculateDebounced");p(this,"totalZoomLevel",0);p(this,"fontZoomLevel",0);p(this,"pageZoomLevel",0);this._recalculateDebounced=hn(this.recalculate,100),window.addEventListener("resize",()=>{this._recalculateDebounced()}),(t=window.visualViewport)==null||t.addEventListener("resize",()=>{this._recalculateDebounced()}),this.recalculate()}detectSafari(){let{userAgent:t}=navigator;return t.indexOf("Safari")>-1&&t.indexOf("Chrome")===-1}recalculate(){var n;let t=1;this.detectSafari()&&(t=Math.max(1,window.outerWidth/window.innerWidth)),this.fontZoomLevel=window.devicePixelRatio*t,this.pageZoomLevel=((n=window.visualViewport)==null?void 0:n.scale)||1,this.totalZoomLevel=this.fontZoomLevel*this.pageZoomLevel,this.publish("FONT_ZOOM_CHANGED",this.fontZoomLevel),this.publish("PAGE_ZOOM_CHANGED",this.pageZoomLevel),this.publish("TOTAL_ZOOM_CHANGED",this.totalZoomLevel)}};l(q7,"ZoomListener");var L7=q7,tI=new L7;var pp=l(i=>{let e=i.toJSON();return Object.keys(e).length===5&&"lat"in e&&"lon"in e&&"map"in e&&"x"in e&&"y"in e},"isMappedinCoordinate"),T2="Adding or removing individual labels after calling labelAllLocations() may cause unexpected behaviour. We recommend adding all labels individually if more specific control is desired. https://developer.mappedin.com/web-sdk-api/v5/latest/classes/floatinglabels#add",Gr,G7=class G7{constructor(e){w(this,Gr,void 0);A(this,Gr,e)}get id(){return d(this,Gr).id}get text(){return d(this,Gr).options.text}get appearance(){return d(this,Gr).appearance}get nodeOrCoordinate(){return d(this,Gr).options.position.nodeOrCoordinate}get rank(){return d(this,Gr).rank}__updateInstance(e){A(this,Gr,e)}toJSON(){return{id:this.id,text:this.text,appearance:this.appearance,nodeOrCoordinate:this.nodeOrCoordinate.toJSON(),rank:this.rank}}};Gr=new WeakMap,l(G7,"FloatingLabel");var A2=G7,cr,_o,fp,mp,k7,gp,B7,Hc,M2,P2,iI,S2,nI,Yc,E2,vp,F7,Wc,w2,I2,rI,_2,aI,yp,U7,O2,oI,D2,sI,bp,V7,L2,lI,Xc,C2,q2,cI,xp,z7,R2,uI,H7=class H7{constructor(e){w(this,mp);w(this,gp);w(this,Hc);w(this,P2);w(this,S2);w(this,Yc);w(this,vp);w(this,Wc);w(this,I2);w(this,_2);w(this,yp);w(this,O2);w(this,D2);w(this,bp);w(this,L2);w(this,Xc);w(this,q2);w(this,xp);w(this,R2);p(this,"core");w(this,cr,!1);p(this,"internalFloatingLabels",{});p(this,"internalFloatingLabelsByNodeOrCoordinate",new WeakMap);p(this,"floatingLabels",{});w(this,_o,{});w(this,fp,{});this.core=e,e.on(8,()=>{e.visibleMapsInCurrentScene.forEach(t=>{!d(this,_o)[t.id]&&d(this,cr)&&Z(this,mp,k7).call(this,t)})}),tI.on("FONT_ZOOM_CHANGED",()=>{Z(this,S2,nI).call(this)})}addLabel(e,t,n){if(pp(e)){let{label:a}=Z(this,gp,B7).call(this,e,t,n);return a}if(this.core.venue.getCollectionItemById("nodes",e.id)!=null){let{label:a}=Z(this,Hc,M2).call(this,e,t,n);return a}return Z(this,P2,iI).call(this,e,t,n).map(a=>a.label)}removeLabel(e,t=!1){if(pp(e))return Z(this,vp,F7).call(this,e,t);this.core.venue.getCollectionItemById("nodes",e.id)!=null?Z(this,Wc,w2).call(this,e,t):Z(this,I2,rI).call(this,e,t),delete d(this,_o)[e.map.id]}setPriority(e,t){if(pp(e))return Z(this,_2,aI).call(this,e,t);this.core.venue.getCollectionItemById("nodes",e.id)!=null?Z(this,yp,U7).call(this,e,t):Z(this,O2,oI).call(this,e,t)}resetPriority(e){if(pp(e))return Z(this,D2,sI).call(this,e);this.core.venue.getCollectionItemById("nodes",e.id)!=null?Z(this,bp,V7).call(this,e):Z(this,L2,lI).call(this,e)}removeAllLabels(){A(this,cr,!1);for(let e in this.internalFloatingLabels){let t=this.internalFloatingLabels[e].options.position.nodeOrCoordinate;t instanceof yi?Z(this,Wc,w2).call(this,t,!0):Z(this,vp,F7).call(this,t,!0)}Array.from(this.core.mapObjects.values()).forEach(e=>{e.labels.clear()}),this.internalFloatingLabels={},this.floatingLabels={},this.internalFloatingLabelsByNodeOrCoordinate=new WeakMap,A(this,_o,{}),this.core.smartCollisionEngine.debouncedUpdate(),this.core.renderer.disposeOfRenderLists(),this.core.tryRendering()}setAppearance(e,t){if(pp(e))return Z(this,q2,cI).call(this,e,t);let n=this.core.venue.getCollectionItemById("nodes",e.id)!=null;n&&Z(this,xp,z7).call(this,e,t);let r=this.core.venue.getCollectionItemById("polygons",e.id)!=null;r&&Z(this,R2,uI).call(this,e,t),!n&&!r&&F.warn("No label found for target",e),this.core.tryRendering()}labelAllLocations(e){A(this,cr,!0),e!=null&&A(this,fp,e);let t=[];return this.core.visibleMapsInCurrentScene.forEach(n=>{!d(this,_o)[n.id]&&d(this,cr)&&t.push(...Z(this,mp,k7).call(this,n))}),t.map(n=>new A2(n))}};cr=new WeakMap,_o=new WeakMap,fp=new WeakMap,mp=new WeakSet,k7=l(function(e){let t=eI(this.core.venue,this.core.polygonMeshesById,d(this,fp),e);if(t==null)return[];let n=t.reduce((r,a)=>{let{internalLabel:o}=Z(this,Xc,C2).call(this,a,!0);return o&&r.push(o),r},[]);return this.core.taskScheduler.scheduleTask(new bt({name:"addFloatingLabel",callback:()=>{n.forEach(r=>{r.enable(!1)}),d(this,_o)[e.id]=!0,this.core.determineNewLabelSize(),this.core.smartCollisionEngine.debouncedUpdate()}})),n},"#processLabelsForMap"),gp=new WeakSet,B7=l(function(e,t,n){d(this,cr)&&F.warn(T2);let r=C.env.NODE_ENV==="test"?Yi.testId:Math.random();Yi.testId++;let a={polygon:void 0,rank:r,text:t,appearance:n==null?void 0:n.appearance,createDespiteImage:!0,position:{nodeOrCoordinate:e},mapId:e.map.id,...n||{}};return Z(this,Xc,C2).call(this,a)},"#labelCoordinate"),Hc=new WeakSet,M2=l(function(e,t,n){var s,c,u;d(this,cr)&&F.warn(T2);let r=C.env.NODE_ENV==="test"?Yi.testId:Math.random();Yi.testId++;let a;n!=null&&n.groupRankingByCategory&&(a=(s=e.polygon)==null?void 0:s.categoryRank);let o={polygon:e.polygon,rank:a||((u=(c=e.polygon)==null?void 0:c.rank)==null?void 0:u.score)||r,position:{nodeOrCoordinate:e},text:t,appearance:n==null?void 0:n.appearance,createDespiteImage:!0,mapId:e.map.id,...n||{}};return Z(this,Xc,C2).call(this,o)},"#labelNode"),P2=new WeakSet,iI=l(function(e,t,n){var a,o;let r=[];for(let s of e.entrances){if(((a=e.rank)==null?void 0:a.node)!=null&&((o=e.rank)==null?void 0:o.node)!=s.id)continue;let c=Z(this,Hc,M2).call(this,s,t,n);c&&r.push(c)}return r.length===0?(F.warn("No entrances found on this polygon. Skipping."),[]):r},"#labelPolygon"),S2=new WeakSet,nI=l(function(){Object.values(this.internalFloatingLabels).forEach(e=>{e.invalidate()}),this.core.smartCollisionEngine.debouncedUpdate()},"#invalidateAll"),Yc=new WeakSet,E2=l(function(e,t=!0){this.core.smartCollisionEngine.remove(e.id),delete this.internalFloatingLabels[e.id],this.internalFloatingLabelsByNodeOrCoordinate.delete(e.options.position.nodeOrCoordinate),t&&delete this.floatingLabels[e.id]},"#removeLabelInstance"),vp=new WeakSet,F7=l(function(e,t=!1){d(this,cr)&&F.warn(T2);let n=this.internalFloatingLabelsByNodeOrCoordinate.get(e);if(!n){F.warn("No label found for coordinate",e);return}Z(this,Yc,E2).call(this,n),t||this.core.smartCollisionEngine.debouncedUpdate()},"#removeLabelCoordinate"),Wc=new WeakSet,w2=l(function(e,t=!1){d(this,cr)&&F.warn(T2);let n=this.internalFloatingLabelsByNodeOrCoordinate.get(e);if(!n){F.warn("No label found for node",e);return}Z(this,Yc,E2).call(this,n),t||this.core.smartCollisionEngine.debouncedUpdate()},"#removeLabelNode"),I2=new WeakSet,rI=l(function(e,t=!1){e.entrances.forEach(n=>Z(this,Wc,w2).call(this,n,t))},"#removeLabelPolygon"),_2=new WeakSet,aI=l(function(e,t){let n=this.internalFloatingLabelsByNodeOrCoordinate.get(e);n!=null&&n.setPriority(t)},"#setPriorityCoordinate"),yp=new WeakSet,U7=l(function(e,t){let n=this.internalFloatingLabelsByNodeOrCoordinate.get(e);n!=null&&n.setPriority(t)},"#setPriorityNode"),O2=new WeakSet,oI=l(function(e,t){e.entrances.forEach(n=>Z(this,yp,U7).call(this,n,t))},"#setPriorityPolygon"),D2=new WeakSet,sI=l(function(e){let t=this.internalFloatingLabelsByNodeOrCoordinate.get(e);t!=null&&t.resetPriority()},"#resetPriorityCoordinate"),bp=new WeakSet,V7=l(function(e){let t=this.internalFloatingLabelsByNodeOrCoordinate.get(e);t!=null&&t.resetPriority()},"#resetPriorityNode"),L2=new WeakSet,lI=l(function(e){e.entrances.forEach(t=>Z(this,bp,V7).call(this,t))},"#resetPriorityPolygon"),Xc=new WeakSet,C2=l(function(e,t=!1){var h,m;let n=this.internalFloatingLabelsByNodeOrCoordinate.get(e.position.nodeOrCoordinate);if(n!=null){let f=e.id!=null&&n.id===e.id;Z(this,Yc,E2).call(this,n,!f)}let{polygon:r,mapId:a}=e,o=this.core.mapObjects.get(a),s=(h=e.polygonHeight)!=null?h:0;r!=null&&s!=null&&(s=r.geometry.scale.z*Math.max(o.mapClass.width,o.mapClass.height)/1e3);let c=new Yi({...e,polygonHeight:s,position:{nodeOrCoordinate:e.position.nodeOrCoordinate,height:s}},this.core);this.internalFloatingLabels[c.id]=c,this.internalFloatingLabelsByNodeOrCoordinate.set(e.position.nodeOrCoordinate,c),o.labels.add(c),this.core.smartCollisionEngine.add(c.id,c);let u=this.floatingLabels[(m=e.id)!=null?m:""];return u==null?u=new A2(c):u.__updateInstance(c),this.floatingLabels[u.id]=u,this.core.taskScheduler.scheduleUpdate(new vi({name:"addFloatingLabel",ordering:Tn.BEFORE_CAMERA,callback:()=>{t||(c.enable(!1),this.core.determineNewLabelSize(),this.core.smartCollisionEngine.debouncedUpdate())}})),t||this.core.tryRendering(),{internalLabel:c,label:u}},"#renderLabel"),q2=new WeakSet,cI=l(function(e,t){var a;let n=this.internalFloatingLabelsByNodeOrCoordinate.get(e);if(!n){F.warn("No label found for coordinate",e);return}let r={id:n.id,appearance:(0,R7.default)(t,n.appearance),interactive:n.options.interactive};Z(this,gp,B7).call(this,e,(a=n.options.text)!=null?a:"",r)},"#setCoordinateAppearance"),xp=new WeakSet,z7=l(function(e,t){var a;let n=this.internalFloatingLabelsByNodeOrCoordinate.get(e);if(!n){F.warn("No label found for this node. Skipping...");return}let r={id:n.id,appearance:(0,R7.default)(t,n.appearance),interactive:n.options.interactive};Z(this,Hc,M2).call(this,e,(a=n.options.text)!=null?a:"",r)},"#setNodeAppearance"),R2=new WeakSet,uI=l(function(e,t){for(let n of e.entrances)Z(this,xp,z7).call(this,n,t)},"#setPolygonAppearance"),l(H7,"FloatingLabelsController");var N7=H7,j7=N7;y();y();function dI(i,e,t,n){let r=(n==null?void 0:n.excludeTypes)||[],a=n==null?void 0:n.sortFunction,s=((n==null?void 0:n.locations)||[]).filter(h=>r.indexOf(h.type)===-1),c=s;a!=null&&(c=s.sort(a));let u={};for(let h=0,m=c.length;h<m;++h){let f=c[h],g=f.polygons;for(let b=0,M=g.length;b<M;++b){let x=g[b];if(x2(x,i.polygonMeshesById)||!x.geometry.visible)continue;let T=oY(g[b],f,t,i.venue,e,n);T!=null&&(u[x.id]=T)}}return Object.values(u)}l(dI,"createLabelObjects");function oY(i,e,t,n,r,a){var u,h,m;let o=a==null?void 0:a.sortFunction,s=(a==null?void 0:a.translationMap)||{},c=t[i.id];if(c===!0)return null;{let f=i.canvasBounds;t[i.id]=!0;let g=r,b=0;if(f){let _=f.x-g.width/2,P=-f.y+g.height/2;b=Math.sqrt(Math.pow(_,2)+Math.pow(P,2))}let M=e;if(o?t[i.id]=!0:c===!1?(M=_s(i,n),t[i.id]=!0):t[i.id]=!1,M==null)return null;let x=M.name,T=M.shortName,E=i.rank,S="";return M.states&&M.states.length>0&&(S=((u=M.state)==null?void 0:u.id)&&s[(h=M.state)==null?void 0:h.id]||((m=M.state)==null?void 0:m.name)||""),{...a==null?void 0:a.appearance,polygon:i,text:x,shortText:T,stateText:S,distance:b,rank:E,createDispiteImage:M.showLabelWhenImagePresent}}}l(oY,"createLabelOptionsObject");var pI=et(Gh());var sY="Sans-Serif",lY={},hI="Adding or removing individual labels after calling labelAllLocations() may cause unexpected behaviour. We recommend adding all labels individually if more specific control is desired. https://developer.mappedin.com/web-sdk-api/v5/latest/classes/flatlabels#add",Oo,N2,Do,Oa,Tp,W7,Mp,X7,Q7=class Q7{constructor(e){w(this,Tp);w(this,Mp);p(this,"core");w(this,Oo,!1);w(this,N2,new js);w(this,Do,{});w(this,Oa,{});p(this,"flatLabels",{});p(this,"labeledPolygons",{});this.core=e,e.on(8,()=>{e.visibleMapsInCurrentScene.forEach(t=>{!d(this,Do)[t.id]&&d(this,Oo)&&Z(this,Tp,W7).call(this,t)})})}labelAllLocations(e){this.removeAllLabels(),A(this,Oo,!0),e!=null&&A(this,Oa,{...e,...e==null?void 0:e.appearance});let t=[];return this.core.visibleMapsInCurrentScene.forEach(n=>{d(this,Do)[n.id]||t.push(...Z(this,Tp,W7).call(this,n))}),t}labelPolygon(e,t,n){d(this,Oo)&&F.warn(hI);let a={polygon:typeof e=="string"?this.core.venue.getCollectionItemById("polygons",e):e,showLabelWhenImagePresent:!0,text:t,...n,...n==null?void 0:n.appearance};return Z(this,Mp,X7).call(this,a)}removeLabel(e,{warnOnLabelAllLocations:t=!0}={warnOnLabelAllLocations:!0}){t&&d(this,Oo)&&F.warn(hI);let n=typeof e=="string"?this.core.venue.getCollectionItemById("polygons",e):e;if(!this.core.textLabelsByPolygonId[n.id])return;let r=this.core.textLabelsByPolygonId[n.id];r.removeSelf();let{textObjects:a}=this.core.mapObjects.get(r.map.mapClass.id);a.splice(a.indexOf(r),1),delete this.core.textLabelsByPolygonId[n.id],delete this.flatLabels[n.id],delete d(this,Do)[n.map.id],this.core.tryRendering()}setAppearance(e,t){let n=this.flatLabels[e.id];if(n){if(Object.keys(t).length===1&&t.color!=null)n.baseColor=t.color,n.setColor(t.color);else{let r=n.fullText;this.removeLabel(e),this.labelPolygon(e,r,{appearance:(0,pI.default)(t,{height:n.height,margin:n.margin/n.mapScale,color:n.color,hoverColor:n.hoverColor,fontSize:n.fontSize/n.mapScale,font:n.font,scaleMin:n.scaleMin,scaleStep:n.scaleStep})})}this.core.tryRendering()}}setHoverColorForAll(e){d(this,Oa).appearance||(d(this,Oa).appearance={}),d(this,Oa).appearance.hoverColor=e;for(let t in this.flatLabels)this.flatLabels.hasOwnProperty(t)&&this.flatLabels[t].setHoverColor(e)}removeAllLabels(){A(this,Oo,!1),Array.from(this.core.mapObjects.values()).forEach(e=>{e.textObjects.forEach(t=>t.removeSelf()),e.labels.clear(),e.textObjects=[]}),this.core.textLabelsByPolygonId={},this.flatLabels={},this.labeledPolygons={},A(this,Do,{}),this.core.tryRendering()}};Oo=new WeakMap,N2=new WeakMap,Do=new WeakMap,Oa=new WeakMap,Tp=new WeakSet,W7=l(function(e){var r;let t=[],n=dI(this.core,e,this.labeledPolygons,{...d(this,Oa),locations:((r=d(this,Oa))==null?void 0:r.locations)||this.core.venue.getCollectionItemById("maps",e.id).locations});for(let a=0,o=n.length;a<o;++a){let s=n[a];t.push(Z(this,Mp,X7).call(this,s))}return d(this,Do)[e.id]=!0,t},"#processLabelsForMap"),Mp=new WeakSet,X7=l(function(e){let t=this.core.mapObjects.get(e.polygon.map.id),n=new Bh(e,this.core.venue,t,sY,this.core.polygonMeshesById,this.core.textLabelsByPolygonId,lY,this.core,d(this,N2));return e.polygon&&this.core.textLabelsByPolygonId[e.polygon.id]&&this.removeLabel(e.polygon,{warnOnLabelAllLocations:!1}),this.flatLabels[e.polygon.id]=n,t.addPendingLowPriorityTask("addFlatLabel",()=>{n.create(),this.core.tryRendering()}),this.core.textLabelsByPolygonId[e.polygon.id]=n,n},"#renderLabel"),l(Q7,"FlatLabelsController");var Y7=Q7,Z7=Y7;y();function cY(i){return typeof i!="string"}l(cY,"isMIPolygon");function fI(i,e){return i.polygonMeshesById[ut(e)]}l(fI,"getPolygonMesh");var uY="#4ca1fc",Ne,k2,mI,Ep,J7,B2,gI,wp,$7,t9=class t9{constructor(e){w(this,k2);w(this,Ep);w(this,B2);w(this,wp);w(this,Ne,void 0);A(this,Ne,e)}async setPolygonColor(...e){var r;let[t]=e;if(fI(d(this,Ne),t)===void 0){let a=xn(t,d(this,Ne).venue.polygons);if(a!==void 0&&a.map.id!==null&&((r=d(this,Ne).mapObjects.get(a.map.id))!=null&&r.object)){await Z(this,k2,mI).call(this,...e);return}else{F.error("Cannot set color of polygon "+(a==null?void 0:a.id)+", could be bad polygon or data mismatch.");return}}Z(this,Ep,J7).call(this,...e)}clearPolygonColor(e){var r;let t=e;typeof e=="string"&&(t=d(this,Ne).venue.getCollectionItemById("polygons",e));let n=d(this,Ne).polygonMeshesById[t.id];n&&(n._MIOriginalMaterial&&((n.material.length?n.material:[n.material]).forEach(a=>Mo(a)),n.material=n._MIOriginalMaterial,delete n._MIOriginalMaterial),delete d(this,Ne).highlightedPolygons[t.id],((r=d(this,Ne).loadOptions)==null?void 0:r.mapRenderStrategy)==="SINGLE_GEOMETRY"&&(n.visible=!1),d(this,Ne).tryRendering())}clearAllPolygonColors(){let e=Object.keys(d(this,Ne).highlightedPolygons);for(let t=0,n=e.length;t<n;++t)this.clearPolygonColor(e[t]);d(this,Ne).highlightedPolygons={},d(this,Ne).tryRendering(),d(this,Ne).renderer.disposeOfRenderLists()}setPolygonOutlineColor(e){d(this,Ne).renderer.implementation.effectComposer.setPolygonOutlineColor(e),d(this,Ne).tryRendering()}addPolygonOutline(e){if(d(this,Ne).polygonMeshesById[e.id]===void 0){let n=xn(e,d(this,Ne).venue.polygons);if(n!==void 0&&n.map.id!==null&&d(this,Ne).mapObjects.get(n.map.id).object!==null){Z(this,B2,gI).call(this,n);return}else{F.error("Cannot outline the polygon "+(n==null?void 0:n.id)+", could be bad polygon or data mismatch.");return}}Z(this,wp,$7).call(this,e)}removePolygonOutline(e){let t=d(this,Ne).polygonMeshesById[e.id];d(this,Ne).outlinedPolygons.delete(e.id),d(this,Ne).renderer.implementation.effectComposer.removeSelectionForOutline(t),d(this,Ne).tryRendering()}removeAllPolygonOutlines(){for(let e of d(this,Ne).outlinedPolygons.values())this.removePolygonOutline(e)}};Ne=new WeakMap,k2=new WeakSet,mI=l(async function(...e){var a;let[t]=e,n=cY(t)?t.map.id:(a=xn(t,d(this,Ne).venue.polygons))==null?void 0:a.map.id;if(!n){F.error("Cannot set color of polygon ".concat(ut(t)," due to missing mapId for polygon"));return}let r=d(this,Ne).mapObjects.get(n);if(!r){F.error("Cannot set color of polygon ".concat(ut(t)," due to map object is missing ").concat(n));return}await r.load(),Z(this,Ep,J7).call(this,...e)},"#setPolygonColorLater"),Ep=new WeakSet,J7=l(function(...e){var s;let[t,n,{highlighted:r=!0,visible:a=!0}={}]=e,o=fI(d(this,Ne),t);if(o!=null){if(r){let u=ut(t);d(this,Ne).highlightedPolygons[u]=n}o._MIOriginalMaterial||(o._MIOriginalMaterial=o.material.length?[...o.material]:o.material);let c=(o.material.length?o.material:[o.material]).map(u=>{let h=u.clone();return h.color.set(n||uY),h});c.length===1?o.material=c[0]:o.material=c,((s=d(this,Ne).loadOptions)==null?void 0:s.mapRenderStrategy)==="SINGLE_GEOMETRY"&&(o.visible=a),d(this,Ne).tryRendering()}else{F.error("Cannot set color of polygon "+ut(t)+", could be bad polygon or data mismatch.");return}},"#setPolygonColorNow"),B2=new WeakSet,gI=l(function(e){d(this,Ne).mapObjects.get(e.map.id).load().then(()=>{d(this,Ne).mapObjects.get(e.map.id).elements&&d(this,Ne).mapObjects.get(e.map.id).loadPolygonNow(e.id),Z(this,wp,$7).call(this,e)})},"#addPolygonOutlineLater"),wp=new WeakSet,$7=l(function(e){var n;let t=d(this,Ne).polygonMeshesById[e.id];if(t!=null)d(this,Ne).outlinedPolygons.set(e.id,e),d(this,Ne).renderer.implementation.effectComposer.addSelectionForOutline(t),((n=d(this,Ne).loadOptions)==null?void 0:n.mapRenderStrategy)==="SINGLE_GEOMETRY"&&(t.visible=!0),d(this,Ne).tryRendering();else{F.error("Cannot outline the polygon "+e.id+", could be bad polygon or data mismatch.");return}},"#addPolygonOutlineNow"),l(t9,"PolygonColorsController");var K7=t9,e9=K7;y();var Hr,r9=class r9{constructor(e){w(this,Hr,void 0);A(this,Hr,e)}setPolygonHoverColor(e,t){let n=ut(e);n&&(d(this,Hr).polygonHoverColorsById[n]=new Ee(t))}clearPolygonHoverColor(e){let t=ut(e);t&&(delete d(this,Hr).polygonHoverColorsById[t],d(this,Hr).eventSystem.currentHover===t&&d(this,Hr).eventSystem.onPolygonHoverOver(t))}clearAllPolygonHoverColors(){for(let e in d(this,Hr).polygonHoverColorsById)this.clearPolygonHoverColor(e);d(this,Hr).polygonHoverColorsById={}}};Hr=new WeakMap,l(r9,"PolygonHoverColorsController");var i9=r9,n9=i9;y();var Lo,s9=class s9{constructor(e){w(this,Lo,void 0);A(this,Lo,e)}addInteractivePolygon(e){let t=ut(e);d(this,Lo).interactivePolygons[t]=!0}addInteractivePolygonsForAllLocations(e){e||(e={});let t=e.excludeTypes||[],r=(e.locations||d(this,Lo).venue.locations.slice()).filter(o=>!t.includes(o.type)),a={};for(let o=0,s=r.length;o<s;++o){let u=r[o].polygons;for(let h=0,m=u.length;h<m;++h){let f=u[h];a[f.id]||(a[f.id]=!0,this.addInteractivePolygon(f))}}}removeInteractivePolygon(e){let t=ut(e);delete d(this,Lo).interactivePolygons[t]}removeAllInteractivePolygons(){for(let e in d(this,Lo).interactivePolygons)this.removeInteractivePolygon(e)}};Lo=new WeakMap,l(s9,"PolygonInteractionController");var a9=s9,o9=a9;y();var Xi,u9=class u9{constructor(e){w(this,Xi,void 0);A(this,Xi,e)}createTooltip(e,t,n){return this.createTooltipInternal({nodeOrCoordinate:e,contentHtml:t,options:n})}createCustomTooltip(e,t,n,r){return this.createTooltipInternal({nodeOrCoordinate:e,html:t,selector:n,options:r})}createTooltipInternal({nodeOrCoordinate:e,html:t,contentHtml:n,selector:r,options:a}){let o=e.map.id,s=d(this,Xi).mapObjects.get(o),c=0;if(e instanceof yi){let h=e.polygon;h!=null&&(c=h.geometry.scale.z*Math.max(s.mapClass.width,s.mapClass.height)/1e3)}let u=new Ws({...a,map:o,position:{nodeOrCoordinate:e,height:c},html:t,contentHtml:n,selector:r});return d(this,Xi).smartCollisionEngine.add(u.id,u),s.tooltips.add(u),d(this,Xi).taskScheduler.scheduleTask(new bt({name:"addTooltip",callback:()=>{u.enable(),d(this,Xi).smartCollisionEngine.debouncedUpdate()}})),d(this,Xi).tryRendering(),u}removeTooltip(e){d(this,Xi).smartCollisionEngine.remove(typeof e=="string"?e:e.id),d(this,Xi).smartCollisionEngine.debouncedUpdate(),d(this,Xi).tryRendering()}removeAllTooltips(){Array.from(d(this,Xi).mapObjects.values()).forEach(e=>{e.tooltips.forEach(t=>{d(this,Xi).smartCollisionEngine.remove(t.id)})}),d(this,Xi).tryRendering()}};Xi=new WeakMap,l(u9,"TooltipsController");var l9=u9,c9=l9;y();var Bn,qo,p9=class p9{constructor(e){w(this,Bn,void 0);w(this,qo,void 0);A(this,Bn,e),A(this,qo,new f9({scene:d(this,Bn).scene,tryRendering:()=>d(this,Bn).tryRendering(),getPolygonMeshFromId:t=>d(this,Bn).polygonMeshesById[t]}))}updateClosedStateForPolygon(e){if(e==null||e.polygon==null)return;let t=ut(e.polygon);if(typeof t!="string"){F.error("Invalid or no polygon provided. Expecting a MappedinPolygon or a string id. Received: ".concat(e.polygon," of type ").concat(typeof e.polygon));return}let n;if(e.closed!=null)n=!!e.closed;else if(e.open!=null)n=!e.open;else return;let r=xn(t,d(this,Bn).venue.polygons),a=(r==null?void 0:r.map.id)||d(this,Bn).currentMap;if(!a){F.error("Update closed state for polygon failed due to missing active map");return}d(this,Bn).mapObjects.get(a).addPendingMapLoadedTask("Set closed status of polygon ".concat(t," to ").concat(n),()=>{n?d(this,qo).markPolygonAsClosed(t):d(this,qo).markPolygonAsOpen(t)})}openAllPolygons(){[...d(this,Bn).mapObjects.values()].reduce((t,n)=>(t.set(n,d(this,Bn).venue.polygons.filter(r=>r.map===n.mapClass)),t),new Map).forEach((t,n)=>{n.addPendingMapLoadedTask("Open all polygons belonging to map ".concat(n.id),()=>t.forEach(r=>d(this,qo).markPolygonAsOpen(r.id)))})}destroy(){d(this,qo).dispose()}};Bn=new WeakMap,qo=new WeakMap,l(p9,"PolygonStatesController");var d9=p9,h9=d9;y();var Zi,v9=class v9{constructor(e){w(this,Zi,void 0);A(this,Zi,e)}enableImageFlippingForAllLocations(e){d(this,Zi).imageFlippingEnabled=!0,e||(e={});let t=e.excludeTypes||[],r=(e.locations||d(this,Zi).venue.locations.slice()).filter(function(o){return t.indexOf(o.type)===-1}),a={};for(let o=0,s=r.length;o<s;++o){let u=r[o].polygons;for(let h=0,m=u.length;h<m;++h){let f=u[h];a[f.id]||(a[f.id]=!0,this.enableImageFlippingForPolygon(f))}}}enableImageFlippingForPolygon(e){let t=d(this,Zi).mapObjects.get(e.map.id),n=0,a=d(this,Zi).venue.maps.find(o=>o.id===d(this,Zi).currentMap).perspectiveId;a&&e&&e.perspectives&&e.perspectives[a]&&e.perspectives[a].image&&e.perspectives[a].image.rotation&&!isNaN(e.perspectives[a].image.rotation.z)?n=e.perspectives[a].image.rotation.z*(Math.PI/180):e&&e.image&&e.image.rotation&&!isNaN(e.image.rotation.z)&&(n=e.image.rotation.z*(Math.PI/180)),d(this,Zi).imageFlippingCache[e.map.id]=d(this,Zi).imageFlippingCache[e.map.id]||[],d(this,Zi).imageFlippingCache[e.map.id].push([e.id,n]),t.mapClass.id===d(this,Zi).currentMap&&t.load().then(()=>{t.enableImageFlipping(e.id,n)})}disableImageFlippingForAllPolygons(){let e=Object.keys(d(this,Zi).mapObjects);for(let t=0,n=e.length;t<n;t++){let r=e[t];d(this,Zi).mapObjects.get(r).disableAllImageFlipping()}}};Zi=new WeakMap,l(v9,"PolygonImagesController");var m9=v9,g9=m9;y();var Da,Cp,b9=class b9{constructor(e){w(this,Da,void 0);w(this,Cp,new Set);A(this,Da,e)}createThreeJSMarker(e){let t=d(this,Da).currentMap;e.mapOrMapId!=null&&(t=typeof e.mapOrMapId=="string"?e.mapOrMapId:e.mapOrMapId.id);let r=d(this,Da).mapObjects.get(t).addThreeJSMarker(e);return d(this,Cp).add(r),d(this,Da).tryRendering(Re.ANIMATED),r}removeThreeJSMarker(e){if(e._mapId==null)return!1;let t=!1,n=d(this,Da).mapObjects.get(e._mapId);return n&&(t=n.removeThreeJSMarker(e)),d(this,Da).tryRendering(Re.ANIMATED),t}removeAllThreeJSMarkers(){d(this,Cp).forEach(e=>{this.removeThreeJSMarker(e)})}};Da=new WeakMap,Cp=new WeakMap,l(b9,"ThreeDMarkersController");var y9=b9,Ap=y9;y();var Fn,Pp,F2,vI,M9=class M9 extends Li{constructor(t){super();w(this,F2);p(this,"core");p(this,"blueDotCore");w(this,Fn,void 0);w(this,Pp,void 0);this.core=t,A(this,Pp,Rh(this.core.venue,this.core.options));let n=new Ap(this.core);A(this,Fn,new w9({threeDMarkerLayer:n,core:this.core})),this.core.eventSystem.setBlueDotManager(d(this,Fn)),this.blueDotCore=E9({data:this.core.venue,core:this.core,manager:d(this,Fn)});let r=C9({core:this.core,blueDotManager:d(this,Fn),controller:this.blueDotCore,data:this.core.venue});r.on("isFollowingChanged",({newValue:o})=>{o===!1&&this.core.state==="follow"&&(this.core.state="explore",this.core.publish(12,{state:"explore"}))}),this.core.on(14,o=>{r.isFollowing=o,this.blueDotCore.enabled&&r.isFollowing&&r.centerBlueDot()}),this.core.on(13,({x:o,y:s})=>{d(this,Fn).publish("update-position",{x:o,y:s})});let a=hn(Z(this,F2,vI).bind(this),300);this.core.on(11,a),this.core.on(10,o=>{d(this,Fn).setBlueDotSizeFromZoom(o)})}enable(t){this.blueDotCore.enableBlueDot(t)}disable(){this.blueDotCore.disableBlueDot()}};Fn=new WeakMap,Pp=new WeakMap,F2=new WeakSet,vI=l(function(){if(!d(this,Fn).blueDots)return;let t=d(this,Fn).blueDots.filter(c=>c.handle._mapId===this.core.currentMap)[0];if(t==null)return;let n=t.handle.object.position.clone(),r=this.core.mapObjects.get(d(this,Pp).id||this.core.venue.venue.defaultMap);if(!r)throw new Error("Unable to retrieve the target map");let a=n.applyMatrix4(r.object.matrix).project(this.core.cameraObject),o=(a.x+1)/2*this.core.canvasWidth,s=(-a.y+1)/2*this.core.canvasHeight;d(this,Fn).publish("update-position",{x:o,y:s})},"#publishBlueDot"),l(M9,"BlueDotController");var x9=M9,T9=x9;y();y();var yI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAkklEQVRoge3awQ3AIAxD0VAMYf+F0yUixbL8JshXuLSwIqJCwDc9QBeZEOy9p2doAQDTM7TQ2cg5Z3qGFjpHS2YjDiGDe+/0DC0cwkYpJKdnaIFMkY1kymzEIVQcwsYhbPDem56hhc5GHELGIWwcwsYhbJS+2R1CxSFsdH5iO4SMr97Y6FxPqxytVVV+HcTEIWx+9mcIqHSOm9QAAAAASUVORK5CYII=";y();y();var P9=class P9{constructor(e){this.active=!1,this.positions=[],this.positionIndex=0,this.timerList=[],this.timeElapsed=0,this.startTime=void 0,this.startPos=0,this.endPos=0,this.smoothingType=void 0,this.isActive=this.isActive.bind(this),this.setCallbacks=this.setCallbacks.bind(this),this.watchPosition=this.watchPosition.bind(this),this.sendPositionResponse=this.sendPositionResponse.bind(this),this.start=this.start.bind(this),this.pause=this.pause.bind(this),this.speed=e.speed||10,window.positions&&this.setPositions(window.positions)}isActive(){return this.active}setPositions(e){this.reset(),this.positions=e,this.endPos=e.length-1}setCallbacks(e,t,n){this.successCallback=e,this.errorCallback=t,this.options=n}clearWatch(){this.reset()}watchPosition(e,t,n){this.setCallbacks(e,t,n),this.start()}sendPositionResponse(e){switch(this.timeElapsed=Date.now()-this.startTime,e.type){case"ERROR":this.errorCallback({code:e.code,message:e.message,timestamp:Date.now()});break;case"ANNOTATION":F.log("Annotation Update: ".concat(e.annotation));break;case"SUCCESS":default:this.successCallback({coords:e.coords,timestamp:e.timestamp,positionIndex:this.positionIndex});break}this.positionIndex===this.endPos?this.reset():this.positionIndex+=1}start(){let e=0;this.positions[this.positionIndex-1]?e=this.positions[this.positionIndex-1].timestamp:this.positions[0].timestamp>1e6&&(e=this.positions[0].timestamp),this.startTime=Date.now(),this.positions.slice(this.positionIndex,this.endPos+1).forEach(t=>{let{timestamp:n}=t;this.timerList.push(setTimeout(()=>this.sendPositionResponse(t),(n-e)/this.speed))}),this.active=!0}pause(){this.timerList.forEach(e=>{clearTimeout(e)}),this.timerList=[],this.active=!1}reset(){this.pause(),this.positionIndex=this.startPos}};l(P9,"FakeGeolocation");var A9=P9,bI=A9;y();var S9={0:{actions:{5:1}},1:{actions:{0:2,1:3,3:4,4:0},markerState:0},2:{actions:{1:3,3:4,2:1,4:0},markerState:1},3:{actions:{0:2,3:4,2:1,4:0},markerState:2},4:{actions:{0:2,1:3,3:4,2:1,4:0},markerState:3}};var hY=l(()=>{let i=To({state:0,markerState:0,transition:e=>{if(S9[i.state]==null)return;let t=S9[i.state].actions[e];t!=null&&i.state!==t&&(i.state=t,i.markerState=S9[i.state].markerState)},reset:()=>{i.state=0}});return i},"StateMachine"),TI=hY;y();var I9=l((i,e,t,n=1.5)=>{let r=t?[t]:e,a=!1;return r.forEach(o=>{Math.abs(i.x)<o.width*n&&Math.abs(i.y)<o.height*n&&(a=!0)}),!a},"isOutsideMap");y();var q9=et(wI());y();function _9(i){return i===null||typeof i=="number"}l(_9,"isValidLevel");var D9=class D9{constructor(e=2){this.nextLevel=void 0,this.inertia=e,this.levelConfirmations=0}_resetConfirmations(){this.levelConfirmations=0,this.nextLevel=void 0}_resetFilter(){this._resetConfirmations(),this.previousLevel=void 0}filter(e){let t=null,n=e===void 0?null:e;if(!_9(n))throw new TypeError("The argument given to filter() must be null, undefined, or a number");return n===null?this._resetFilter():(_9(this.previousLevel)&&n!==this.previousLevel?_9(this.nextLevel)&&n===this.nextLevel?this.levelConfirmations>=this.inertia?(this._resetConfirmations(),t=n):(this.levelConfirmations++,t=this.previousLevel):(this.levelConfirmations++,this.nextLevel=n,t=this.previousLevel):t=n,this.previousLevel=t),t}};l(D9,"LevelFilter");var O9=D9,z2=O9;var gY=1.4,L9={NONE:"none",KALMAN:"kalman"},vY=l(i=>({floorLevel:i.coords.floorLevel,timestamp:i.timestamp,latitude:i.coords.latitude,longitude:i.coords.longitude,accuracy:i.coords.accuracy,speed:-1,type:i.type}),"parseLocation"),N9=class N9{constructor(e){this.smooth=this.smooth.bind(this),this.smoothingType=window.mappedin&&window.mappedin.smoothingType||L9.KALMAN,this.lastLocation=null,this.levelFilter=e}formatLocation(e){return{type:"SUCCESS",timestamp:e.timestamp,coords:{latitude:e.latitude,longitude:e.longitude,accuracy:e.accuracy,floorLevel:this.levelFilter.filter(e.floorLevel)}}}kalman(e,t){if(!t)this.latitudeKF=new q9.default({R:1,Q:e.accuracy}),this.longitudeKF=new q9.default({R:1,Q:e.accuracy});else{let n=e.timestamp-t.timestamp,r=gY*n/1e3;this.latitudeKF.setProcessNoise(r),this.longitudeKF.setProcessNoise(r),this.latitudeKF.setMeasurementNoise(e.accuracy),this.longitudeKF.setMeasurementNoise(e.accuracy)}return{...e,latitude:this.latitudeKF.filter(e.latitude),longitude:this.longitudeKF.filter(e.longitude)}}setSmoothingType(e){this.smoothingType=e}smooth(e){let t;switch(this.smoothingType){case L9.KALMAN:return t=this.kalman(vY(e),this.lastLocation),this.lastLocation=t,this.formatLocation(t);case L9.NONE:return e;default:return e}}reset(){this.lastLocation=null,this.levelFilter=new z2(this.levelFilter.inertia)}};l(N9,"PositionSmoothing");var R9=N9,CI=R9;y();var j2=l(i=>i*Math.PI/180,"toRadians"),yY=l(i=>i*180/Math.PI,"toDegrees"),bY=l(function(){let r,a=To({bearingExpired:!1,previousLat:null,previousLong:null,calculateHeading(o,s,c){a.previousLat||(a.previousLat=o),a.previousLong||(a.previousLong=s);let u=a.previousLat-o,h=a.previousLong-s,m=(u**2+h**2)**.5,f=c&&c.coords.accuracy<20,g=parseFloat(m.toFixed(5))>0;if(f&&g){a.resetBearingExpirationTimer();let b=a.getBearing([a.previousLat,a.previousLong],[o,s]);return a.previousLat=o,a.previousLong=s,b}return!1},getBearing([o,s],[c,u]){let h=j2(o),m=j2(s),f=j2(c),g=j2(u),b=Math.sin(g-m)*Math.cos(f),M=Math.cos(h)*Math.sin(f)-Math.sin(h)*Math.cos(f)*Math.cos(g-m),x=Math.atan2(b,M);return x=yY(x),(x+360)%360},resetBearingExpirationTimer(){r!==null&&a.clearBearingExpirationTimer(),r=setTimeout(()=>{a.bearingExpired=!0,a.clearBearingExpirationTimer()},5e3)},clearBearingExpirationTimer(){r!==null&&(clearTimeout(r),r=null)}});return a},"BlueDotBearing"),AI=bY;var H2="#2266ff";var B9=class B9 extends Rn{constructor(){super(...arguments);p(this,"update",l(t=>{this.publish(0,t)},"update"));p(this,"throwError",l(t=>{this.publish(1,t)},"throwError"))}};l(B9,"PositionUpdater");var G2=B9,PI={showBearing:!1,allowImplicitFloorLevel:!1,smoothing:!0,positionUpdater:void 0,baseColor:H2,useRotationMode:!1},Sp,F9=class F9 extends G2{constructor(){super(...arguments);w(this,Sp,-1)}start(t){A(this,Sp,globalThis.navigator.geolocation.watchPosition(this.update,this.throwError,t))}stop(){globalThis.navigator.geolocation.clearWatch(d(this,Sp))}};Sp=new WeakMap,l(F9,"GeolocationUpdater");var k9=F9,xY=3e4,TY=1e4,_I=l(({data:i,core:e,manager:t})=>{let{maps:n,venue:r}=i,a={enableHighAccuracy:!0},o=TI(),s,c=l(()=>{s!=null&&(clearTimeout(s),s=null)},"clearFallbackToGPSTimer"),u,h,m=n.length>1,f=!1,g,b=AI();b.on("bearingExpiredChanged",q=>{q.newValue&&(P.bearing=null,x(P.userPosition,null))});let M=l((q,D,U)=>{typeof q=="string"&&(E(D,U),P.stateMachine.transition(2),x(null,null))},"setError"),x=l((q,D,U)=>{if(P.userPosition=q,D!=null){P.userMap=D;let R=(P.userMap||e.venue.maps.find(B=>B.id===e.currentMap)).createCoordinate(q.coords.latitude,q.coords.longitude);P.nearestNode=U||R.nearestNode}P.userData={state:o.state,position:P.userPosition,map:P.userMap,bearing:P.bearing,nearestNode:P.nearestNode,forceBlueDot:P.forceBlueDot},e.blueDot.publish("POSITION_UPDATE",{nearestNode:P.nearestNode,bearing:P.bearing,map:P.userMap,position:P.userPosition})},"updateInternalState"),T=l(q=>{M("position-error",q.code,q.message),F.warn("ERROR(".concat(q.code,"): ").concat(q.message))},"onPositionError");function E(q,D){P.state={reason:q,message:D,markerVisibility:o.markerState,name:o.state},e.blueDot.publish("STATE_CHANGE",P.state)}l(E,"setReason");let S=l((q,D)=>{let U=n,R=q.coords.latitude,B=q.coords.longitude;D!=null&&(U=n.filter(G=>G.elevation===D));let j=U.reduce((G,Q)=>{let X=Q.createCoordinate(R,B),ne=X.nearestNode,ue=Q.createCoordinateByXY(ne.x,ne.y).absoluteDistanceTo(X);return ue<G[1]?[Q,ue,ne]:G},[U[0],1/0,null]);return{targetMap:j[0],nearestNode:j[2]}},"determineCurrentMapFromCoordinates"),_=l(q=>{var D,U;{let R=q.coords.floorLevel;window.floorLevel!==void 0&&(R=window.floorLevel);let B={timestamp:q.timestamp,type:q.type,coords:{accuracy:q.coords.accuracy,latitude:q.coords.latitude,longitude:q.coords.longitude,floorLevel:R},bearing:q.bearing};R!=null&&(f=!0),window.mappedin&&(Array.isArray(window.mappedin.bluedotCaptureData)?window.mappedin.bluedotCaptureData.push(B):window.mappedin.bluedotCaptureData=[B]),h&&clearTimeout(h),h=setTimeout(()=>{o.transition(3),E(),P.positionSmoothing.reset(),x(P.userPosition,null)},P.locationUncertainTimeoutPeriod);let G=e.getPositionLatLon(B.coords.latitude,B.coords.longitude),Q=I9(G,n);if(B.coords.latitude==null||B.coords.longitude==null){P.positionSmoothing.reset(),E(1);return}if(Q){P.positionSmoothing.reset(),P.stateMachine.transition(2),E(0),P.userData={state:o.state,position:null,map:null,bearing:null,nearestNode:null,forceBlueDot:!1};return}let ne=(D=P.enableBlueDotOptions)==null?void 0:D.smoothing,$;ne===!0||ne===void 0&&B.coords.floorLevel==null?$=P.positionSmoothing.smooth(B):$=B,R=$.coords.floorLevel;let ue=$.coords.latitude,be=$.coords.longitude;if((U=P.enableBlueDotOptions)!=null&&U.showBearing){let Fe=q.bearing;if(typeof Fe=="number")P.bearing=Fe;else{let Ce=b.calculateHeading(ue,be,$);Ce!==!1&&(P.bearing=Ce)}}let ee=null,ge=null,de=r.isMultiBuilding;if(de&&r.slug!=="hudson-yards"&&R!=null){let Fe=S($,R);ee=Fe.targetMap,ge=Fe.nearestNode}if(r.slug==="hudson-yards"){let Fe=P.userMap;if(R==null&&I9(G,n,Fe,.55)&&(ee=n.filter(Ce=>Ce.id==="5b5f5becadd5444692000001")[0]),R!=null){let Ce=n.filter(He=>He.elevation===R);Ce.length>1&&(Ce=Ce.filter(He=>He.group==="5b5f20e3f3ea231068000000")),ee=Ce[0]}}if(!ee&&R!=null){let Fe=n.filter(Ce=>Ce.elevation===R);Fe.length===1&&(ee=Fe[0])}if(P.forceBlueDot&&P.userMap&&!f?ee=P.userMap:m||(ee=n[0]),ee||P.forceBlueDot&&o.state!==3)o.transition(1),c();else if(o.state===3){u={...$},s==null&&(s=setTimeout(()=>{if(o.transition(0),de){let Fe=S(u);ee=Fe.targetMap,ge=Fe.nearestNode}x(u,ee,ge),s=null},P.fallbackToGPSTimeoutPeriod));return}else o.transition(0);E(),x($,ee)}},"onPositionReceived"),P=To({bearing:null,state:{reason:void 0,message:void 0,markerVisibility:o.markerState,name:o.state},positionUpdater:null,positionSmoothing:new CI(new z2),locationUncertainTimeoutPeriod:xY,fallbackToGPSTimeoutPeriod:TY,userMap:n.find(q=>q.id===r.defaultMap),userPosition:null,nearestNode:null,forceBlueDot:!1,userData:null,enabled:!1,stateMachine:o,enableBlueDotOptions:PI,enableBlueDot:q=>{var D,U,R,B,j;P.enableBlueDotOptions={...PI,...q},P.enabled=!0,g==null&&(P.enableBlueDotOptions&&P.enableBlueDotOptions.allowImplicitFloorLevel&&(P.forceBlueDot=P.enableBlueDotOptions.allowImplicitFloorLevel),((D=P.enableBlueDotOptions)==null?void 0:D.positionUpdater)!=null?(P.positionUpdater=P.enableBlueDotOptions.positionUpdater,typeof((U=P==null?void 0:P.positionUpdater)==null?void 0:U.start)=="function"&&((R=P==null?void 0:P.positionUpdater)==null||R.start())):(P.positionUpdater=new k9,(j=(B=P.positionUpdater)==null?void 0:B.start)==null||j.call(B,a)),P.positionUpdater.on(0,_),P.positionUpdater.on(1,T),o.transition(5))},disableBlueDot(){var q,D,U,R;P.enabled=!1,typeof((q=P==null?void 0:P.positionUpdater)==null?void 0:q.stop)=="function"&&((D=P==null?void 0:P.positionUpdater)==null||D.stop()),(U=P.positionUpdater)==null||U.off(0,_),(R=P.positionUpdater)==null||R.off(1,T),o.transition(4),t.cleanup()}});return P},"BlueDot");_I.FakeGeolocation=bI;var E9=_I;var el={GHOST:"ghost",GREY:"grey",BLUE:"blue"},La=l((i,e)=>new Oi({color:i,transparent:!0,depthTest:!1,opacity:e}),"makeMeshBasicMaterial"),OI=l(i=>{let e=new jl,t=0;for(e.moveTo(i,0);t<=Math.PI*2;)e.lineTo(Math.cos(t)*i,Math.sin(t)*i),t+=Math.PI/16;return e},"drawCircle"),MY=l(({baseColor:i=H2})=>({outer:{blue:La(16777215,1),ghost:La(16777215,.5)},inner:{blue:La(i,1),grey:La(14540253,1),ghost:La(i,.5)},aura:{inner:La(i,.2),outer:La(i,.3)},bearing:{blue:La(i,.7),ghost:La(i,.4)}}),"makeMaterials"),DI=l((i,e)=>{let t=OI(i);if(e&&e<i){let n=OI(e);t.holes=[n]}return new $a(t,{depth:0,bevelEnabled:!1,steps:2})},"createAnnularGeometry"),U9=l((i,e,t)=>{let r=Math.sqrt(Math.pow(i,2)+Math.pow(e,2))/t;return r>1?r=1:r<0&&(r=0),new he(0,r)},"generateRadialUV"),EY=l(i=>({generateTopUV:(e,t,n,r,a)=>{let o=t[n*3],s=t[n*3+1],c=t[r*3],u=t[r*3+1],h=t[a*3],m=t[a*3+1];return[U9(o,s,i),U9(c,u,i),U9(h,m,i)]},generateSideWallUV:()=>[new he(0,1),new he(0,1),new he(0,1),new he(0,1)]}),"radialUVGenerator"),wY=l((i,e,t=0)=>{if(Math.abs(i)>=Math.PI)throw new Error("Sector angle too wide!");let n=t/Math.tan(i/2),r=t/Math.sin(i/2),a=r+e,o=10,s=new jl;s.moveTo(r*Math.cos(i/2)-n,r*Math.sin(i/2));for(let c=0;c<o;c++)s.lineTo(a*Math.cos(i/2-i/o*c)-n,a*Math.sin(i/2-i/o*c));for(let c=0;c<o;c++)s.lineTo(t*Math.cos(Math.PI/-2+Math.PI/o*c),t*Math.sin(Math.PI/-2+Math.PI/o*c));return new $a(s,{depth:1,bevelEnabled:!1,UVGenerator:EY(e)})},"createSectorGeometry"),LI=l(function(i,e=0,t=0,{baseColor:n=H2}){let r,a,o=new Zt,s=new Zt,c=MY({baseColor:new Ee(n)});if(c.outer.grey=c.outer.blue,e>=0){let M=new CT(1,1,10,32),x=c.aura.inner;r=new qe(M,x),r.position.set(0,0,0),r.rotation.set(Math.PI/2,0,0),r.scale.set(e,1,e),s.add(r)}let u=wY(Math.PI/6,120,30),h=c.bearing[i];h&&new Pn().load(yI,M=>{h.colorSpace=rt,h.alphaMap=M,h.needsUpdate=!0}),a=new qe(u,h),a.rotation.set(0,0,t),s.add(a);let m=DI(30,22.5),f=DI(22.5),g=new qe(m,c.outer[i]),b=new qe(f,c.inner[i]);return o.add(g),o.add(b),s.add(o),[s,o,g,b,a,r].forEach(M=>{M.renderOrder=999,M.layers.set(Ct.ALWAYS_ON_TOP)}),{outerObject:s,radiusObject:r,dotObject:o,bearingObject:a}},"makeBlueDot"),CY=l((i,e,t)=>{let n=(e.x-t.x)**2+(e.y-t.y)**2,r=0;n&&(r=((i.x-e.x)*(t.x-e.x)+(i.y-e.y)*(t.y-e.y))/n),r>1&&(r=1),r<0&&(r=0);let a=e.x+r*(t.x-e.x),o=e.y+r*(t.y-e.y),s=Math.sqrt((i.x-a)**2+(i.y-o)**2);return{proportion:r,distance:s}},"distanceToSegment"),V9=l((i,e)=>i!=null?Y2(-i)-e+Math.PI/2:null,"getBearing"),Y2=l(i=>i*Math.PI/180,"degToRadians"),qI=l((i,e)=>{let t=Number.MAX_SAFE_INTEGER,n,r,a;for(let o=0;o<i.length-1;o++){let s=i[o],c=i[o+1],u=CY(e,s,c);u.distance<=t&&(t=u.distance,r=u.proportion,a=o,u.proportion>.5?n=c:n=s)}return{nearestNode:n,proportion:r,index:a}},"getNearestPathSegment"),RI=l((i,e,t)=>{let n=[],r=[];for(let m=0;m<i.length-1;m++){let f=i[m],g=i[m+1],b=g.x-f.x,M=g.y-f.y,x=Math.atan2(b,M);n.push(x);let T=Math.sqrt(b**2+M**2);r.push(T)}let a=[],o;for(let m=0;m<n.length;m++){let f=n[m],g=r[m];o==null?(o=f,a.push({angle:f,distance:g,nodes:[i[m]]})):Math.abs(o-f)>.2?(o=f,a.push({angle:f,distance:g,nodes:[i[m]]})):(a[a.length-1].distance+=g,a[a.length-1].nodes.push(i[m]))}a[a.length-1].nodes.push(i[i.length-1]);let s=t||100,c=l(()=>a.filter(m=>m.distance>=s).length,"validGroups");for(;!c();)s/=2;let u=a.find(m=>m.nodes.indexOf(e)>-1),h=a.indexOf(u);for(;h>0&&a[h].distance<s;)h-=1;return a[h].angle},"getHeadingOnPath"),NI=l((i,e,t,n,r=.8)=>{let o=t*(n?.05:0),s=e!=null?Math.cos(e-Math.PI/2)*o:0,c=e!=null?Math.sin(e-Math.PI/2)*o:0;return{position:{x:i.x-s,y:i.y-c},rotation:e||void 0,zoom:t,tilt:r}},"getCameraLookahead");var tl=et(Vr());var AY=2e3,PY=8,SY=65,IY=3,_Y={duration:2e3,easing:tl.default.Easing.Cubic.Out};function W2(i){return typeof i=="number"&&!isNaN(i)&&i>=0}l(W2,"isNonNegativeNumber");var OY=l((i,e,t)=>i<e?i:i<t?e:i*e/t,"ledge"),j9=class j9 extends Rn{constructor({threeDMarkerLayer:e,core:t,minRadius:n=PY,maxRadius:r=SY,radiusUpdateInterval:a=IY,radiusTweenOptions:o=_Y}){if(super(),this.threeDMarkerLayer=e,this.core=t,!W2(n))throw new Error("Expecting minRadius parameter to be a valid number >= 0. Provided: ".concat(n));if(this.minRadius=n,W2(r)){if(r<this.minRadius)throw new Error("Expecting maxRadius parameter to be >= minRadius parameter. Provided: ".concat(r,"; minRadius = ").concat(this.minRadius))}else throw new Error("Expecting maxRadius parameter to be a valid number >= 0. Provided: ".concat(r));if(this.maxRadius=r,!W2(a))throw new Error("Expecting radiusUpdateInterval parameter to be a valid number >= 0. Provided: ".concat(a));this.radiusUpdateInterval=a,this.radiusTweenOptions=o,this.state=null,this.prevRadius=null,this.radiusTween=null,this.prevBearing=null,this.bearingTween=null,this.currentX=null}computeNewRadius(e){if(!W2(e)||e<this.minRadius)return 0;if(e>=this.maxRadius)return this.maxRadius;if(this.radiusUpdateInterval===0)return e;{let t=e-this.minRadius,n=t%this.radiusUpdateInterval;return t-n+this.minRadius}}updateBlueDotSize(){this.blueDots&&this.blueDots.forEach(e=>{let t=this.core.controls.getZoomScaledMin(),n=t*3,r=t*5,a=OY(this.currentX,n,r)/2e3;e.dotObject.scale.set(a,a,a),e.bearing&&e.bearing.scale.set(a,a,a)})}setBlueDotSizeFromZoom(e){this.currentX=e,this.updateBlueDotSize()}update(e){var g,b,M,x,T,E,S;let t=e.mode||this.state.mode,n=e.mapId||e.map&&e.map.id||this.core.currentMap;e.bearing==null&&(this.prevBearing=null),this.positionTween&&this.positionTween.stop();let r=this.core.stackedMaps.currentState==="OVERVIEW",a=this.core.currentMap,s=((b=(g=this.core.options)==null?void 0:g.dynamicFocus)==null?void 0:b.baseMap)!=null?(T=(x=(M=this.core.options)==null?void 0:M.dynamicFocus)==null?void 0:x.baseMap)==null?void 0:T.id:null,c=a===s;this.state&&(t!==this.state.mode||n!==this.state.targetMap||r!==this.state.isStackedMapsOverview||c!==this.state.isDynamicFocusBaseMap)&&this.cleanup();let u=this.computeNewRadius(e.radius),h=this.core.mapObjects.get(n);if(!this.blueDots){let _=[];for(let P of this.core.mapObjects.values()){let q=h!=null&&P===h,D=h!=null&&h.mapClass.mapGroup.maps.includes(P.mapClass);if(q||!r&&D){let U=P.getPositionLatLon(e.coordinates.latitude,e.coordinates.longitude),R=P.id!==h.id&&!c&&t===el.BLUE?el.GHOST:t,B=LI(R,0,V9(e.bearing,this.core.venue.maps.find(G=>G.id===this.core.currentMap).getNorth()),{baseColor:e.baseColor});this.prevRadius=0;let j=this.threeDMarkerLayer.createThreeJSMarker({object:B.outerObject,mapOrMapId:P,position:U});_.push({handle:j,radius:B.radiusObject,dotObject:B.dotObject,bearing:B.bearingObject})}this.blueDots=_,this.currentX&&this.updateBlueDotSize()}}this.currentPositionLatLon?(this.positionTween=new tl.default.Tween(this.currentPositionLatLon).to({lat:e.coordinates.latitude,lon:e.coordinates.longitude},AY).easing(tl.default.Easing.Cubic.Out).onUpdate(_=>{this.currentPositionLatLon=_,this.blueDots.forEach(P=>{let q=P.handle._mapId,D=this.core.mapObjects.get(q),U=D.getPositionLatLon(_.lat,_.lon);D.translateChild(P.handle.object,U)}),this.core.tryRendering(Re.ALWAYS_ON_TOP)}),this.positionTween.start()):(this.currentPositionLatLon={lat:e.coordinates.latitude,lon:e.coordinates.longitude},(E=this.blueDots)==null||E.forEach(_=>{let P=_.handle._mapId,q=this.core.mapObjects.get(P),D=q.getPositionLatLon(e.coordinates.latitude,e.coordinates.longitude);q.translateChild(_.handle.object,D)})),Math.abs(u-this.prevRadius)>=Number.EPSILON&&(this.radiusTween!=null&&this.radiusTween.stop(),this.radiusTween=new tl.default.Tween({value:this.prevRadius}).to({value:u},this.radiusTweenOptions.duration).easing(this.radiusTweenOptions.easing).onUpdate(({value:_})=>{this.prevRadius=_,this.blueDots!=null&&this.blueDots.forEach(P=>{if(P.radius){let q=P.handle._mapId,D=this.core.mapObjects.get(q),U=_*D.getMapScale();P.radius.scale.set(U,1,U)}}),this.core.tryRendering(Re.ALWAYS_ON_TOP)}).start());let f=e.bearing;if(e.bearing!=null){if(this.prevBearing==null)this.prevBearing=e.bearing,this.setBearing(e.bearing);else if(Math.abs(f-this.prevBearing)>=Number.EPSILON){let _=((S=this.prevBearing)!=null?S:f)%360,P=f%360;Math.abs(_-P)>180&&(_>P?P+=360:_+=360),this.animateBearing(_,P)}}else this.blueDots!=null&&this.blueDots.forEach(_=>{_.bearing&&(_.bearing.visible=!1)});this.state={mode:t,targetMap:n,isStackedMapsOverview:r,isDynamicFocusBaseMap:c},this.core.tryRendering(Re.ALWAYS_ON_TOP)}animateBearing(e,t){this.bearingTween=new tl.default.Tween({value:e}).to({value:t},1e3).easing(tl.default.Easing.Cubic.Out).onUpdate(({value:n})=>{this.prevBearing=n,this.setBearing(n),this.core.tryRendering(Re.ALWAYS_ON_TOP)}).start()}setBearing(e){this.blueDots!=null&&this.blueDots.forEach(t=>{t.bearing&&(t.bearing.visible=!0,t.bearing.rotation.set(0,0,V9(e,this.core.venue.maps.find(n=>n.id===this.core.currentMap).getNorth())))})}getBlueDotForMap(e){if(!Array.isArray(this.blueDots))return;let t=(typeof e=="string"&&e.length>0?e:typeof e=="object"?e.id:void 0)||this.core.currentMap,n=this.blueDots.filter(r=>r.handle._mapId===t);if(n.length>0){let r=new z,a=new z;return n[0].dotObject.updateMatrixWorld(),n[0].dotObject.getWorldPosition(r),n[0].dotObject.getWorldScale(a),a.divideScalar(2),a.setZ(0),r.sub(a),n[0].dotObject}}cleanup(){this.blueDots&&(this.blueDots.forEach(e=>{e.handle._object.children.forEach(t=>{t.geometry?t.geometry.dispose():t.children.forEach(n=>{n.geometry.dispose()})}),this.threeDMarkerLayer.removeThreeJSMarker(e.handle)}),delete this.blueDots),this.state=null,this.positionTween!=null&&this.positionTween.stop(),this.radiusTween!=null&&this.radiusTween.stop()}};l(j9,"BlueDotManager");var z9=j9,w9=z9;y();var Yr,qa,il,W9=class W9 extends Li{constructor(t){super();p(this,"core");p(this,"currentAnimation");w(this,Yr,void 0);w(this,qa,void 0);w(this,il,void 0);p(this,"interactions",{set:t=>{(t==null?void 0:t.pan)!=null&&(this.core.controls.enablePan=t.pan),(t==null?void 0:t.zoom)!=null&&(this.core.controls.enableZoom=t.zoom),(t==null?void 0:t.rotationAndTilt)!=null&&(this.core.controls.enableRotate=t.rotationAndTilt)},enable:()=>{this.core.controls.enablePan=!0,this.core.controls.enableZoom=!0,this.core.controls.enableRotate=!0},disable:()=>{this.core.controls.enablePan=!1,this.core.controls.enableZoom=!1,this.core.controls.enableRotate=!1}});this.core=t,A(this,il,!1);let n=hn(()=>{this._subscribers.CHANGED&&this.publish("CHANGED",{tilt:this.tilt,zoom:this.zoom,rotation:this.rotation,position:this.position})},0,!0);this.core.controls.dispatcher.addEventListener("positionUpdated",()=>{this._subscribers.POSITION_CHANGED&&this.publish("POSITION_CHANGED",this.position),n()}),this.core.controls.dispatcher.addEventListener("zoomUpdated",()=>{this._subscribers.ZOOM_CHANGED&&this.publish("ZOOM_CHANGED",this.zoom),n()}),this.core.controls.dispatcher.addEventListener("rotationUpdated",()=>{this._subscribers.ROTATION_CHANGED&&this.publish("ROTATION_CHANGED",this.rotation),n()}),this.core.controls.dispatcher.addEventListener("tiltUpdated",()=>{this._subscribers.TILT_CHANGED&&this.publish("TILT_CHANGED",this.tilt),n()});let r=l(()=>{d(this,il)||(this.publish("USER_INTERACTION_START",void 0),this.core.publish(33,void 0),A(this,il,!0))},"publishVoidEventStart"),a=l(()=>{this.publish("USER_INTERACTION_END",void 0),this.core.publish(34,void 0),A(this,il,!1)},"publishVoidEventEnd");this.core.controls.dispatcher.addEventListener("userPanStart",r),this.core.controls.dispatcher.addEventListener("userZoomStart",r),this.core.controls.dispatcher.addEventListener("userRotateStart",r),this.core.controls.dispatcher.addEventListener("userTiltStart",r),this.core.controls.dispatcher.addEventListener("userPedestalStart",r),this.core.controls.dispatcher.addEventListener("userDollyStart",r),this.core.controls.dispatcher.addEventListener("userPanEnd",a),this.core.controls.dispatcher.addEventListener("userPedestalEnd",a),this.core.controls.dispatcher.addEventListener("userZoomEnd",a),this.core.controls.dispatcher.addEventListener("userRotateEnd",a),this.core.controls.dispatcher.addEventListener("userDollyEnd",a),this.core.controls.dispatcher.addEventListener("userTiltEnd",a)}get zoom(){return this.core.controls.getZoom()}get rotation(){return this.core.controls.getRotation()}get tilt(){return this.core.controls.getTilt()}get minZoom(){return this.core.controls.minZoom}set minZoom(t){this.core.controls.minZoom=t}get maxZoom(){return this.core.controls.maxZoom}set maxZoom(t){this.core.controls.maxZoom=t}get maxTilt(){return this.core.controls.maxTilt}set maxTilt(t){this.core.controls.maxTilt=Math.max(0,Math.min(t,sp))}get position(){let t=this.core.controls.getPosition();return this.core.convert3DMapPositionToCoordinate(t)}setSafeAreaInsets(t){this.core.setPadding(t)}convertZoomLevelToAltitude(t){return this.core.controls.convertZoomToAltitude(t)}convertAltitudeToZoomLevel(t){return this.core.controls.convertAltitudeToZoomLevel(t)}getSafeAreaInsets(){return this.core.cachedPadding}focusOn(t,n){var s,c;if(this.core.stackedMaps.currentState==="OVERVIEW")return Promise.reject(new Error("Cannot focus on a map when in overview mode"));let r=this.core.currentMap,a=(c=(s=t.coordinates)==null?void 0:s.filter(u=>u.map.id===r))==null?void 0:c.map(u=>this.core.convertTo3DMapPosition({x:u.x,y:u.y})),o=new Promise((u,h)=>{A(this,Yr,u),A(this,qa,h)});return this.core.focusOn({changeZoom:n==null?void 0:n.changeZoom,duration:n==null?void 0:n.duration,focusZoomFactor:1,curve:(n==null?void 0:n.easing)&&ui[n.easing],minZoom:n==null?void 0:n.minZoom,maxZoom:n==null?void 0:n.maxZoom,updateZoomLimits:n==null?void 0:n.updateZoomLimits,nodes:t.nodes,points:a,polygons:t.polygons,padding:n==null?void 0:n.safeAreaInsets,tilt:n==null?void 0:n.tilt,rotation:n==null?void 0:n.rotation,callback:()=>{this.currentAnimation=void 0,d(this,Yr).call(this),A(this,Yr,void 0),A(this,qa,void 0)}}),this.currentAnimation=o,o}set(t){if(!t)return;if(this.core.stackedMaps.currentState==="OVERVIEW")throw new Error("Cannot set camera on a map when in overview mode");let{zoom:n,rotation:r,tilt:a,position:o}=t,s;o&&(s=this.core.convertTo3DMapPosition(o)),this.core.controls.setMulti(s||this.core.controls.getPosition(),n,r,a)}animate(t,n){if(this.core.stackedMaps.currentState==="OVERVIEW")return Promise.reject(new Error("Cannot animate on a map when in overview mode"));let r;t.position&&(r=this.core.convertTo3DMapPosition(t.position));let a={position:r,zoom:t.zoom,tilt:t.tilt,rotation:t.rotation},o=new Promise((s,c)=>{A(this,Yr,s),A(this,qa,c)});return this.core.controls.animateCamera(a,n==null?void 0:n.duration,(n==null?void 0:n.easing)&&ui[n.easing],()=>{this.currentAnimation=void 0,d(this,Yr).call(this),A(this,Yr,void 0),A(this,qa,void 0)}),this.currentAnimation=o,o}async translate(t,n,r){if(this.core.stackedMaps.currentState==="OVERVIEW")return Promise.reject(new Error("Cannot translate a map when in overview mode"));if(!t||!n||this.core.currentMap==null)return;let a=this.core.mapObjects.get(this.core.currentMap).mapClass,o=this.rotation,s=o+Y2(90),c=o-Y2(90),u=o+Math.PI,h=o,m=this.position,{x:f,y:g}=this.position,b=kg(a);if(b===1){f+=n*Math.cos(s),g-=n*Math.sin(s);let x=this.core.convertTo3DMapPosition(a.createCoordinateByXY(f,g)),T=this.core.convert3DMapPositionToCoordinate(x),E=m.absoluteDistanceTo(T);b=n/E}let M=n*b;switch(t){case"up":f+=M*Math.cos(s),g-=M*Math.sin(s);break;case"down":f+=M*Math.cos(c),g-=M*Math.sin(c);break;case"left":f+=M*Math.cos(u),g-=M*Math.sin(u);break;case"right":f+=M*Math.cos(h),g-=M*Math.sin(h);break}return this.tilt!==0&&n&&await this.animate({tilt:0},r),this.animate({position:a.createCoordinateByXY(f,g)},r)}cancelAnimation(){this.currentAnimation&&(this.core.controls.cancelAnimation(),d(this,qa).call(this),this.currentAnimation=void 0,A(this,Yr,void 0),A(this,qa,void 0))}};Yr=new WeakMap,qa=new WeakMap,il=new WeakMap,l(W9,"CameraController");var G9=W9,Y9=G9;y();var Q9=et(T6());y();var DY=!1,ot,ur,nl,Ro,X2,_p,Z2,Q2,K2,J2,$2,Zc,Un=class Un{constructor(e){w(this,ot,void 0);w(this,ur,new qe);w(this,nl,new Xn);w(this,Ro,void 0);p(this,"object",new s4);w(this,X2,l((e,t)=>{if(d(this,ur)==null)return;d(this,ot).cameraObject.updateMatrixWorld(),d(this,ot).cameraObject.updateMatrix(),A(this,nl,new Xn),d(this,nl).layers.set(Ct.ALWAYS_ON_TOP);let n={x:0,y:0};n.x=e/d(this,ot).canvasWidth*2-1,n.y=-(t/d(this,ot).canvasHeight)*2+1;let r=new z(n.x,n.y,0);d(this,nl).setFromCamera(r,d(this,ot).cameraObject.clone());let a=d(this,nl).intersectObject(d(this,ur),!0);if(!(a.length<1))return d(this,ot).cameraObject.worldToLocal(a[0].point)},"#getPlanePositionAtScreenCoordinates"));w(this,_p,l((e,t)=>{let n=t.position.z;e<n?e-=n:e+=n;let r=t.fov*Math.PI/180;return 2*Math.tan(r/2)*Math.abs(e)},"#visibleHeightAtZDepth"));w(this,Z2,l((e,t)=>d(this,_p).call(this,e,t)*t.aspect,"#visibleWidthAtZDepth"));w(this,Q2,l(()=>({"top-left":{x:0,y:1},"top-right":{x:1,y:1},"bottom-left":{x:0,y:0},"bottom-right":{x:1,y:0},center:{x:.5,y:.5},top:{x:.5,y:1},bottom:{x:.5,y:0},left:{x:0,y:.5},right:{x:1,y:.5}})[Un.OPTIONS.position],"#getPositionAlignedAnchor"));w(this,K2,l(()=>{let e=Un.OPTIONS.padding;return{"top-left":{x:e,y:e},"top-right":{x:-e,y:e},"bottom-left":{x:e,y:-e},"bottom-right":{x:-e,y:-e},center:{x:0,y:0},top:{x:0,y:e},bottom:{x:0,y:-e},left:{x:e,y:0},right:{x:-e,y:0}}[Un.OPTIONS.position]},"#getPositionAlignedPadding"));w(this,J2,l(()=>({"top-left":{x:0,y:0},"top-right":{x:d(this,ot).canvasWidth,y:0},"bottom-left":{x:0,y:d(this,ot).canvasHeight},"bottom-right":{x:d(this,ot).canvasWidth,y:d(this,ot).canvasHeight},center:{x:d(this,ot).canvasWidth/2,y:d(this,ot).canvasHeight/2},top:{x:d(this,ot).canvasWidth/2,y:0},bottom:{x:d(this,ot).canvasWidth/2,y:d(this,ot).canvasHeight},left:{x:0,y:d(this,ot).canvasHeight/2},right:{x:d(this,ot).canvasWidth,y:d(this,ot).canvasHeight/2}})[Un.OPTIONS.position],"#getPositionAlignedCanvasCoordinates"));w(this,$2,l(()=>{let e=Un.OPTIONS.iconOnly?"logo-icon-slate":"logo";new Pn().load(_a.get(e),t=>{A(this,Ro,t);let n=d(this,ot).cameraObject.near+.1*(d(this,ot).cameraObject.far-d(this,ot).cameraObject.near),r=d(this,_p).call(this,n,d(this,ot).cameraObject),a=d(this,Z2).call(this,n,d(this,ot).cameraObject),o=Math.max(r,a),s=new nn(o*10,o*10,100,100),c=new Ar({visible:DY,wireframe:!0});A(this,ur,new qe(s,c)),d(this,ur).position.set(0,0,-1*n);let u=new xT({map:d(this,Ro),color:"#000000"});u.opacity=.5,u.depthTest=!1,u.sizeAttenuation=!1,this.object=new s4(u),this.object.layers.set(Ct.ALWAYS_ON_TOP),d(this,ur).layers.set(Ct.ALWAYS_ON_TOP),this.object.renderOrder=999,this.object.position.set(0,0,0),d(this,ur).add(this.object),d(this,ot).cameraObject.add(d(this,ur)),d(this,Zc).call(this)})},"#renderWatermark"));w(this,Zc,l(()=>{if(this.object==null||d(this,Ro)==null)return;let e=d(this,Q2).call(this);this.object.center.x=e.x,this.object.center.y=e.y;let t=d(this,K2).call(this),n=d(this,J2).call(this),r=d(this,X2).call(this,n.x+t.x,n.y+t.y);if(r==null)return;this.object.position.set(r.x,r.y,0);let a=15e-5*Un.OPTIONS.scale,o=d(this,Ro).image.width*a,s=d(this,Ro).image.height*a;this.object.scale.set(o,s,1),d(this,ot).tryRendering(Re.ALWAYS_ON_TOP)},"#updateWatermark"));p(this,"show",l(()=>{this.object==null||d(this,ur)==null?d(this,$2).call(this):(this.object.material.visible=!0,d(this,Zc).call(this))},"show"));p(this,"hide",l(()=>{this.object.material.visible=!1,d(this,ot).tryRendering(Re.ALWAYS_ON_TOP)},"hide"));p(this,"resize",l(()=>{d(this,Zc).call(this)},"resize"));A(this,ot,e),Un.ENABLED&&this.show()}};ot=new WeakMap,ur=new WeakMap,nl=new WeakMap,Ro=new WeakMap,X2=new WeakMap,_p=new WeakMap,Z2=new WeakMap,Q2=new WeakMap,K2=new WeakMap,J2=new WeakMap,$2=new WeakMap,Zc=new WeakMap,l(Un,"WatermarkController"),p(Un,"ENABLED",!1),p(Un,"OPTIONS",{padding:16,scale:1,iconOnly:!1,position:"bottom-left",onClick:()=>{window!=null&&window.open("https://www.mappedin.com")}});var X9=Un,dr=X9;var LY=300,qY=30,RY=1.5,BI=250,FI=300,NY=50,xi=[],Qc;function Z9(){xi=[],Qc&&(clearTimeout(Qc),Qc=null)}l(Z9,"flushTapEvents");var t8=class t8{constructor(e){p(this,"type","SINGLE");p(this,"event");p(this,"timestamp");this.event=e,this.timestamp=performance.now()}};l(t8,"Tap");var K9=t8;function J9(i){let{position:{nodeOrCoordinate:e}}=i,t={id:i.id};return e instanceof yi?t.node=e:e instanceof cn&&(t.coordinate=e),t}l(J9,"getClickEventPayloadFromCollider");function kY(i){let e=J9(i);return delete e.coordinate,{text:i.options.text,...e}}l(kY,"getClickEventPayloadFromFloatingLabels");function BY(i){return i.reduce((e,t)=>(t instanceof Yi?e.labels.push(kY(t)):t instanceof Ao?e.markers.push(J9(t)):t instanceof Ws&&e.tooltips.push(J9(t)),e),{labels:[],markers:[],tooltips:[]})}l(BY,"categorizeColliders");var i8=class i8{constructor(e){p(this,"core");p(this,"blueDotManager");p(this,"rendererDomElement");p(this,"currentHover",null);p(this,"hoverLabel");p(this,"hoverColor",new Ee("#cccccc"));p(this,"options",{disableHover:!1});p(this,"setBlueDotManager",l(e=>{this.blueDotManager=e},"setBlueDotManager"));p(this,"touchCount",0);p(this,"onPointerMove",l(e=>{e.preventDefault(),!this.core.controls.isUserInteracting()&&(this.calculateMouseCoordinates(e),(e.pointerType!=="touch"||e.pointerType==null&&this.hasTouched)&&(this.doHoverEffect(),this.hoverLabel.setPosition(this.cursorPos.x,this.cursorPos.y)))},"onPointerMove"));p(this,"onPointerUp",l(e=>{if(e.pointerType==="touch"&&(xi=xi.filter(n=>performance.now()-n.timestamp<FI)),this.rendererDomElement.style.cursor==="grabbing"&&(this.rendererDomElement.style.cursor="grab"),this.touchCount&&this.decrementTouches(e),e.target.parentNode!=this.core.container)return;let t=Math.sqrt(Math.pow(e.clientX-this.mouseDownStart.clientX,2)+Math.pow(e.clientY-this.mouseDownStart.clientY,2));Date.now()<this.mouseDownStart.time+LY&&t<=qY?e.pointerType==="touch"?xi.length===1&&xi[0].type==="TWO_FINGER"&&this.core.controls.enableZoom?(this.zoomOut(),Z9()):xi.length===1&&xi[0].type==="SINGLE"?(Qc!=null&&clearTimeout(Qc),Qc=setTimeout(()=>{this.handleMapClick(xi[0].event),Z9()},FI)):xi.length===2&&xi[0].type==="SINGLE"&&xi[1].type==="SINGLE"&&this.core.controls.enableZoom&&(this.zoomIn(xi[1].event),Z9()):this.handleMapClick(e):this.touchCount||(this.core.publish(this.core.currentInteractionEvent),this.core.currentInteractionEvent=void 0)},"onPointerUp"));p(this,"onPointerDown",l(e=>{if(this.rendererDomElement.style.cursor!=="pointer"&&(this.rendererDomElement.style.cursor="grabbing"),this.mouseDownStart={time:Date.now(),clientX:e.clientX,clientY:e.clientY},this.incrementTouches(e),e.pointerType==="touch"){let t=new K9(e);xi.length>=1&&t.timestamp-xi[xi.length-1].timestamp<NY?xi[xi.length-1].type="TWO_FINGER":xi.push(t)}},"onPointerDown"));p(this,"incrementTouches",l(e=>{window.PointerEvent&&e.pointerType==="touch"&&(this.touchCount=(this.touchCount||0)+1,this.touchCount===1&&this.core.publish(27))},"incrementTouches"));p(this,"decrementTouches",l(e=>{window.PointerEvent&&e.pointerType==="touch"&&(this.touchCount--,this.touchCount||this.core.publish(28))},"decrementTouches"));p(this,"clearMouse",l(()=>{this.mouse.x=1/0,this.mouse.y=1/0},"clearMouse"));p(this,"getMousePos",l(e=>({x:e.offsetX,y:e.offsetY}),"getMousePos"));p(this,"getScaledMousePos",l(e=>({x:e.offsetX*devicePixelRatio,y:e.offsetY*devicePixelRatio}),"getScaledMousePos"));p(this,"cursorPos",{x:0,y:0});p(this,"mouse",{x:0,y:0});p(this,"mouseDownStart",{time:0,clientX:0,clientY:0});p(this,"scaledCursorPos",{x:0,y:0});p(this,"hasTouched",!1);p(this,"calculateMouseCoordinates",l(e=>{this.cursorPos=this.getMousePos(e),this.scaledCursorPos=this.getScaledMousePos(e),this.mouse.x=this.cursorPos.x/this.core.canvasWidth*2-1,this.mouse.y=-(this.cursorPos.y/this.core.canvasHeight)*2+1},"calculateMouseCoordinates"));p(this,"getMouseRayIntersects",l(e=>($t.setFromCamera(this.mouse,this.core.cameraObject),Array.isArray(e)?$t.intersectObjects(e,!0):$t.intersectObject(e,!0)),"getMouseRayIntersects"));p(this,"detectCollidersUnderMouse",l(()=>{let{interactiveCollidersQTree:e}=this.core.smartCollisionEngine;if(e!=null){let{x:t,y:n}=this.scaledCursorPos,r=[t,n];return e.queryPoint(r).filter(s=>s.intersectsPoint(r)).map(s=>s.userData.collider)}return[]},"detectCollidersUnderMouse"));p(this,"detectPolygonsUnderMouse",l(()=>{let e=this.core.visibleMapObjectsInCurrentScene.flatMap(r=>r.hoverableMeshChildren),t=this.getMouseRayIntersects(e).map(function(r){return r.object.name});(0,Q9.default)(t);let n=[];for(let r=0,a=t.length;r<a;++r){let o=t[r];o&&this.core.interactivePolygons[o]&&n.push(o)}return n},"detectPolygonsUnderMouse"));p(this,"detectPathsUnderMouse",l(()=>{var a;$t.setFromCamera(this.mouse,this.core.cameraObject),$t.layers.set(Ct.ANIMATED);let e=[];this.core.paths.pathsById.forEach(({internalPath:o})=>{o.options.interactive&&o.pathSegments.forEach(s=>{let c=s.object;e.push(c)})});let t=(a=$t.intersectObjects(e))!=null?a:[];$t.layers.set(Ct.STATIC);let n=new Map;return t.reduce((o,s)=>{var c;return n.has(s.object.uuid)||o.push((c=this.core.paths.pathsByMeshId.get(s.object.uuid))==null?void 0:c.path),n.set(s.object.uuid,!0),o},[])},"detectPathsUnderMouse"));p(this,"detectWatermarkUnderMouse",l(()=>{var t;if(!dr.ENABLED||this.core.watermark.object==null)return!1;$t.setFromCamera(this.mouse,this.core.cameraObject),$t.layers.set(Ct.ALWAYS_ON_TOP);let e=(t=$t.intersectObject(this.core.watermark.object))!=null?t:[];return $t.layers.set(Ct.STATIC),e.length>0},"detectWatermarkUnderMouse"));p(this,"detectMapsUnderMouse",l(()=>{$t.setFromCamera(this.mouse,this.core.cameraObject);let e=Array.from(this.core.mapObjects.values()).filter(n=>{var r,a;return((a=(r=this.core.options)==null?void 0:r.dynamicFocus)==null?void 0:a.baseMap)===n.mapClass||n.visible}).map(n=>n.object),t=$t.intersectObjects(e,!0).map(function(n){var r;return((r=n.object)==null?void 0:r.parent).name}).filter(n=>n);return(0,Q9.default)(t),t.map(n=>this.core.venue.getCollectionItemById("maps",n))},"detectMapsUnderMouse"));p(this,"getMouseMapPosition",l(()=>{let e=this.getMouseRayIntersects(this.core.cameraPlane);if(e.length>0){let t=e[e.length-1],n=this.core.mapObjects.get(this.core.currentMap),r=t.point.applyMatrix4(new tt().copy(n.object.matrix).invert());return{x:r.x+n.mapClass.width/2,y:-r.y+n.mapClass.height/2}}else return{x:NaN,y:NaN}},"getMouseMapPosition"));p(this,"checkMouseIntersectsBlueDot",l(()=>{if(!this.blueDotManager)return!1;let e=this.blueDotManager.getBlueDotForMap(this.core.venue.maps.find(t=>t.id===this.core.currentMap));if(e){let t=new z,n=new z;e.updateMatrixWorld(),e.getWorldPosition(t),e.getWorldScale(n),n.divideScalar(2),n.setZ(0),t.sub(n);let r=this.core.canvasWidth/2,a=this.core.canvasHeight/2;this.core.cameraObject.updateProjectionMatrix(),this.core.cameraObject.updateMatrixWorld(!0),t.project(this.core.cameraObject);let o={x:t.x*r+r,y:-t.y*a+a},s=Math.pow(this.cursorPos.x-o.x,2),c=Math.pow(this.cursorPos.y-o.y,2);return Math.sqrt(s+c)<=23}return!1},"checkMouseIntersectsBlueDot"));p(this,"doHoverEffect",l(()=>{if(this.options.disableHover)return;let e=this.detectPolygonsUnderMouse(),t=this.detectCollidersUnderMouse(),n=this.detectPathsUnderMouse(),r=this.detectWatermarkUnderMouse(),a=!1;for(let o=0,s=e.length;o<s;++o){let c=e[o];if(this.core.interactivePolygons[c]){if(c!=this.currentHover){this.currentHover&&(this.onPolygonHoverOut(this.currentHover),this.currentHover=null),this.currentHover=c,this.onPolygonHoverOver(c);let u=this.core.textLabelsByPolygonId[ut(c)];u&&u.showHoverLabel?this.hoverLabel.show(u):this.hoverLabel.hide()}a=!0;break}}a||(this.currentHover&&(this.onPolygonHoverOut(this.currentHover),this.currentHover=null),this.hoverLabel.hide()),a||t.length>0||n.length>0||r?this.rendererDomElement.style.cursor="pointer":this.rendererDomElement.style.cursor="grab"},"doHoverEffect"));p(this,"onPolygonHoverOut",l(e=>{var s,c,u;let t=this.core.polygonMeshesById[e],n=this.core.venue.getCollectionItemById("polygons",e);if(!t)return;let r=this.core.textLabelsByPolygonId[e];r&&r.setColor(r.baseColor);let a=this.core.highlightedPolygons[e],o=a||((s=t._MIOriginalMaterial)==null?void 0:s.color.getHex())||((u=(c=t._MIOriginalMaterial)==null?void 0:c[0])==null?void 0:u.color.getHex());return this.core.polygonColors.setPolygonColor(n,o,{highlighted:!1,visible:!!a}),!1},"onPolygonHoverOut"));p(this,"onPolygonHoverOver",l(e=>{var o;let t=ut(e),n=this.core.polygonMeshesById[t],r=this.core.textLabelsByPolygonId[t];if(!n)return;let a=(o=this.core.polygonHoverColorsById[t])!=null?o:this.hoverColor;return this.core.polygonColors.setPolygonColor(e,"#".concat(a.getHexString()),{highlighted:!1}),r&&(r.setColor(r.hoverColor),this.core.tryRendering()),!1},"onPolygonHoverOver"));p(this,"setHoverColor",l(e=>{this.hoverColor=new Ee(e)},"setHoverColor"));this.core=e;let t=this.core.renderer.domElement();this.core.container.style.touchAction="auto",this.rendererDomElement=t,this.hoverLabel=new zr(this.core.container),this.core.on(15,this.clearMouse),this.core.on(9,()=>{this.currentHover&&(this.onPolygonHoverOut(this.currentHover),this.currentHover=null),this.hoverLabel.hovering&&this.hoverLabel.hide()}),t.addEventListener("pointerdown",this.onPointerDown,!1),t.addEventListener("pointermove",this.onPointerMove,!1),t.addEventListener("pointerup",this.onPointerUp,!1),t.addEventListener("pointercancel",this.onPointerUp,!1)}zoomOut(){this.core.controls.zoomOut(BI,ui["ease-out"])}zoomIn(e){let t=this.core.convertScreenCoordinateToMapCoordinate(e.clientX,e.clientY,this.core.venue.maps.find(a=>a.id===this.core.currentMap)),n=this.core.convertTo3DMapPosition(t),r=this.core.controls.getZoom();this.core.controls.animateCamera({position:n,zoom:r/RY},BI,ui["ease-in"])}handleMapClick(e){this.calculateMouseCoordinates(e);let t=this.detectPolygonsUnderMouse(),n=this.detectMapsUnderMouse(),r=this.detectCollidersUnderMouse(),a=this.detectPathsUnderMouse(),o=this.detectWatermarkUnderMouse(),{labels:s,markers:c,tooltips:u}=BY(r),h=this.getMouseMapPosition(),m={lat:NaN,lon:NaN};!isNaN(h.x)&&!isNaN(h.y)&&(m=this.core.venue.maps.find(f=>f.id===this.core.currentMap).createCoordinateByXY(h.x,h.y)),this.core.publish(16,{position:{latitude:m.lat,longitude:m.lon},polygons:t.filter(f=>this.core.interactivePolygons[f]).map(f=>this.core.venue.getCollectionItemById("polygons",f)),floatingLabels:s,markers:c,tooltips:u,maps:n||[],nearBlueDot:this.checkMouseIntersectsBlueDot(),paths:a}),o&&typeof dr.OPTIONS.onClick=="function"&&dr.OPTIONS.onClick();for(let f=0,g=t.length;f<g;++f){let b=t[f];if(this.core.interactivePolygons[b]&&typeof this.core.onPolygonClicked=="function"&&!this.core.onPolygonClicked(b))return}typeof this.core.onNothingClicked=="function"&&this.core.onNothingClicked()}destroy(){this.rendererDomElement.removeEventListener("pointerdown",this.onPointerDown,!1),this.rendererDomElement.removeEventListener("pointermove",this.onPointerMove,!1),this.rendererDomElement.removeEventListener("pointerup",this.onPointerUp,!1),this.rendererDomElement.removeEventListener("pointercancel",this.onPointerUp,!1)}};l(i8,"EventSystem");var $9=i8,e8=$9;y();var UI="varying vec2 vUV;\n\nvoid main() {\n vUV = uv;\n\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.0);\n}";var VI='precision mediump float;\n\n// The following uniforms are documented in Mappedin.ClosedPolygonManager.js\nuniform vec3 stripe1_color;\nuniform vec3 stripe2_color;\nuniform vec2 surface_dimensions;\nuniform float stripe1_width;\nuniform float stripe1_proportion;\nuniform float stripes_direction; \n\nvarying vec2 vUV;\n\nvec4 stripes(vec2 coord) {\n vec4 color1 = vec4(stripe1_color, 1.0);\n vec4 color2 = vec4(stripe2_color, 1.0);\n\n // Transform the uv to surface coordinates in world space units\n vec2 coord_absolute = coord * surface_dimensions;\n \n // Compute the width of a single texture "tile"\n // For example, if the first stripe is 10 units and it forms 25% of the tile, we know that the tile itself is 40 units wide\n float tile_width = stripe1_width / stripe1_proportion;\n\n // Lerp the x and y coordinates of the component using the "direction" parameter; clever way of "rotating" the stripe without using trig functions, courtesy of https://andreashackel.de/tech-art/stripes-shader-1/\n float stripe_coord = mix(coord_absolute.x, coord_absolute.y, stripes_direction);\n\n // Normalize the above "coordinate" to obtain its position within a single texture "tile"\n float stripe_coord_normalized = mod(stripe_coord, tile_width) / tile_width;\n\n // Decide which of the two stripes this coordinate belongs to!\n return mix(color1, color2, step(1. - stripe1_proportion, stripe_coord_normalized));\n}\n\nvoid main() { \n gl_FragColor = vec4(stripes(vUV).rgb, 1);\n}\n';function VY(i){let e=new nn(1,1,1,1),t=500,n=500,r=new z(0,0,0),a=0;if(i!=null&&i.boundingBox!=null&&i.boundingBox.min!=null&&i.boundingBox.max!=null){let c=new Ye(i.boundingBox.min,i.boundingBox.max),u=c.getSize(new z);t=u.x,n=u.y,c.getCenter(r),a=(isNaN(c.max.z)?0:c.max.z)+10}let o=new We({vertexShader:UI,fragmentShader:VI,uniforms:{stripe1_color:{type:"c",value:new Ee(.91372549019,.91372549019,.91372549019)},stripe2_color:{type:"c",value:new Ee(.80784313725,.80784313725,.80784313725)},stripe1_width:{type:"f",value:7},stripe1_proportion:{type:"f",value:.3},stripes_direction:{type:"f",value:2/3},surface_dimensions:{type:"v2",value:new he(t,n)}}});o.transparent=!0,o.blending=pT,o.depthTest=!1,o.stencilWrite=!0,o.stencilFunc=bm,o.stencilFuncMask=255,o.stencilRef=1,o.stencilFail=Fl,o.stencilZFail=Fl,o.stencilZPass=Fl;let s=new qe(e,o);return s.position.set(r.x,r.y,a),s.rotation.set(0,0,0),s.scale.set(t,n,1),s}l(VY,"makeStencilSheet");function zI(i){i!=null&&Mo(i.material)}l(zI,"destroyStencilSheet");function jI(i){return i.stencilWrite=!0,i.stencilFunc=xm,i.stencilRef=1,i.stencilFuncMask=255,i.stencilFail=Fl,i.stencilZFail=Fl,i.stencilZPass=Ul,i}l(jI,"enableStencilTestingAndConfigure");function zY(i,e,t){e==null||t==null||(i!=null&&t.remove(i),t.add(e))}l(zY,"replaceObjectInScene");function jY(i,e){return Math.abs(i-e)<Number.EPSILON}l(jY,"almostEqual");var r8=class r8{constructor({scene:e,getPolygonMeshFromId:t,tryRendering:n}){this.scene=e,this.getPolygonMeshFromId=t,this.tryRendering=n,this.stencilSheet=null,this.polygonsMarkedAsClosed={}}onMapChanged(e){e.load().then(()=>{this.currentMap=e,zI(this.stencilSheet);let t=VY(e);zY(this.stencilSheet,t,this.scene),this.stencilSheet=t,this.tryRendering()})}dispose(){this.markAllPolygonsAsOpen(),zI(this.stencilSheet)}markPolygonAsClosed(e){if(typeof e!="string"||this.polygonsMarkedAsClosed[e]!=null)return;let t=this.getPolygonMeshFromId(e);if(t==null||t.material==null)return;let n=t.geometry;if(F.assert(n instanceof Cr),F.assert(n.index==null),t.material.length)return;let r={};r.geometryGroups=[...n.groups],n.clearGroups();let a=t.material,o=jI(t.material.clone());t.material=[a,o],t._MIOriginalMaterial&&(t._MIOriginalMaterial.length||(t._MIOriginalMaterial=[t._MIOriginalMaterial,jI(t._MIOriginalMaterial.clone())]));let s=n.getAttribute("normal");F.assert(s.itemSize===3),F.assert(s.array.length/3===s.count),F.assert(s.count%3===0);let c=new z(0,0,1);for(let u=0;u<s.count;u+=3){let h=(s.getX(u)+s.getX(u+1)+s.getX(u+2))/3,m=(s.getY(u)+s.getY(u+1)+s.getY(u+2))/3,f=(s.getZ(u)+s.getZ(u+1)+s.getZ(u+2))/3,g=new z(h,m,f).normalize();jY(g.dot(c),1)?n.addGroup(u,3,1):n.addGroup(u,3,0)}this.tryRendering(),this.polygonsMarkedAsClosed[e]=r}markPolygonAsOpen(e){if(typeof e!="string"||this.polygonsMarkedAsClosed[e]==null)return;let t=this.polygonsMarkedAsClosed[e],n=this.getPolygonMeshFromId(e),r=n.geometry;r.clearGroups(),t.geometryGroups.forEach(({start:a,count:o,materialIndex:s})=>r.addGroup(a,o,s)),Mo(n.material[1]),n.material=n.material[0],n._MIOriginalMaterial&&n._MIOriginalMaterial.length&&(n._MIOriginalMaterial=n._MIOriginalMaterial[0]),delete this.polygonsMarkedAsClosed[e],this.tryRendering()}markAllPolygonsAsOpen(){for(let e in this.polygonsMarkedAsClosed)this.markPolygonAsOpen(e)}};l(r8,"ClosedPolygonManager");var n8=r8,f9=n8;y();var GY=!1,a8=class a8{constructor(e){p(this,"textureLoader",new Pn);p(this,"data");this.data=e}async loadMapPolygons(){}loadImage(e){let t=this.data.get(e.split(/[\/\.]/)[1]);return new Promise((n,r)=>{GY&&F.log("loading image: ",e);let a=new Blob([t]),o=URL.createObjectURL(a);this.textureLoader.load(o,s=>{s.colorSpace=rt,n(s)},()=>{},r)})}};l(a8,"BinaryAssetManager");var Kc=a8;y();y();var ev=1*devicePixelRatio;function HY(i,e){return e.x+e.w<i.x+i.w&&e.x>i.x&&e.y>i.y&&e.y+e.h<i.y+i.h}l(HY,"contains");function o8(i,e){let t=e.x,n=e.y,r=e.x+e.w,a=e.y+e.h,o=i.x,s=i.y,c=i.x+i.w,u=i.y+i.h;return t<c&&o<r&&n<u&&s<a}l(o8,"intersects");function YY(i,e){let[t,n]=e;return t>=i.x&&t<=i.x+i.w&&n>=i.y&&n<=i.y+i.h}l(YY,"intersectPoint");var s8=class s8{constructor(e,t,n,r,a){p(this,"x");p(this,"y");p(this,"w");p(this,"h");p(this,"userData");this.userData=typeof a>"u"?null:a,this.x=e-ev,this.y=t-ev,this.w=n+ev*2,this.h=r+ev*2}contains(e){return e===this?!1:HY(this,e)}intersects(e){return o8(this,e)}intersectsPoint(e){return YY(this,e)}draw(e){e.fillStyle="rgba(123,222,26, 0.5)",e.fillRect(this.x,this.y,this.w,this.h)}};l(s8,"Rectangle");var Mn=s8,rl=class rl{constructor(e,t){p(this,"boundary");p(this,"capacity",4);p(this,"objects",[]);p(this,"topLeft");p(this,"topRight");p(this,"bottomLeft");p(this,"bottomRight");p(this,"divided",!1);p(this,"parent");this.parent=t,this.boundary=e}getSize(){return this.divided?this.objects.length+this.topLeft.getSize()+this.topRight.getSize()+this.bottomLeft.getSize()+this.bottomRight.getSize():this.objects.length}subdivide(){let{x:e,y:t,w:n,h:r}=this.boundary;this.topLeft=new rl(new Mn(e,t,n/2,r/2),this),this.topRight=new rl(new Mn(e+n/2,t,n/2,r/2),this),this.bottomLeft=new rl(new Mn(e,t+r/2,n/2,r/2),this),this.bottomRight=new rl(new Mn(e+n/2,t+r/2,n/2,r/2),this),this.divided=!0}queryRect(e){let t=[];if(this.boundary.intersects(e))t.push(...this.objects);else return[];return this.divided&&(ba(t,this.topLeft.queryRect(e)),ba(t,this.topRight.queryRect(e)),ba(t,this.bottomLeft.queryRect(e)),ba(t,this.bottomRight.queryRect(e))),t}queryPoint(e){let t=[];if(this.boundary.intersectsPoint(e))t.push(...this.objects);else return[];return this.divided&&(ba(t,this.topLeft.queryPoint(e)),ba(t,this.topRight.queryPoint(e)),ba(t,this.bottomLeft.queryPoint(e)),ba(t,this.bottomRight.queryPoint(e))),t}insert(e){return this.boundary.contains(e)?this.objects.length<this.capacity?(this.objects.push(e),!0):(this.divided||this.subdivide(),(this.topLeft.insert(e)||this.topRight.insert(e)||this.bottomLeft.insert(e)||this.bottomRight.insert(e))===!1&&this.objects.push(e),!0):!1}drawObjects(e){this.objects.forEach(t=>t.draw(e)),this.divided&&(this.topLeft.drawObjects(e),this.topRight.drawObjects(e),this.bottomLeft.drawObjects(e),this.bottomRight.drawObjects(e))}draw(e){e.rect(this.boundary.x,this.boundary.y,this.boundary.w,this.boundary.h),this.divided&&(this.topLeft.draw(e),this.topRight.draw(e),this.bottomLeft.draw(e),this.bottomRight.draw(e)),e.strokeStyle="black",e.lineWidth=4,e.stroke()}};l(rl,"QuadTree");var Op=rl;var l8=!1,WY=!1,XY=!1,tv=10*devicePixelRatio,iv=100,kb="LOW_PRIORITY",p8=class p8 extends Gs{get strategies(){let e=l(()=>{},"noop");return[{name:"left",getBoundingBox:l(o=>[0,o.totalHeight,-tv,5],"leftBoundingBox"),onStrategySelected:e},{name:"top",getBoundingBox:l(o=>[-tv,5,0,o.totalWidth],"topBoundingBox"),onStrategySelected:e},{name:"right",getBoundingBox:l(o=>[0,o.totalHeight,o.totalWidth-5,o.totalWidth+tv],"rightBoundingBox"),onStrategySelected:e},{name:"bottom",getBoundingBox:l(o=>[o.totalHeight-5,o.totalHeight+tv,0,o.totalWidth],"bottomBoundingBox"),onStrategySelected:e}]}};l(p8,"OffscreenCollider");var c8=p8,GI=l((i,e)=>e.length?(e.splice(u8(i,e),0,i),e):(e.push(i),e),"insertOne"),HI=l((i,e)=>(e.length&&e.splice(e.indexOf(i),1),e),"removeOne"),u8=l((i,e,t,n)=>{let r=t||0,a=n||e.length,o=Math.floor(r+(a-r)/2);return e[o].rank===i.rank?o:a-r<=1?e[o].rank<i.rank?o:o+1:e[o].rank>i.rank?u8(i,e,o,n):u8(i,e,t,o)},"locationOf"),xt,al,nv,rv,Jc,ol,f8=class f8{constructor(e){p(this,"colliderCanvas");p(this,"debugCanvas");p(this,"colliderCanvasContext");p(this,"debugCanvasContext");p(this,"collisionEngineContainerEl");p(this,"stepsX");p(this,"stepsY");p(this,"totalWidth");p(this,"totalHeight");p(this,"project");p(this,"colliders",new Map);p(this,"offscreenRanges",[]);w(this,xt,{});w(this,al,!1);p(this,"initialized",!1);p(this,"core");p(this,"screen");p(this,"debouncedUpdate");p(this,"updateStartEvents");p(this,"updateEndEvents");p(this,"init",l((e,t)=>{this.project=t,e.appendChild(this.collisionEngineContainerEl),e.appendChild(this.colliderCanvas),this.totalWidth=e.clientWidth,this.totalHeight=e.clientHeight,this.screen=new Mn(0,0,this.totalWidth,this.totalHeight),this.colliderCanvas.width=this.totalWidth*devicePixelRatio,this.colliderCanvas.height=this.totalHeight*devicePixelRatio,this.colliderCanvas.style.width=this.totalWidth+"px",this.colliderCanvas.style.height=this.totalHeight+"px",l8&&(this.debugCanvasContext=this.debugCanvas.getContext("2d"),e.appendChild(this.debugCanvas),this.debugCanvas.width=this.totalWidth,this.debugCanvas.height=this.totalHeight,this.debugCanvas.style.width=this.totalWidth+"px",this.debugCanvas.style.height=this.totalHeight+"px",this.debugCanvas.style.opacity="0.4");let n=new c8({rank:999});this.offscreenRanges=n.strategies.map(({getBoundingBox:r})=>r({x:0,y:0,totalHeight:this.totalHeight,totalWidth:this.totalWidth}).map(o=>Math.round(o))),this.initialized=!0,d(this,al)||(d(this,nv).call(this),A(this,al,!0)),d(this,ol).call(this)},"init"));p(this,"handleBeginUpdate",l(e=>{if(this.updateStartEvents[e.type]===!1)this.beginUpdate();else if(e.message!=null){let{zooming:t,rotating:n,tilting:r}=e.message;(t||n||r)&&this.beginUpdate()}},"handleBeginUpdate"));p(this,"handleEndUpdate",l(e=>{if(this.updateEndEvents[e.type]===!1)this.update();else if(e.message!=null){let{zooming:t,rotating:n,tilting:r}=e.message;(t||n||r)&&this.update()}},"handleEndUpdate"));w(this,nv,l(()=>{A(this,al,!0);for(let e in this.updateStartEvents)this.core.controls.dispatcher.addEventListener(e,this.handleBeginUpdate);for(let e in this.updateEndEvents)this.core.controls.dispatcher.addEventListener(e,this.handleEndUpdate);this.core.on(6,d(this,Jc)),this.core.on(7,d(this,ol)),this.core.on(8,d(this,Jc)),this.core.on(32,d(this,ol))},"#addListeners"));w(this,rv,l(()=>{for(let e in this.updateStartEvents)this.core.controls.dispatcher.removeEventListener(e,this.handleBeginUpdate);for(let e in this.updateEndEvents)this.core.controls.dispatcher.removeEventListener(e,this.handleEndUpdate);this.core.off(6,d(this,Jc)),this.core.off(7,d(this,ol)),A(this,al,!1)},"#removeListeners"));w(this,Jc,l(()=>{let e=this.core.visibleMapsInCurrentScene.map(t=>t.id)||[];this.colliders.forEach(t=>{t.disable(!1)}),e.forEach(t=>{d(this,xt)[t]!=null&&(d(this,xt)[t].needsSort=!0)}),this.update()},"#onSetSceneStart"));w(this,ol,l(()=>{let e=this.core.visibleMapsInCurrentScene.map(t=>t.id)||[];this.colliders.forEach(t=>{var n;(e.includes(t.mapId)||YI(t,(n=this.core.options)==null?void 0:n.dynamicFocus))&&t.enable(!1)}),e.forEach(t=>{d(this,xt)[t]!=null&&(d(this,xt)[t].needsSort=!0)}),this.update()},"#onSetSceneEnd"));p(this,"qtree");p(this,"interactiveCollidersQTree");p(this,"recompute",l(()=>{if(!this.initialized)return;let e,t,n,[r,a,o,s]=[1/0,1/0,-1/0,-1/0],c=this.offscreenRanges.map(f=>{let g=f[3]-f[2],b=f[1]-f[0];return r=Math.min(r,f[2]),o=Math.max(o,f[3]),a=Math.min(a,f[0]),s=Math.max(s,f[1]),new Mn(Math.round(f[2]*devicePixelRatio),Math.round(f[0]*devicePixelRatio),Math.round(g*devicePixelRatio),Math.round(b*devicePixelRatio))}),u=this.sortedColliders;for(let f of u)e=f.position,t=f.mapId,f.getBoundingBoxForCurrentStrategy=void 0,f.enabled&&(n=this.project(e,t),typeof f.colliderDidUpdatePosition=="function"&&f.colliderDidUpdatePosition([n.x,n.y]),f._bboxes=f.strategies.map(({name:g,getBoundingBox:b,onStrategySelected:M})=>{let x=b({x:n.x,y:n.y}),T=x[3]-x[2],E=x[1]-x[0];r=Math.min(r,x[2]),o=Math.max(o,x[3]),a=Math.min(a,x[0]),s=Math.max(s,x[1]),f._bboxes==null&&(f._bboxes=[]);let S=new Mn(Math.round(x[2]*devicePixelRatio),Math.round(x[0]*devicePixelRatio),Math.round(T*devicePixelRatio),Math.round(E*devicePixelRatio),{collider:f});return[g,S,M,b]}));let h=new Mn(Math.round(r*devicePixelRatio)-iv,Math.round(a*devicePixelRatio)-iv,Math.round(o*devicePixelRatio-r*devicePixelRatio)+iv*2,Math.round(s*devicePixelRatio-a*devicePixelRatio)+iv*2);this.qtree=new Op(h),c.forEach(f=>{this.qtree.insert(f)});let m;for(let f=0;f<u.length;f++){let g=!1;if(m=u[f],m._bboxes==null||!m.enabled)continue;let[b,M]=[1/0,null],x;for(let[,T,E,S]of m._bboxes){let P=this.qtree.queryRect(T).filter(q=>T.intersects(q));if(x=P.every(q=>c.includes(q)),(P.length<=b||x)&&(M=[T,E,S]),P.length===0){this.qtree.insert(T),m.getBoundingBoxForCurrentStrategy=S,g=!0,m.setAction(1),E(m);break}}if(m.rank===4&&M!=null){let[T,E,S]=M;this.qtree.insert(T),m.getBoundingBoxForCurrentStrategy=S,g=!0,m.setAction(1),E(m)}if(!g&&M!=null&&x){let[T,E,S]=M;this.qtree.insert(T),m.setAction(1),E(m)}else!g&&typeof m.colliderDidNotFindAHome=="function"&&m.colliderDidNotFindAHome();typeof m.colliderDidUpdateVisiblity=="function"&&m.colliderDidUpdateVisiblity()}this.draw(),this.colliderCanvas.classList.remove("interacting")},"recompute"));p(this,"draw",l(()=>{let e=this.sortedColliders;this.colliderCanvasContext.clearRect(0,0,this.totalWidth*devicePixelRatio,this.totalHeight*devicePixelRatio);for(let t of e)t.offscreen||t instanceof Yi&&t.draw(this.colliderCanvasContext);l8&&this.qtree&&(this.colliderCanvasContext.beginPath(),XY&&this.qtree.draw(this.colliderCanvasContext),this.qtree.drawObjects(this.colliderCanvasContext)),WY&&this.interactiveCollidersQTree!=null&&this.interactiveCollidersQTree.drawObjects(this.colliderCanvasContext)},"draw"));p(this,"reposition",l(()=>{var a;if(!this.initialized)return;this.interactiveCollidersQTree=new Op(new Mn(0,0,this.totalWidth*devicePixelRatio,this.totalHeight*devicePixelRatio));let e,t,n,r=this.sortedColliders;for(let o of r)if(e=o.position,t=o.mapId,n=this.project(e,t),!!o.enabled){if(typeof o.getBoundingBoxForCurrentStrategy=="function"){let[s,c,u,h]=o.getBoundingBoxForCurrentStrategy({x:n.x,y:n.y});ZY(o)&&((a=o.options)!=null&&a.interactive)&&this.interactiveCollidersQTree.insert(new Mn(u*devicePixelRatio,s*devicePixelRatio,(h-u)*devicePixelRatio,(c-s)*devicePixelRatio,{collider:o})),o8(this.screen,{x:u,y:s,w:h-u,h:c-s})?o.offscreen=!1:o.offscreen=!0}typeof o.colliderDidUpdatePosition=="function"&&o.colliderDidUpdatePosition([n.x,n.y])}this.draw()},"reposition"));p(this,"add",l((e,t)=>{t.__engine=this,typeof t.colliderDidMount=="function"&&t.colliderDidMount(),this.colliders.set(e,t),d(this,xt)[t.mapId]==null&&(d(this,xt)[t.mapId]={needsSort:!1,colliders:[]}),GI(t,d(this,xt)[t.mapId].colliders)},"add"));p(this,"remove",l(e=>{let t=this.colliders.get(e);t!=null&&(t.disable(),t.__engine=void 0,this.colliders.delete(e),HI(t,d(this,xt)[t.mapId].colliders))},"remove"));p(this,"updateMap",l((e,t,n)=>{let r=this.colliders.get(e);if(r==null)return;r.mapId=n,HI(r,d(this,xt)[t].colliders),d(this,xt)[n]==null&&(d(this,xt)[n]={needsSort:!1,colliders:[]}),GI(r,d(this,xt)[n].colliders);let a=this.core.visibleMapsInCurrentScene.map(o=>o.id)||[];a.includes(t)&&r.disable(),a.includes(n)&&r.enable()},"updateMap"));p(this,"update",l(()=>{if(!this.initialized)return;(this.core.visibleMapsInCurrentScene.map(t=>t.id)||[]).forEach(t=>{d(this,xt)[t]&&(d(this,xt)[t].needsSort=!0)}),this.recompute(),this.reposition()},"update"));p(this,"resize",l(e=>{this.initialized&&(d(this,rv).call(this),this.init(e,this.project),this.update())},"resize"));p(this,"destroy",l(()=>{for(let e of Array.from(this.colliders.values()))this.remove(e.id)},"destroy"));this.core=e,this.colliderCanvas=document.createElement("canvas"),this.collisionEngineContainerEl=document.createElement("div"),l8&&(this.debugCanvas=document.createElement("canvas"),this.debugCanvas.classList.add("mappedin__smart-collision-engine-debug__container")),this.colliderCanvas.classList.add("mappedin__smart-collision-engine-debug__container"),this.collisionEngineContainerEl.classList.add("mappedin__smart-collision-engine__container"),this.colliderCanvasContext=this.colliderCanvas.getContext("2d");let{INTERACTION_EVENTS:t,CAMERA_EVENTS:n}=this.core.controls;this.updateStartEvents={[t.USER_DOLLY_START_EVENT.type]:!1,[n.ROTATE_START_EVENT.type]:!1,[n.ZOOM_START_EVENT.type]:!1,[t.USER_TILT_START_EVENT.type]:!1,[n.MULTI_START_EVENT.type]:!0,[n.PEDESTAL_START_EVENT.type]:!1},this.updateEndEvents={[t.USER_DOLLY_END_EVENT.type]:!1,[n.ROTATE_END_EVENT.type]:!1,[n.ZOOM_END_EVENT.type]:!1,[t.USER_TILT_END_EVENT.type]:!1,[n.MULTI_END_EVENT.type]:!0,[n.MULTI_CANCEL_EVENT.type]:!0,[n.PEDESTAL_END_EVENT.type]:!1},this.debouncedUpdate=hn(()=>{this.update()},10,!0)}get sortedColliders(){return this.initialized?this.core.visibleMapsInCurrentScene.flatMap(t=>{var n;return d(this,xt)[t.id]&&((n=d(this,xt)[t.id].colliders)==null?void 0:n.length)>0&&d(this,xt)[t.id].needsSort===!1?d(this,xt)[t.id].colliders:(d(this,xt)[t.id]==null&&(d(this,xt)[t.id]={needsSort:!0,colliders:[]}),d(this,xt)[t.id].colliders=Array.from(this.colliders.values()).filter(r=>{var a;return QY(r,t.id,(a=this.core.options)==null?void 0:a.dynamicFocus,this.core.visibleLayersInCurrentScene)}).sort((r,a)=>a.rank-r.rank),d(this,xt)[t.id].needsSort=!1,d(this,xt)[t.id].colliders)}):[]}beginUpdate(){this.colliderCanvas.classList.add("interacting")}};xt=new WeakMap,al=new WeakMap,nv=new WeakMap,rv=new WeakMap,Jc=new WeakMap,ol=new WeakMap,l(f8,"SmartCollisionEngine");var d8=f8;function ZY(i){return i instanceof Yi||i instanceof Ao||i instanceof Ws}l(ZY,"isCollider");function QY(i,e,t,n){var r;return YI(i,t)||i.layer!==""&&((r=n[i.mapId])!=null&&r.includes(i.layer))&&i.mapId===e?!0:i.mapId===e}l(QY,"isColliderVisible");function YI(i,e){var r,a;let t=(r=e==null?void 0:e.keepLayersActiveOnBaseMap)!=null?r:[];return((a=e==null?void 0:e.baseMap)==null?void 0:a.id)===i.mapId&&t.length>0&&t.includes(i.layer)}l(YI,"shouldKeepActiveOnBaseMap");var h8=d8;y();var v8=class v8{constructor(e){p(this,"orbit");p(this,"billboards",new Map);this.orbit=e}add(e,t="Z"){this.billboards.set(e.uuid,[e,t])}remove(e){this.billboards.delete(e.uuid)}update(){for(let[e,t]of this.billboards.values())t.includes("Z")&&(e.rotation.z=this.orbit.rotation.z)}destroy(){this.billboards.clear()}};l(v8,"BillboardManager");var m8=v8,g8=m8;y();var QI=et(Gh());y();var KY="white",WI=l((i=1)=>'<div style="width: '.concat(32*i,"px; height: ").concat(32*i,'px;">').concat(_a.get("journey-departure"),"<div>"),"generateDepartureMarker"),XI=l((i=1)=>'<div style="width: '.concat(32*i,"px; height: ").concat(32*i,'px;">').concat(_a.get("journey-destination"),"</div>"),"generateDestinationMarker"),JY=l(i=>{let e=i.direction==null?i.type:"".concat(i.type,"-").concat(i.direction);return'<div style="width: 40px;\n height: 40px;\n cursor: pointer;\n border-radius: 50%;\n background: green;\n display: flex;\n align-items: center;\n justify-content: center;">\n <svg\n height="16"\n viewBox="0 0 36 36"\n width="16"\n >\n <g fill="'.concat(KY,'">\n ').concat(_a.get(e),"\n </g>\n </svg><div>")},"defaultConnectionFn"),hr,b8=class b8{constructor(e,t=JY,n){p(this,"tooltip");p(this,"mapId");p(this,"toMapId");w(this,hr,void 0);p(this,"handleClick",l(e=>{if(!e||e.tooltips.length===0)return;e.tooltips.find(n=>{var r;return n.id===((r=this.tooltip)==null?void 0:r.id)})&&(d(this,hr).stackedMaps.currentState==="OVERVIEW"?d(this,hr).setMapWithReason(this.mapId,"journey-connection-click"):d(this,hr).setMapWithReason(this.toMapId,"journey-connection-click"))},"handleClick"));p(this,"determineDirection",l(()=>{var r,a,o,s;let{mapObjects:e}=d(this,hr),t=(a=(r=e.get(this.mapId))==null?void 0:r.mapClass.elevation)!=null?a:0,n=(s=(o=e.get(this.toMapId))==null?void 0:o.mapClass.elevation)!=null?s:0;if(t!==n)return t<n?"up":"down"},"determineDirection"));var s,c;this.mapId=e.node.map.id,this.toMapId=((s=e.action)==null?void 0:s.type)==="TakeVortex"?e.action.toMap.id:e.action.fromMap.id,A(this,hr,n);let r=e.atLocation.type,a=this.determineDirection(),o=t({type:r,direction:a,toMapName:e.action.toMap.name,icon:_a.get(a==null?r:"".concat(r,"-").concat(a)),isEntering:((c=e.action)==null?void 0:c.type)==="TakeVortex"});this.tooltip=n.tooltips.createTooltip(e.node,o,{collisionRank:4,padding:0,defaultAnchorType:"top",interactive:!0}),d(this,hr).on(16,this.handleClick),this.tooltip.updateDimensions()}destroy(){d(this,hr).off(16,this.handleClick),d(this,hr).tooltips.removeTooltip(this.tooltip),this.tooltip=null}};hr=new WeakMap,l(b8,"Connection");var y8=b8,$Y={displayArrowsOnPath:!0,nearRadius:1.8,farRadius:5.4,color:"#ff834c",flattenPath:!0},eW={color:"#f5c7b3",displayArrowsOnPath:!1,flattenPath:!0,nearRadius:1.6,farRadius:4.8,showPulse:!1,animateDrawing:!1},tW={displayArrowsOnPath:!0,nearRadius:1.8,farRadius:5.4,color:"#ff834c",flattenPath:!0},ZI=3,av,pt,En,$c,qt,No,sl,Ra,ko,Dp,ov,ll,Lp,qp,Wr=class Wr{constructor(e,t={},n){p(this,"distance",0);p(this,"accessible",!1);w(this,av,{});w(this,pt,void 0);p(this,"activeDirections");w(this,En,void 0);w(this,$c,void 0);w(this,qt,{});w(this,No,[]);w(this,sl,void 0);w(this,Ra,[]);w(this,ko,new Map);p(this,"setStep",l(e=>{e!==d(this,$c)&&(d(this,En).length<2||e<0||e>d(this,En).length||(d(this,qp).call(this),d(this,Lp).call(this),A(this,$c,e),this.activeDirections=d(this,En)[e],d(this,pt).currentPath=this.activeDirections.path,d(this,ll).call(this),d(this,Dp).call(this)))},"setStep"));p(this,"setStepByPath",l(e=>{let t=d(this,ko).get(e);if(t==null){F.warn("Cannot set step. Path is not part of journey.");return}let n=d(this,En).indexOf(t);if(n<0){F.warn("There was a problem setting this step of the journey.");return}this.setStep(n)},"setStepByPath"));w(this,Dp,l(()=>{var a,o;let e=this.activeDirections.path[this.activeDirections.path.length-1],t=this.activeDirections.path[0];typeof d(this,qt).polygonHighlightColor=="string"&&((a=t.locations)==null||a.forEach(s=>{s.polygons.forEach(c=>{d(this,pt).polygonColors.setPolygonColor(c,d(this,qt).polygonHighlightColor)})}),(o=e.locations)==null||o.forEach(s=>{s.polygons.forEach(c=>{d(this,pt).polygonColors.setPolygonColor(c,d(this,qt).polygonHighlightColor)})}));let n=(d(this,En)||[this.activeDirections]).map(s=>s.path[s.path.length-1]);n==null||n.forEach(s=>{var u;let c=XI(d(this,qt).scale);if(typeof d(this,qt).destinationMarkerTemplate=="function"){if(d(this,Ra)||A(this,Ra,[]),((u=s.locations)==null?void 0:u[0])==null)return;d(this,Ra).push(d(this,pt).markers.add(s,d(this,qt).destinationMarkerTemplate({icon:c,location:s.locations[0]}),{rank:4,anchor:1}))}});let r=WI(d(this,qt).scale);typeof d(this,qt).departureMarkerTemplate=="function"&&A(this,sl,d(this,pt).markers.add(t,d(this,qt).departureMarkerTemplate({icon:r}),{rank:4,anchor:1})),d(this,pt).tryRendering()},"#updateForJourneyStartOrStepChange"));w(this,ov,l(()=>{let t={drawConnectionSegments:this.isMultiFloor,connectionPathOptions:d(this,qt).connectionPathOptions};if(d(this,ko).size===0){d(this,En).forEach(r=>{if(r!==this.activeDirections){let a=d(this,pt).paths.drawPath(r.path,{...d(this,qt).inactivePathOptions,...t});d(this,ko).set(a,r)}});let n=d(this,pt).paths.drawPath(this.activeDirections.path,{...d(this,qt).pathOptions,...t});d(this,ko).set(n,this.activeDirections)}else d(this,ko).forEach((n,r)=>{d(this,pt).paths.redrawPath(r,n===this.activeDirections?{...d(this,qt).pathOptions,...t}:{...d(this,qt).inactivePathOptions,...t})})},"#redrawAllPaths"));w(this,ll,l(()=>{this.isMultiFloor&&(d(this,No).forEach(e=>e.destroy()),A(this,No,[]),A(this,No,this.activeDirections.instructions.filter(e=>{var t,n;return((t=e.action)==null?void 0:t.type)==="TakeVortex"||((n=e.action)==null?void 0:n.type)==="ExitVortex"}).map(e=>new y8(e,d(this,qt).connectionTemplate,d(this,pt))).filter(e=>e))),d(this,ov).call(this),d(this,pt).tryRendering()},"#updateForMapChange"));w(this,Lp,l(()=>{var e,t;if(d(this,qt).polygonHighlightColor!==!1){let n=this.activeDirections.path[this.activeDirections.path.length-1];(e=this.activeDirections.path[0].locations)==null||e.forEach(a=>{a.polygons.forEach(o=>{d(this,pt).polygonColors.clearPolygonColor(o.id)})}),(t=n.locations)==null||t.forEach(a=>{a.polygons.forEach(o=>{d(this,pt).polygonColors.clearPolygonColor(o.id)})})}},"#unhighlightPolygons"));w(this,qp,l(()=>{d(this,Ra).length&&d(this,Ra).forEach(e=>{d(this,pt).markers.remove(e)}),A(this,Ra,[]),d(this,sl)!=null&&d(this,pt).markers.remove(d(this,sl)),A(this,sl,void 0),d(this,No).forEach(e=>e.destroy()),A(this,No,[])},"#removeAllMarkers"));var r,a;A(this,pt,n),A(this,qt,{scale:1,polygonHighlightColor:"#7babc8",destinationMarkerTemplate:()=>XI(),departureMarkerTemplate:()=>WI(),...t,pathOptions:{...$Y,...t==null?void 0:t.pathOptions},inactivePathOptions:{...eW,...t==null?void 0:t.inactivePathOptions},connectionPathOptions:{...tW,...t==null?void 0:t.connectionPathOptions}}),(r=t==null?void 0:t.pathOptions)!=null&&r.farRadius||(d(this,qt).pathOptions.farRadius=d(this,qt).pathOptions.nearRadius*ZI),(a=t==null?void 0:t.inactivePathOptions)!=null&&a.farRadius||(d(this,qt).inactivePathOptions.farRadius=d(this,qt).inactivePathOptions.nearRadius*ZI),Array.isArray(e)?(A(this,En,e),this.activeDirections=d(this,En)[0],A(this,$c,0),d(this,pt).currentPath=e[0].path):(A(this,En,[e]),this.activeDirections=e,d(this,pt).currentPath=e.path),A(this,pt,n),d(this,pt).on(7,d(this,ll)),d(this,ll).call(this),d(this,Dp).call(this)}get isMultiFloor(){return this.mapIdsInvolvedInJourney.length>1}get mapsInJourney(){return this.mapIdsInvolvedInJourney.map(e=>{var t;return(t=d(this,pt).mapObjects.get(e))==null?void 0:t.mapClass})}get buildingsInJourney(){return this.mapsInJourney.reduce((e,t)=>(t&&t.mapGroup!==null&&(e[t.mapGroup.id]||(e[t.mapGroup.id]=[]),e[t.mapGroup.id].push(t)),e),{})}get mapIdsInvolvedInJourney(){let e={};d(this,En).forEach(n=>{n.path.forEach(r=>e[r.map.id]=!0)});let t=Object.keys(e);return d(this,av).mapsInvolvedInJourney=t,t}static create(e,t,n){return Wr.instance!=null&&Wr.instance.destroy(),Wr.instance=new Wr(e,t,n),n.publish(29),Wr.instance}destroy(){d(this,Lp).call(this),d(this,qp).call(this),d(this,pt).paths.removeAllPaths(),d(this,pt).currentPath=void 0,d(this,pt).off(7,d(this,ll)),d(this,pt).publish(30),Wr.instance=null}};av=new WeakMap,pt=new WeakMap,En=new WeakMap,$c=new WeakMap,qt=new WeakMap,No=new WeakMap,sl=new WeakMap,Ra=new WeakMap,ko=new WeakMap,Dp=new WeakMap,ov=new WeakMap,ll=new WeakMap,Lp=new WeakMap,qp=new WeakMap,l(Wr,"JourneyController"),p(Wr,"instance",null);var Bo=Wr;var Oe,pr,M8=class M8{constructor(e){w(this,Oe,void 0);p(this,"options",{});p(this,"enabled",!1);p(this,"stackScene");p(this,"directions");p(this,"hasOutdoorGeometry",!1);p(this,"needsUpdate",!1);p(this,"currentState","INACTIVE");p(this,"mapsInJourney",[]);p(this,"getZoomIntoMapOptions",l(e=>{if("map"in e&&"nodes"in e&&"rotation"in e){let{map:t,nodes:n,rotation:r}=e;return[new Aa([t],d(this,Oe)),{activeMap:t,focusOn:{targets:{nodes:n},options:{tilt:.7,rotation:r,easing:"ease-in-out",...e.cameraTransform}}}]}},"getZoomIntoMapOptions"));p(this,"getDisableOptions",l(e=>{if("map"in e)return[new Aa([e.map],d(this,Oe)),{activeMap:e.map}]},"getDisableOptions"));p(this,"getShowOverviewOptions",l(e=>{var t;if("stackScene"in e)return[e.stackScene,{activeMap:e.stackScene.currentMap,focusOn:{options:{tilt:1.2,duration:500}},verticalDistanceBetweenMaps:(t=this.options)==null?void 0:t.verticalDistanceBetweenMaps}]},"getShowOverviewOptions"));p(this,"getScrollToMapOptions",l(e=>{if("stackScene"in e&&"map"in e&&"nodes"in e){let{stackScene:t,map:n,nodes:r}=e;return[t,{focusOn:{targets:{nodes:r},options:{tilt:.7,easing:"ease-in-out"}},activeMap:n}]}},"getScrollToMapOptions"));p(this,"getEnableOptions",l(e=>{"directions"in e&&(this.directions=e.directions,this.stackScene=new ep(this.mapsInJourney,d(this,Oe),this.options.mapLabels))},"getEnableOptions"));p(this,"getShowOverviewTransition",l((e,t=!1)=>{var s;let[n,r]=e,a=(s=d(this,Oe).sceneManager)==null?void 0:s.currentScene,o=n;return async()=>{d(this,Oe).publish(6),await d(this,Oe).tileManager.fadeOut(),await o.prepare(d(this,Oe).sceneManager,r);let c=o.mapObjects.get(o.currentMap.id);c.object.position.z=o.computeMapZ(c,o.mapObjectsArray.indexOf(c),r),a&&(a==null||a.mapObjectsArray.forEach(u=>{u.onInvisible()})),o.mapObjectsArray.forEach(u=>{u.onInvisible()}),d(this,Oe).controls.setPedestal(c.object.position.z),d(this,Oe).scene.add(o.object),o.object.add(c.object),this.hasOutdoorGeometry&&await Promise.all(o.mapObjectsArray.map(u=>u.fadeOut("outdoor-geometry"))),r.animate?await Promise.all([d(this,Oe).tileManager.fadeOut()]):o.mapObjectsArray.forEach((u,h)=>{u.object.position.z=o.computeMapZ(u,h,r),o.object.add(u.object)}),o.createStackBoundingBox(),o.resize(),r.animate?(await o.focusOnStackBox({...r,autoFocusOnActiveMap:!0}),await o.expandMaps(o.mapObjectsArray,r).start()):await Promise.all([o.focusOnStackBox({...r,autoFocusOnActiveMap:!0}),...o.mapObjectsArray.map(u=>u.fadeIn("default").start()),...this.hasOutdoorGeometry?o.mapObjectsArray.map(u=>u.fadeOut("outdoor-geometry").start()):[]]),t||o.mapObjectsArray.forEach(u=>{u.onVisible()}),o.postRender(),o.lockControls(),d(this,Oe).scene.remove(a.object),t||d(this,Oe).publish(7)}},"getShowOverviewTransition"));p(this,"getZoomInToMapTransition",l(e=>{var a;let[t,n]=e,r=(a=d(this,Oe).sceneManager)==null?void 0:a.currentScene;return async()=>{d(this,Oe).publish(6);let o=t.mapObjects.get(n.activeMap.id),s=o.object.position.z;await t.prepare(d(this,Oe).sceneManager,n),o.object.position.z=s,d(this,Oe).paths.hideConnectionSegments(),r.destroyLabels(),t.mapObjects.forEach(c=>{t.object.add(c==null?void 0:c.object),c.onInvisible()}),r&&(r==null||r.mapObjectsArray.forEach(c=>{c.onInvisible()})),d(this,Oe).scene.add(t.object),await Promise.all([o.fadeIn().start(),t.focusOnCurrentMap({...n,autoFocusOnActiveMap:!0}),...r.mapObjectsArray.filter(c=>c!==o).map(c=>c.fadeOut().start())]),t.mapObjectsArray.forEach(c=>{c.onVisible()}),r.unmount(),t.postRender(),d(this,Oe).scene.remove(r.object),d(this,Oe).publish(7)}},"getZoomInToMapTransition"));p(this,"getScrollToMapTransition",l((e,t=!1)=>{var o;let[n,r]=e,a=(o=d(this,Oe).sceneManager)==null?void 0:o.currentScene;return async()=>{a.currentMap=r.activeMap,await a.scrollToMap(r.activeMap),t||d(this,Oe).publish(7)}},"getScrollToMapTransition"));p(this,"getDisableTransition",l(e=>{let[t,n]=e,r=d(this,Oe).sceneManager.currentScene;return async()=>{var s;let a=r.mapObjects.get(r.currentMap.id);d(this,Oe).publish(6);let o=t.mapObjects.get(n.activeMap.id);r instanceof ep&&r.destroyLabels(),await t.prepare(d(this,Oe).sceneManager,n),r&&(r==null||r.mapObjectsArray.forEach(c=>{c.onInvisible()})),t.mapObjectsArray.forEach(c=>{c.onInvisible()}),d(this,Oe).scene.add(t.object),t.mapObjects.forEach(c=>{t.object.add(c==null?void 0:c.object)}),d(this,Oe).paths.hideConnectionSegments(),await Promise.all([r instanceof ep&&r.contractMaps(a).start(),r.focusOnCurrentMap({...n,autoFocusOnActiveMap:!0})].filter(c=>c)),d(this,Oe).scene.remove(r.object),d(this,Oe).tryRendering(),o.object.position.z=0,d(this,Oe).controls.setPedestal(0),t.focusOnCurrentMap({...n,focusOn:{...n.focusOn,options:{...(s=n.focusOn)==null?void 0:s.options,duration:150}},autoFocusOnActiveMap:!0}),r.unmount(),await Promise.all([d(this,Oe).tileManager.fadeIn(),...t.mapObjectsArray.map(c=>c.fadeIn().start())]),t.mapObjectsArray.forEach(c=>{c.onVisible()}),t.postRender(),d(this,Oe).publish(7)}},"getDisableTransition"));p(this,"getEnableTransition",l(()=>()=>{},"getEnableTransition"));p(this,"states",{INACTIVE:{actions:{enable:["ACTIVE",[e=>this.getEnableOptions(e)]]}},ACTIVE:{actions:{disable:["INACTIVE",[e=>this.getDisableTransition(this.getDisableOptions(e))]],showOverview:["OVERVIEW",[e=>{let t=this.getShowOverviewOptions(e);if(t!=null&&"directions"in e&&"map"in e){let[n,r]=t;return this.getShowOverviewTransition([n,(0,QI.default)({},r,t,{activeMap:e.map,animate:!0,focusOn:{options:{tilt:1.2,duration:500}}})])}return Promise.reject()}]]}},OVERVIEW:{actions:{disable:["INACTIVE",[e=>this.getDisableTransition(this.getDisableOptions(e))]],zoomInToMap:["ZOOMED_IN",[e=>this.getScrollToMapTransition(this.getScrollToMapOptions(e),!0),e=>this.getZoomInToMapTransition(this.getZoomIntoMapOptions(e))]],scrollToMap:["OVERVIEW",[e=>this.getScrollToMapTransition(this.getScrollToMapOptions(e))]]}},ZOOMED_IN:{actions:{disable:["INACTIVE",[e=>this.getDisableTransition(this.getDisableOptions(e))]],showOverview:["OVERVIEW",[e=>this.getShowOverviewTransition(this.getShowOverviewOptions(e))]],zoomInToMap:["ZOOMED_IN",[e=>this.getShowOverviewTransition(this.getShowOverviewOptions(e),!0),e=>this.getScrollToMapTransition(this.getScrollToMapOptions(e),!0),e=>this.getZoomInToMapTransition(this.getZoomIntoMapOptions(e))]]}}});w(this,pr,!1);p(this,"disable",l(()=>{d(this,Oe).setState("explore"),this.options={};let e=this.transition(this.currentState,"disable");return e!=null?(this.enabled=!1,this.mapsInJourney=[],this.exec(e,{map:this.currentMap})):Promise.reject()},"disable"));p(this,"enable",l(e=>{if(Bo.instance==null)return Promise.reject("Can't enable stacked maps without a journey enabled");let t=this.transition(this.currentState,"enable");if(t!=null){this.options=e||{},d(this,Oe).setState("STACKED"),this.enabled=!0;let n=Bo.instance.activeDirections;return this.mapsInJourney=Bo.instance.mapsInJourney,this.exec(t,{directions:n})}return Promise.reject()},"enable"));p(this,"showOverview",l(async()=>{if(d(this,pr))return Promise.resolve();A(this,pr,!0);let e=this.transition(this.currentState,"showOverview");return this.exec(e,{map:this.mapsInJourney.includes(this.currentMap)?this.currentMap:this.mapsInJourney[0],stackScene:this.stackScene,directions:this.directions})},"showOverview"));p(this,"scrollToMap",l(e=>{if(d(this,pr))return Promise.resolve();A(this,pr,!0);let t=this.transition(this.currentState,"scrollToMap");return this.exec(t,{stackScene:this.stackScene,map:e,rotation:void 0,nodes:this.nodesInJourney.filter(n=>n.map===e)})},"scrollToMap"));p(this,"zoomInToMap",l((e,t)=>{if(d(this,pr))return Promise.resolve();A(this,pr,!0);let n=e||this.currentMap,r=this.nodesInJourney.filter(o=>o.map===n),a=this.transition(this.currentState,"zoomInToMap");return this.exec(a,{map:e,nodes:r,stackScene:this.stackScene,rotation:d(this,Oe).controls.getRotation(),cameraTransform:t})},"zoomInToMap"));var n,r;A(this,Oe,e);let t=(r=(n=d(this,Oe).options)==null?void 0:n.loadOptions)==null?void 0:r.outdoorGeometryLayers;this.hasOutdoorGeometry=Array.isArray(t)&&t.length>0}transition(e,t){var a,o;let n=(a=this.states[e])==null?void 0:a.actions[t],r=(o=n==null?void 0:n[0])!=null?o:e;if(r==null||n==null)this.needsUpdate=!1;else return this.currentState=r,this.needsUpdate=!0,n[1]}async exec(e,t){if(!(!this.needsUpdate||e==null)){if(Array.isArray(e)&&e.filter(n=>n).length>0){for(let n of e){let r=n(t);typeof r=="function"&&await r()}return A(this,pr,!1),Promise.resolve()}A(this,pr,!1)}}get nodesInJourney(){return Array.isArray(this.directions)?this.directions.map(e=>e.path).flat():this.directions.path}get currentMap(){return d(this,Oe).venue.getCollectionItemById("maps",d(this,Oe).currentMap)}};Oe=new WeakMap,pr=new WeakMap,l(M8,"StackedMapsController");var x8=M8,T8=x8;y();y();y();y();y();var w8=class w8{constructor(){this._previousTime=0,this._currentTime=0,this._startTime=E8(),this._delta=0,this._elapsed=0,this._timescale=1,this._usePageVisibilityAPI=typeof document<"u"&&document.hidden!==void 0,this._usePageVisibilityAPI===!0&&(this._pageVisibilityHandler=iW.bind(this),document.addEventListener("visibilitychange",this._pageVisibilityHandler,!1))}getDelta(){return this._delta/1e3}getElapsed(){return this._elapsed/1e3}getTimescale(){return this._timescale}setTimescale(e){return this._timescale=e,this}reset(){return this._currentTime=E8()-this._startTime,this}dispose(){return this._usePageVisibilityAPI===!0&&document.removeEventListener("visibilitychange",this._pageVisibilityHandler),this}update(e){return this._usePageVisibilityAPI===!0&&document.hidden===!0?this._delta=0:(this._previousTime=this._currentTime,this._currentTime=(e!==void 0?e:E8())-this._startTime,this._delta=(this._currentTime-this._previousTime)*this._timescale,this._elapsed+=this._delta),this}};l(w8,"Timer");var sv=w8;function E8(){return(typeof performance>"u"?Date:performance).now()}l(E8,"now");function iW(){document.hidden===!1&&this.reset()}l(iW,"handleVisibilityChange");var nW="varying vec2 vUv;void main(){vUv=position.xy*0.5+0.5;gl_Position=vec4(position.xy,1.0,1.0);}";var De={SKIP:9,SET:30,ADD:0,ALPHA:1,AVERAGE:2,COLOR:3,COLOR_BURN:4,COLOR_DODGE:5,DARKEN:6,DIFFERENCE:7,DIVIDE:8,DST:9,EXCLUSION:10,HARD_LIGHT:11,HARD_MIX:12,HUE:13,INVERT:14,INVERT_RGB:15,LIGHTEN:16,LINEAR_BURN:17,LINEAR_DODGE:18,LINEAR_LIGHT:19,LUMINOSITY:20,MULTIPLY:21,NEGATION:22,NORMAL:23,OVERLAY:24,PIN_LIGHT:25,REFLECT:26,SATURATION:27,SCREEN:28,SOFT_LIGHT:29,SRC:30,SUBTRACT:31,VIVID_LIGHT:32};var i_={DEPTH:0,LUMA:1,COLOR:2},ka={NONE:0,DEPTH:1,CONVOLUTION:2},nt={FRAGMENT_HEAD:"FRAGMENT_HEAD",FRAGMENT_MAIN_UV:"FRAGMENT_MAIN_UV",FRAGMENT_MAIN_IMAGE:"FRAGMENT_MAIN_IMAGE",VERTEX_HEAD:"VERTEX_HEAD",VERTEX_MAIN_SUPPORT:"VERTEX_MAIN_SUPPORT"};var P8={VERY_SMALL:0,SMALL:1,MEDIUM:2,LARGE:3,VERY_LARGE:4,HUGE:5};var rW={DISABLED:0,DEPTH:1,CUSTOM:2},Xr={LOW:0,MEDIUM:1,HIGH:2,ULTRA:3};var aW="#ifdef FRAMEBUFFER_PRECISION_HIGH\nuniform mediump sampler2D inputBuffer;\n#else\nuniform lowp sampler2D inputBuffer;\n#endif\nvarying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec4 sum=texture2D(inputBuffer,vUv0);sum+=texture2D(inputBuffer,vUv1);sum+=texture2D(inputBuffer,vUv2);sum+=texture2D(inputBuffer,vUv3);gl_FragColor=sum*0.25;\n#include <colorspace_fragment>\n}",oW="uniform vec4 texelSize;uniform float kernel;uniform float scale;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec2 uv=position.xy*0.5+0.5;vec2 dUv=(texelSize.xy*vec2(kernel)+texelSize.zw)*scale;vUv0=vec2(uv.x-dUv.x,uv.y+dUv.y);vUv1=vec2(uv.x+dUv.x,uv.y+dUv.y);vUv2=vec2(uv.x+dUv.x,uv.y-dUv.y);vUv3=vec2(uv.x-dUv.x,uv.y-dUv.y);gl_Position=vec4(position.xy,1.0,1.0);}",sW=[new Float32Array([0,0]),new Float32Array([0,1,1]),new Float32Array([0,1,1,2]),new Float32Array([0,1,2,2,3]),new Float32Array([0,1,2,3,4,4,5]),new Float32Array([0,1,2,3,4,5,7,8,9,10])],Rp,lW=(Rp=class extends We{constructor(e=new r4){super({name:"KawaseBlurMaterial",uniforms:{inputBuffer:new xe(null),texelSize:new xe(new r4),scale:new xe(1),kernel:new xe(0)},blending:tn,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:aW,vertexShader:oW}),this.setTexelSize(e.x,e.y),this.kernelSize=P8.MEDIUM}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.inputBuffer=e}get kernelSequence(){return sW[this.kernelSize]}get scale(){return this.uniforms.scale.value}set scale(e){this.uniforms.scale.value=e}getScale(){return this.uniforms.scale.value}setScale(e){this.uniforms.scale.value=e}getKernel(){return null}get kernel(){return this.uniforms.kernel.value}set kernel(e){this.uniforms.kernel.value=e}setKernel(e){this.kernel=e}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t,e*.5,t*.5)}setSize(e,t){let n=1/e,r=1/t;this.uniforms.texelSize.value.set(n,r,n*.5,r*.5)}},l(Rp,"KawaseBlurMaterial"),Rp),cW="#include <common>\n#include <dithering_pars_fragment>\n#ifdef FRAMEBUFFER_PRECISION_HIGH\nuniform mediump sampler2D inputBuffer;\n#else\nuniform lowp sampler2D inputBuffer;\n#endif\nuniform float opacity;varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);gl_FragColor=opacity*texel;\n#include <colorspace_fragment>\n#include <dithering_fragment>\n}",Np,n_=(Np=class extends We{constructor(){super({name:"CopyMaterial",uniforms:{inputBuffer:new xe(null),opacity:new xe(1)},blending:tn,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:cW,vertexShader:nW})}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}getOpacity(e){return this.uniforms.opacity.value}setOpacity(e){this.uniforms.opacity.value=e}},l(Np,"CopyMaterial"),Np),uW="#include <packing>\n#include <clipping_planes_pars_fragment>\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nuniform highp sampler2D depthBuffer;\n#else\nuniform mediump sampler2D depthBuffer;\n#endif\nuniform float cameraNear;uniform float cameraFar;centroid varying float vViewZ;centroid varying vec4 vProjTexCoord;void main(){\n#include <clipping_planes_fragment>\nvec2 projTexCoord=(vProjTexCoord.xy/vProjTexCoord.w)*0.5+0.5;projTexCoord=clamp(projTexCoord,0.002,0.998);\n#if DEPTH_PACKING == 3201\nfloat fragCoordZ=unpackRGBAToDepth(texture2D(depthBuffer,projTexCoord));\n#else\nfloat fragCoordZ=texture2D(depthBuffer,projTexCoord).r;\n#endif\n#ifdef PERSPECTIVE_CAMERA\nfloat viewZ=perspectiveDepthToViewZ(fragCoordZ,cameraNear,cameraFar);\n#else\nfloat viewZ=orthographicDepthToViewZ(fragCoordZ,cameraNear,cameraFar);\n#endif\nfloat depthTest=(-vViewZ>-viewZ)?1.0:0.0;gl_FragColor.rg=vec2(0.0,depthTest);}",dW="#include <common>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying float vViewZ;varying vec4 vProjTexCoord;void main(){\n#include <skinbase_vertex>\n#include <begin_vertex>\n#include <morphtarget_vertex>\n#include <skinning_vertex>\n#include <project_vertex>\nvViewZ=mvPosition.z;vProjTexCoord=gl_Position;\n#include <clipping_planes_vertex>\n}",kp,hW=(kp=class extends We{constructor(e=null,t){super({name:"DepthComparisonMaterial",defines:{DEPTH_PACKING:"0"},uniforms:{depthBuffer:new xe(null),cameraNear:new xe(.3),cameraFar:new xe(1e3)},blending:tn,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:uW,vertexShader:dW}),this.depthBuffer=e,this.depthPacking=nd,this.copyCameraSettings(t)}set depthBuffer(e){this.uniforms.depthBuffer.value=e}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer(e,t=nd){this.depthBuffer=e,this.depthPacking=t}adoptCameraSettings(e){this.copyCameraSettings(e)}copyCameraSettings(e){e&&(this.uniforms.cameraNear.value=e.near,this.uniforms.cameraFar.value=e.far,e instanceof Vl?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}},l(kp,"DepthComparisonMaterial"),kp);var pW="varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1;\n#if EDGE_DETECTION_MODE != 0\nvarying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5;\n#endif\n#if EDGE_DETECTION_MODE == 1\n#include <common>\n#endif\n#if EDGE_DETECTION_MODE == 0 || PREDICATION_MODE == 1\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nuniform highp sampler2D depthBuffer;\n#else\nuniform mediump sampler2D depthBuffer;\n#endif\nfloat readDepth(const in vec2 uv){\n#if DEPTH_PACKING == 3201\nreturn unpackRGBAToDepth(texture2D(depthBuffer,uv));\n#else\nreturn texture2D(depthBuffer,uv).r;\n#endif\n}vec3 gatherNeighbors(){float p=readDepth(vUv);float pLeft=readDepth(vUv0);float pTop=readDepth(vUv1);return vec3(p,pLeft,pTop);}\n#elif PREDICATION_MODE == 2\nuniform sampler2D predicationBuffer;vec3 gatherNeighbors(){float p=texture2D(predicationBuffer,vUv).r;float pLeft=texture2D(predicationBuffer,vUv0).r;float pTop=texture2D(predicationBuffer,vUv1).r;return vec3(p,pLeft,pTop);}\n#endif\n#if PREDICATION_MODE != 0\nvec2 calculatePredicatedThreshold(){vec3 neighbours=gatherNeighbors();vec2 delta=abs(neighbours.xx-neighbours.yz);vec2 edges=step(PREDICATION_THRESHOLD,delta);return PREDICATION_SCALE*EDGE_THRESHOLD*(1.0-PREDICATION_STRENGTH*edges);}\n#endif\n#if EDGE_DETECTION_MODE != 0\nuniform sampler2D inputBuffer;\n#endif\nvoid main(){\n#if EDGE_DETECTION_MODE == 0\nconst vec2 threshold=vec2(DEPTH_THRESHOLD);\n#elif PREDICATION_MODE != 0\nvec2 threshold=calculatePredicatedThreshold();\n#else\nconst vec2 threshold=vec2(EDGE_THRESHOLD);\n#endif\n#if EDGE_DETECTION_MODE == 0\nvec3 neighbors=gatherNeighbors();vec2 delta=abs(neighbors.xx-vec2(neighbors.y,neighbors.z));vec2 edges=step(threshold,delta);if(dot(edges,vec2(1.0))==0.0){discard;}gl_FragColor=vec4(edges,0.0,1.0);\n#elif EDGE_DETECTION_MODE == 1\nfloat l=luminance(texture2D(inputBuffer,vUv).rgb);float lLeft=luminance(texture2D(inputBuffer,vUv0).rgb);float lTop=luminance(texture2D(inputBuffer,vUv1).rgb);vec4 delta;delta.xy=abs(l-vec2(lLeft,lTop));vec2 edges=step(threshold,delta.xy);if(dot(edges,vec2(1.0))==0.0){discard;}float lRight=luminance(texture2D(inputBuffer,vUv2).rgb);float lBottom=luminance(texture2D(inputBuffer,vUv3).rgb);delta.zw=abs(l-vec2(lRight,lBottom));vec2 maxDelta=max(delta.xy,delta.zw);float lLeftLeft=luminance(texture2D(inputBuffer,vUv4).rgb);float lTopTop=luminance(texture2D(inputBuffer,vUv5).rgb);delta.zw=abs(vec2(lLeft,lTop)-vec2(lLeftLeft,lTopTop));maxDelta=max(maxDelta.xy,delta.zw);float finalDelta=max(maxDelta.x,maxDelta.y);edges.xy*=step(finalDelta,LOCAL_CONTRAST_ADAPTATION_FACTOR*delta.xy);gl_FragColor=vec4(edges,0.0,1.0);\n#elif EDGE_DETECTION_MODE == 2\nvec4 delta;vec3 c=texture2D(inputBuffer,vUv).rgb;vec3 cLeft=texture2D(inputBuffer,vUv0).rgb;vec3 t=abs(c-cLeft);delta.x=max(max(t.r,t.g),t.b);vec3 cTop=texture2D(inputBuffer,vUv1).rgb;t=abs(c-cTop);delta.y=max(max(t.r,t.g),t.b);vec2 edges=step(threshold,delta.xy);if(dot(edges,vec2(1.0))==0.0){discard;}vec3 cRight=texture2D(inputBuffer,vUv2).rgb;t=abs(c-cRight);delta.z=max(max(t.r,t.g),t.b);vec3 cBottom=texture2D(inputBuffer,vUv3).rgb;t=abs(c-cBottom);delta.w=max(max(t.r,t.g),t.b);vec2 maxDelta=max(delta.xy,delta.zw);vec3 cLeftLeft=texture2D(inputBuffer,vUv4).rgb;t=abs(c-cLeftLeft);delta.z=max(max(t.r,t.g),t.b);vec3 cTopTop=texture2D(inputBuffer,vUv5).rgb;t=abs(c-cTopTop);delta.w=max(max(t.r,t.g),t.b);maxDelta=max(maxDelta.xy,delta.zw);float finalDelta=max(maxDelta.x,maxDelta.y);edges*=step(finalDelta,LOCAL_CONTRAST_ADAPTATION_FACTOR*delta.xy);gl_FragColor=vec4(edges,0.0,1.0);\n#endif\n}",fW="uniform vec2 texelSize;varying vec2 vUv;varying vec2 vUv0;varying vec2 vUv1;\n#if EDGE_DETECTION_MODE != 0\nvarying vec2 vUv2;varying vec2 vUv3;varying vec2 vUv4;varying vec2 vUv5;\n#endif\nvoid main(){vUv=position.xy*0.5+0.5;vUv0=vUv+texelSize*vec2(-1.0,0.0);vUv1=vUv+texelSize*vec2(0.0,-1.0);\n#if EDGE_DETECTION_MODE != 0\nvUv2=vUv+texelSize*vec2(1.0,0.0);vUv3=vUv+texelSize*vec2(0.0,1.0);vUv4=vUv+texelSize*vec2(-2.0,0.0);vUv5=vUv+texelSize*vec2(0.0,-2.0);\n#endif\ngl_Position=vec4(position.xy,1.0,1.0);}",Bp,mW=(Bp=class extends We{constructor(e=new he,t=i_.COLOR){super({name:"EdgeDetectionMaterial",defines:{THREE_REVISION:gm.replace(/\D+/g,""),LOCAL_CONTRAST_ADAPTATION_FACTOR:"2.0",EDGE_THRESHOLD:"0.1",DEPTH_THRESHOLD:"0.01",PREDICATION_MODE:"0",PREDICATION_THRESHOLD:"0.01",PREDICATION_SCALE:"2.0",PREDICATION_STRENGTH:"1.0",DEPTH_PACKING:"0"},uniforms:{inputBuffer:new xe(null),depthBuffer:new xe(null),predicationBuffer:new xe(null),texelSize:new xe(e)},blending:tn,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:pW,vertexShader:fW}),this.edgeDetectionMode=t}set depthBuffer(e){this.uniforms.depthBuffer.value=e}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer(e,t=An){this.depthBuffer=e,this.depthPacking=t}get edgeDetectionMode(){return Number(this.defines.EDGE_DETECTION_MODE)}set edgeDetectionMode(e){this.defines.EDGE_DETECTION_MODE=e.toFixed(0),this.needsUpdate=!0}getEdgeDetectionMode(){return this.edgeDetectionMode}setEdgeDetectionMode(e){this.edgeDetectionMode=e}get localContrastAdaptationFactor(){return Number(this.defines.LOCAL_CONTRAST_ADAPTATION_FACTOR)}set localContrastAdaptationFactor(e){this.defines.LOCAL_CONTRAST_ADAPTATION_FACTOR=e.toFixed("6"),this.needsUpdate=!0}getLocalContrastAdaptationFactor(){return this.localContrastAdaptationFactor}setLocalContrastAdaptationFactor(e){this.localContrastAdaptationFactor=e}get edgeDetectionThreshold(){return Number(this.defines.EDGE_THRESHOLD)}set edgeDetectionThreshold(e){this.defines.EDGE_THRESHOLD=e.toFixed("6"),this.defines.DEPTH_THRESHOLD=(e*.1).toFixed("6"),this.needsUpdate=!0}getEdgeDetectionThreshold(){return this.edgeDetectionThreshold}setEdgeDetectionThreshold(e){this.edgeDetectionThreshold=e}get predicationMode(){return Number(this.defines.PREDICATION_MODE)}set predicationMode(e){this.defines.PREDICATION_MODE=e.toFixed(0),this.needsUpdate=!0}getPredicationMode(){return this.predicationMode}setPredicationMode(e){this.predicationMode=e}set predicationBuffer(e){this.uniforms.predicationBuffer.value=e}setPredicationBuffer(e){this.uniforms.predicationBuffer.value=e}get predicationThreshold(){return Number(this.defines.PREDICATION_THRESHOLD)}set predicationThreshold(e){this.defines.PREDICATION_THRESHOLD=e.toFixed("6"),this.needsUpdate=!0}getPredicationThreshold(){return this.predicationThreshold}setPredicationThreshold(e){this.predicationThreshold=e}get predicationScale(){return Number(this.defines.PREDICATION_SCALE)}set predicationScale(e){this.defines.PREDICATION_SCALE=e.toFixed("6"),this.needsUpdate=!0}getPredicationScale(){return this.predicationScale}setPredicationScale(e){this.predicationScale=e}get predicationStrength(){return Number(this.defines.PREDICATION_STRENGTH)}set predicationStrength(e){this.defines.PREDICATION_STRENGTH=e.toFixed("6"),this.needsUpdate=!0}getPredicationStrength(){return this.predicationStrength}setPredicationStrength(e){this.predicationStrength=e}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}},l(Bp,"EdgeDetectionMaterial"),Bp),gW="#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#define packFloatToRGBA(v) packDepthToRGBA(v)\n#define unpackRGBAToFloat(v) unpackRGBAToDepth(v)\n#ifdef FRAMEBUFFER_PRECISION_HIGH\nuniform mediump sampler2D inputBuffer;\n#else\nuniform lowp sampler2D inputBuffer;\n#endif\n#if DEPTH_PACKING == 3201\nuniform lowp sampler2D depthBuffer;\n#elif defined(GL_FRAGMENT_PRECISION_HIGH)\nuniform highp sampler2D depthBuffer;\n#else\nuniform mediump sampler2D depthBuffer;\n#endif\nuniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;\n#if THREE_REVISION < 143\n#define luminance(v) linearToRelativeLuminance(v)\n#endif\n#if THREE_REVISION >= 137\nvec4 sRGBToLinear(const in vec4 value){return vec4(mix(pow(value.rgb*0.9478672986+vec3(0.0521327014),vec3(2.4)),value.rgb*0.0773993808,vec3(lessThanEqual(value.rgb,vec3(0.04045)))),value.a);}\n#endif\nfloat readDepth(const in vec2 uv){\n#if DEPTH_PACKING == 3201\nreturn unpackRGBAToDepth(texture2D(depthBuffer,uv));\n#else\nreturn texture2D(depthBuffer,uv).r;\n#endif\n}float getViewZ(const in float depth){\n#ifdef PERSPECTIVE_CAMERA\nreturn perspectiveDepthToViewZ(depth,cameraNear,cameraFar);\n#else\nreturn orthographicDepthToViewZ(depth,cameraNear,cameraFar);\n#endif\n}vec3 RGBToHCV(const in vec3 RGB){vec4 P=mix(vec4(RGB.bg,-1.0,2.0/3.0),vec4(RGB.gb,0.0,-1.0/3.0),step(RGB.b,RGB.g));vec4 Q=mix(vec4(P.xyw,RGB.r),vec4(RGB.r,P.yzx),step(P.x,RGB.r));float C=Q.x-min(Q.w,Q.y);float H=abs((Q.w-Q.y)/(6.0*C+EPSILON)+Q.z);return vec3(H,C,Q.x);}vec3 RGBToHSL(const in vec3 RGB){vec3 HCV=RGBToHCV(RGB);float L=HCV.z-HCV.y*0.5;float S=HCV.y/(1.0-abs(L*2.0-1.0)+EPSILON);return vec3(HCV.x,S,L);}vec3 HueToRGB(const in float H){float R=abs(H*6.0-3.0)-1.0;float G=2.0-abs(H*6.0-2.0);float B=2.0-abs(H*6.0-4.0);return clamp(vec3(R,G,B),0.0,1.0);}vec3 HSLToRGB(const in vec3 HSL){vec3 RGB=HueToRGB(HSL.x);float C=(1.0-abs(2.0*HSL.z-1.0))*HSL.y;return(RGB-0.5)*C+HSL.z;}FRAGMENT_HEAD void main(){FRAGMENT_MAIN_UV vec4 color0=texture2D(inputBuffer,UV);vec4 color1=vec4(0.0);FRAGMENT_MAIN_IMAGE color0.a=clamp(color0.a,0.0,1.0);gl_FragColor=color0;\n#ifdef ENCODE_OUTPUT\n#include <colorspace_fragment>\n#endif\n#include <dithering_fragment>\n}",vW="uniform vec2 resolution;uniform vec2 texelSize;uniform float cameraNear;uniform float cameraFar;uniform float aspect;uniform float time;varying vec2 vUv;VERTEX_HEAD void main(){vUv=position.xy*0.5+0.5;VERTEX_MAIN_SUPPORT gl_Position=vec4(position.xy,1.0,1.0);}",Fp,yW=(Fp=class extends We{constructor(e,t,n,r,a=!1){super({name:"EffectMaterial",defines:{THREE_REVISION:gm.replace(/\D+/g,""),DEPTH_PACKING:"0",ENCODE_OUTPUT:"1"},uniforms:{inputBuffer:new xe(null),depthBuffer:new xe(null),resolution:new xe(new he),texelSize:new xe(new he),cameraNear:new xe(.3),cameraFar:new xe(1e3),aspect:new xe(1),time:new xe(0)},blending:tn,toneMapped:!1,depthWrite:!1,depthTest:!1,dithering:a}),e&&this.setShaderParts(e),t&&this.setDefines(t),n&&this.setUniforms(n),this.copyCameraSettings(r)}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get depthBuffer(){return this.uniforms.depthBuffer.value}set depthBuffer(e){this.uniforms.depthBuffer.value=e}get depthPacking(){return Number(this.defines.DEPTH_PACKING)}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer(e,t=An){this.depthBuffer=e,this.depthPacking=t}setShaderData(e){this.setShaderParts(e.shaderParts),this.setDefines(e.defines),this.setUniforms(e.uniforms),this.setExtensions(e.extensions)}setShaderParts(e){return this.fragmentShader=gW.replace(nt.FRAGMENT_HEAD,e.get(nt.FRAGMENT_HEAD)||"").replace(nt.FRAGMENT_MAIN_UV,e.get(nt.FRAGMENT_MAIN_UV)||"").replace(nt.FRAGMENT_MAIN_IMAGE,e.get(nt.FRAGMENT_MAIN_IMAGE)||""),this.vertexShader=vW.replace(nt.VERTEX_HEAD,e.get(nt.VERTEX_HEAD)||"").replace(nt.VERTEX_MAIN_SUPPORT,e.get(nt.VERTEX_MAIN_SUPPORT)||""),this.needsUpdate=!0,this}setDefines(e){for(let t of e.entries())this.defines[t[0]]=t[1];return this.needsUpdate=!0,this}setUniforms(e){for(let t of e.entries())this.uniforms[t[0]]=t[1];return this}setExtensions(e){this.extensions={};for(let t of e)this.extensions[t]=!0;return this}get encodeOutput(){return this.defines.ENCODE_OUTPUT!==void 0}set encodeOutput(e){this.encodeOutput!==e&&(e?this.defines.ENCODE_OUTPUT="1":delete this.defines.ENCODE_OUTPUT,this.needsUpdate=!0)}isOutputEncodingEnabled(e){return this.encodeOutput}setOutputEncodingEnabled(e){this.encodeOutput=e}get time(){return this.uniforms.time.value}set time(e){this.uniforms.time.value=e}setDeltaTime(e){this.uniforms.time.value+=e}adoptCameraSettings(e){this.copyCameraSettings(e)}copyCameraSettings(e){e&&(this.uniforms.cameraNear.value=e.near,this.uniforms.cameraFar.value=e.far,e instanceof Vl?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}setSize(e,t){let n=this.uniforms;n.resolution.value.set(e,t),n.texelSize.value.set(1/e,1/t),n.aspect.value=e/t}static get Section(){return nt}},l(Fp,"EffectMaterial"),Fp);var bW="uniform lowp sampler2D inputBuffer;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec2 c0=texture2D(inputBuffer,vUv0).rg;vec2 c1=texture2D(inputBuffer,vUv1).rg;vec2 c2=texture2D(inputBuffer,vUv2).rg;vec2 c3=texture2D(inputBuffer,vUv3).rg;float d0=(c0.x-c1.x)*0.5;float d1=(c2.x-c3.x)*0.5;float d=length(vec2(d0,d1));float a0=min(c0.y,c1.y);float a1=min(c2.y,c3.y);float visibilityFactor=min(a0,a1);gl_FragColor.rg=(1.0-visibilityFactor>0.001)?vec2(d,0.0):vec2(0.0,d);}",xW="uniform vec2 texelSize;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec2 uv=position.xy*0.5+0.5;vUv0=vec2(uv.x+texelSize.x,uv.y);vUv1=vec2(uv.x-texelSize.x,uv.y);vUv2=vec2(uv.x,uv.y+texelSize.y);vUv3=vec2(uv.x,uv.y-texelSize.y);gl_Position=vec4(position.xy,1.0,1.0);}",Up,TW=(Up=class extends We{constructor(e=new he){super({name:"OutlineMaterial",uniforms:{inputBuffer:new xe(null),texelSize:new xe(new he)},blending:tn,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:bW,vertexShader:xW}),this.uniforms.texelSize.value.set(e.x,e.y),this.uniforms.maskTexture=this.uniforms.inputBuffer}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t)}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}},l(Up,"OutlineMaterial"),Up),MW="#define sampleLevelZeroOffset(t, coord, offset) texture2D(t, coord + offset * texelSize)\n#if __VERSION__ < 300\n#define round(v) floor(v + 0.5)\n#endif\n#ifdef FRAMEBUFFER_PRECISION_HIGH\nuniform mediump sampler2D inputBuffer;\n#else\nuniform lowp sampler2D inputBuffer;\n#endif\nuniform lowp sampler2D areaTexture;uniform lowp sampler2D searchTexture;uniform vec2 texelSize;uniform vec2 resolution;varying vec2 vUv;varying vec4 vOffset[3];varying vec2 vPixCoord;void movec(const in bvec2 c,inout vec2 variable,const in vec2 value){if(c.x){variable.x=value.x;}if(c.y){variable.y=value.y;}}void movec(const in bvec4 c,inout vec4 variable,const in vec4 value){movec(c.xy,variable.xy,value.xy);movec(c.zw,variable.zw,value.zw);}vec2 decodeDiagBilinearAccess(in vec2 e){e.r=e.r*abs(5.0*e.r-5.0*0.75);return round(e);}vec4 decodeDiagBilinearAccess(in vec4 e){e.rb=e.rb*abs(5.0*e.rb-5.0*0.75);return round(e);}vec2 searchDiag1(const in vec2 texCoord,const in vec2 dir,out vec2 e){vec4 coord=vec4(texCoord,-1.0,1.0);vec3 t=vec3(texelSize,1.0);for(int i=0;i<MAX_SEARCH_STEPS_INT;++i){if(!(coord.z<float(MAX_SEARCH_STEPS_DIAG_INT-1)&&coord.w>0.9)){break;}coord.xyz=t*vec3(dir,1.0)+coord.xyz;e=texture2D(inputBuffer,coord.xy).rg;coord.w=dot(e,vec2(0.5));}return coord.zw;}vec2 searchDiag2(const in vec2 texCoord,const in vec2 dir,out vec2 e){vec4 coord=vec4(texCoord,-1.0,1.0);coord.x+=0.25*texelSize.x;vec3 t=vec3(texelSize,1.0);for(int i=0;i<MAX_SEARCH_STEPS_INT;++i){if(!(coord.z<float(MAX_SEARCH_STEPS_DIAG_INT-1)&&coord.w>0.9)){break;}coord.xyz=t*vec3(dir,1.0)+coord.xyz;e=texture2D(inputBuffer,coord.xy).rg;e=decodeDiagBilinearAccess(e);coord.w=dot(e,vec2(0.5));}return coord.zw;}vec2 areaDiag(const in vec2 dist,const in vec2 e,const in float offset){vec2 texCoord=vec2(AREATEX_MAX_DISTANCE_DIAG,AREATEX_MAX_DISTANCE_DIAG)*e+dist;texCoord=AREATEX_PIXEL_SIZE*texCoord+0.5*AREATEX_PIXEL_SIZE;texCoord.x+=0.5;texCoord.y+=AREATEX_SUBTEX_SIZE*offset;return texture2D(areaTexture,texCoord).rg;}vec2 calculateDiagWeights(const in vec2 texCoord,const in vec2 e,const in vec4 subsampleIndices){vec2 weights=vec2(0.0);vec4 d;vec2 end;if(e.r>0.0){d.xz=searchDiag1(texCoord,vec2(-1.0,1.0),end);d.x+=float(end.y>0.9);}else{d.xz=vec2(0.0);}d.yw=searchDiag1(texCoord,vec2(1.0,-1.0),end);if(d.x+d.y>2.0){vec4 coords=vec4(-d.x+0.25,d.x,d.y,-d.y-0.25)*texelSize.xyxy+texCoord.xyxy;vec4 c;c.xy=sampleLevelZeroOffset(inputBuffer,coords.xy,vec2(-1,0)).rg;c.zw=sampleLevelZeroOffset(inputBuffer,coords.zw,vec2(1,0)).rg;c.yxwz=decodeDiagBilinearAccess(c.xyzw);vec2 cc=vec2(2.0)*c.xz+c.yw;movec(bvec2(step(0.9,d.zw)),cc,vec2(0.0));weights+=areaDiag(d.xy,cc,subsampleIndices.z);}d.xz=searchDiag2(texCoord,vec2(-1.0,-1.0),end);if(sampleLevelZeroOffset(inputBuffer,texCoord,vec2(1,0)).r>0.0){d.yw=searchDiag2(texCoord,vec2(1.0),end);d.y+=float(end.y>0.9);}else{d.yw=vec2(0.0);}if(d.x+d.y>2.0){vec4 coords=vec4(-d.x,-d.x,d.y,d.y)*texelSize.xyxy+texCoord.xyxy;vec4 c;c.x=sampleLevelZeroOffset(inputBuffer,coords.xy,vec2(-1,0)).g;c.y=sampleLevelZeroOffset(inputBuffer,coords.xy,vec2(0,-1)).r;c.zw=sampleLevelZeroOffset(inputBuffer,coords.zw,vec2(1,0)).gr;vec2 cc=vec2(2.0)*c.xz+c.yw;movec(bvec2(step(0.9,d.zw)),cc,vec2(0.0));weights+=areaDiag(d.xy,cc,subsampleIndices.w).gr;}return weights;}float searchLength(const in vec2 e,const in float offset){vec2 scale=SEARCHTEX_SIZE*vec2(0.5,-1.0);vec2 bias=SEARCHTEX_SIZE*vec2(offset,1.0);scale+=vec2(-1.0,1.0);bias+=vec2(0.5,-0.5);scale*=1.0/SEARCHTEX_PACKED_SIZE;bias*=1.0/SEARCHTEX_PACKED_SIZE;return texture2D(searchTexture,scale*e+bias).r;}float searchXLeft(in vec2 texCoord,const in float end){vec2 e=vec2(0.0,1.0);for(int i=0;i<MAX_SEARCH_STEPS_INT;++i){if(!(texCoord.x>end&&e.g>0.8281&&e.r==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=vec2(-2.0,0.0)*texelSize+texCoord;}float offset=-(255.0/127.0)*searchLength(e,0.0)+3.25;return texelSize.x*offset+texCoord.x;}float searchXRight(vec2 texCoord,const in float end){vec2 e=vec2(0.0,1.0);for(int i=0;i<MAX_SEARCH_STEPS_INT;++i){if(!(texCoord.x<end&&e.g>0.8281&&e.r==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=vec2(2.0,0.0)*texelSize.xy+texCoord;}float offset=-(255.0/127.0)*searchLength(e,0.5)+3.25;return-texelSize.x*offset+texCoord.x;}float searchYUp(vec2 texCoord,const in float end){vec2 e=vec2(1.0,0.0);for(int i=0;i<MAX_SEARCH_STEPS_INT;++i){if(!(texCoord.y>end&&e.r>0.8281&&e.g==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=-vec2(0.0,2.0)*texelSize.xy+texCoord;}float offset=-(255.0/127.0)*searchLength(e.gr,0.0)+3.25;return texelSize.y*offset+texCoord.y;}float searchYDown(vec2 texCoord,const in float end){vec2 e=vec2(1.0,0.0);for(int i=0;i<MAX_SEARCH_STEPS_INT;i++){if(!(texCoord.y<end&&e.r>0.8281&&e.g==0.0)){break;}e=texture2D(inputBuffer,texCoord).rg;texCoord=vec2(0.0,2.0)*texelSize.xy+texCoord;}float offset=-(255.0/127.0)*searchLength(e.gr,0.5)+3.25;return-texelSize.y*offset+texCoord.y;}vec2 area(const in vec2 dist,const in float e1,const in float e2,const in float offset){vec2 texCoord=vec2(AREATEX_MAX_DISTANCE)*round(4.0*vec2(e1,e2))+dist;texCoord=AREATEX_PIXEL_SIZE*texCoord+0.5*AREATEX_PIXEL_SIZE;texCoord.y=AREATEX_SUBTEX_SIZE*offset+texCoord.y;return texture2D(areaTexture,texCoord).rg;}void detectHorizontalCornerPattern(inout vec2 weights,const in vec4 texCoord,const in vec2 d){\n#if !defined(DISABLE_CORNER_DETECTION)\nvec2 leftRight=step(d.xy,d.yx);vec2 rounding=(1.0-CORNER_ROUNDING_NORM)*leftRight;rounding/=leftRight.x+leftRight.y;vec2 factor=vec2(1.0);factor.x-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(0,1)).r;factor.x-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(1,1)).r;factor.y-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(0,-2)).r;factor.y-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(1,-2)).r;weights*=clamp(factor,0.0,1.0);\n#endif\n}void detectVerticalCornerPattern(inout vec2 weights,const in vec4 texCoord,const in vec2 d){\n#if !defined(DISABLE_CORNER_DETECTION)\nvec2 leftRight=step(d.xy,d.yx);vec2 rounding=(1.0-CORNER_ROUNDING_NORM)*leftRight;rounding/=leftRight.x+leftRight.y;vec2 factor=vec2(1.0);factor.x-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(1,0)).g;factor.x-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(1,1)).g;factor.y-=rounding.x*sampleLevelZeroOffset(inputBuffer,texCoord.xy,vec2(-2,0)).g;factor.y-=rounding.y*sampleLevelZeroOffset(inputBuffer,texCoord.zw,vec2(-2,1)).g;weights*=clamp(factor,0.0,1.0);\n#endif\n}void main(){vec4 weights=vec4(0.0);vec4 subsampleIndices=vec4(0.0);vec2 e=texture2D(inputBuffer,vUv).rg;if(e.g>0.0){\n#if !defined(DISABLE_DIAG_DETECTION)\nweights.rg=calculateDiagWeights(vUv,e,subsampleIndices);if(weights.r==-weights.g){\n#endif\nvec2 d;vec3 coords;coords.x=searchXLeft(vOffset[0].xy,vOffset[2].x);coords.y=vOffset[1].y;d.x=coords.x;float e1=texture2D(inputBuffer,coords.xy).r;coords.z=searchXRight(vOffset[0].zw,vOffset[2].y);d.y=coords.z;d=round(resolution.xx*d+-vPixCoord.xx);vec2 sqrtD=sqrt(abs(d));float e2=sampleLevelZeroOffset(inputBuffer,coords.zy,vec2(1,0)).r;weights.rg=area(sqrtD,e1,e2,subsampleIndices.y);coords.y=vUv.y;detectHorizontalCornerPattern(weights.rg,coords.xyzy,d);\n#if !defined(DISABLE_DIAG_DETECTION)\n}else{e.r=0.0;}\n#endif\n}if(e.r>0.0){vec2 d;vec3 coords;coords.y=searchYUp(vOffset[1].xy,vOffset[2].z);coords.x=vOffset[0].x;d.x=coords.y;float e1=texture2D(inputBuffer,coords.xy).g;coords.z=searchYDown(vOffset[1].zw,vOffset[2].w);d.y=coords.z;d=round(resolution.yy*d-vPixCoord.yy);vec2 sqrtD=sqrt(abs(d));float e2=sampleLevelZeroOffset(inputBuffer,coords.xz,vec2(0,1)).g;weights.ba=area(sqrtD,e1,e2,subsampleIndices.x);coords.x=vUv.x;detectVerticalCornerPattern(weights.ba,coords.xyxz,d);}gl_FragColor=weights;}",EW="uniform vec2 texelSize;uniform vec2 resolution;varying vec2 vUv;varying vec4 vOffset[3];varying vec2 vPixCoord;void main(){vUv=position.xy*0.5+0.5;vPixCoord=vUv*resolution;vOffset[0]=vUv.xyxy+texelSize.xyxy*vec4(-0.25,-0.125,1.25,-0.125);vOffset[1]=vUv.xyxy+texelSize.xyxy*vec4(-0.125,-0.25,-0.125,1.25);vOffset[2]=vec4(vOffset[0].xz,vOffset[1].yw)+vec4(-2.0,2.0,-2.0,2.0)*texelSize.xxyy*MAX_SEARCH_STEPS_FLOAT;gl_Position=vec4(position.xy,1.0,1.0);}",Vp,wW=(Vp=class extends We{constructor(e=new he,t=new he){super({name:"SMAAWeightsMaterial",defines:{MAX_SEARCH_STEPS_INT:"16",MAX_SEARCH_STEPS_FLOAT:"16.0",MAX_SEARCH_STEPS_DIAG_INT:"8",MAX_SEARCH_STEPS_DIAG_FLOAT:"8.0",CORNER_ROUNDING:"25",CORNER_ROUNDING_NORM:"0.25",AREATEX_MAX_DISTANCE:"16.0",AREATEX_MAX_DISTANCE_DIAG:"20.0",AREATEX_PIXEL_SIZE:"(1.0 / vec2(160.0, 560.0))",AREATEX_SUBTEX_SIZE:"(1.0 / 7.0)",SEARCHTEX_SIZE:"vec2(66.0, 33.0)",SEARCHTEX_PACKED_SIZE:"vec2(64.0, 16.0)"},uniforms:{inputBuffer:new xe(null),searchTexture:new xe(null),areaTexture:new xe(null),resolution:new xe(t),texelSize:new xe(e)},blending:tn,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:MW,vertexShader:EW})}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get searchTexture(){return this.uniforms.searchTexture.value}set searchTexture(e){this.uniforms.searchTexture.value=e}get areaTexture(){return this.uniforms.areaTexture.value}set areaTexture(e){this.uniforms.areaTexture.value=e}setLookupTextures(e,t){this.searchTexture=e,this.areaTexture=t}get orthogonalSearchSteps(){return Number(this.defines.MAX_SEARCH_STEPS_INT)}set orthogonalSearchSteps(e){let t=Math.min(Math.max(e,0),112);this.defines.MAX_SEARCH_STEPS_INT=t.toFixed("0"),this.defines.MAX_SEARCH_STEPS_FLOAT=t.toFixed("1"),this.needsUpdate=!0}setOrthogonalSearchSteps(e){this.orthogonalSearchSteps=e}get diagonalSearchSteps(){return Number(this.defines.MAX_SEARCH_STEPS_DIAG_INT)}set diagonalSearchSteps(e){let t=Math.min(Math.max(e,0),20);this.defines.MAX_SEARCH_STEPS_DIAG_INT=t.toFixed("0"),this.defines.MAX_SEARCH_STEPS_DIAG_FLOAT=t.toFixed("1"),this.needsUpdate=!0}setDiagonalSearchSteps(e){this.diagonalSearchSteps=e}get diagonalDetection(){return this.defines.DISABLE_DIAG_DETECTION===void 0}set diagonalDetection(e){e?delete this.defines.DISABLE_DIAG_DETECTION:this.defines.DISABLE_DIAG_DETECTION="1",this.needsUpdate=!0}isDiagonalDetectionEnabled(){return this.diagonalDetection}setDiagonalDetectionEnabled(e){this.diagonalDetection=e}get cornerRounding(){return Number(this.defines.CORNER_ROUNDING)}set cornerRounding(e){let t=Math.min(Math.max(e,0),100);this.defines.CORNER_ROUNDING=t.toFixed("4"),this.defines.CORNER_ROUNDING_NORM=(t/100).toFixed("4"),this.needsUpdate=!0}setCornerRounding(e){this.cornerRounding=e}get cornerDetection(){return this.defines.DISABLE_CORNER_DETECTION===void 0}set cornerDetection(e){e?delete this.defines.DISABLE_CORNER_DETECTION:this.defines.DISABLE_CORNER_DETECTION="1",this.needsUpdate=!0}isCornerRoundingEnabled(){return this.cornerDetection}setCornerRoundingEnabled(e){this.cornerDetection=e}setSize(e,t){let n=this.uniforms;n.texelSize.value.set(1/e,1/t),n.resolution.value.set(e,t)}},l(Vp,"SMAAWeightsMaterial"),Vp);var CW=new vT,Fo=null;function AW(){if(Fo===null){let i=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),e=new Float32Array([0,0,2,0,0,2]);Fo=new Cr,Fo.setAttribute!==void 0?(Fo.setAttribute("position",new ni(i,3)),Fo.setAttribute("uv",new ni(e,2))):(Fo.addAttribute("position",new ni(i,3)),Fo.addAttribute("uv",new ni(e,2)))}return Fo}l(AW,"getFullscreenTriangle");var eu,pn=(eu=class{constructor(e="Pass",t=new fs,n=CW){this.name=e,this.renderer=null,this.scene=t,this.camera=n,this.screen=null,this.rtt=!0,this.needsSwap=!0,this.needsDepthTexture=!1,this.enabled=!0}get renderToScreen(){return!this.rtt}set renderToScreen(e){if(this.rtt===e){let t=this.fullscreenMaterial;t!==null&&(t.needsUpdate=!0),this.rtt=!e}}set mainScene(e){}set mainCamera(e){}setRenderer(e){this.renderer=e}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}get fullscreenMaterial(){return this.screen!==null?this.screen.material:null}set fullscreenMaterial(e){let t=this.screen;t!==null?t.material=e:(t=new qe(AW(),e),t.frustumCulled=!1,this.scene===null&&(this.scene=new fs),this.scene.add(t),this.screen=t)}getFullscreenMaterial(){return this.fullscreenMaterial}setFullscreenMaterial(e){this.fullscreenMaterial=e}getDepthTexture(){return null}setDepthTexture(e,t=An){}render(e,t,n,r,a){throw new Error("Render method not implemented!")}setSize(e,t){}initialize(e,t,n){}dispose(){for(let e of Object.keys(this)){let t=this[e];(t instanceof st||t instanceof Mm||t instanceof na||t instanceof eu)&&this[e].dispose()}}},l(eu,"_Pass"),eu),zp,PW=(zp=class extends pn{constructor(e,t=!0){super("CopyPass"),this.fullscreenMaterial=new n_,this.needsSwap=!1,this.renderTarget=e,e===void 0&&(this.renderTarget=new st(1,1,{minFilter:ii,magFilter:ii,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="CopyPass.Target"),this.autoResize=t}get resize(){return this.autoResize}set resize(e){this.autoResize=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}setAutoResizeEnabled(e){this.autoResize=e}render(e,t,n,r,a){this.fullscreenMaterial.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){this.autoResize&&this.renderTarget.setSize(e,t)}initialize(e,t,n){n!==void 0&&(this.renderTarget.texture.type=n,n!==ki?this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1":e.outputColorSpace===rt&&(this.renderTarget.texture.colorSpace=rt))}},l(zp,"CopyPass"),zp);var jp,SW=(jp=class extends pn{constructor(){super("ClearMaskPass",null,null),this.needsSwap=!1}render(e,t,n,r,a){let o=e.state.buffers.stencil;o.setLocked(!1),o.setTest(!1)}},l(jp,"ClearMaskPass"),jp),KI=new Ee,Gp,tu=(Gp=class extends pn{constructor(e=!0,t=!0,n=!1){super("ClearPass",null,null),this.needsSwap=!1,this.color=e,this.depth=t,this.stencil=n,this.overrideClearColor=null,this.overrideClearAlpha=-1}setClearFlags(e,t,n){this.color=e,this.depth=t,this.stencil=n}getOverrideClearColor(){return this.overrideClearColor}setOverrideClearColor(e){this.overrideClearColor=e}getOverrideClearAlpha(){return this.overrideClearAlpha}setOverrideClearAlpha(e){this.overrideClearAlpha=e}render(e,t,n,r,a){let o=this.overrideClearColor,s=this.overrideClearAlpha,c=e.getClearAlpha(),u=o!==null,h=s>=0;u?(e.getClearColor(KI),e.setClearColor(o,h?s:c)):h&&e.setClearAlpha(s),e.setRenderTarget(this.renderToScreen?null:t),e.clear(this.color,this.depth,this.stencil),u?e.setClearColor(KI,c):h&&e.setClearAlpha(c)}},l(Gp,"ClearPass"),Gp),Hp,lv=(Hp=class extends pn{constructor(e,t,n=null){super("RenderPass",e,t),this.needsSwap=!1,this.clearPass=new tu,this.overrideMaterialManager=n===null?null:new $I(n),this.ignoreBackground=!1,this.skipShadowMapUpdate=!1,this.selection=null}set mainScene(e){this.scene=e}set mainCamera(e){this.camera=e}get renderToScreen(){return super.renderToScreen}set renderToScreen(e){super.renderToScreen=e,this.clearPass.renderToScreen=e}get overrideMaterial(){let e=this.overrideMaterialManager;return e!==null?e.material:null}set overrideMaterial(e){let t=this.overrideMaterialManager;e!==null?t!==null?t.setMaterial(e):this.overrideMaterialManager=new $I(e):t!==null&&(t.dispose(),this.overrideMaterialManager=null)}getOverrideMaterial(){return this.overrideMaterial}setOverrideMaterial(e){this.overrideMaterial=e}get clear(){return this.clearPass.enabled}set clear(e){this.clearPass.enabled=e}getSelection(){return this.selection}setSelection(e){this.selection=e}isBackgroundDisabled(){return this.ignoreBackground}setBackgroundDisabled(e){this.ignoreBackground=e}isShadowMapDisabled(){return this.skipShadowMapUpdate}setShadowMapDisabled(e){this.skipShadowMapUpdate=e}getClearPass(){return this.clearPass}render(e,t,n,r,a){let o=this.scene,s=this.camera,c=this.selection,u=s.layers.mask,h=o.background,m=e.shadowMap.autoUpdate,f=this.renderToScreen?null:t;c!==null&&s.layers.set(c.getLayer()),this.skipShadowMapUpdate&&(e.shadowMap.autoUpdate=!1),(this.ignoreBackground||this.clearPass.overrideClearColor!==null)&&(o.background=null),this.clearPass.enabled&&this.clearPass.render(e,t),e.setRenderTarget(f),this.overrideMaterialManager!==null?this.overrideMaterialManager.render(e,o,s):e.render(o,s),s.layers.mask=u,o.background=h,e.shadowMap.autoUpdate=m}},l(Hp,"RenderPass"),Hp),Yp,IW=(Yp=class extends pn{constructor(e,t,{renderTarget:n,resolutionScale:r=1,width:a=Na.AUTO_SIZE,height:o=Na.AUTO_SIZE,resolutionX:s=a,resolutionY:c=o}={}){super("DepthPass"),this.needsSwap=!1,this.renderPass=new lv(e,t,new bT({depthPacking:nd}));let u=this.renderPass;u.skipShadowMapUpdate=!0,u.ignoreBackground=!0;let h=u.clearPass;h.overrideClearColor=new Ee(16777215),h.overrideClearAlpha=1,this.renderTarget=n,this.renderTarget===void 0&&(this.renderTarget=new st(1,1,{minFilter:mi,magFilter:mi}),this.renderTarget.texture.name="DepthPass.Target");let m=this.resolution=new Na(this,s,c,r);m.addEventListener("change",f=>this.setSize(m.baseWidth,m.baseHeight))}set mainScene(e){this.renderPass.mainScene=e}set mainCamera(e){this.renderPass.mainCamera=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,n,r,a){let o=this.renderToScreen?null:this.renderTarget;this.renderPass.render(e,o)}setSize(e,t){let n=this.resolution;n.setBaseSize(e,t),this.renderTarget.setSize(n.width,n.height)}},l(Yp,"DepthPass"),Yp);var rye=new Float32Array([255/256/256**3,255/256/256**2,255/256/256,255/256]);function JI(i,e,t){for(let n of e){let r="$1"+i+n.charAt(0).toUpperCase()+n.slice(1),a=new RegExp("([^\\.])(\\b"+n+"\\b)","g");for(let o of t.entries())o[1]!==null&&t.set(o[0],o[1].replace(a,r))}}l(JI,"prefixSubstrings");function _W(i,e,t){let n=e.getFragmentShader(),r=e.getVertexShader(),a=n!==void 0&&/mainImage/.test(n),o=n!==void 0&&/mainUv/.test(n);if(t.attributes|=e.getAttributes(),n===void 0)throw new Error("Missing fragment shader (".concat(e.name,")"));if(o&&t.attributes&ka.CONVOLUTION)throw new Error("Effects that transform UVs are incompatible with convolution effects (".concat(e.name,")"));if(!a&&!o)throw new Error("Could not find mainImage or mainUv function (".concat(e.name,")"));{let s=/\w+\s+(\w+)\([\w\s,]*\)\s*{/g,c=t.shaderParts,u=c.get(nt.FRAGMENT_HEAD)||"",h=c.get(nt.FRAGMENT_MAIN_UV)||"",m=c.get(nt.FRAGMENT_MAIN_IMAGE)||"",f=c.get(nt.VERTEX_HEAD)||"",g=c.get(nt.VERTEX_MAIN_SUPPORT)||"",b=new Set,M=new Set;if(o&&(h+=" ".concat(i,"MainUv(UV);\n"),t.uvTransformation=!0),r!==null&&/mainSupport/.test(r)){let E=/mainSupport *\([\w\s]*?uv\s*?\)/.test(r);g+=" ".concat(i,"MainSupport("),g+=E?"vUv);\n":");\n";for(let S of r.matchAll(/(?:varying\s+\w+\s+([\S\s]*?);)/g))for(let _ of S[1].split(/\s*,\s*/))t.varyings.add(_),b.add(_),M.add(_);for(let S of r.matchAll(s))M.add(S[1])}for(let E of n.matchAll(s))M.add(E[1]);for(let E of e.defines.keys())M.add(E.replace(/\([\w\s,]*\)/g,""));for(let E of e.uniforms.keys())M.add(E);M.delete("while"),M.delete("for"),M.delete("if"),e.uniforms.forEach((E,S)=>t.uniforms.set(i+S.charAt(0).toUpperCase()+S.slice(1),E)),e.defines.forEach((E,S)=>t.defines.set(i+S.charAt(0).toUpperCase()+S.slice(1),E));let x=new Map([["fragment",n],["vertex",r]]);JI(i,M,t.defines),JI(i,M,x),n=x.get("fragment"),r=x.get("vertex");let T=e.blendMode;if(t.blendModes.set(T.blendFunction,T),a){e.inputColorSpace!==null&&e.inputColorSpace!==t.colorSpace&&(m+=e.inputColorSpace===rt?"color0 = LinearTosRGB(color0);\n ":"color0 = sRGBToLinear(color0);\n "),e.outputColorSpace!==Bl?t.colorSpace=e.outputColorSpace:e.inputColorSpace!==null&&(t.colorSpace=e.inputColorSpace);let E=/MainImage *\([\w\s,]*?depth[\w\s,]*?\)/;m+="".concat(i,"MainImage(color0, UV, "),t.attributes&ka.DEPTH&&E.test(n)&&(m+="depth, ",t.readDepth=!0),m+="color1);\n ";let S=i+"BlendOpacity";t.uniforms.set(S,T.opacity),m+="color0 = blend".concat(T.blendFunction,"(color0, color1, ").concat(S,");\n\n "),u+="uniform float ".concat(S,";\n\n")}if(u+=n+"\n",r!==null&&(f+=r+"\n"),c.set(nt.FRAGMENT_HEAD,u),c.set(nt.FRAGMENT_MAIN_UV,h),c.set(nt.FRAGMENT_MAIN_IMAGE,m),c.set(nt.VERTEX_HEAD,f),c.set(nt.VERTEX_MAIN_SUPPORT,g),e.extensions!==null)for(let E of e.extensions)t.extensions.add(E)}}l(_W,"integrateEffect");var Wp,r_=(Wp=class extends pn{constructor(e,...t){super("EffectPass"),this.fullscreenMaterial=new yW(null,null,null,e),this.listener=n=>this.handleEvent(n),this.effects=[],this.setEffects(t),this.skipRendering=!1,this.minTime=1,this.maxTime=Number.POSITIVE_INFINITY,this.timeScale=1}set mainScene(e){for(let t of this.effects)t.mainScene=e}set mainCamera(e){this.fullscreenMaterial.copyCameraSettings(e);for(let t of this.effects)t.mainCamera=e}get encodeOutput(){return this.fullscreenMaterial.encodeOutput}set encodeOutput(e){this.fullscreenMaterial.encodeOutput=e}get dithering(){return this.fullscreenMaterial.dithering}set dithering(e){let t=this.fullscreenMaterial;t.dithering=e,t.needsUpdate=!0}setEffects(e){for(let t of this.effects)t.removeEventListener("change",this.listener);this.effects=e.sort((t,n)=>n.attributes-t.attributes);for(let t of this.effects)t.addEventListener("change",this.listener)}updateMaterial(){let e=new LW,t=0;for(let s of this.effects)if(s.blendMode.blendFunction===De.DST)e.attributes|=s.getAttributes()&ka.DEPTH;else{if(e.attributes&s.getAttributes()&ka.CONVOLUTION)throw new Error("Convolution effects cannot be merged (".concat(s.name,")"));_W("e"+t++,s,e)}let n=e.shaderParts.get(nt.FRAGMENT_HEAD),r=e.shaderParts.get(nt.FRAGMENT_MAIN_IMAGE),a=e.shaderParts.get(nt.FRAGMENT_MAIN_UV),o=/\bblend\b/g;for(let s of e.blendModes.values())n+=s.getShaderCode().replace(o,"blend".concat(s.blendFunction))+"\n";e.attributes&ka.DEPTH?(e.readDepth&&(r="float depth = readDepth(UV);\n\n "+r),this.needsDepthTexture=this.getDepthTexture()===null):this.needsDepthTexture=!1,e.colorSpace===rt&&(r+="color0 = sRGBToLinear(color0);\n "),e.uvTransformation?(a="vec2 transformedUv = vUv;\n"+a,e.defines.set("UV","transformedUv")):e.defines.set("UV","vUv"),e.shaderParts.set(nt.FRAGMENT_HEAD,n),e.shaderParts.set(nt.FRAGMENT_MAIN_IMAGE,r),e.shaderParts.set(nt.FRAGMENT_MAIN_UV,a);for(let[s,c]of e.shaderParts)c!==null&&e.shaderParts.set(s,c.trim().replace(/^#/,"\n#"));this.skipRendering=t===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(e)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(e,t=An){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t;for(let n of this.effects)n.setDepthTexture(e,t)}render(e,t,n,r,a){for(let o of this.effects)o.update(e,t,r);if(!this.skipRendering||this.renderToScreen){let o=this.fullscreenMaterial;o.inputBuffer=t.texture,o.time+=r*this.timeScale,e.setRenderTarget(this.renderToScreen?null:n),e.render(this.scene,this.camera)}}setSize(e,t){this.fullscreenMaterial.setSize(e,t);for(let n of this.effects)n.setSize(e,t)}initialize(e,t,n){this.renderer=e;for(let r of this.effects)r.initialize(e,t,n);this.updateMaterial(),n!==void 0&&n!==ki&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(let e of this.effects)e.removeEventListener("change",this.listener),e.dispose()}handleEvent(e){switch(e.type){case"change":this.recompile();break}}},l(Wp,"EffectPass"),Wp);var Xp,OW=(Xp=class extends pn{constructor({kernelSize:e=P8.MEDIUM,resolutionScale:t=.5,width:n=Na.AUTO_SIZE,height:r=Na.AUTO_SIZE,resolutionX:a=n,resolutionY:o=r}={}){super("KawaseBlurPass"),this.renderTargetA=new st(1,1,{depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B";let s=this.resolution=new Na(this,a,o,t);s.addEventListener("change",c=>this.setSize(s.baseWidth,s.baseHeight)),this._blurMaterial=new lW,this._blurMaterial.kernelSize=e,this.copyMaterial=new n_}getResolution(){return this.resolution}get blurMaterial(){return this._blurMaterial}set blurMaterial(e){this._blurMaterial=e}get dithering(){return this.copyMaterial.dithering}set dithering(e){this.copyMaterial.dithering=e}get kernelSize(){return this.blurMaterial.kernelSize}set kernelSize(e){this.blurMaterial.kernelSize=e}get width(){return this.resolution.width}set width(e){this.resolution.preferredWidth=e}get height(){return this.resolution.height}set height(e){this.resolution.preferredHeight=e}get scale(){return this.blurMaterial.scale}set scale(e){this.blurMaterial.scale=e}getScale(){return this.blurMaterial.scale}setScale(e){this.blurMaterial.scale=e}getKernelSize(){return this.kernelSize}setKernelSize(e){this.kernelSize=e}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,n,r,a){let o=this.scene,s=this.camera,c=this.renderTargetA,u=this.renderTargetB,h=this.blurMaterial,m=h.kernelSequence,f=t;this.fullscreenMaterial=h;for(let g=0,b=m.length;g<b;++g){let M=g&1?u:c;h.kernel=m[g],h.inputBuffer=f.texture,e.setRenderTarget(M),e.render(o,s),f=M}this.fullscreenMaterial=this.copyMaterial,this.copyMaterial.inputBuffer=f.texture,e.setRenderTarget(this.renderToScreen?null:n),e.render(o,s)}setSize(e,t){let n=this.resolution;n.setBaseSize(e,t);let r=n.width,a=n.height;this.renderTargetA.setSize(r,a),this.renderTargetB.setSize(r,a),this.blurMaterial.setSize(e,t)}initialize(e,t,n){n!==void 0&&(this.renderTargetA.texture.type=n,this.renderTargetB.texture.type=n,n!==ki?(this.blurMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1",this.copyMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1"):e.outputColorSpace===rt&&(this.renderTargetA.texture.colorSpace=rt,this.renderTargetB.texture.colorSpace=rt))}static get AUTO_SIZE(){return Na.AUTO_SIZE}},l(Xp,"KawaseBlurPass"),Xp);var Zp,DW=(Zp=class extends pn{constructor(e,t){super("MaskPass",e,t),this.needsSwap=!1,this.clearPass=new tu(!1,!1,!0),this.inverse=!1}set mainScene(e){this.scene=e}set mainCamera(e){this.camera=e}get inverted(){return this.inverse}set inverted(e){this.inverse=e}get clear(){return this.clearPass.enabled}set clear(e){this.clearPass.enabled=e}getClearPass(){return this.clearPass}isInverted(){return this.inverted}setInverted(e){this.inverted=e}render(e,t,n,r,a){let o=e.getContext(),s=e.state.buffers,c=this.scene,u=this.camera,h=this.clearPass,m=this.inverted?0:1,f=1-m;s.color.setMask(!1),s.depth.setMask(!1),s.color.setLocked(!0),s.depth.setLocked(!0),s.stencil.setTest(!0),s.stencil.setOp(o.REPLACE,o.REPLACE,o.REPLACE),s.stencil.setFunc(o.ALWAYS,m,4294967295),s.stencil.setClear(f),s.stencil.setLocked(!0),this.clearPass.enabled&&(this.renderToScreen?h.render(e,null):(h.render(e,t),h.render(e,n))),this.renderToScreen?(e.setRenderTarget(null),e.render(c,u)):(e.setRenderTarget(t),e.render(c,u),e.setRenderTarget(n),e.render(c,u)),s.color.setLocked(!1),s.depth.setLocked(!1),s.stencil.setLocked(!1),s.stencil.setFunc(o.EQUAL,1,4294967295),s.stencil.setOp(o.KEEP,o.KEEP,o.KEEP),s.stencil.setLocked(!0)}},l(Zp,"MaskPass"),Zp);var Qp,cl=(Qp=class extends pn{constructor(e,t="inputBuffer"){super("ShaderPass"),this.fullscreenMaterial=e,this.input=t}setInput(e){this.input=e}render(e,t,n,r,a){let o=this.fullscreenMaterial.uniforms;t!==null&&o!==void 0&&o[this.input]!==void 0&&(o[this.input].value=t.texture),e.setRenderTarget(this.renderToScreen?null:n),e.render(this.scene,this.camera)}initialize(e,t,n){n!==void 0&&n!==ki&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},l(Qp,"ShaderPass"),Qp);var Kp,a_=(Kp=class{constructor(e=null,{depthBuffer:t=!0,stencilBuffer:n=!1,multisampling:r=0,frameBufferType:a}={}){this.renderer=null,this.inputBuffer=this.createBuffer(t,n,a,r),this.outputBuffer=this.inputBuffer.clone(),this.copyPass=new PW,this.depthTexture=null,this.passes=[],this.timer=new sv,this.autoRenderToScreen=!0,this.setRenderer(e)}get multisampling(){return this.inputBuffer.samples||0}set multisampling(e){let t=this.inputBuffer,n=this.multisampling;n>0&&e>0?(this.inputBuffer.samples=e,this.outputBuffer.samples=e,this.inputBuffer.dispose(),this.outputBuffer.dispose()):n!==e&&(this.inputBuffer.dispose(),this.outputBuffer.dispose(),this.inputBuffer=this.createBuffer(t.depthBuffer,t.stencilBuffer,t.texture.type,e),this.inputBuffer.depthTexture=this.depthTexture,this.outputBuffer=this.inputBuffer.clone())}getTimer(){return this.timer}getRenderer(){return this.renderer}setRenderer(e){if(this.renderer=e,e!==null){let t=e.getSize(new he),n=e.getContext().getContextAttributes().alpha,r=this.inputBuffer.texture.type;r===ki&&e.outputColorSpace===rt&&(this.inputBuffer.texture.colorSpace=rt,this.outputBuffer.texture.colorSpace=rt,this.inputBuffer.dispose(),this.outputBuffer.dispose()),e.autoClear=!1,this.setSize(t.width,t.height);for(let a of this.passes)a.initialize(e,n,r)}}replaceRenderer(e,t=!0){let n=this.renderer,r=n.domElement.parentNode;return this.setRenderer(e),t&&r!==null&&(r.removeChild(n.domElement),r.appendChild(e.domElement)),n}createDepthTexture(){let e=this.depthTexture=new zl;return this.inputBuffer.depthTexture=e,this.inputBuffer.dispose(),this.inputBuffer.stencilBuffer?(e.format=n4,e.type=i4):e.type=kl,e}deleteDepthTexture(){if(this.depthTexture!==null){this.depthTexture.dispose(),this.depthTexture=null,this.inputBuffer.depthTexture=null,this.inputBuffer.dispose();for(let e of this.passes)e.setDepthTexture(null)}}createBuffer(e,t,n,r){let a=this.renderer,o=a===null?new he:a.getDrawingBufferSize(new he),s={minFilter:ii,magFilter:ii,stencilBuffer:t,depthBuffer:e,type:n},c=new st(o.width,o.height,s);return r>0&&(c.ignoreDepthForMultisampleCopy=!1,c.samples=r),n===ki&&a.outputColorSpace===rt&&(c.texture.colorSpace=rt),c.texture.name="EffectComposer.Buffer",c.texture.generateMipmaps=!1,c}setMainScene(e){for(let t of this.passes)t.mainScene=e}setMainCamera(e){for(let t of this.passes)t.mainCamera=e}addPass(e,t){let n=this.passes,r=this.renderer,a=r.getDrawingBufferSize(new he),o=r.getContext().getContextAttributes().alpha,s=this.inputBuffer.texture.type;if(e.setRenderer(r),e.setSize(a.width,a.height),e.initialize(r,o,s),this.autoRenderToScreen&&(n.length>0&&(n[n.length-1].renderToScreen=!1),e.renderToScreen&&(this.autoRenderToScreen=!1)),t!==void 0?n.splice(t,0,e):n.push(e),this.autoRenderToScreen&&(n[n.length-1].renderToScreen=!0),e.needsDepthTexture||this.depthTexture!==null)if(this.depthTexture===null){let c=this.createDepthTexture();for(e of n)e.setDepthTexture(c)}else e.setDepthTexture(this.depthTexture)}removePass(e){let t=this.passes,n=t.indexOf(e);if(n!==-1&&t.splice(n,1).length>0){if(this.depthTexture!==null){let o=l((c,u)=>c||u.needsDepthTexture,"reducer");t.reduce(o,!1)||(e.getDepthTexture()===this.depthTexture&&e.setDepthTexture(null),this.deleteDepthTexture())}this.autoRenderToScreen&&n===t.length&&(e.renderToScreen=!1,t.length>0&&(t[t.length-1].renderToScreen=!0))}}removeAllPasses(){let e=this.passes;this.deleteDepthTexture(),e.length>0&&(this.autoRenderToScreen&&(e[e.length-1].renderToScreen=!1),this.passes=[])}render(e){let t=this.renderer,n=this.copyPass,r=this.inputBuffer,a=this.outputBuffer,o=!1,s,c,u;e===void 0&&(this.timer.update(),e=this.timer.getDelta());for(let h of this.passes)h.enabled&&(h.render(t,r,a,e,o),h.needsSwap&&(o&&(n.renderToScreen=h.renderToScreen,s=t.getContext(),c=t.state.buffers.stencil,c.setFunc(s.NOTEQUAL,1,4294967295),n.render(t,r,a,e,o),c.setFunc(s.EQUAL,1,4294967295)),u=r,r=a,a=u),h instanceof DW?o=!0:h instanceof SW&&(o=!1))}setSize(e,t,n){let r=this.renderer,a=r.getSize(new he);(e===void 0||t===void 0)&&(e=a.width,t=a.height),(a.width!==e||a.height!==t)&&r.setSize(e,t,n);let o=r.getDrawingBufferSize(new he);this.inputBuffer.setSize(o.width,o.height),this.outputBuffer.setSize(o.width,o.height);for(let s of this.passes)s.setSize(o.width,o.height)}reset(){this.dispose(),this.autoRenderToScreen=!0}dispose(){for(let e of this.passes)e.dispose();this.passes=[],this.inputBuffer!==null&&this.inputBuffer.dispose(),this.outputBuffer!==null&&this.outputBuffer.dispose(),this.deleteDepthTexture(),this.copyPass.dispose(),this.timer.dispose()}},l(Kp,"EffectComposer"),Kp),Jp,LW=(Jp=class{constructor(){this.shaderParts=new Map([[nt.FRAGMENT_HEAD,null],[nt.FRAGMENT_MAIN_UV,null],[nt.FRAGMENT_MAIN_IMAGE,null],[nt.VERTEX_HEAD,null],[nt.VERTEX_MAIN_SUPPORT,null]]),this.defines=new Map,this.uniforms=new Map,this.blendModes=new Map,this.extensions=new Set,this.attributes=ka.NONE,this.varyings=new Set,this.uvTransformation=!1,this.readDepth=!1,this.colorSpace=ym}},l(Jp,"EffectShaderData"),Jp);var C8=!1,$p,$I=($p=class{constructor(e=null){this.originalMaterials=new Map,this.material=null,this.materials=null,this.materialsBackSide=null,this.materialsDoubleSide=null,this.materialsFlatShaded=null,this.materialsFlatShadedBackSide=null,this.materialsFlatShadedDoubleSide=null,this.setMaterial(e),this.meshCount=0,this.replaceMaterial=t=>{if(t.isMesh){let n;if(t.material.flatShading)switch(t.material.side){case Yn:n=this.materialsFlatShadedDoubleSide;break;case td:n=this.materialsFlatShadedBackSide;break;default:n=this.materialsFlatShaded;break}else switch(t.material.side){case Yn:n=this.materialsDoubleSide;break;case td:n=this.materialsBackSide;break;default:n=this.materials;break}this.originalMaterials.set(t,t.material),t.isSkinnedMesh?t.material=n[2]:t.isInstancedMesh?t.material=n[1]:t.material=n[0],++this.meshCount}}}cloneMaterial(e){if(!(e instanceof We))return e.clone();let t=e.uniforms,n=new Map;for(let a in t){let o=t[a].value;o.isRenderTargetTexture&&(t[a].value=null,n.set(a,o))}let r=e.clone();for(let a of n)t[a[0]].value=a[1],r.uniforms[a[0]].value=a[1];return r}setMaterial(e){if(this.disposeMaterials(),this.material=e,e!==null){let t=this.materials=[this.cloneMaterial(e),this.cloneMaterial(e),this.cloneMaterial(e)];for(let n of t)n.uniforms=Object.assign({},e.uniforms),n.side=ed;t[2].skinning=!0,this.materialsBackSide=t.map(n=>{let r=this.cloneMaterial(n);return r.uniforms=Object.assign({},e.uniforms),r.side=td,r}),this.materialsDoubleSide=t.map(n=>{let r=this.cloneMaterial(n);return r.uniforms=Object.assign({},e.uniforms),r.side=Yn,r}),this.materialsFlatShaded=t.map(n=>{let r=this.cloneMaterial(n);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r}),this.materialsFlatShadedBackSide=t.map(n=>{let r=this.cloneMaterial(n);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r.side=td,r}),this.materialsFlatShadedDoubleSide=t.map(n=>{let r=this.cloneMaterial(n);return r.uniforms=Object.assign({},e.uniforms),r.flatShading=!0,r.side=Yn,r})}}render(e,t,n){let r=e.shadowMap.enabled;if(e.shadowMap.enabled=!1,C8){let a=this.originalMaterials;this.meshCount=0,t.traverse(this.replaceMaterial),e.render(t,n);for(let o of a)o[0].material=o[1];this.meshCount!==a.size&&a.clear()}else{let a=t.overrideMaterial;t.overrideMaterial=this.material,e.render(t,n),t.overrideMaterial=a}e.shadowMap.enabled=r}disposeMaterials(){if(this.material!==null){let e=this.materials.concat(this.materialsBackSide).concat(this.materialsDoubleSide).concat(this.materialsFlatShaded).concat(this.materialsFlatShadedBackSide).concat(this.materialsFlatShadedDoubleSide);for(let t of e)t.dispose()}}dispose(){this.originalMaterials.clear(),this.disposeMaterials()}static get workaroundEnabled(){return C8}static set workaroundEnabled(e){C8=e}},l($p,"OverrideMaterialManager"),$p);var Uo=-1,ef,Na=(ef=class extends Ja{constructor(e,t=Uo,n=Uo,r=1){super(),this.resizable=e,this.baseSize=new he(1,1),this.preferredSize=new he(t,n),this.target=this.preferredSize,this.s=r,this.effectiveSize=new he,this.addEventListener("change",()=>this.updateEffectiveSize()),this.updateEffectiveSize()}updateEffectiveSize(){let e=this.baseSize,t=this.preferredSize,n=this.effectiveSize,r=this.scale;t.width!==Uo?n.width=t.width:t.height!==Uo?n.width=Math.round(t.height*(e.width/Math.max(e.height,1))):n.width=Math.round(e.width*r),t.height!==Uo?n.height=t.height:t.width!==Uo?n.height=Math.round(t.width/Math.max(e.width/Math.max(e.height,1),1)):n.height=Math.round(e.height*r)}get width(){return this.effectiveSize.width}set width(e){this.preferredWidth=e}get height(){return this.effectiveSize.height}set height(e){this.preferredHeight=e}getWidth(){return this.width}getHeight(){return this.height}get scale(){return this.s}set scale(e){this.s!==e&&(this.s=e,this.preferredSize.setScalar(Uo),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getScale(){return this.scale}setScale(e){this.scale=e}get baseWidth(){return this.baseSize.width}set baseWidth(e){this.baseSize.width!==e&&(this.baseSize.width=e,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getBaseWidth(){return this.baseWidth}setBaseWidth(e){this.baseWidth=e}get baseHeight(){return this.baseSize.height}set baseHeight(e){this.baseSize.height!==e&&(this.baseSize.height=e,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getBaseHeight(){return this.baseHeight}setBaseHeight(e){this.baseHeight=e}setBaseSize(e,t){(this.baseSize.width!==e||this.baseSize.height!==t)&&(this.baseSize.set(e,t),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}get preferredWidth(){return this.preferredSize.width}set preferredWidth(e){this.preferredSize.width!==e&&(this.preferredSize.width=e,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getPreferredWidth(){return this.preferredWidth}setPreferredWidth(e){this.preferredWidth=e}get preferredHeight(){return this.preferredSize.height}set preferredHeight(e){this.preferredSize.height!==e&&(this.preferredSize.height=e,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}getPreferredHeight(){return this.preferredHeight}setPreferredHeight(e){this.preferredHeight=e}setPreferredSize(e,t){(this.preferredSize.width!==e||this.preferredSize.height!==t)&&(this.preferredSize.set(e,t),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height))}copy(e){this.s=e.scale,this.baseSize.set(e.baseWidth,e.baseHeight),this.preferredSize.set(e.preferredWidth,e.preferredHeight),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.baseSize.width,this.baseSize.height)}static get AUTO_SIZE(){return Uo}},l(ef,"Resolution"),ef),tf,qW=(tf=class extends Set{constructor(e,t=10){super(),this.l=t,this.exclusive=!1,e!==void 0&&this.set(e)}get layer(){return this.l}set layer(e){let t=this.l;for(let n of this)n.layers.disable(t),n.layers.enable(e);this.l=e}getLayer(){return this.layer}setLayer(e){this.layer=e}isExclusive(){return this.exclusive}setExclusive(e){this.exclusive=e}clear(){let e=this.layer;for(let t of this)t.layers.disable(e);return super.clear()}set(e){this.clear();for(let t of e)this.add(t);return this}indexOf(e){return this.has(e)?0:-1}add(e){return this.exclusive?e.layers.set(this.layer):e.layers.enable(this.layer),super.add(e)}delete(e){return this.has(e)&&e.layers.disable(this.layer),super.delete(e)}toggle(e){let t;return this.has(e)?(this.delete(e),t=!1):(this.add(e),t=!0),t}setVisible(e){for(let t of this)e?t.layers.enable(0):t.layers.disable(0);return this}},l(tf,"Selection"),tf),dye=1/1e3;var RW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x+y,opacity);}",NW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,y,min(y.a,opacity));}",kW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,(x+y)*0.5,opacity);}",BW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(yHSL.rg,xHSL.b));return vec4(mix(x.rgb,z,opacity),y.a);}",FW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(step(0.0,y)*(1.0-min(vec4(1.0),(1.0-x)/y)),vec4(1.0),step(1.0,x));return mix(x,z,opacity);}",UW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=step(0.0,x)*mix(min(vec4(1.0),x/max(1.0-y,1e-9)),vec4(1.0),step(1.0,y));return mix(x,z,opacity);}",VW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,min(x,y),opacity);}",zW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,abs(x-y),opacity);}",jW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x/max(y,1e-12),opacity);}",GW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,(x+y-2.0*x*y),opacity);}",HW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 a=min(x,1.0),b=min(y,1.0);vec4 z=mix(2.0*a*b,1.0-2.0*(1.0-a)*(1.0-b),step(0.5,y));return mix(x,z,opacity);}",YW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,step(1.0,x+y),opacity);}",WW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(yHSL.r,xHSL.gb));return vec4(mix(x.rgb,z,opacity),y.a);}",XW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,1.0-y,opacity);}",ZW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,y*(1.0-x),opacity);}",QW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,max(x,y),opacity);}",KW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,clamp(y+x-1.0,0.0,1.0),opacity);}",JW="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,min(x+y,1.0),opacity);}",$W="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,clamp(2.0*y+x-1.0,0.0,1.0),opacity);}",eX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(xHSL.rg,yHSL.b));return vec4(mix(x.rgb,z,opacity),y.a);}",tX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x*y,opacity);}",iX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,1.0-abs(1.0-x-y),opacity);}",nX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,y,opacity);}",rX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(2.0*y*x,1.0-2.0*(1.0-y)*(1.0-x),step(0.5,x));return mix(x,z,opacity);}",aX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 y2=2.0*y;vec4 z=mix(mix(y2,x,step(0.5*x,y)),max(vec4(0.0),y2-1.0),step(x,(y2-1.0)));return mix(x,z,opacity);}",oX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(min(x*x/max(1.0-y,1e-12),1.0),y,step(1.0,y));return mix(x,z,opacity);}",sX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec3 xHSL=RGBToHSL(x.rgb);vec3 yHSL=RGBToHSL(y.rgb);vec3 z=HSLToRGB(vec3(xHSL.r,yHSL.g,xHSL.b));return vec4(mix(x.rgb,z,opacity),y.a);}",lX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,x+y-min(x*y,1.0),opacity);}",cX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 y2=2.0*y;vec4 w=step(0.5,y);vec4 z=mix(x-(1.0-y2)*x*(1.0-x),mix(x+(y2-1.0)*(sqrt(x)-x),x+(y2-1.0)*x*((16.0*x-12.0)*x+3.0),w*(1.0-step(0.25,x))),w);return mix(x,z,opacity);}",uX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return y;}",dX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return mix(x,max(x+y-1.0,0.0),opacity);}",hX="vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=mix(max(1.0-min((1.0-x)/(2.0*y),1.0),0.0),min(x/(2.0*(1.0-y)),1.0),step(0.5,y));return mix(x,z,opacity);}",pX=new Map([[De.ADD,RW],[De.ALPHA,NW],[De.AVERAGE,kW],[De.COLOR,BW],[De.COLOR_BURN,FW],[De.COLOR_DODGE,UW],[De.DARKEN,VW],[De.DIFFERENCE,zW],[De.DIVIDE,jW],[De.DST,null],[De.EXCLUSION,GW],[De.HARD_LIGHT,HW],[De.HARD_MIX,YW],[De.HUE,WW],[De.INVERT,XW],[De.INVERT_RGB,ZW],[De.LIGHTEN,QW],[De.LINEAR_BURN,KW],[De.LINEAR_DODGE,JW],[De.LINEAR_LIGHT,$W],[De.LUMINOSITY,eX],[De.MULTIPLY,tX],[De.NEGATION,iX],[De.NORMAL,nX],[De.OVERLAY,rX],[De.PIN_LIGHT,aX],[De.REFLECT,oX],[De.SATURATION,sX],[De.SCREEN,lX],[De.SOFT_LIGHT,cX],[De.SRC,uX],[De.SUBTRACT,dX],[De.VIVID_LIGHT,hX]]),nf,fX=(nf=class extends Ja{constructor(e,t=1){super(),this._blendFunction=e,this.opacity=new xe(t)}getOpacity(){return this.opacity.value}setOpacity(e){this.opacity.value=e}get blendFunction(){return this._blendFunction}set blendFunction(e){this._blendFunction=e,this.dispatchEvent({type:"change"})}getBlendFunction(){return this.blendFunction}setBlendFunction(e){this.blendFunction=e}getShaderCode(){return pX.get(this.blendFunction)}},l(nf,"BlendMode"),nf),rf,o_=(rf=class extends Ja{constructor(e,t,{attributes:n=ka.NONE,blendFunction:r=De.NORMAL,defines:a=new Map,uniforms:o=new Map,extensions:s=null,vertexShader:c=null}={}){super(),this.name=e,this.renderer=null,this.attributes=n,this.fragmentShader=t,this.vertexShader=c,this.defines=a,this.uniforms=o,this.extensions=s,this.blendMode=new fX(r),this.blendMode.addEventListener("change",u=>this.setChanged()),this._inputColorSpace=ym,this._outputColorSpace=Bl}get inputColorSpace(){return this._inputColorSpace}set inputColorSpace(e){this._inputColorSpace=e,this.setChanged()}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e,this.setChanged()}set mainScene(e){}set mainCamera(e){}getName(){return this.name}setRenderer(e){this.renderer=e}getDefines(){return this.defines}getUniforms(){return this.uniforms}getExtensions(){return this.extensions}getBlendMode(){return this.blendMode}getAttributes(){return this.attributes}setAttributes(e){this.attributes=e,this.setChanged()}getFragmentShader(){return this.fragmentShader}setFragmentShader(e){this.fragmentShader=e,this.setChanged()}getVertexShader(){return this.vertexShader}setVertexShader(e){this.vertexShader=e,this.setChanged()}setChanged(){this.dispatchEvent({type:"change"})}setDepthTexture(e,t=An){}update(e,t,n){}setSize(e,t){}initialize(e,t,n){}dispose(){for(let e of Object.keys(this)){let t=this[e];(t instanceof st||t instanceof Mm||t instanceof na||t instanceof pn)&&this[e].dispose()}}},l(rf,"Effect"),rf);var fye=[new Float32Array(3),new Float32Array(3)],mye=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],gye=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]];var vye=[new Float32Array(2),new Float32Array(2)];var yye=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),bye=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],xye=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],Tye=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];var Mye=new Map([[qi(0,0,0,0),new Float32Array([0,0,0,0])],[qi(0,0,0,1),new Float32Array([0,0,0,1])],[qi(0,0,1,0),new Float32Array([0,0,1,0])],[qi(0,0,1,1),new Float32Array([0,0,1,1])],[qi(0,1,0,0),new Float32Array([0,1,0,0])],[qi(0,1,0,1),new Float32Array([0,1,0,1])],[qi(0,1,1,0),new Float32Array([0,1,1,0])],[qi(0,1,1,1),new Float32Array([0,1,1,1])],[qi(1,0,0,0),new Float32Array([1,0,0,0])],[qi(1,0,0,1),new Float32Array([1,0,0,1])],[qi(1,0,1,0),new Float32Array([1,0,1,0])],[qi(1,0,1,1),new Float32Array([1,0,1,1])],[qi(1,1,0,0),new Float32Array([1,1,0,0])],[qi(1,1,0,1),new Float32Array([1,1,0,1])],[qi(1,1,1,0),new Float32Array([1,1,1,0])],[qi(1,1,1,1),new Float32Array([1,1,1,1])]]);function A8(i,e,t){return i+(e-i)*t}l(A8,"lerp2");function qi(i,e,t,n){let r=A8(i,e,.75),a=A8(t,n,1-.25);return A8(r,a,1-.125)}l(qi,"bilinear");var mX="uniform lowp sampler2D edgeTexture;uniform lowp sampler2D maskTexture;uniform vec3 visibleEdgeColor;uniform vec3 hiddenEdgeColor;uniform float pulse;uniform float edgeStrength;\n#ifdef USE_PATTERN\nuniform lowp sampler2D patternTexture;varying vec2 vUvPattern;\n#endif\nvoid mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec2 edge=texture2D(edgeTexture,uv).rg;vec2 mask=texture2D(maskTexture,uv).rg;\n#ifndef X_RAY\nedge.y=0.0;\n#endif\nedge*=(edgeStrength*mask.x*pulse);vec3 color=edge.x*visibleEdgeColor+edge.y*hiddenEdgeColor;float visibilityFactor=0.0;\n#ifdef USE_PATTERN\nvec4 patternColor=texture2D(patternTexture,vUvPattern);\n#ifdef X_RAY\nfloat hiddenFactor=0.5;\n#else\nfloat hiddenFactor=0.0;\n#endif\nvisibilityFactor=(1.0-mask.y>0.0)?1.0:hiddenFactor;visibilityFactor*=(1.0-mask.x)*patternColor.a;color+=visibilityFactor*patternColor.rgb;\n#endif\nfloat alpha=max(max(edge.x,edge.y),visibilityFactor);\n#ifdef ALPHA\noutputColor=vec4(color,alpha);\n#else\noutputColor=vec4(color,max(alpha,inputColor.a));\n#endif\n}",gX="uniform float patternScale;varying vec2 vUvPattern;void mainSupport(const in vec2 uv){vUvPattern=uv*vec2(aspect,1.0)*patternScale;}",af,s_=(af=class extends o_{constructor(e,t,{blendFunction:n=De.SCREEN,patternTexture:r=null,patternScale:a=1,edgeStrength:o=1,pulseSpeed:s=0,visibleEdgeColor:c=16777215,hiddenEdgeColor:u=2230538,kernelSize:h=P8.VERY_SMALL,blur:m=!1,xRay:f=!0,multisampling:g=0,resolutionScale:b=.5,width:M=Na.AUTO_SIZE,height:x=Na.AUTO_SIZE,resolutionX:T=M,resolutionY:E=x}={}){super("OutlineEffect",mX,{uniforms:new Map([["maskTexture",new xe(null)],["edgeTexture",new xe(null)],["edgeStrength",new xe(o)],["visibleEdgeColor",new xe(new Ee(c))],["hiddenEdgeColor",new xe(new Ee(u))],["pulse",new xe(1)],["patternScale",new xe(a)],["patternTexture",new xe(null)]])}),this.blendMode.addEventListener("change",q=>{this.blendMode.blendFunction===De.ALPHA?this.defines.set("ALPHA","1"):this.defines.delete("ALPHA"),this.setChanged()}),this.blendMode.blendFunction=n,this.patternTexture=r,this.xRay=f,this.scene=e,this.camera=t,this.renderTargetMask=new st(1,1),this.renderTargetMask.samples=g,this.renderTargetMask.texture.name="Outline.Mask",this.uniforms.get("maskTexture").value=this.renderTargetMask.texture,this.renderTargetOutline=new st(1,1,{depthBuffer:!1}),this.renderTargetOutline.texture.name="Outline.Edges",this.uniforms.get("edgeTexture").value=this.renderTargetOutline.texture,this.clearPass=new tu,this.clearPass.overrideClearColor=new Ee(0),this.clearPass.overrideClearAlpha=1,this.depthPass=new IW(e,t),this.maskPass=new lv(e,t,new hW(this.depthPass.texture,t));let S=this.maskPass.clearPass;S.overrideClearColor=new Ee(16777215),S.overrideClearAlpha=1,this.blurPass=new OW({resolutionScale:b,resolutionX:T,resolutionY:E,kernelSize:h}),this.blurPass.enabled=m;let _=this.blurPass.resolution;_.addEventListener("change",q=>this.setSize(_.baseWidth,_.baseHeight)),this.outlinePass=new cl(new TW);let P=this.outlinePass.fullscreenMaterial;P.inputBuffer=this.renderTargetMask.texture,this.time=0,this.forceUpdate=!0,this.selection=new qW,this.selection.layer=10,this.pulseSpeed=s}set mainScene(e){this.scene=e,this.depthPass.mainScene=e,this.maskPass.mainScene=e}set mainCamera(e){this.camera=e,this.depthPass.mainCamera=e,this.maskPass.mainCamera=e,this.maskPass.overrideMaterial.copyCameraSettings(e)}get resolution(){return this.blurPass.resolution}getResolution(){return this.blurPass.getResolution()}get multisampling(){return this.renderTargetMask.samples}set multisampling(e){this.renderTargetMask.samples=e,this.renderTargetMask.dispose()}get patternScale(){return this.uniforms.get("patternScale").value}set patternScale(e){this.uniforms.get("patternScale").value=e}get edgeStrength(){return this.uniforms.get("edgeStrength").value}set edgeStrength(e){this.uniforms.get("edgeStrength").value=e}get visibleEdgeColor(){return this.uniforms.get("visibleEdgeColor").value}set visibleEdgeColor(e){this.uniforms.get("visibleEdgeColor").value=e}get hiddenEdgeColor(){return this.uniforms.get("hiddenEdgeColor").value}set hiddenEdgeColor(e){this.uniforms.get("hiddenEdgeColor").value=e}getBlurPass(){return this.blurPass}getSelection(){return this.selection}getPulseSpeed(){return this.pulseSpeed}setPulseSpeed(e){this.pulseSpeed=e}get width(){return this.resolution.width}set width(e){this.resolution.preferredWidth=e}get height(){return this.resolution.height}set height(e){this.resolution.preferredHeight=e}get selectionLayer(){return this.selection.layer}set selectionLayer(e){this.selection.layer=e}get dithering(){return this.blurPass.dithering}set dithering(e){this.blurPass.dithering=e}get kernelSize(){return this.blurPass.kernelSize}set kernelSize(e){this.blurPass.kernelSize=e}get blur(){return this.blurPass.enabled}set blur(e){this.blurPass.enabled=e}get xRay(){return this.defines.has("X_RAY")}set xRay(e){this.xRay!==e&&(e?this.defines.set("X_RAY","1"):this.defines.delete("X_RAY"),this.setChanged())}isXRayEnabled(){return this.xRay}setXRayEnabled(e){this.xRay=e}get patternTexture(){return this.uniforms.get("patternTexture").value}set patternTexture(e){e!==null?(e.wrapS=e.wrapT=fi,this.defines.set("USE_PATTERN","1"),this.setVertexShader(gX)):(this.defines.delete("USE_PATTERN"),this.setVertexShader(null)),this.uniforms.get("patternTexture").value=e,this.setChanged()}setPatternTexture(e){this.patternTexture=e}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}setSelection(e){return this.selection.set(e),this}clearSelection(){return this.selection.clear(),this}selectObject(e){return this.selection.add(e),this}deselectObject(e){return this.selection.delete(e),this}update(e,t,n){let r=this.scene,a=this.camera,o=this.selection,c=this.uniforms.get("pulse"),u=r.background,h=a.layers.mask;(this.forceUpdate||o.size>0)&&(r.background=null,c.value=1,this.pulseSpeed>0&&(c.value=Math.cos(this.time*this.pulseSpeed*10)*.375+.625),this.time+=n,o.setVisible(!1),this.depthPass.render(e),o.setVisible(!0),a.layers.set(o.layer),this.maskPass.render(e,this.renderTargetMask),a.layers.mask=h,r.background=u,this.outlinePass.render(e,null,this.renderTargetOutline),this.blurPass.enabled&&this.blurPass.render(e,this.renderTargetOutline,this.renderTargetOutline)),this.forceUpdate=o.size>0}setSize(e,t){this.blurPass.setSize(e,t),this.renderTargetMask.setSize(e,t);let n=this.resolution;n.setBaseSize(e,t);let r=n.width,a=n.height;this.depthPass.setSize(r,a),this.renderTargetOutline.setSize(r,a),this.outlinePass.fullscreenMaterial.setSize(r,a)}initialize(e,t,n){this.blurPass.initialize(e,t,ki),n!==void 0&&(this.depthPass.initialize(e,t,n),this.maskPass.initialize(e,t,n),this.outlinePass.initialize(e,t,n))}},l(af,"OutlineEffect"),af);var wye=Math.PI*.5;var e_="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAYAAACm53kpAAAAeElEQVRYR+2XSwqAMAxEJ168ePEqwRSKhIIiuHjJqiU0gWE+1CQdApcVAMUAuARaMGCX1MIL/Ow13++9lW2s3mW9MWvsnWc/2fvGygwPAN4E8QzAA4CXAB6AHjG4JTHYI1ey3pcx6FHnEfhLDOIBKAmUBK6/ANUDTlROXAHd9EC1AAAAAElFTkSuQmCC",t_="data:image/png;base64,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",vX="uniform sampler2D weightMap;varying vec2 vOffset0;varying vec2 vOffset1;void movec(const in bvec2 c,inout vec2 variable,const in vec2 value){if(c.x){variable.x=value.x;}if(c.y){variable.y=value.y;}}void movec(const in bvec4 c,inout vec4 variable,const in vec4 value){movec(c.xy,variable.xy,value.xy);movec(c.zw,variable.zw,value.zw);}void mainImage(const in vec4 inputColor,const in vec2 uv,out vec4 outputColor){vec4 a;a.x=texture2D(weightMap,vOffset0).a;a.y=texture2D(weightMap,vOffset1).g;a.wz=texture2D(weightMap,uv).rb;vec4 color=inputColor;if(dot(a,vec4(1.0))>=1e-5){bool h=max(a.x,a.z)>max(a.y,a.w);vec4 blendingOffset=vec4(0.0,a.y,0.0,a.w);vec2 blendingWeight=a.yw;movec(bvec4(h),blendingOffset,vec4(a.x,0.0,a.z,0.0));movec(bvec2(h),blendingWeight,a.xz);blendingWeight/=dot(blendingWeight,vec2(1.0));vec4 blendingCoord=blendingOffset*vec4(texelSize,-texelSize)+uv.xyxy;color=blendingWeight.x*texture2D(inputBuffer,blendingCoord.xy);color+=blendingWeight.y*texture2D(inputBuffer,blendingCoord.zw);}outputColor=color;}",yX="varying vec2 vOffset0;varying vec2 vOffset1;void mainSupport(const in vec2 uv){vOffset0=uv+texelSize*vec2(1.0,0.0);vOffset1=uv+texelSize*vec2(0.0,1.0);}",of,l_=(of=class extends o_{constructor({blendFunction:e=De.SRC,preset:t=Xr.MEDIUM,edgeDetectionMode:n=i_.COLOR,predicationMode:r=rW.DISABLED}={}){super("SMAAEffect",vX,{vertexShader:yX,blendFunction:e,attributes:ka.CONVOLUTION|ka.DEPTH,uniforms:new Map([["weightMap",new xe(null)]])});let a,o;arguments.length>1&&(a=arguments[0],o=arguments[1],arguments.length>2&&(t=arguments[2]),arguments.length>3&&(n=arguments[3])),this.renderTargetEdges=new st(1,1,{depthBuffer:!1}),this.renderTargetEdges.texture.name="SMAA.Edges",this.renderTargetWeights=this.renderTargetEdges.clone(),this.renderTargetWeights.texture.name="SMAA.Weights",this.uniforms.get("weightMap").value=this.renderTargetWeights.texture,this.clearPass=new tu(!0,!1,!1),this.clearPass.overrideClearColor=new Ee(0),this.clearPass.overrideClearAlpha=1,this.edgeDetectionPass=new cl(new mW),this.edgeDetectionMaterial.edgeDetectionMode=n,this.edgeDetectionMaterial.predicationMode=r,this.weightsPass=new cl(new wW);let s=new IT;s.onLoad=()=>{let c=new na(a);c.name="SMAA.Search",c.magFilter=mi,c.minFilter=mi,c.generateMipmaps=!1,c.needsUpdate=!0,c.flipY=!0,this.weightsMaterial.searchTexture=c;let u=new na(o);u.name="SMAA.Area",u.magFilter=ii,u.minFilter=ii,u.generateMipmaps=!1,u.needsUpdate=!0,u.flipY=!1,this.weightsMaterial.areaTexture=u,this.dispatchEvent({type:"load"})},s.itemStart("search"),s.itemStart("area"),a!==void 0&&o!==void 0?(s.itemEnd("search"),s.itemEnd("area")):typeof Image<"u"&&(a=new Image,o=new Image,a.addEventListener("load",()=>s.itemEnd("search")),o.addEventListener("load",()=>s.itemEnd("area")),a.src=e_,o.src=t_),this.applyPreset(t)}get edgesTexture(){return this.renderTargetEdges.texture}getEdgesTexture(){return this.edgesTexture}get weightsTexture(){return this.renderTargetWeights.texture}getWeightsTexture(){return this.weightsTexture}get edgeDetectionMaterial(){return this.edgeDetectionPass.fullscreenMaterial}get colorEdgesMaterial(){return this.edgeDetectionMaterial}getEdgeDetectionMaterial(){return this.edgeDetectionMaterial}get weightsMaterial(){return this.weightsPass.fullscreenMaterial}getWeightsMaterial(){return this.weightsMaterial}setEdgeDetectionThreshold(e){this.edgeDetectionMaterial.edgeDetectionThreshold=e}setOrthogonalSearchSteps(e){this.weightsMaterial.orthogonalSearchSteps=e}applyPreset(e){let t=this.edgeDetectionMaterial,n=this.weightsMaterial;switch(e){case Xr.LOW:t.edgeDetectionThreshold=.15,n.orthogonalSearchSteps=4,n.diagonalDetection=!1,n.cornerDetection=!1;break;case Xr.MEDIUM:t.edgeDetectionThreshold=.1,n.orthogonalSearchSteps=8,n.diagonalDetection=!1,n.cornerDetection=!1;break;case Xr.HIGH:t.edgeDetectionThreshold=.1,n.orthogonalSearchSteps=16,n.diagonalSearchSteps=8,n.cornerRounding=25,n.diagonalDetection=!0,n.cornerDetection=!0;break;case Xr.ULTRA:t.edgeDetectionThreshold=.05,n.orthogonalSearchSteps=32,n.diagonalSearchSteps=16,n.cornerRounding=25,n.diagonalDetection=!0,n.cornerDetection=!0;break}}setDepthTexture(e,t=An){this.edgeDetectionMaterial.depthBuffer=e,this.edgeDetectionMaterial.depthPacking=t}update(e,t,n){this.clearPass.render(e,this.renderTargetEdges),this.edgeDetectionPass.render(e,t,this.renderTargetEdges),this.weightsPass.render(e,this.renderTargetEdges,this.renderTargetWeights)}setSize(e,t){this.edgeDetectionMaterial.setSize(e,t),this.weightsMaterial.setSize(e,t),this.renderTargetEdges.setSize(e,t),this.renderTargetWeights.setSize(e,t)}dispose(){let{searchTexture:e,areaTexture:t}=this.weightsMaterial;e!==null&&t!==null&&(e.dispose(),t.dispose()),super.dispose()}static get searchImageDataURL(){return e_}static get areaImageDataURL(){return t_}},l(of,"SMAAEffect"),of);var sf=new Cr;sf.setAttribute("position",new ni(new Float32Array([-1,-1,3,-1,-1,3]),2));sf.setAttribute("uv",new ni(new Float32Array([0,0,2,0,0,2]),2));sf.boundingSphere=new gT;sf.computeBoundingSphere=function(){};var bX=new yT,S8=class S8{constructor(e){this._mesh=new qe(sf,e),this._mesh.frustumCulled=!1}render(e){e.render(this._mesh,bX)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}dispose(){this._mesh.material.dispose(),this._mesh.geometry.dispose()}};l(S8,"$e4ca8dcb0218f846$export$dcd670d73db751f5");var Ba=S8,xX={uniforms:{sceneDiffuse:{value:null},sceneDepth:{value:null},sceneNormal:{value:null},projMat:{value:new tt},viewMat:{value:new tt},projViewMat:{value:new tt},projectionMatrixInv:{value:new tt},viewMatrixInv:{value:new tt},cameraPos:{value:new z},resolution:{value:new he},time:{value:0},samples:{value:[]},bluenoise:{value:null},distanceFalloff:{value:1},radius:{value:5},near:{value:.1},far:{value:1e3},logDepth:{value:!1},ortho:{value:!1},screenSpaceRadius:{value:!1},frame:{value:0}},depthWrite:!1,depthTest:!1,vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = vec4(position, 1);\n}",fragmentShader:"\n #define SAMPLES 16\n #define FSAMPLES 16.0\nuniform sampler2D sceneDiffuse;\nuniform highp sampler2D sceneNormal;\nuniform highp sampler2D sceneDepth;\nuniform mat4 projectionMatrixInv;\nuniform mat4 viewMatrixInv;\nuniform mat4 projMat;\nuniform mat4 viewMat;\nuniform mat4 projViewMat;\nuniform vec3 cameraPos;\nuniform vec2 resolution;\nuniform float time;\nuniform vec3[SAMPLES] samples;\nuniform float radius;\nuniform float distanceFalloff;\nuniform float near;\nuniform float far;\nuniform float frame;\nuniform bool logDepth;\nuniform bool ortho;\nuniform bool screenSpaceRadius;\nuniform sampler2D bluenoise;\n varying vec2 vUv;\n highp float linearize_depth(highp float d, highp float zNear,highp float zFar)\n {\n return (zFar * zNear) / (zFar - d * (zFar - zNear));\n }\n highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) {\n return nearZ + (farZ - nearZ) * d;\n }\n highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) {\n float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n return ortho ? linearize_depth_ortho(\n linDepth,\n nearZ,\n farZ\n ) :linearize_depth(linDepth, nearZ, farZ);\n }\n\n vec3 getWorldPosLog(vec3 posS) {\n vec2 uv = posS.xy;\n float z = posS.z;\n float nearZ =near;\n float farZ = far;\n float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0;\n vec4 wpos = projectionMatrixInv * clipVec;\n return wpos.xyz / wpos.w;\n }\n vec3 getWorldPos(float depth, vec2 coord) {\n #ifdef LOGDEPTH\n return getWorldPosLog(vec3(coord, depth));\n #endif\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition;\n // Perspective division\n vec4 worldSpacePosition = viewSpacePosition;\n worldSpacePosition.xyz /= worldSpacePosition.w;\n return worldSpacePosition.xyz;\n }\n\n vec3 computeNormal(vec3 worldPos, vec2 vUv) {\n ivec2 p = ivec2(vUv * resolution);\n float c0 = texelFetch(sceneDepth, p, 0).x;\n float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x;\n float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x;\n float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x;\n float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x;\n float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x;\n float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x;\n float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x;\n float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x;\n\n float dl = abs((2.0 * l1 - l2) - c0);\n float dr = abs((2.0 * r1 - r2) - c0);\n float db = abs((2.0 * b1 - b2) - c0);\n float dt = abs((2.0 * t1 - t2) - c0);\n\n vec3 ce = getWorldPos(c0, vUv).xyz;\n\n vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz\n : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz;\n vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz\n : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz;\n\n return normalize(cross(dpdx, dpdy));\n}\n\nmat3 makeRotationZ(float theta) {\n float c = cos(theta);\n float s = sin(theta);\n return mat3(c, - s, 0,\n s, c, 0,\n 0, 0, 1);\n }\n\nvoid main() {\n vec4 diffuse = texture2D(sceneDiffuse, vUv);\n float depth = texture2D(sceneDepth, vUv).x;\n if (depth == 1.0) {\n gl_FragColor = vec4(vec3(1.0), 1.0);\n return;\n }\n vec3 worldPos = getWorldPos(depth, vUv);\n #ifdef HALFRES\n vec3 normal = texture2D(sceneNormal, vUv).rgb;\n #else\n vec3 normal = computeNormal(worldPos, vUv);\n #endif\n vec4 noise = texture2D(bluenoise, gl_FragCoord.xy / 128.0);\n vec2 harmoniousNumbers = vec2(\n 1.618033988749895,\n 1.324717957244746\n );\n noise.rg += harmoniousNumbers * frame;\n noise.rg = fract(noise.rg);\n vec3 helperVec = vec3(0.0, 1.0, 0.0);\n if (dot(helperVec, normal) > 0.99) {\n helperVec = vec3(1.0, 0.0, 0.0);\n }\n vec3 tangent = normalize(cross(helperVec, normal));\n vec3 bitangent = cross(normal, tangent);\n mat3 tbn = mat3(tangent, bitangent, normal) * makeRotationZ(noise.r * 2.0 * 3.1415962) ;\n\n float occluded = 0.0;\n float totalWeight = 0.0;\n float radiusToUse = screenSpaceRadius ? distance(\n worldPos,\n getWorldPos(depth, vUv +\n vec2(radius, 0.0) / resolution)\n ) : radius;\n float distanceFalloffToUse =screenSpaceRadius ?\n radiusToUse * distanceFalloff\n : radiusToUse * distanceFalloff * 0.2;\n float bias = (min(\n 0.1,\n distanceFalloffToUse * 0.1\n ) / near) * fwidth(distance(worldPos, cameraPos)) / radiusToUse;\n float phi = 1.61803398875;\n float offsetMove = 0.0;\n float offsetMoveInv = 1.0 / FSAMPLES;\n for(float i = 0.0; i < FSAMPLES; i++) {\n vec3 sampleDirection = tbn * samples[int(i)];\n\n float moveAmt = fract(noise.g + offsetMove);\n offsetMove += offsetMoveInv;\n\n vec3 samplePos = worldPos + radiusToUse * moveAmt * sampleDirection;\n vec4 offset = projMat * vec4(samplePos, 1.0);\n offset.xyz /= offset.w;\n offset.xyz = offset.xyz * 0.5 + 0.5;\n \n vec2 diff = gl_FragCoord.xy - floor(offset.xy * resolution);\n // From Rabbid76's hbao\n vec2 clipRangeCheck = step(vec2(0.0),offset.xy) * step(offset.xy, vec2(1.0));\n float sampleDepth = textureLod(sceneDepth, offset.xy, 0.0).x;\n\n #ifdef LOGDEPTH\n\n float distSample = linearize_depth_log(sampleDepth, near, far);\n\n #else\n\n float distSample = ortho ? linearize_depth_ortho(sampleDepth, near, far) : linearize_depth(sampleDepth, near, far);\n\n #endif\n\n float distWorld = ortho ? linearize_depth_ortho(offset.z, near, far) : linearize_depth(offset.z, near, far);\n \n float rangeCheck = distSample == distWorld ? 0.0 : smoothstep(0.0, 1.0, distanceFalloffToUse / (abs(distSample - distWorld)));\n \n float sampleValid = (clipRangeCheck.x * clipRangeCheck.y);\n occluded += rangeCheck * float(sampleDepth != depth) * float(distSample + bias < distWorld) * step(\n 1.0,\n dot(diff, diff)\n ) * sampleValid;\n \n totalWeight += sampleValid;\n }\n float occ = clamp(1.0 - occluded / (totalWeight == 0.0 ? 1.0 : totalWeight), 0.0, 1.0);\n gl_FragColor = vec4(occ, 0.5 + 0.5 * normal);\n}"},TX={uniforms:{sceneDiffuse:{value:null},sceneDepth:{value:null},tDiffuse:{value:null},transparencyDWFalse:{value:null},transparencyDWTrue:{value:null},transparencyDWTrueDepth:{value:null},transparencyAware:{value:!1},projMat:{value:new tt},viewMat:{value:new tt},projectionMatrixInv:{value:new tt},viewMatrixInv:{value:new tt},cameraPos:{value:new z},resolution:{value:new he},color:{value:new z(0,0,0)},blueNoise:{value:null},downsampledDepth:{value:null},time:{value:0},intensity:{value:10},renderMode:{value:0},gammaCorrection:{value:!1},logDepth:{value:!1},ortho:{value:!1},near:{value:.1},far:{value:1e3},screenSpaceRadius:{value:!1},radius:{value:0},distanceFalloff:{value:1},fog:{value:!1},fogExp:{value:!1},fogDensity:{value:0},fogNear:{value:1/0},fogFar:{value:1/0},colorMultiply:{value:!0}},depthWrite:!1,depthTest:!1,vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = vec4(position, 1);\n }",fragmentShader:"\n uniform sampler2D sceneDiffuse;\n uniform highp sampler2D sceneDepth;\n uniform highp sampler2D downsampledDepth;\n uniform highp sampler2D transparencyDWFalse;\n uniform highp sampler2D transparencyDWTrue;\n uniform highp sampler2D transparencyDWTrueDepth;\n uniform sampler2D tDiffuse;\n uniform sampler2D blueNoise;\n uniform vec2 resolution;\n uniform vec3 color;\n uniform mat4 projectionMatrixInv;\n uniform mat4 viewMatrixInv;\n uniform float intensity;\n uniform float renderMode;\n uniform float near;\n uniform float far;\n uniform bool gammaCorrection;\n uniform bool logDepth;\n uniform bool ortho;\n uniform bool screenSpaceRadius;\n uniform bool fog;\n uniform bool fogExp;\n uniform bool colorMultiply;\n uniform bool transparencyAware;\n uniform float fogDensity;\n uniform float fogNear;\n uniform float fogFar;\n uniform float radius;\n uniform float distanceFalloff;\n uniform vec3 cameraPos;\n varying vec2 vUv;\n highp float linearize_depth(highp float d, highp float zNear,highp float zFar)\n {\n return (zFar * zNear) / (zFar - d * (zFar - zNear));\n }\n highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) {\n return nearZ + (farZ - nearZ) * d;\n }\n highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) {\n float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n return ortho ? linearize_depth_ortho(\n linDepth,\n nearZ,\n farZ\n ) :linearize_depth(linDepth, nearZ, farZ);\n }\n vec3 getWorldPosLog(vec3 posS) {\n vec2 uv = posS.xy;\n float z = posS.z;\n float nearZ =near;\n float farZ = far;\n float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0;\n vec4 wpos = projectionMatrixInv * clipVec;\n return wpos.xyz / wpos.w;\n }\n vec3 getWorldPos(float depth, vec2 coord) {\n // if (logDepth) {\n #ifdef LOGDEPTH\n return getWorldPosLog(vec3(coord, depth));\n #endif\n // }\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition;\n // Perspective division\n vec4 worldSpacePosition = viewSpacePosition;\n worldSpacePosition.xyz /= worldSpacePosition.w;\n return worldSpacePosition.xyz;\n }\n \n vec3 computeNormal(vec3 worldPos, vec2 vUv) {\n ivec2 p = ivec2(vUv * resolution);\n float c0 = texelFetch(sceneDepth, p, 0).x;\n float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x;\n float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x;\n float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x;\n float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x;\n float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x;\n float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x;\n float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x;\n float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x;\n \n float dl = abs((2.0 * l1 - l2) - c0);\n float dr = abs((2.0 * r1 - r2) - c0);\n float db = abs((2.0 * b1 - b2) - c0);\n float dt = abs((2.0 * t1 - t2) - c0);\n \n vec3 ce = getWorldPos(c0, vUv).xyz;\n \n vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz\n : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz;\n vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz\n : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz;\n \n return normalize(cross(dpdx, dpdy));\n }\n\n #include <common>\n #include <dithering_pars_fragment>\n void main() {\n //vec4 texel = texture2D(tDiffuse, vUv);//vec3(0.0);\n vec4 sceneTexel = texture2D(sceneDiffuse, vUv);\n float depth = texture2D(\n sceneDepth,\n vUv\n ).x;\n #ifdef HALFRES \n vec4 texel;\n if (depth == 1.0) {\n texel = vec4(0.0, 0.0, 0.0, 1.0);\n } else {\n vec3 worldPos = getWorldPos(depth, vUv);\n vec3 normal = computeNormal(getWorldPos(depth, vUv), vUv);\n // vec4 texel = texture2D(tDiffuse, vUv);\n // Find closest depth;\n float totalWeight = 0.0;\n float radiusToUse = screenSpaceRadius ? distance(\n worldPos,\n getWorldPos(depth, vUv +\n vec2(radius, 0.0) / resolution)\n ) : radius;\n float distanceFalloffToUse =screenSpaceRadius ?\n radiusToUse * distanceFalloff\n : distanceFalloff;\n for(float x = -1.0; x <= 1.0; x++) {\n for(float y = -1.0; y <= 1.0; y++) {\n vec2 offset = vec2(x, y);\n ivec2 p = ivec2(\n (vUv * resolution * 0.5) + offset\n );\n vec2 pUv = vec2(p) / (resolution * 0.5);\n float sampleDepth = texelFetch(downsampledDepth,p, 0).x;\n vec4 sampleInfo = texelFetch(tDiffuse, p, 0);\n vec3 normalSample = sampleInfo.gba * 2.0 - 1.0;\n vec3 worldPosSample = getWorldPos(sampleDepth, pUv);\n float tangentPlaneDist = abs(dot(worldPosSample - worldPos, normal));\n float rangeCheck = exp(-1.0 * tangentPlaneDist * (1.0 / distanceFalloffToUse)) * max(dot(normal, normalSample), 0.0);\n float weight = rangeCheck;\n totalWeight += weight;\n texel += sampleInfo * weight;\n }\n }\n if (totalWeight == 0.0) {\n texel = texture2D(tDiffuse, vUv);\n } else {\n texel /= totalWeight;\n }\n }\n #else\n vec4 texel = texture2D(tDiffuse, vUv);\n #endif\n\n #ifdef LOGDEPTH\n texel.r = clamp(texel.r, 0.0, 1.0);\n if (texel.r == 0.0) {\n texel.r = 1.0;\n }\n #endif\n \n float finalAo = pow(texel.r, intensity);\n float fogFactor;\n float fogDepth = distance(\n cameraPos,\n getWorldPos(depth, vUv)\n );\n if (fog) {\n if (fogExp) {\n fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n } else {\n fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n }\n }\n if (transparencyAware) {\n float transparencyDWOff = texture2D(transparencyDWFalse, vUv).a;\n float transparencyDWOn = texture2D(transparencyDWTrue, vUv).a;\n float adjustmentFactorOff = transparencyDWOff;\n float adjustmentFactorOn = (1.0 - transparencyDWOn) * (\n texture2D(transparencyDWTrueDepth, vUv).r == texture2D(sceneDepth, vUv).r ? 1.0 : 0.0\n );\n float adjustmentFactor = max(adjustmentFactorOff, adjustmentFactorOn);\n finalAo = mix(finalAo, 1.0, adjustmentFactor);\n }\n finalAo = mix(finalAo, 1.0, fogFactor);\n vec3 aoApplied = color * mix(vec3(1.0), sceneTexel.rgb, float(colorMultiply));\n if (renderMode == 0.0) {\n gl_FragColor = vec4( mix(sceneTexel.rgb, aoApplied, 1.0 - finalAo), sceneTexel.a);\n } else if (renderMode == 1.0) {\n gl_FragColor = vec4( mix(vec3(1.0), aoApplied, 1.0 - finalAo), sceneTexel.a);\n } else if (renderMode == 2.0) {\n gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a);\n } else if (renderMode == 3.0) {\n if (vUv.x < 0.5) {\n gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a);\n } else if (abs(vUv.x - 0.5) < 1.0 / resolution.x) {\n gl_FragColor = vec4(1.0);\n } else {\n gl_FragColor = vec4( mix(sceneTexel.rgb, aoApplied, 1.0 - finalAo), sceneTexel.a);\n }\n } else if (renderMode == 4.0) {\n if (vUv.x < 0.5) {\n gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a);\n } else if (abs(vUv.x - 0.5) < 1.0 / resolution.x) {\n gl_FragColor = vec4(1.0);\n } else {\n gl_FragColor = vec4( mix(vec3(1.0), aoApplied, 1.0 - finalAo), sceneTexel.a);\n }\n }\n #include <dithering_fragment>\n if (gammaCorrection) {\n gl_FragColor = LinearTosRGB(gl_FragColor);\n }\n }\n "},MX={uniforms:{sceneDiffuse:{value:null},sceneDepth:{value:null},tDiffuse:{value:null},projMat:{value:new tt},viewMat:{value:new tt},projectionMatrixInv:{value:new tt},viewMatrixInv:{value:new tt},cameraPos:{value:new z},resolution:{value:new he},time:{value:0},r:{value:5},blueNoise:{value:null},radius:{value:12},worldRadius:{value:5},index:{value:0},poissonDisk:{value:[]},distanceFalloff:{value:1},near:{value:.1},far:{value:1e3},logDepth:{value:!1},screenSpaceRadius:{value:!1}},depthWrite:!1,depthTest:!1,vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = vec4(position, 1.0);\n }",fragmentShader:"\n uniform sampler2D sceneDiffuse;\n uniform highp sampler2D sceneDepth;\n uniform sampler2D tDiffuse;\n uniform sampler2D blueNoise;\n uniform mat4 projectionMatrixInv;\n uniform mat4 viewMatrixInv;\n uniform vec2 resolution;\n uniform float r;\n uniform float radius;\n uniform float worldRadius;\n uniform float index;\n uniform float near;\n uniform float far;\n uniform float distanceFalloff;\n uniform bool logDepth;\n uniform bool screenSpaceRadius;\n varying vec2 vUv;\n\n highp float linearize_depth(highp float d, highp float zNear,highp float zFar)\n {\n highp float z_n = 2.0 * d - 1.0;\n return 2.0 * zNear * zFar / (zFar + zNear - z_n * (zFar - zNear));\n }\n highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) {\n float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n return linearize_depth(linDepth, nearZ, farZ);\n }\n highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) {\n return nearZ + (farZ - nearZ) * d;\n }\n vec3 getWorldPosLog(vec3 posS) {\n vec2 uv = posS.xy;\n float z = posS.z;\n float nearZ =near;\n float farZ = far;\n float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0;\n vec4 wpos = projectionMatrixInv * clipVec;\n return wpos.xyz / wpos.w;\n }\n vec3 getWorldPos(float depth, vec2 coord) {\n #ifdef LOGDEPTH\n return getWorldPosLog(vec3(coord, depth));\n #endif\n \n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition;\n // Perspective division\n vec4 worldSpacePosition = viewSpacePosition;\n worldSpacePosition.xyz /= worldSpacePosition.w;\n return worldSpacePosition.xyz;\n }\n #include <common>\n #define NUM_SAMPLES 16\n uniform vec2 poissonDisk[NUM_SAMPLES];\n void main() {\n const float pi = 3.14159;\n vec2 texelSize = vec2(1.0 / resolution.x, 1.0 / resolution.y);\n vec2 uv = vUv;\n vec4 data = texture2D(tDiffuse, vUv);\n float occlusion = data.r;\n float baseOcc = data.r;\n vec3 normal = data.gba * 2.0 - 1.0;\n float count = 1.0;\n float d = texture2D(sceneDepth, vUv).x;\n if (d == 1.0) {\n gl_FragColor = data;\n return;\n }\n vec3 worldPos = getWorldPos(d, vUv);\n float size = radius;\n float angle;\n if (index == 0.0) {\n angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).x * PI2;\n } else if (index == 1.0) {\n angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).y * PI2;\n } else if (index == 2.0) {\n angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).z * PI2;\n } else {\n angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).w * PI2;\n }\n\n mat2 rotationMatrix = mat2(cos(angle), -sin(angle), sin(angle), cos(angle));\n float radiusToUse = screenSpaceRadius ? distance(\n worldPos,\n getWorldPos(d, vUv +\n vec2(worldRadius, 0.0) / resolution)\n ) : worldRadius;\n float distanceFalloffToUse =screenSpaceRadius ?\n radiusToUse * distanceFalloff\n : radiusToUse * distanceFalloff * 0.2;\n\n\n for(int i = 0; i < NUM_SAMPLES; i++) {\n vec2 offset = (rotationMatrix * poissonDisk[i]) * texelSize * size;\n vec4 dataSample = texture2D(tDiffuse, uv + offset);\n float occSample = dataSample.r;\n vec3 normalSample = dataSample.gba * 2.0 - 1.0;\n float dSample = texture2D(sceneDepth, uv + offset).x;\n vec3 worldPosSample = getWorldPos(dSample, uv + offset);\n float tangentPlaneDist = abs(dot(worldPosSample - worldPos, normal));\n float rangeCheck = dSample == 1.0 ? 0.0 :exp(-1.0 * tangentPlaneDist * (1.0 / distanceFalloffToUse)) * max(dot(normal, normalSample), 0.0) * (1.0 - abs(occSample - baseOcc));\n occlusion += occSample * rangeCheck;\n count += rangeCheck;\n }\n if (count > 0.0) {\n occlusion /= count;\n }\n #ifdef LOGDEPTH\n occlusion = clamp(occlusion, 0.0, 1.0);\n if (occlusion == 0.0) {\n occlusion = 1.0;\n }\n #endif\n gl_FragColor = vec4(occlusion, 0.5 + 0.5 * normal);\n }\n "},EX={uniforms:{sceneDepth:{value:null},resolution:{value:new he},near:{value:.1},far:{value:1e3},viewMatrixInv:{value:new tt},projectionMatrixInv:{value:new tt},logDepth:{value:!1}},depthWrite:!1,depthTest:!1,vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = vec4(position, 1);\n }",fragmentShader:"\n uniform highp sampler2D sceneDepth;\n uniform vec2 resolution;\n uniform float near;\n uniform float far;\n uniform bool logDepth;\n uniform mat4 viewMatrixInv;\n uniform mat4 projectionMatrixInv;\n varying vec2 vUv;\n layout(location = 1) out vec4 gNormal;\n vec3 getWorldPosLog(vec3 posS) {\n vec2 uv = posS.xy;\n float z = posS.z;\n float nearZ =near;\n float farZ = far;\n float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0;\n vec4 wpos = projectionMatrixInv * clipVec;\n return wpos.xyz / wpos.w;\n }\n vec3 getWorldPos(float depth, vec2 coord) {\n if (logDepth) {\n return getWorldPosLog(vec3(coord, depth));\n }\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition;\n // Perspective division\n vec4 worldSpacePosition = viewSpacePosition;\n worldSpacePosition.xyz /= worldSpacePosition.w;\n return worldSpacePosition.xyz;\n }\n \n vec3 computeNormal(vec3 worldPos, vec2 vUv) {\n ivec2 p = ivec2(vUv * resolution);\n float c0 = texelFetch(sceneDepth, p, 0).x;\n float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x;\n float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x;\n float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x;\n float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x;\n float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x;\n float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x;\n float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x;\n float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x;\n \n float dl = abs((2.0 * l1 - l2) - c0);\n float dr = abs((2.0 * r1 - r2) - c0);\n float db = abs((2.0 * b1 - b2) - c0);\n float dt = abs((2.0 * t1 - t2) - c0);\n \n vec3 ce = getWorldPos(c0, vUv).xyz;\n \n vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz\n : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz;\n vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz\n : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz;\n \n return normalize(cross(dpdx, dpdy));\n }\n void main() {\n vec2 uv = vUv - vec2(0.5) / resolution;\n vec2 pixelSize = vec2(1.0) / resolution;\n highp vec2[4] uvSamples;\n uvSamples[0] = uv;\n uvSamples[1] = uv + vec2(pixelSize.x, 0.0);\n uvSamples[2] = uv + vec2(0.0, pixelSize.y);\n uvSamples[3] = uv + pixelSize;\n float depth00 = texture2D(sceneDepth, uvSamples[0]).r;\n float depth10 = texture2D(sceneDepth, uvSamples[1]).r;\n float depth01 = texture2D(sceneDepth, uvSamples[2]).r;\n float depth11 = texture2D(sceneDepth, uvSamples[3]).r;\n float minDepth = min(min(depth00, depth10), min(depth01, depth11));\n float maxDepth = max(max(depth00, depth10), max(depth01, depth11));\n float targetDepth = minDepth;\n // Checkerboard pattern to avoid artifacts\n if (mod(gl_FragCoord.x + gl_FragCoord.y, 2.0) > 0.5) { \n targetDepth = maxDepth;\n }\n int chosenIndex = 0;\n float[4] samples;\n samples[0] = depth00;\n samples[1] = depth10;\n samples[2] = depth01;\n samples[3] = depth11;\n for(int i = 0; i < 4; ++i) {\n if (samples[i] == targetDepth) {\n chosenIndex = i;\n break;\n }\n }\n gl_FragColor = vec4(samples[chosenIndex], 0.0, 0.0, 1.0);\n gNormal = vec4(computeNormal(\n getWorldPos(samples[chosenIndex], uvSamples[chosenIndex]), uvSamples[chosenIndex]\n ), 0.0);\n }"},c_="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",wX=Uint8Array.from(atob(c_),i=>i.charCodeAt(0));function u_(i,e,t){if(e.getQueryParameter(i,e.QUERY_RESULT_AVAILABLE)){let a=e.getQueryParameter(i,e.QUERY_RESULT)/1e6;t.lastTime=a}else setTimeout(()=>{u_(i,e,t)},1)}l(u_,"$87431ee93b037844$var$checkTimerQuery");var I8=class I8 extends pn{constructor(e,t,n=512,r=512){super(),this.width=n,this.height=r,this.clear=!0,this.camera=t,this.scene=e,this.autosetGamma=!0,this.configuration=new Proxy({aoSamples:16,aoRadius:5,denoiseSamples:8,denoiseRadius:12,distanceFalloff:1,intensity:5,denoiseIterations:2,renderMode:0,color:new Ee(0,0,0),gammaCorrection:!0,logarithmicDepthBuffer:!1,screenSpaceRadius:!1,halfRes:!1,depthAwareUpsampling:!0,colorMultiply:!0,transparencyAware:!1,accumulate:!1},{set:(a,o,s)=>{let c=a[o];return a[o]=s,s.equals?s.equals(c)||this.firstFrame():c!==s&&this.firstFrame(),o==="aoSamples"&&c!==s&&this.configureAOPass(this.configuration.logarithmicDepthBuffer),o==="denoiseSamples"&&c!==s&&this.configureDenoisePass(this.configuration.logarithmicDepthBuffer),o==="halfRes"&&c!==s&&(this.configureAOPass(this.configuration.logarithmicDepthBuffer),this.configureHalfResTargets(),this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer),this.setSize(this.width,this.height)),o==="depthAwareUpsampling"&&c!==s&&this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer),o==="gammaCorrection"&&(this.autosetGamma=!1),o==="transparencyAware"&&c!==s&&(this.autoDetectTransparency=!1,this.configureTransparencyTarget()),!0}}),this.samples=[],this.samplesDenoise=[],this.autoDetectTransparency=!0,this.frames=0,this.lastViewMatrix=new tt,this.lastProjectionMatrix=new tt,this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer),this.configureSampleDependentPasses(),this.configureHalfResTargets(),this.detectTransparency(),this.configureTransparencyTarget(),this.copyQuad=new Ba(new We({uniforms:{tDiffuse:{value:null}},depthWrite:!1,vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = vec4(position, 1);\n }\n ",fragmentShader:"\n uniform sampler2D tDiffuse;\n varying vec2 vUv;\n void main() {\n gl_FragColor = texture2D(tDiffuse, vUv);\n }\n "})),this.writeTargetInternal=new st(this.width,this.height,{minFilter:ii,magFilter:ii,depthBuffer:!1}),this.readTargetInternal=new st(this.width,this.height,{minFilter:ii,magFilter:ii,depthBuffer:!1}),this.outputTargetInternal=new st(this.width,this.height,{minFilter:ii,magFilter:ii,depthBuffer:!1}),this.accumulationRenderTarget=new st(this.width,this.height,{minFilter:ii,magFilter:ii,depthBuffer:!1,format:ps,type:id,stencilBuffer:!1,depthBuffer:!1,alpha:!0}),this.accumulationQuad=new Ba(new We({uniforms:{frame:{value:0},tDiffuse:{value:null}},transparent:!0,opacity:1,vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = vec4(position, 1);\n }",fragmentShader:"\n uniform sampler2D tDiffuse;\n uniform float frame;\n varying vec2 vUv;\n void main() {\n vec4 color = texture2D(tDiffuse, vUv);\n gl_FragColor = vec4(color.rgb, 1.0 / (frame + 1.0));\n }\n "})),this.bluenoise=new TT(wX,128,128),this.bluenoise.colorSpace=Bl,this.bluenoise.wrapS=fi,this.bluenoise.wrapT=fi,this.bluenoise.minFilter=mi,this.bluenoise.magFilter=mi,this.bluenoise.needsUpdate=!0,this.lastTime=0,this.needsDepthTexture=!0,this.needsSwap=!0,this._r=new he,this._c=new Ee}configureHalfResTargets(){this.firstFrame(),this.configuration.halfRes?(this.depthDownsampleTarget=new BT(this.width/2,this.height/2,2),this.depthDownsampleTarget.texture[0].format=mT,this.depthDownsampleTarget.texture[0].type=fT,this.depthDownsampleTarget.texture[0].minFilter=mi,this.depthDownsampleTarget.texture[0].magFilter=mi,this.depthDownsampleTarget.texture[0].depthBuffer=!1,this.depthDownsampleTarget.texture[1].format=ps,this.depthDownsampleTarget.texture[1].type=id,this.depthDownsampleTarget.texture[1].minFilter=mi,this.depthDownsampleTarget.texture[1].magFilter=mi,this.depthDownsampleTarget.texture[1].depthBuffer=!1,this.depthDownsampleQuad=new Ba(new We(EX))):(this.depthDownsampleTarget&&(this.depthDownsampleTarget.dispose(),this.depthDownsampleTarget=null),this.depthDownsampleQuad&&(this.depthDownsampleQuad.dispose(),this.depthDownsampleQuad=null))}detectTransparency(){if(this.autoDetectTransparency){let e=!1;this.scene.traverse(t=>{t.material&&t.material.transparent&&(e=!0)}),e&&(this.configuration.transparencyAware=!0)}}configureTransparencyTarget(){this.configuration.transparencyAware?(this.transparencyRenderTargetDWFalse=new st(this.width,this.height,{minFilter:ii,magFilter:mi,type:id,format:ps}),this.transparencyRenderTargetDWTrue=new st(this.width,this.height,{minFilter:ii,magFilter:mi,type:id,format:ps}),this.transparencyRenderTargetDWTrue.depthTexture=new zl(this.width,this.height,kl),this.depthCopyPass=new Ba(new We({uniforms:{depthTexture:{value:this.depthTexture}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = vec4(position, 1);\n }",fragmentShader:"\n uniform sampler2D depthTexture;\n varying vec2 vUv;\n void main() {\n gl_FragDepth = texture2D(depthTexture, vUv).r + 0.00001;\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n }\n "}))):(this.transparencyRenderTargetDWFalse&&(this.transparencyRenderTargetDWFalse.dispose(),this.transparencyRenderTargetDWFalse=null),this.transparencyRenderTargetDWTrue&&(this.transparencyRenderTargetDWTrue.dispose(),this.transparencyRenderTargetDWTrue=null),this.depthCopyPass&&(this.depthCopyPass.dispose(),this.depthCopyPass=null))}renderTransparency(e){let t=this.scene.background,n=e.getClearColor(new Ee),r=e.getClearAlpha(),a=new Map,o=e.autoClearDepth;this.scene.traverse(s=>{a.set(s,s.visible)}),this.scene.background=null,e.autoClearDepth=!1,e.setClearColor(new Ee(0,0,0),0),this.depthCopyPass.material.uniforms.depthTexture.value=this.depthTexture,e.setRenderTarget(this.transparencyRenderTargetDWFalse),this.scene.traverse(s=>{s.material&&(s.visible=a.get(s)&&s.material.transparent&&!s.material.depthWrite&&!s.userData.treatAsOpaque)}),e.clear(!0,!0,!0),this.depthCopyPass.render(e),e.render(this.scene,this.camera),e.setRenderTarget(this.transparencyRenderTargetDWTrue),this.scene.traverse(s=>{s.material&&(s.visible=a.get(s)&&s.material.transparent&&s.material.depthWrite&&!s.userData.treatAsOpaque)}),e.clear(!0,!0,!0),this.depthCopyPass.render(e),e.render(this.scene,this.camera),this.scene.traverse(s=>{s.visible=a.get(s)}),e.setClearColor(n,r),this.scene.background=t,e.autoClearDepth=o}configureSampleDependentPasses(){this.configureAOPass(this.configuration.logarithmicDepthBuffer),this.configureDenoisePass(this.configuration.logarithmicDepthBuffer)}configureAOPass(e=!1){this.firstFrame(),this.samples=this.generateHemisphereSamples(this.configuration.aoSamples);let t={...xX};t.fragmentShader=t.fragmentShader.replace("16",this.configuration.aoSamples).replace("16.0",this.configuration.aoSamples+".0"),e&&(t.fragmentShader="#define LOGDEPTH\n"+t.fragmentShader),this.configuration.halfRes&&(t.fragmentShader="#define HALFRES\n"+t.fragmentShader),this.effectShaderQuad?(this.effectShaderQuad.material.dispose(),this.effectShaderQuad.material=new We(t)):this.effectShaderQuad=new Ba(new We(t))}configureDenoisePass(e=!1){this.firstFrame(),this.samplesDenoise=this.generateDenoiseSamples(this.configuration.denoiseSamples,11);let t={...MX};t.fragmentShader=t.fragmentShader.replace("16",this.configuration.denoiseSamples),e&&(t.fragmentShader="#define LOGDEPTH\n"+t.fragmentShader),this.poissonBlurQuad?(this.poissonBlurQuad.material.dispose(),this.poissonBlurQuad.material=new We(t)):this.poissonBlurQuad=new Ba(new We(t))}configureEffectCompositer(e=!1){this.firstFrame();let t={...TX};e&&(t.fragmentShader="#define LOGDEPTH\n"+t.fragmentShader),this.configuration.halfRes&&this.configuration.depthAwareUpsampling&&(t.fragmentShader="#define HALFRES\n"+t.fragmentShader),this.effectCompositerQuad?(this.effectCompositerQuad.material.dispose(),this.effectCompositerQuad.material=new We(t)):this.effectCompositerQuad=new Ba(new We(t))}generateHemisphereSamples(e){let t=[];for(let n=0;n<e;n++){let r=2.399963*n,a=Math.sqrt(n+.5)/Math.sqrt(e),o=a*Math.cos(r),s=a*Math.sin(r),c=Math.sqrt(1-(o*o+s*s));t.push(new z(o,s,c))}return t}generateDenoiseSamples(e,t){let n=2*Math.PI*t/e,r=1/e,a=r,o=[],s=r,c=0;for(let u=0;u<e;u++)o.push(new he(Math.cos(c),Math.sin(c)).multiplyScalar(Math.pow(s,.75))),s+=a,c+=n;return o}setSize(e,t){this.firstFrame(),this.width=e,this.height=t;let n=this.configuration.halfRes?.5:1;this.writeTargetInternal.setSize(e*n,t*n),this.readTargetInternal.setSize(e*n,t*n),this.accumulationRenderTarget.setSize(e*n,t*n),this.configuration.halfRes&&this.depthDownsampleTarget.setSize(e*n,t*n),this.configuration.transparencyAware&&(this.transparencyRenderTargetDWFalse.setSize(e,t),this.transparencyRenderTargetDWTrue.setSize(e,t)),this.outputTargetInternal.setSize(e,t)}setDepthTexture(e){this.depthTexture=e}firstFrame(){this.needsFrame=!0}render(e,t,n){let r=e.xr.enabled;e.xr.enabled=!1,e.capabilities.logarithmicDepthBuffer!==this.configuration.logarithmicDepthBuffer&&(this.configuration.logarithmicDepthBuffer=e.capabilities.logarithmicDepthBuffer,this.configureAOPass(this.configuration.logarithmicDepthBuffer),this.configureDenoisePass(this.configuration.logarithmicDepthBuffer),this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer)),this.detectTransparency(),(t.texture.type!==this.outputTargetInternal.texture.type||t.texture.format!==this.outputTargetInternal.texture.format)&&(this.outputTargetInternal.texture.type=t.texture.type,this.outputTargetInternal.texture.format=t.texture.format,this.outputTargetInternal.texture.needsUpdate=!0),this.camera.updateMatrixWorld(),this.lastViewMatrix.equals(this.camera.matrixWorldInverse)&&this.lastProjectionMatrix.equals(this.camera.projectionMatrix)&&this.configuration.accumulate&&!this.needsFrame?this.frame++:(e.setRenderTarget(this.accumulationRenderTarget),e.clear(!0,!0,!0),this.frame=0,this.needsFrame=!1),this.lastViewMatrix.copy(this.camera.matrixWorldInverse),this.lastProjectionMatrix.copy(this.camera.projectionMatrix);let a,o,s;this.debugMode&&(a=e.getContext(),o=a.getExtension("EXT_disjoint_timer_query_webgl2"),o===null&&(console.error("EXT_disjoint_timer_query_webgl2 not available, disabling debug mode."),this.debugMode=!1)),this.debugMode&&(s=a.createQuery(),a.beginQuery(o.TIME_ELAPSED_EXT,s)),this.configuration.transparencyAware&&this.renderTransparency(e),this._r.set(this.width,this.height);let c=this.configuration.aoRadius;if(this.configuration.halfRes&&this.configuration.screenSpaceRadius&&(c*=.5),this.frame<1024/this.configuration.aoSamples){this.configuration.halfRes&&(e.setRenderTarget(this.depthDownsampleTarget),this.depthDownsampleQuad.material.uniforms.sceneDepth.value=this.depthTexture,this.depthDownsampleQuad.material.uniforms.resolution.value=this._r,this.depthDownsampleQuad.material.uniforms.near.value=this.camera.near,this.depthDownsampleQuad.material.uniforms.far.value=this.camera.far,this.depthDownsampleQuad.material.uniforms.projectionMatrixInv.value=this.camera.projectionMatrixInverse,this.depthDownsampleQuad.material.uniforms.viewMatrixInv.value=this.camera.matrixWorld,this.depthDownsampleQuad.material.uniforms.logDepth.value=this.configuration.logarithmicDepthBuffer,this.depthDownsampleQuad.render(e)),this.effectShaderQuad.material.uniforms.sceneDiffuse.value=t.texture,this.effectShaderQuad.material.uniforms.sceneDepth.value=this.configuration.halfRes?this.depthDownsampleTarget.texture[0]:this.depthTexture,this.effectShaderQuad.material.uniforms.sceneNormal.value=this.configuration.halfRes?this.depthDownsampleTarget.texture[1]:null,this.effectShaderQuad.material.uniforms.projMat.value=this.camera.projectionMatrix,this.effectShaderQuad.material.uniforms.viewMat.value=this.camera.matrixWorldInverse,this.effectShaderQuad.material.uniforms.projViewMat.value=this.camera.projectionMatrix.clone().multiply(this.camera.matrixWorldInverse.clone()),this.effectShaderQuad.material.uniforms.projectionMatrixInv.value=this.camera.projectionMatrixInverse,this.effectShaderQuad.material.uniforms.viewMatrixInv.value=this.camera.matrixWorld,this.effectShaderQuad.material.uniforms.cameraPos.value=this.camera.getWorldPosition(new z),this.effectShaderQuad.material.uniforms.resolution.value=this.configuration.halfRes?this._r.clone().multiplyScalar(.5).floor():this._r,this.effectShaderQuad.material.uniforms.time.value=performance.now()/1e3,this.effectShaderQuad.material.uniforms.samples.value=this.samples,this.effectShaderQuad.material.uniforms.bluenoise.value=this.bluenoise,this.effectShaderQuad.material.uniforms.radius.value=c,this.effectShaderQuad.material.uniforms.distanceFalloff.value=this.configuration.distanceFalloff,this.effectShaderQuad.material.uniforms.near.value=this.camera.near,this.effectShaderQuad.material.uniforms.far.value=this.camera.far,this.effectShaderQuad.material.uniforms.logDepth.value=e.capabilities.logarithmicDepthBuffer,this.effectShaderQuad.material.uniforms.ortho.value=this.camera.isOrthographicCamera,this.effectShaderQuad.material.uniforms.screenSpaceRadius.value=this.configuration.screenSpaceRadius,this.effectShaderQuad.material.uniforms.frame.value=this.frame,e.setRenderTarget(this.writeTargetInternal),this.effectShaderQuad.render(e);for(let h=0;h<this.configuration.denoiseIterations;h++)[this.writeTargetInternal,this.readTargetInternal]=[this.readTargetInternal,this.writeTargetInternal],this.poissonBlurQuad.material.uniforms.tDiffuse.value=this.readTargetInternal.texture,this.poissonBlurQuad.material.uniforms.sceneDepth.value=this.configuration.halfRes?this.depthDownsampleTarget.texture[0]:this.depthTexture,this.poissonBlurQuad.material.uniforms.projMat.value=this.camera.projectionMatrix,this.poissonBlurQuad.material.uniforms.viewMat.value=this.camera.matrixWorldInverse,this.poissonBlurQuad.material.uniforms.projectionMatrixInv.value=this.camera.projectionMatrixInverse,this.poissonBlurQuad.material.uniforms.viewMatrixInv.value=this.camera.matrixWorld,this.poissonBlurQuad.material.uniforms.cameraPos.value=this.camera.getWorldPosition(new z),this.poissonBlurQuad.material.uniforms.resolution.value=this.configuration.halfRes?this._r.clone().multiplyScalar(.5).floor():this._r,this.poissonBlurQuad.material.uniforms.time.value=performance.now()/1e3,this.poissonBlurQuad.material.uniforms.blueNoise.value=this.bluenoise,this.poissonBlurQuad.material.uniforms.radius.value=this.configuration.denoiseRadius*(this.configuration.halfRes?.5:1),this.poissonBlurQuad.material.uniforms.worldRadius.value=c,this.poissonBlurQuad.material.uniforms.distanceFalloff.value=this.configuration.distanceFalloff,this.poissonBlurQuad.material.uniforms.index.value=h,this.poissonBlurQuad.material.uniforms.poissonDisk.value=this.samplesDenoise,this.poissonBlurQuad.material.uniforms.near.value=this.camera.near,this.poissonBlurQuad.material.uniforms.far.value=this.camera.far,this.poissonBlurQuad.material.uniforms.logDepth.value=e.capabilities.logarithmicDepthBuffer,this.poissonBlurQuad.material.uniforms.screenSpaceRadius.value=this.configuration.screenSpaceRadius,e.setRenderTarget(this.writeTargetInternal),this.poissonBlurQuad.render(e);e.setRenderTarget(this.accumulationRenderTarget);let u=e.autoClear;e.autoClear=!1,this.accumulationQuad.material.uniforms.tDiffuse.value=this.writeTargetInternal.texture,this.accumulationQuad.material.uniforms.frame.value=this.frame,this.accumulationQuad.render(e),e.autoClear=u}this.configuration.transparencyAware&&(this.effectCompositerQuad.material.uniforms.transparencyDWFalse.value=this.transparencyRenderTargetDWFalse.texture,this.effectCompositerQuad.material.uniforms.transparencyDWTrue.value=this.transparencyRenderTargetDWTrue.texture,this.effectCompositerQuad.material.uniforms.transparencyDWTrueDepth.value=this.transparencyRenderTargetDWTrue.depthTexture,this.effectCompositerQuad.material.uniforms.transparencyAware.value=!0),this.effectCompositerQuad.material.uniforms.sceneDiffuse.value=t.texture,this.effectCompositerQuad.material.uniforms.sceneDepth.value=this.depthTexture,this.effectCompositerQuad.material.uniforms.near.value=this.camera.near,this.effectCompositerQuad.material.uniforms.far.value=this.camera.far,this.effectCompositerQuad.material.uniforms.projectionMatrixInv.value=this.camera.projectionMatrixInverse,this.effectCompositerQuad.material.uniforms.viewMatrixInv.value=this.camera.matrixWorld,this.effectCompositerQuad.material.uniforms.logDepth.value=e.capabilities.logarithmicDepthBuffer,this.effectCompositerQuad.material.uniforms.ortho.value=this.camera.isOrthographicCamera,this.effectCompositerQuad.material.uniforms.downsampledDepth.value=this.configuration.halfRes?this.depthDownsampleTarget.texture[0]:this.depthTexture,this.effectCompositerQuad.material.uniforms.resolution.value=this._r,this.effectCompositerQuad.material.uniforms.blueNoise.value=this.bluenoise,this.effectCompositerQuad.material.uniforms.intensity.value=this.configuration.intensity,this.effectCompositerQuad.material.uniforms.renderMode.value=this.configuration.renderMode,this.effectCompositerQuad.material.uniforms.screenSpaceRadius.value=this.configuration.screenSpaceRadius,this.effectCompositerQuad.material.uniforms.radius.value=c,this.effectCompositerQuad.material.uniforms.distanceFalloff.value=this.configuration.distanceFalloff,this.effectCompositerQuad.material.uniforms.gammaCorrection.value=this.autosetGamma?this.renderToScreen:this.configuration.gammaCorrection,this.effectCompositerQuad.material.uniforms.tDiffuse.value=this.accumulationRenderTarget.texture,this.effectCompositerQuad.material.uniforms.color.value=this._c.copy(this.configuration.color).convertSRGBToLinear(),this.effectCompositerQuad.material.uniforms.colorMultiply.value=this.configuration.colorMultiply,this.effectCompositerQuad.material.uniforms.cameraPos.value=this.camera.getWorldPosition(new z),this.effectCompositerQuad.material.uniforms.fog.value=!!this.scene.fog,this.scene.fog&&(this.scene.fog.isFog?(this.effectCompositerQuad.material.uniforms.fogExp.value=!1,this.effectCompositerQuad.material.uniforms.fogNear.value=this.scene.fog.near,this.effectCompositerQuad.material.uniforms.fogFar.value=this.scene.fog.far):this.scene.fog.isFogExp2?(this.effectCompositerQuad.material.uniforms.fogExp.value=!0,this.effectCompositerQuad.material.uniforms.fogDensity.value=this.scene.fog.density):console.error("Unsupported fog type ".concat(this.scene.fog.constructor.name," in SSAOPass."))),e.setRenderTarget(this.outputTargetInternal),this.effectCompositerQuad.render(e),e.setRenderTarget(this.renderToScreen?null:n),this.copyQuad.material.uniforms.tDiffuse.value=this.outputTargetInternal.texture,this.copyQuad.render(e),this.debugMode&&(a.endQuery(o.TIME_ELAPSED_EXT),u_(s,a,this)),e.xr.enabled=r}enableDebugMode(){this.debugMode=!0}disableDebugMode(){this.debugMode=!1}setDisplayMode(e){this.configuration.renderMode=["Combined","AO","No AO","Split","Split AO"].indexOf(e)}setQualityMode(e){e==="Performance"?(this.configuration.aoSamples=8,this.configuration.denoiseSamples=4,this.configuration.denoiseRadius=12):e==="Low"?(this.configuration.aoSamples=16,this.configuration.denoiseSamples=4,this.configuration.denoiseRadius=12):e==="Medium"?(this.configuration.aoSamples=16,this.configuration.denoiseSamples=8,this.configuration.denoiseRadius=12):e==="High"?(this.configuration.aoSamples=64,this.configuration.denoiseSamples=8,this.configuration.denoiseRadius=6):e==="Ultra"&&(this.configuration.aoSamples=64,this.configuration.denoiseSamples=16,this.configuration.denoiseRadius=6)}};l(I8,"$87431ee93b037844$export$2489f9981ab0fa82");var cv=I8,Dye=Uint8Array.from(atob(c_),i=>i.charCodeAt(0));var __=et(Hy());var lf="varying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n\n";var d_="varying vec2 vUv;\nuniform sampler2D colorTexture;\n\nvoid main() {\n vec4 outputColor = texture2D(colorTexture, vUv).rgba;\n\n gl_FragColor = outputColor;\n}\n";var h_="varying vec2 vUv;\nuniform float animatedColorOpacity;\nuniform sampler2D inputBuffer;\nuniform sampler2D staticSceneDepthTexture;\nuniform sampler2D animatedSceneColorTexture;\nuniform sampler2D animatedSceneDepthTexture;\nuniform sampler2D alwaysOnBottomSceneColorTexture;\n\n// Perform alpha blending between two colors with non-premultiplied\n// alpha, and return their non-premultiplied composite.\n//\n// This corresponds to the OVER porter-duff operation, aka, standard alpha\n// blending as implemented in most image editors.\nvec4 alphaBlend(vec4 background, vec4 foreground) {\n vec3 resultColor = (\n foreground.rgb * foreground.a +\n background.rgb * background.a * (1.0 - foreground.a)\n );\n float resultAlpha = foreground.a + background.a * (1.0 - foreground.a);\n return vec4(resultColor / resultAlpha, resultAlpha);\n}\n\nvoid main() {\n float staticDepth = texture2D(staticSceneDepthTexture, vUv).r;\n float animatedDepth = texture2D(animatedSceneDepthTexture, vUv).r;\n\n vec4 inputColor = texture2D(inputBuffer, vUv).rgba;\n vec4 animatedColor = texture2D(animatedSceneColorTexture, vUv).rgba;\n\n if (staticDepth < animatedDepth) {\n animatedColor.a *= animatedColorOpacity;\n }\n\n vec4 mixedColor = alphaBlend(inputColor, animatedColor);\n\n gl_FragColor = mixedColor;\n}\n";var p_="varying vec2 vUv;\nuniform sampler2D inputBuffer;\nuniform sampler2D alwaysOnBottomSceneColorTexture;\nuniform sampler2D alwaysOnTopSceneColorTexture;\n\n// Assumes that the foreground (src) color is premultiplied with its alpha.\n// This corresponds to GL_ONE source factor and GL_ONE_MINUS_SRC_ALPHA for destination factor.\nvec4 alphaBlendPremultipliedAlpha(vec4 background, vec4 foreground) {\n return foreground + (background * (1.0 - foreground.a));\n}\n\nvoid main() {\n vec4 staticSceneColor = linearToOutputTexel(texture2D(inputBuffer, vUv).rgba);\n vec4 outdoorViewColor = texture2D(alwaysOnBottomSceneColorTexture, vUv).rgba;\n vec4 alwaysOnTopColor = linearToOutputTexel(texture2D(alwaysOnTopSceneColorTexture, vUv).rgba);\n vec4 staticPlusOutdoor = mix(outdoorViewColor, staticSceneColor, staticSceneColor.a);\n \n gl_FragColor = alphaBlendPremultipliedAlpha(staticPlusOutdoor, alwaysOnTopColor);\n}\n";var f_="varying vec2 vUv;\nuniform sampler2D staticSceneColorTexture;\n\nvoid main() {\n vec4 inputColor = texture2D(staticSceneColorTexture, vUv).rgba;\n\n gl_FragColor = inputColor;\n}\n";y();y();var _X=l(function(i,e,t){this.touch=i,this.camera=e,this.cameraPlane=t,this.viewCoordinate={x:i.x,y:i.y},this.camera.updateMatrixWorld(),this.camera.updateMatrix(),this.snapHolderMatrix=this.camera.matrixWorld.clone(),this.snapCamera=this.camera.clone(),this.snapshotCameraState=function(){this.camera.updateMatrix(),this.camera.updateMatrixWorld(),this.cameraPosition=this.camera.position;let n=new z(this.viewCoordinate.x,this.viewCoordinate.y,1);this.raycaster=this.raycaster||new Xn,this.raycaster.setFromCamera(n,this.snapCamera);let r=this.raycaster.intersectObject(this.cameraPlane,!1);this.worldCoordinate=r&&r[0]&&r[0].point,this.snapshotted=!0},this.updateAnchorState=function(n,r){this.camera=n,this.snapCamera=n.clone(),this.snapHolderMatrix=n.matrixWorld.clone(),this.updateViewCoordinate(r),this.snapshotCameraState()},this.updateViewCoordinate=function(n){this.viewCoordinate={x:n.x,y:n.y}},this.reUnproject=function(){let n=new z(this.viewCoordinate.x,this.viewCoordinate.y,1);this.raycaster.setFromCamera(n,this.snapCamera);let r=this.raycaster.intersectObject(this.cameraPlane,!1)[0];if(r)return r.point},this.snapshotCameraState()},"TouchAnchor"),_8=_X;y();function m_(i,e){return Math.atan2(e.y-i.y,e.x-i.x)}l(m_,"angle");function uv(i,e){return Math.sqrt((e.y-i.y)**2+(e.x-i.x)**2)}l(uv,"distance");function g_(i,e){return{x:(i.x+e.x)/2,y:(i.y+e.y)/2}}l(g_,"average");var OX=l(function(i,e){this.input1=i,this.input2=e,this.lastAngle=m_(i,e),this.lastDistance=uv(i,e),this.totalDistance=0,this.first=i,this.second=e,this.update=function(t,n){let r=uv(t,n);this.input1=t,this.input2=n;let a=m_(t,n);this.lastAngle=a,this.lastDistance=r,this.totalDistance+=(uv(this.first,t)+uv(this.second,n))/2,this.first=g_(this.first,t),this.second=g_(this.second,n)}},"InputSet"),v_=OX;y();var y_=et(Vr());var dv={SINGLE_FLOOR:"single_floor",MULTI_FLOOR:"multi_floor"},$ye=Math.PI/2;var e5e=y_.default.Easing.Quadratic.InOut;y();y();function iu(i,e,t){e==null&&(e=i.g,t=i.b,i=i.r);let n=0,r=i;e>i&&(n=1,r=e),t>e&&t>i&&(n=2,r=t);let a=i;e<i&&(a=e),t<e&&t<i&&(a=t);let o=0,s=0,c=0;return r!==a&&(n===0?o=60/360*(e-t)/(r-a):n===1?o=60/360*(2+(t-i)/(r-a)):o=60/360*(4+(i-e)/(r-a)),s=r===0?0:(r-a)/r),c=r,[o,s,c]}l(iu,"rgb2hsv");function Fa(i,e,t){let n=i*360%360/60,r=n|0,a=n-r,o=t*(1-e),s=t*(1-e*a),c=t*(1-e*(1-a)),u=0,h=0,m=0;switch(r){case 0:u=t,h=c,m=o;break;case 1:u=s,h=t,m=o;break;case 2:u=o,h=t,m=c;break;case 3:u=o,h=s,m=t;break;case 4:u=c,h=o,m=t;break;case 5:u=t,h=o,m=s;break}return new Ee(u,h,m)}l(Fa,"hsv2rgb");var b_=16,R8=class R8{constructor({minimum:e,maximum:t,step:n,current:r,onValueChanged:a}){this._minimum=e,this._maximum=t,this._step=n,this._onValueChanged=a,this._element=document.createElement("input"),this._element.type="range",this._element.min=this._minimum,this._element.max=this._maximum,this._step!=null&&(this._element.step=this._step),this._element.value=r!=null?r:this._minimum,a!=null&&(this._element.addEventListener("input",o=>{a(this._element.value)}),a(this._element.value)),Object.assign(this._element.style,{height:b_+"px"})}destroy(){this._element=null,Object.setPrototypeOf(this,null)}addValueChangedListener(e){this._element.addEventListener("input",t=>e(this._element.value))}setValue(e){this._element.value=e}get element(){return this._element}get value(){return this._element.value}get displayedValue(){return""+this._element.value}get height(){return b_}};l(R8,"DebugUIScalarSlider");var cf=R8,O8=16,N8=class N8{constructor({current:e,onValueChanged:t}){this._onValueChanged=t,this._element=document.createElement("div"),this._titleElement=document.createElement("input"),this._titleElement.type="checkbox",this._titleElement.checked=e||!1,Object.assign(this._titleElement.style,{width:O8+"px",height:O8+"px",margin:"0px"}),t!=null&&(this._titleElement.addEventListener("click",n=>{t(this._titleElement.checked)}),t(this._titleElement.checked))}destroy(){this._element=null,this._titleElement=null,Object.setPrototypeOf(this,null)}addValueChangedListener(e){this._titleElement.addEventListener("click",t=>e(this._titleElement.checked))}get element(){return this._element}get titleElement(){return this._titleElement}get value(){return this._titleElement.checked}get displayedValue(){return this._titleElement.checked?"true":"false"}get height(){return 0}get titleElementWidth(){return O8}};l(N8,"DebugUICheckbox");var mv=N8;var D8=12,hv=2,nu=64,pv=16,L8=24,x_=48,k8=class k8{constructor({current:e,onValueChanged:t}){this._onValueChanged=t,this._element=document.createElement("div"),this._titleElement=document.createElement("div"),this._color=e||new Ee,this._listeners=[],Object.assign(this._element.style,{width:"100%",height:this.height+"px"}),Object.assign(this._titleElement.style,{width:D8-2+"px",height:D8-2+"px","border-radius":"2px"}),this._colorPickerMain=document.createElement("canvas"),this._colorPickerMain.height=nu-2,Object.assign(this._colorPickerMain.style,{position:"absolute",left:"0px",right:"0px",top:"0px",height:nu-2+"px"}),this._element.appendChild(this._colorPickerMain),this._colorPickerBottomSlider=document.createElement("canvas"),this._colorPickerBottomSlider.height=pv-2,Object.assign(this._colorPickerBottomSlider.style,{position:"absolute",left:"0px",right:"0px",top:nu+hv+"px",height:pv-2+"px"}),this._element.appendChild(this._colorPickerBottomSlider),this._requestAnimationFrameHandle=null,this._requestAnimationFrameUpdate=this._requestAnimationFrameUpdate.bind(this),this._pickingMain=!1,this._pickingX=0,this._pickingY=0,this._colorPickerMain.addEventListener("pointerdown",a=>{this._pickingMain=!0,this._updateMain(a.offsetX,a.offsetY),this._notify(),this._moveListener=o=>{let s=o.clientX-this._colorPickerMain.getBoundingClientRect().x,c=o.clientY-this._colorPickerMain.getBoundingClientRect().y;this._pickingX=Math.min(Math.max(s,0),this._colorPickerMain.clientWidth),this._pickingY=Math.min(Math.max(c,0),this._colorPickerMain.clientHeight),this._requestAnimationFrame()},document.body.addEventListener("pointermove",this._moveListener),this._upListener=o=>{this._pickingMain=!1,this.redraw(),document.body.removeEventListener("pointermove",this._moveListener),document.body.removeEventListener("pointerup",this._upListener),delete this._moveListener,delete this._upListener},document.body.addEventListener("pointerup",this._upListener)}),this._pickingBottomSlider=!1,this._colorPickerBottomSlider.addEventListener("pointerdown",a=>{this._pickingBottomSlider=!0,this._updateBottomSlider(a.offsetX),this._notify(),this._bottomMoveListener=o=>{let s=o.clientX-this._colorPickerBottomSlider.getBoundingClientRect().x;this._pickingX=Math.min(Math.max(s,0),this._colorPickerMain.clientWidth),this._requestAnimationFrame()},document.body.addEventListener("pointermove",this._bottomMoveListener),this._bottomUpListener=o=>{this._pickingBottomSlider=!1,this.redraw(),document.body.removeEventListener("pointermove",this._bottomMoveListener),document.body.removeEventListener("pointerup",this._bottomUpListener),delete this._bottomMoveListener,delete this._bottomUpListener},document.body.addEventListener("pointerup",this._bottomUpListener)});let n=0,r=l((a,o)=>{let s=document.createElement("button");return Object.assign(s.style,{position:"absolute",top:this.height-L8+"px",left:n+"px",height:L8+"px",width:x_+"px",color:"grey"}),s.innerHTML=o,n+=x_+hv,s.addEventListener("click",()=>{this._modeButtons[this._mode].style.color="grey",this._mode=a,s.style.color="black",this.redraw()}),this._element.appendChild(s),s},"createModeButton");this._modeButtons={},this._modeButtons.hsv=r("hsv","HSV"),this._modeButtons.svh=r("svh","SVH"),this._modeButtons.rgb=r("rgb","RGB"),this._mode="hsv",this._modeButtons.hsv.style.color="black",this._requestAnimationFrame(),this._notify()}destroy(){document.body.removeEventListener("pointermove",this._moveListener),document.body.removeEventListener("pointerup",this._upListener),document.body.removeEventListener("pointermove",this._bottomMoveListener),document.body.removeEventListener("pointerup",this._bottomUpListener),this._element=null,this._titleElement=null,this._destroyed=!0,Object.setPrototypeOf(this,null)}addValueChangedListener(e){this._listeners.push(e)}setValue(e){this._color.copy(e),this.redraw(),this._notify()}_requestAnimationFrame(){this._requestAnimationFrameHandle==null&&!this._destroyed&&(this._requestAnimationFrameHandle=requestAnimationFrame(this._requestAnimationFrameUpdate))}_requestAnimationFrameUpdate(){this._pickingMain&&(this._updateMain(this._pickingX,this._pickingY),this._notify()),this._pickingBottomSlider&&(this._updateBottomSlider(this._pickingX),this._notify()),this._requestAnimationFrameHandle=null}_notify(){this._onValueChanged!=null&&this._onValueChanged(this._color);for(let e of this._listeners)e(this._color)}_updateMain(e,t){let n=this._colorPickerMain.clientWidth,r=nu;this._pickingX=Math.min(Math.max(e,1),n-1)-1,this._pickingY=Math.min(Math.max(t,1),r-1)-1;let a=this._pickingX/(n-1),o=this._pickingY/(r-1);if(this._mode==="hsv"){let[,,s]=iu(this._color);this._color.set(Fa(a,o,s))}else if(this._mode==="svh"){let[s,,]=iu(this._color);this._color.set(Fa(s,a,1-o))}else this._color.r=a,this._color.g=o;this.redraw()}_updateBottomSlider(e){let t=this._colorPickerBottomSlider.clientWidth;this._pickingX=Math.min(Math.max(e,1),t-1)-1;let n=this._pickingX/(t-1);if(this._mode==="hsv"){let[r,a]=iu(this._color);this._color.set(Fa(r,a,n))}else if(this._mode==="svh"){let[,r,a]=iu(this._color);this._color.set(Fa(n,r,a))}else this._color.b=n;this.redraw()}redraw(){let e=this._element.clientWidth-2,t=nu-2,n=pv-2;this._colorPickerMain.width!==e&&(this._colorPickerMain.width=e);let[r,a,o]=iu(this._color),s=this._colorPickerMain.getContext("2d");for(let g=0;g<t;++g)for(let b=0;b<e;++b){if(this._mode==="hsv"){let M=b/(e-1),x=g/(t-1),T=o,{r:E,g:S,b:_}=Fa(M,x,T);s.fillStyle="rgb(".concat(E*255,",").concat(S*255,",").concat(_*255,")")}else if(this._mode==="svh"){let M=b/(e-1),x=1-g/(t-1),T=r,{r:E,g:S,b:_}=Fa(T,M,x);s.fillStyle="rgb(".concat(E*255,",").concat(S*255,",").concat(_*255,")")}else{let M=255*(b/e),x=255*(g/t),T=255*this._color.b;s.fillStyle="rgb(".concat(M,",").concat(x,",").concat(T,")")}s.fillRect(b,g,1,1)}this._pickingMain&&(s.fillStyle="rgba(0,0,0,0.5)",s.fillRect(0,this._pickingY,e,1),s.fillRect(this._pickingX,0,1,t)),this._colorPickerBottomSlider.width!==e&&(this._colorPickerBottomSlider.width=e);let c=this._colorPickerBottomSlider.getContext("2d");for(let g=0;g<e;++g){if(this._mode==="hsv"){let b=r,M=a,x=g/(e-1),{r:T,g:E,b:S}=Fa(b,M,x);c.fillStyle="rgb(".concat(T*255,",").concat(E*255,",").concat(S*255,")")}else if(this._mode==="svh"){let b=a,M=o,x=g/(e-1),{r:T,g:E,b:S}=Fa(x,b,M);c.fillStyle="rgb(".concat(T*255,",").concat(E*255,",").concat(S*255,")")}else{let b=255*this._color.r,M=255*this._color.g,x=255*(g/(e-2));c.fillStyle="rgb(".concat(b,",").concat(M,",").concat(x,")")}c.fillRect(g,0,1,n)}this._pickingBottomSlider&&(c.fillStyle="rgba(0,0,0,0.5)",c.fillRect(this._pickingX,0,1,n));let u=this._color.r*255,h=this._color.g*255,m=this._color.b*255,f="1px solid rgb(".concat(u*.9,",").concat(h*.9,",").concat(m*.9,")");Object.assign(this._colorPickerMain.style,{border:f}),Object.assign(this._colorPickerBottomSlider.style,{border:f}),Object.assign(this._titleElement.style,{"background-color":"rgb(".concat(u,",").concat(h,",").concat(m,")"),border:f})}get element(){return this._element}get titleElement(){return this._titleElement}get value(){return this._color}get displayedValue(){return"#"+this._color.getHexString().toUpperCase()}get height(){return nu+hv+pv+hv+L8}get titleElementWidth(){return D8}};l(k8,"DebugUIColorPicker");var uf=k8,fv=16,T_=12,LX=4,M_=10,E_=12,B8=class B8{constructor({name:e}){this._name=e,this._element=document.createElement("div"),this._entries=[],this._height=E_}destroy(){for(let e of this._entries)e.destroy();this._entries=null,this._element=null,Object.setPrototypeOf(this,null)}get element(){return this._element}get height(){return this._height}addControl(e,t,n){if(this._entries.findIndex(a=>a.name===e)!==-1)return;let r=new q8({name:e,description:t,control:n});this._entries.push(r),this._element.appendChild(r.element),n.redraw!=null&&n.redraw()}removeControl(e){let t=this._entries.findIndex(n=>n.name===e);if(t!==-1){let[n]=this._entries.splice(t,1);this._element.removeChild(n.element),n.destroy()}}_updateLayout(){this._height=0;for(let e of this._entries)e.element.style.top=this._height+"px",this._height+=e.height+E_;Object.assign(this._element.style,{height:this._height+"px"})}};l(B8,"DebugUIPanel");var gv=B8,F8=class F8{constructor({name:e,description:t,control:n}){this._name=e,this._description=t,this._control=n,this._element=document.createElement("div"),this._element.title=t,Object.assign(this._element.style,{position:"absolute",left:"0px",right:"0px"}),this._element.appendChild(this._control.element),Object.assign(this._control.element.style,{position:"absolute",left:"0px",width:"100%",top:fv+"px","font-size":M_+"px"});let r=0;this._control.titleElement!=null&&(this._element.appendChild(this._control.titleElement),Object.assign(this._control.titleElement.style,{position:"absolute",left:"0px",top:"0px","font-size":M_+"px"}),r=this._control.titleElementWidth+LX),this._control.addValueChangedListener(a=>{this._displayedValueElement.innerHTML=w_(this._control.displayedValue)}),this._nameElement=document.createElement("span"),this._nameElement.innerHTML=e,Object.assign(this._nameElement.style,{position:"absolute",left:r+"px",right:"0px",height:fv+"px",color:"#666666","font-size":T_+"px","text-align":"left","vertical-align":"middle"}),this._element.appendChild(this._nameElement),this._displayedValueElement=document.createElement("span"),this._displayedValueElement.innerHTML=w_(this._control.displayedValue),Object.assign(this._displayedValueElement.style,{position:"absolute",left:r+"px",right:"0px",height:fv+"px","font-size":T_+"px","text-align":"right","vertical-align":"middle"}),this._element.appendChild(this._displayedValueElement)}destroy(){this._element=null,this._nameElement=null,this._displayedValueElement=null,this._control.destroy(),Object.setPrototypeOf(this,null)}get name(){return this._name}get element(){return this._element}get value(){return this._control.value}get height(){return this._control.height+fv}};l(F8,"DebugUIEntry");var q8=F8;function w_(i){return i.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}l(w_,"escapeHTML");var df=et(Vr());var C_=512,A_=6371e3,P_=0,S_=22,vv=17,V8=20,qX=-85.051129,RX=85.051129,U8=1e4,I_={chain:"chain",cancel:"cancel"};var NX=new Ja,kX=l(function(i,e,t,n){this.dispatcher=NX,this.camera=i,this.canvas=e,this.elevation=i.parent,this.orbit=this.elevation.parent;let r,a=Math.PI*2,o=100;this.zoomSpeed=5,this.rotateSpeed=100,this.enabled=!0,this.enableZoom=!0,this.enablePan=!0,this.enablePedestal=!1,this.maxPedestal=1/0,this.minPedestal=-1/0,this.enableRotate=!0,this.minZoom=375,this.maxZoom=1e4,this.initialMinZoom=375,this.initialMaxZoom=1e4,this.ignoreZoomLimits=!1,this.minExpandedZoom=375,this.maxExpandedZoom=1e5,this.zoomFactor=1,this.panBounds={margin:1.25,min:{x:1/0,y:1/0},max:{x:-1/0,y:-1/0},center:{x:0,y:0},radius:200},this.minTilt=0,this.maxTilt=1.2,this.mouseButtons={ORBIT:vm.RIGHT,ZOOM:vm.MIDDLE,PAN:vm.LEFT};let s=this,c=new nn(1e10,1e10),u=new Oi({color:0,visible:!1}),h=new qe(c,u);s.cameraPlane=h,n.on(7,()=>{var V;let L=(V=n.mapObjects.get(n.currentMap))==null?void 0:V.object;if(L!=null){let te=new z;te.applyMatrix4(L.matrix),h.position.z=te.z}n.tryRendering()});let m=new Xn;t.add(h);let f={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,WHEEL_ZOOM:3,TOUCH_TILT:4,TOUCH_DOLLY:5,TOUCH_PAN:6,MULTI:7,PEDESTAL:8,TOUCH_PEDESTAL:9},g=f.NONE,b=new he,M=[],x={offsetLeft:0,offsetTop:0},T=new he,E=new he,S=new he,_=new he,P=new he,q=new he,D=new z,U=new z,R=new he,B=new he,j=new he,G=!1,Q,X=new qT(!0),ne=0,$=!0,ue=1e4;this.CAMERA_EVENTS={},this.CAMERA_EVENTS.CHANGE_EVENT={type:"change"},this.CAMERA_EVENTS.PAN_START_EVENT={type:"panStart"},this.CAMERA_EVENTS.PAN_END_EVENT={type:"panEnd"},this.CAMERA_EVENTS.PEDESTAL_START_EVENT={type:"pedestalStart"},this.CAMERA_EVENTS.PEDESTAL_CHANGE_EVENT={type:"pedestalChange"},this.CAMERA_EVENTS.PEDESTAL_END_EVENT={type:"pedestalEnd"},this.CAMERA_EVENTS.ROTATE_START_EVENT={type:"rotateStart"},this.CAMERA_EVENTS.ROTATE_END_EVENT={type:"rotateEnd"},this.CAMERA_EVENTS.ZOOM_START_EVENT={type:"zoomStart"},this.CAMERA_EVENTS.ZOOM_END_EVENT={type:"zoomEnd"},this.CAMERA_EVENTS.MULTI_START_EVENT={type:"multiStart"},this.CAMERA_EVENTS.MULTI_END_EVENT={type:"multiEnd"},this.CAMERA_EVENTS.MULTI_CANCEL_EVENT={type:"multiCancel"},this.INTERACTION_EVENTS={},this.INTERACTION_EVENTS.USER_PAN_START_EVENT={type:"userPanStart"},this.INTERACTION_EVENTS.USER_PEDESTAL_START_EVENT={type:"userPedestalStart"},this.INTERACTION_EVENTS.USER_ROTATE_START_EVENT={type:"userRotateStart"},this.INTERACTION_EVENTS.USER_DOLLY_START_EVENT={type:"userDollyStart"},this.INTERACTION_EVENTS.USER_ZOOM_START_EVENT={type:"userZoomStart"},this.INTERACTION_EVENTS.USER_TILT_START_EVENT={type:"userTiltStart"},this.INTERACTION_EVENTS.USER_PAN_END_EVENT={type:"userPanEnd"},this.INTERACTION_EVENTS.USER_PEDESTAL_END_EVENT={type:"userPedestalEnd"},this.INTERACTION_EVENTS.USER_ROTATE_END_EVENT={type:"userRotateEnd"},this.INTERACTION_EVENTS.USER_DOLLY_END_EVENT={type:"userDollyEnd"},this.INTERACTION_EVENTS.USER_ZOOM_END_EVENT={type:"userZoomEnd"},this.INTERACTION_EVENTS.USER_TILT_END_EVENT={type:"userTiltEnd"},this.UPDATE_EVENTS={},this.UPDATE_EVENTS.POSITION_UPDATED_EVENT={type:"positionUpdated"},this.UPDATE_EVENTS.ZOOM_UPDATED_EVENT={type:"zoomUpdated"},this.UPDATE_EVENTS.TILT_UPDATED_EVENT={type:"tiltUpdated"},this.UPDATE_EVENTS.ROTATION_UPDATED_EVENT={type:"rotationUpdated"};let be=!1,ee=l(()=>{be=!0},"setUserInteracting"),ge=l(()=>{be=!1},"unsetUserInteracting");for(let L in this.INTERACTION_EVENTS){let V=this.INTERACTION_EVENTS[L];V.type.endsWith("Start")&&s.dispatcher.addEventListener(V.type,ee)}for(let L in this.INTERACTION_EVENTS){let V=this.INTERACTION_EVENTS[L];V.type.endsWith("End")&&s.dispatcher.addEventListener(V.type,ge)}let de=l(L=>{s.dispatcher.dispatchEvent({...s.CAMERA_EVENTS.PEDESTAL_CHANGE_EVENT,pedestal:L,scrolledToTop:s.scrolledToTop,scrolledToBottom:s.scrolledToBottom,scrollPercent:s.scrollPercent})},"dispatchPedestalChangeEvent");this.addDebugControls=function(L){L.addDebugControls({CameraControls:[{name:"Stay Inside Bounds",description:"Ensure the camera stays inside its bounds.\n\nCaution: going too far outside-of-bounds may slow renderingsignificantly.",control:new mv({current:!0,onValueChanged:V=>{$=V}})}]})},this.removeDebugControls=function(L){L.removeDebugControls({CameraControls:["Stay Inside Bounds"]})},this.pan=function(L,V){isNaN(L)||isNaN(V)||(s.setPosition(s.orbit.position.x+L,s.orbit.position.y+V),s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.POSITION_UPDATED_EVENT))},this.getPositionCoordinate=function(){return n.convert3DMapPositionToCoordinate(s.getPosition())},this.getZoomLevel=function(){return this.convertAltitudeToZoomLevel(this.getZoom())},this.setZoomLevel=function(L){this.setZoom(this.convertZoomToAltitude(L))},this.convertZoomToAltitude=function(L){let{lat:V}=s.getPositionCoordinate(),te=n.cameraObject.fov,ke=mt.clamp(L,P_,S_),Je=Math.pow(2,ke),ft=mt.clamp(V,qX,RX),Ft=Je*C_;return Math.cos(mt.degToRad(ft))*Math.PI*2*A_/Ft*n.canvasHeight/2/Math.tan(mt.degToRad(te)/2)/n.referenceMap.scale},this.convertAltitudeToZoomLevel=function(L){let{lat:V}=s.getPositionCoordinate(),te=n.cameraObject.fov,ft=L*n.referenceMap.scale*2*Math.tan(mt.degToRad(te)/2)/n.canvasHeight,Ft=Math.cos(mt.degToRad(V))*2*Math.PI*A_/ft;return mt.clamp(Math.log2(Ft/C_),P_,S_)},this.setPosition=function(L,V){if(isNaN(L)||isNaN(V))return;g==f.NONE&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.PAN_START_EVENT);let te=L-s.panBounds.center.x,ke=V-s.panBounds.center.y,Je=Math.sqrt(te*te+ke*ke);if($&&Je>s.panBounds.radius){let ft=Math.atan2(ke,te),Ft={x:Math.cos(ft)*s.panBounds.radius+s.panBounds.center.x,y:Math.sin(ft)*s.panBounds.radius+s.panBounds.center.y};s.orbit.position.x=Ft.x,s.orbit.position.y=Ft.y}else s.orbit.position.x=L,s.orbit.position.y=V;s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.POSITION_UPDATED_EVENT),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT),g==f.NONE&&s.dispatcher.dispatchEvent(s.this.CAMERA_EVENTS.PAN_END_EVENT)},this.setRotation=function(L,V){if(isNaN(L))return;g==f.NONE&&!V&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_START_EVENT);let te=L%a;te!==s.orbit.rotation.z&&(s.orbit.rotation.z=te,V||s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.ROTATION_UPDATED_EVENT)),V||s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT),g==f.NONE&&!V&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_END_EVENT)},this.rotate=function(L){if(isNaN(L))return;g==f.NONE&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_START_EVENT);let V=(s.orbit.rotation.z+L)%a;V!==s.orbit.rotation.z&&(s.orbit.rotation.z=V,s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.ROTATION_UPDATED_EVENT)),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT),g==f.NONE&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_END_EVENT)},this.setTilt=function(L,V){if(isNaN(L))return;g==f.NONE&&!V&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_START_EVENT);let te=$?Math.max(Math.min(L,s.maxTilt),s.minTilt):L;te!==s.elevation.rotation.x&&(s.elevation.rotation.x=te,V||s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.TILT_UPDATED_EVENT)),V||s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT),g==f.NONE&&!V&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_END_EVENT)},this.tilt=function(L){if(isNaN(L))return;g==f.NONE&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_START_EVENT);let V=$?Math.max(Math.min(L+s.getTilt(),s.maxTilt),s.minTilt):L+s.getTilt();V!==s.elevation.rotation.x&&(s.elevation.rotation.x=V,s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.TILT_UPDATED_EVENT)),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT),g==f.NONE&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_END_EVENT)},this.setZoom=function(L){if(isNaN(L))return;g==f.NONE&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_START_EVENT);let V=$?Math.min(Math.max(L,s.getZoomScaledMin()),s.getZoomScaledMax()):L;V!==s.camera.position.z&&(s.camera.position.z=V,s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.ZOOM_UPDATED_EVENT)),s.camera.near=V/o,s.camera.far=V*o,s.camera.updateProjectionMatrix(),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT),g==f.NONE&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_END_EVENT)},this.zoom=function(L){if(isNaN(L))return;g==f.NONE&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_START_EVENT);let V=s.getZoom()-L;s.camera.position.z=$?Math.min(Math.max(V,s.minZoom*s.zoomFactor),s.maxZoom*s.zoomFactor):V,s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.ZOOM_UPDATED_EVENT),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT),g==f.NONE&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_END_EVENT)},this.zoomIn=function(L,V,te){let ke=this.getZoom();this.animateCamera({zoom:ke/1.5},L,V,te)},this.zoomOut=function(L,V,te){let ke=this.getZoom();this.animateCamera({zoom:ke*1.5},L,V,te)},this.expandZoomLimits=function(L,V){V||(V=1.2),L*V>s.maxZoom&&(s.maxZoom=Math.min(L*V,s.maxExpandedZoom)),L/V<s.minZoom&&(s.minZoom=Math.max(L/V,s.minExpandedZoom))},this.restrictZoomLimits=function(L,V){V||(V=1.2),L*V>s.initialMaxZoom&&L*V<s.maxZoom&&(s.maxZoom=Math.max(s.getZoom(),L*V)),L/V<s.initialMinZoom&&L/V>s.minZoom&&(s.minZoom=Math.min(s.getZoom(),L/V))},this.getPosition=function(){return{x:s.orbit.position.x,y:s.orbit.position.y,z:s.orbit.position.z}},this.getPedestal=function(){return s.orbit.position.z};function Ae(L,V=!1){typeof L=="number"&&!isNaN(L)&&(s.orbit.position.z=L,V&&de(L),n.tryRendering())}l(Ae,"setPedestal"),Object.defineProperty(this,"setPedestal",{enumerable:!1,value:Ae}),Object.defineProperty(this,"scrollPercent",{get(){let L=this.minPedestal,V=this.maxPedestal,te=this.getPedestal();return te=Math.min(te,V),te=Math.max(te,L),(te-L)/(V-L)*100}}),Object.defineProperty(this,"scrolledToTop",{get(){return this.maxPedestal===0||Math.ceil(this.getPedestal())>=this.maxPedestal}}),Object.defineProperty(this,"scrolledToBottom",{get(){return this.minPedestal===0||Math.floor(this.getPedestal())<=this.minPedestal}}),this.getRotation=function(){return s.orbit.rotation.z},this.getTilt=function(){return s.elevation.rotation.x},this.getZoom=function(){return s.camera.position.z},this.isCameraMoving=function(){return g!=f.NONE},this.isUserInteracting=function(){return be},this.getZoomScaledMin=function(){return s.minZoom*s.zoomFactor},this.getZoomScaledMax=function(){let L=s.minZoom*s.zoomFactor;return Math.max(s.maxZoom,1.5*L)};let Fe=l(function(){return df.default.getAll().some(function(L){return L._mMapAnimation})},"isAnimating");this.isAnimating=Fe;let Ce=new Set;function He(L){L.isPlaying?L.stop():L.end(),Ce.delete(L)}l(He,"completeTween"),this.cancelAnimation=function(){let L=Array.from(Ce),V=L[L.length-1];V.state===f.MULTI&&s.dispatcher.dispatchEvent({type:s.CAMERA_EVENTS.MULTI_CANCEL_EVENT.type,message:{zooming:!0,rotating:!0,tilting:!0}}),He(V)},this.animateCamera=function(L,V,te,ke,Je,ft){let Ft={mode:I_.cancel,...ft},ze={},It={},Mt=s.getPosition();if(L.position!=null&&(L.position.x!==void 0&&(ze.x=Mt.x,It.x=L.position.x),L.position.y!==void 0&&(ze.y=Mt.y,It.y=L.position.y),L.position.z!==void 0&&(ze.z=Mt.z,It.z=L.position.z)),L.zoom!==void 0&&(ze.zoom=$?Math.min(Math.max(s.getZoom(),s.getZoomScaledMin()),s.getZoomScaledMax()):s.getZoom(),s.viewState===dv.MULTI_FLOOR||!$?It.zoom=L.zoom:It.zoom=Math.min(Math.max(L.zoom,s.getZoomScaledMin()),s.getZoomScaledMax())),L.rotation!==void 0){let Ue=ze.rotation=s.getRotation(),ye=L.rotation%(2*Math.PI),pi=ye-Ue;if(Math.abs(pi)>Math.PI){let zn=pi<0?1:-1;It.rotation=ye+2*Math.PI*zn}else It.rotation=ye}L.tilt!==void 0&&(ze.tilt=s.getTilt(),s.viewState===dv.MULTI_FLOOR||!$?It.tilt=L.tilt:It.tilt=Math.max(Math.min(L.tilt,s.maxTilt),s.minTilt));let ss=ze.zoom!==It.zoom,gt=ze.rotation!==It.rotation,xr=ze.tilt!==It.tilt;var Ni=new df.default.Tween(ze).to(It,C.env.TESTING?0:V).onUpdate(function(Ue){s.setMulti({x:Ue.x,y:Ue.y,z:Ue.z},Ue.zoom,Ue.rotation,Ue.tilt)}).onComplete(function(){ke&&ke(),He(Ni),s.dispatcher.dispatchEvent({type:s.CAMERA_EVENTS.MULTI_END_EVENT.type,message:{zooming:ss,rotating:gt,tilting:xr}})}).onStart(function(){g!=f.MULTI&&(g=f.MULTI,Ni.state=f.MULTI,s.dispatcher.dispatchEvent({type:s.CAMERA_EVENTS.MULTI_START_EVENT.type,message:{zooming:ss,rotating:gt,tilting:xr}})),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT)});let ls=Array.from(Ce),Tr=ls[ls.length-1],Za=!1;return Tr!=null&&(Ft.mode===I_.chain?(Za=!0,Tr.chain(Ni)):(He(Tr),typeof Je=="function"&&Je(),Tr=null)),Ce.add(Ni),te?Ni.easing(te):Ni.easing(df.default.Easing.Quadratic.In),!L.doNotAutoStart&&!Za&&(Ni.start(),n.tryRendering()),Ni._mMapAnimation=!0,Ni},this.setMulti=function(L,V,te,ke){g==f.NONE&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.MULTI_START_EVENT);let Je=!1;L!=null&&(L.x!==void 0&&!isNaN(L.x)&&(s.orbit.position.x=L.x,Je=!0),L.y!==void 0&&!isNaN(L.y)&&(s.orbit.position.y=L.y,Je=!0),L.z!==void 0&&!isNaN(L.z)&&this.setPedestal(L.z)),Je&&s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.POSITION_UPDATED_EVENT);let ft={zooming:!1,tilting:V,rotating:!1};if(V!==void 0&&!isNaN(V)){let Ft=$?Math.min(Math.max(V,s.getZoomScaledMin()),s.getZoomScaledMax()):V;Ft!==s.camera.position.z&&(ft.zooming=!0,s.camera.position.z=Ft,s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.ZOOM_UPDATED_EVENT),s.viewState===dv.MULTI_FLOOR?V>U8&&(s.camera.near=V-U8,s.camera.far=V+U8):(s.camera.near=V/o,s.camera.far=V*o),s.camera.updateProjectionMatrix())}if(te!==void 0&&!isNaN(te)&&te!==s.orbit.rotation.z&&(ft.rotating=!0,s.orbit.rotation.z=te,s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.ROTATION_UPDATED_EVENT)),ke!==void 0&&!isNaN(ke)){let Ft=$?Math.max(Math.min(ke,s.maxTilt),s.minTilt):ke;Ft!==s.elevation.rotation.x&&(ft.tilting=!0,s.elevation.rotation.x=Ft,s.dispatcher.dispatchEvent(s.UPDATE_EVENTS.TILT_UPDATED_EVENT))}s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT),g==f.NONE&&s.dispatcher.dispatchEvent({type:s.CAMERA_EVENTS.MULTI_END_EVENT.type,message:ft})};function kt(L){T.set(L.clientX,L.clientY),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_START_EVENT),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_ROTATE_START_EVENT)}l(kt,"handleMouseDownRotate");function $e(){let L=$r(b);_.set(L.x,L.y),P.set(s.orbit.position.x,s.orbit.position.y),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.PAN_START_EVENT),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_PAN_START_EVENT)}l($e,"handleMouseDownPan");function ae(L){let V={x:L.clientX,y:L.clientY};s.initialShiftPos=V,s.initialPedestal=s.getPedestal(),s.pedestalScaleFactor=tb(s.camera.fov,s.canvas.clientHeight,s.getZoom()),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.PEDESTAL_START_EVENT),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_PEDESTAL_START_EVENT)}l(ae,"handleMouseDownPedestal");function ce(L){let V={x:L.clientX,y:L.clientY},te=s.initialPedestal+s.pedestalScaleFactor*(V.y-s.initialShiftPos.y);$&&(te<s.minPedestal?te=Math.max(te,s.minPedestal):te>s.maxPedestal&&(te=Math.min(te,s.maxPedestal))),te!==s.getPedestal()&&de(te)}l(ce,"handleMouseMovePedestal");function Le(L){E.set(L.clientX,L.clientY),S.subVectors(E,T),s.rotate(-S.x/s.rotateSpeed),s.setTilt(s.getTilt()-S.y/s.rotateSpeed),T.copy(E),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT)}l(Le,"handleMouseMoveRotate");function St(){let L=$r(b);q.set(L.x,L.y),D.subVectors(q,_),s.setPosition(P.x-D.x,P.y-D.y),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT)}l(St,"handleMouseMovePan"),this.getProjectionScaleFactor=tb,this.postRender=function(){(g==f.PAN||g==f.TOUCH_PAN)&&(m.setFromCamera(b,i),r=m.intersectObject(h,!1)[0],r&&(_.set(r.point.x,r.point.y),P.set(s.orbit.position.x,s.orbit.position.y))),g==f.WHEEL_ZOOM&&G&&(G=!1,Q=s.getZoom(),U=$r(b),P.set(s.orbit.position.x,s.orbit.position.y)),g==f.MULTI&&Fe()==!1&&(g=f.NONE,s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.MULTI_END_EVENT))};function I(L){let V=0;return L.wheelDelta!==void 0?V=L.wheelDelta:L.detail!==void 0&&(V=-L.detail),V}l(I,"scrollDelta");function N(L){let V=I(L),te=s.getZoom();return!(V<0&&te==s.getZoomScaledMax()||V>0&&te==s.getZoomScaledMin())}l(N,"canScrollZoom");function O(L){if(s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_START_EVENT),!N(L)){ne>0&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_END_EVENT),ne=0,g=f.NONE;return}let V=s.getZoom(),te=V-I(L)*V/ue*s.zoomSpeed;s.setZoom(te);let ke=te/Q;D.subVectors(U,P).multiplyScalar(1-ke),s.setPosition(P.x+D.x,P.y+D.y),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT)}l(O,"handleMouseWheel");function H(L){if(s.enabled!==!1){if(Gu(L),L.preventDefault(),g==f.WHEEL_ZOOM&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_END_EVENT),L.button===s.mouseButtons.ORBIT){if(s.enableRotate===!1)return;kt(L),g=f.ROTATE}else L.button===s.mouseButtons.PAN&&(s.enablePan?($e(L),g=f.PAN):s.enablePedestal&&(ae(L),g=f.PEDESTAL));g!==f.NONE&&(s.canvas.addEventListener("mousemove",Y,!1),window.addEventListener("mouseup",W,!1),window.addEventListener("mouseout",W,!1))}}l(H,"onMouseDown");function Y(L){if(s.enabled!==!1)if(L.preventDefault(),Gu(L),g===f.ROTATE){if(s.enableRotate===!1)return;Le(L)}else if(g===f.PAN){if(s.enablePan===!1)return;St(L)}else g===f.WHEEL_ZOOM?(G=!0,g=f.NONE):g===f.PEDESTAL&&ce(L)}l(Y,"onMouseMove");function W(){if(s.enabled!==!1){switch(document.removeEventListener("mousemove",Y,!1),window.removeEventListener("mouseup",W,!1),window.removeEventListener("mouseout",W,!1),g){case f.PAN:s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.PAN_END_EVENT),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_PAN_END_EVENT);break;case f.DOLLY:s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_END_EVENT),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_DOLLY_END_EVENT);break;case f.ROTATE:s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_END_EVENT),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_ROTATE_END_EVENT);break;case f.PEDESTAL:s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.PEDESTAL_END_EVENT),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_PEDESTAL_END_EVENT);break}g=f.NONE}}l(W,"onMouseUp");let J=null;function Te(L){s.enabled===!1||s.enableZoom===!1||g!==f.NONE&&g!==f.WHEEL_ZOOM||(L.preventDefault(),L.stopPropagation(),Gu(L),N(L)&&(ne=X.getElapsedTime(),s.dispatchUserZoomEvent()),g!=f.WHEEL_ZOOM&&N(L)&&(s.canvas.addEventListener("mousemove",Y,!1),g=f.WHEEL_ZOOM,Q=s.getZoom(),U=$r(b),P.set(s.orbit.position.x,s.orbit.position.y),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_START_EVENT)),J!=null&&clearTimeout(J),J=setTimeout(()=>{s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_END_EVENT)},50),O(L))}l(Te,"onMouseWheel");function se(L){let V=$r(L.x?L:M[0]);_.set(V.x,V.y),P.set(s.orbit.position.x,s.orbit.position.y),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_PAN_START_EVENT),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.PAN_START_EVENT)}l(se,"handleTouchStartPan");function ie(L){let V=$r(L.x?L:M[0]);q.set(V.x,V.y),D.subVectors(q,_),s.setPosition(P.x-D.x,P.y-D.y),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.CHANGE_EVENT)}l(ie,"handleTouchMovePan");function oe(){let L=M[0].x-M[1].x,V=M[0].y-M[1].y;Q=s.getZoom();let te={x:M[0].x-L/2,y:M[0].y-V/2};U=$r(te),s.orbit.updateMatrixWorld(),s.touchAnchor1=new _8(M[0],s.camera,h),s.touchAnchor2=new _8(M[1],s.camera,h),P.set(s.orbit.position.x,s.orbit.position.y),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_DOLLY_START_EVENT),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.MULTI_START_EVENT)}l(oe,"handleTouchStartDolly");function le(){let L=s.touchInputs.first,V=s.touchInputs.second;s.touchAnchor1.viewCoordinate={x:L.x,y:L.y},s.touchAnchor2.viewCoordinate={x:V.x,y:V.y};let te=Ti(s.touchAnchor1,s.touchAnchor2);te&&as(te),s.orbit.updateMatrixWorld(),s.touchAnchor1.updateAnchorState(s.camera,L),s.touchAnchor2.updateAnchorState(s.camera,V)}l(le,"handleTouchMoveDolly");function fe(L){T.set(L.touches[1].clientX,L.touches[1].clientY),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_TILT_START_EVENT),s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_START_EVENT)}l(fe,"handleTouchStartTilt");function Pe(L){E.set(L.touches[1].clientX,L.touches[1].clientY),S.subVectors(E,T),s.setTilt(s.getTilt()-S.y/s.rotateSpeed),T.copy(E)}l(Pe,"handleTouchMoveTilt");function Ke(L){ae(L.touches[0])}l(Ke,"handleTouchStartPedestal");function Xe(L){ce(L.touches[0])}l(Xe,"handleTouchMovePedestal");function Bt(){g===f.TOUCH_TILT||g===f.TOUCH_DOLLY?s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.MULTI_END_EVENT):g===f.TOUCH_PAN&&s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.PAN_END_EVENT)}l(Bt,"handleTouchEnd");function Xt(L){if(s.enabled!==!1){switch(Kv(L),mn(L),L.touches.length){case 1:s.enablePedestal?(Ke(L),g=f.TOUCH_PEDESTAL):s.enablePan&&(se(L),g=f.TOUCH_PAN);break;case 2:s.touchInputs=new v_(M[0],M[1]);break;default:g=f.NONE}f.NONE}}l(Xt,"onTouchStart");function br(L){if(s.enabled!==!1)switch(mn(L),L.touches.length){case 2:L.preventDefault(),L.stopPropagation();let V={...s.touchInputs.first},te={...s.touchInputs.second},ke=new he(M[0].x,M[0].y),Je=new he(M[1].x,M[1].y);if(s.touchInputs.update(M[0],M[1]),s.enableRotate&&g===f.TOUCH_TILT)Pe(L);else if(g===f.TOUCH_DOLLY)le(L);else if(s.touchInputs.totalDistance>.05&&g!==f.TOUCH_DOLLY){let ft=V.y<ke.y&&te.y<Je.y,Ft=V.y>ke.y&&te.y>Je.y;s.enableRotate&&g!==f.TOUCH_TILT&&(Ft||ft)?(fe(L),g=f.TOUCH_TILT):(oe(L),g=f.TOUCH_DOLLY)}break;case 1:(s.enablePedestal||s.enablePan)&&(L.preventDefault(),L.stopPropagation()),s.enablePedestal&&g===f.TOUCH_PEDESTAL?Xe(L):s.enablePan&&g===f.TOUCH_PAN&&ie(L);break;default:g=f.NONE}}l(br,"onTouchMove");function rs(L){if(s.enabled!==!1){switch(Bt(L),g){case f.PAN:case f.TOUCH_PAN:s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_PAN_END_EVENT);break;case f.TOUCH_TILT:s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.PAN_END_EVENT),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_TILT_END_EVENT);break;case f.DOLLY:case f.TOUCH_DOLLY:s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_END_EVENT),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_DOLLY_END_EVENT);break;case f.ROTATE:s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ROTATE_END_EVENT),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_ROTATE_END_EVENT);break;case f.PEDESTAL:case f.TOUCH_PEDESTAL:s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.PEDESTAL_END_EVENT),s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_PEDESTAL_END_EVENT);break}g=f.NONE}}l(rs,"onTouchEnd");function sm(L){L.preventDefault()}l(sm,"onContextMenu");function zu(L,V){return(V-L+Math.PI)%(Math.PI*2)+Math.PI*2%(Math.PI*2)-Math.PI}l(zu,"differenceBetweenAngles");function Ti(L,V){s.orbit.updateMatrixWorld(),s.camera.updateProjectionMatrix();let te=s.camera.projectionMatrix.clone(),ke=L.worldCoordinate,Je=V.worldCoordinate,ft=L.reUnproject(),Ft=V.reUnproject();if(!ft||!Ft)return null;let ze=L.viewCoordinate,It=V.viewCoordinate,Mt=Je.x-ke.x,ss=Je.y-ke.y,gt=Math.atan2(ss,Mt),xr=Ft.x-ft.x,Ni=Ft.y-ft.y,ls=Math.atan2(Ni,xr),Tr=zu(gt,ls),Za=new tt;Za.makeRotationZ(-Tr);let Ue=Za.clone();Ue.multiply(L.snapHolderMatrix);let ye=l((pm,fm,mm)=>pm.elements[(fm-1)*4+mm-1],"m"),pi=ye(te,1,1)*ye(Ue,1,1)-ze.x*ye(te,3,4)*ye(Ue,3,1),zn=ye(te,1,1)*ye(Ue,1,2)-ze.x*ye(te,3,4)*ye(Ue,3,2),jn=ye(te,1,1)*ye(Ue,1,3)-ze.x*ye(te,3,4)*ye(Ue,3,3),ea=ke.x*pi+ke.y*zn+ke.z*jn,Si=ye(te,2,2)*ye(Ue,2,1)-ze.y*ye(te,3,4)*ye(Ue,3,1),Cn=ye(te,2,2)*ye(Ue,2,2)-ze.y*ye(te,3,4)*ye(Ue,3,2),Qi=ye(te,2,2)*ye(Ue,2,3)-ze.y*ye(te,3,4)*ye(Ue,3,3),cs=ke.x*Si+ke.y*Cn+ke.z*Qi,Mr=ye(te,1,1)*ye(Ue,1,1)-It.x*ye(te,3,4)*ye(Ue,3,1),Er=ye(te,1,1)*ye(Ue,1,2)-It.x*ye(te,3,4)*ye(Ue,3,2),Ki=ye(te,1,1)*ye(Ue,1,3)-It.x*ye(te,3,4)*ye(Ue,3,3),wr=Je.x*Mr+Je.y*Er+Je.z*Ki,Gn=ye(te,2,2)*ye(Ue,2,1)-It.y*ye(te,3,4)*ye(Ue,3,1),us=ye(te,2,2)*ye(Ue,2,2)-It.y*ye(te,3,4)*ye(Ue,3,2),ds=ye(te,2,2)*ye(Ue,2,3)-It.y*ye(te,3,4)*ye(Ue,3,3),lm=Je.x*Gn+Je.y*us+Je.z*ds,Hu=Math.abs(Mr-pi),cm=Math.abs(Er-zn),_l=Math.abs(Ki-jn),Ol=Math.abs(Mr-Si),Hn=Math.abs(Er-Cn),Qa=Math.abs(Ki-Qi),Yu=Math.abs(Gn-pi),Wu=Math.abs(us-zn),Jv=Math.abs(ds-jn),ta=Math.abs(Gn-Si),$v=Math.abs(us-Cn),e4=Math.abs(ds-Qi),ti=Math.min(Hu+cm+_l,Ol+Hn+Qa),Ka=Math.min(Yu+Wu+Jv,ta+$v+e4);ti<Ka&&(Mr=Gn,Er=us,Ki=ds,wr=lm);let Xu=Si*jn-pi*Qi,Dl=Cn*jn-zn*Qi,Ll=cs*jn-ea*Qi,ql=Mr*Qi-Si*Ki,Rl=Er*Qi-Cn*Ki,um=wr*Qi-cs*Ki,Nl=(um*Dl-Ll*Rl)/(ql*Dl-Xu*Rl),Zu=(um*Xu-Ll*ql)/(Rl*Xu-Dl*ql),dm=Cn*pi-zn*Si,ia=Qi*pi-jn*Si,Qu=cs*pi-ea*Si,Ku=Er*Si-Cn*Mr,hm=Ki*Si-Qi*Mr,Ju=((wr*Si-cs*Mr)*dm-Qu*Ku)/(hm*dm-ia*Ku),Ji=Ue.clone();return Ji.elements[12]=Nl,Ji.elements[13]=Zu,Ji.elements[14]=Ju,Ju>0?Ji:null}l(Ti,"makeTransformFromTouchAnchors");function as(L){s.orbit.updateMatrixWorld();let V=new Tm;V.setFromRotationMatrix(L,"ZYX");let te=(L.elements[14]-h.position.z)/Math.cos(V.x),ke=V.z,Je=new z(0,0,1);Je.applyEuler(V),Je.setLength(te);let ft=new z;ft.setFromMatrixPosition(L),ft.sub(Je),s.enablePan&&s.setPosition(ft.x,ft.y),s.enableZoom&&s.setZoom(te),s.enableRotate&&s.setRotation(ke)}l(as,"setCameraFromTransformMatrix");function ju(L,V){return{x:V.offsetX,y:V.offsetY}}l(ju,"getMousePos");function Qv(L,V){return{x:V.clientX-x.offsetLeft,y:V.clientY-x.offsetTop}}l(Qv,"getTouchPos");function Kv(L){let V=s.canvas;x.offsetLeft=V.getBoundingClientRect().left,x.offsetTop=V.getBoundingClientRect().top}l(Kv,"updateTouchOrigin");function $r(L){m.setFromCamera(L,i);let V=m.intersectObject(h,!1)[0];return V?V.point:new z}l($r,"raycastToFloor");function Gu(L){let V=ju(s.canvas,L);return b.x=V.x/s.canvas.width*n.resolutionScale*2-1,b.y=-(V.y/s.canvas.height*n.resolutionScale)*2+1,b}l(Gu,"mouseToScene");function mn(L){M=[];for(let V=0,te=L.touches.length;V<te;V++){let ke=L.touches[V],Je=Qv(s.canvas,ke);M.push(new he(Je.x/s.canvas.width*n.resolutionScale*2-1,-(Je.y/s.canvas.height*n.resolutionScale)*2+1))}b=M[0]}l(mn,"touchToScene"),this.update=function(){df.default.update(),ne>0&&g==f.WHEEL_ZOOM&&X.getElapsedTime()-ne>.2&&(ne=0,g=f.NONE,s.dispatcher.dispatchEvent(s.CAMERA_EVENTS.ZOOM_END_EVENT),s.canvas.removeEventListener("mousemove",Y,!1))};let os=!1;this.dispatchUserZoomDebounced=hn(()=>{os=!1,s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_ZOOM_END_EVENT)},250),this.dispatchUserZoomEvent=function(){os||(s.dispatcher.dispatchEvent(s.INTERACTION_EVENTS.USER_ZOOM_START_EVENT),os=!0),s.dispatchUserZoomDebounced()},this.dispose=function(){for(let L in this.INTERACTION_EVENTS){let V=this.INTERACTION_EVENTS[L];V.type.endsWith("Start")&&s.dispatcher.removeEventListener(V.type,ee)}for(let L in this.INTERACTION_EVENTS){let V=this.INTERACTION_EVENTS[L];V.type.endsWith("End")&&s.dispatcher.removeEventListener(V.type,ge)}s.canvas.removeEventListener("contextmenu",sm,!1),s.canvas.removeEventListener("mousedown",H,!1),s.canvas.removeEventListener("wheel",Te,{passive:!1}),s.canvas.removeEventListener("touchstart",Xt,!1),s.canvas.removeEventListener("touchend",rs,!1),s.canvas.removeEventListener("touchmove",br,!1),s.canvas.removeEventListener("mousemove",Y,!1),window.removeEventListener("mouseup",W,!1),window.removeEventListener("mouseout",W,!1),t.remove(h),s.dispatcher._listeners={}},this.canvas.addEventListener("contextmenu",sm,!1),this.canvas.addEventListener("mousedown",H,!1),this.canvas.addEventListener("wheel",Te,{passive:!1}),this.canvas.addEventListener("touchstart",Xt,!1),this.canvas.addEventListener("touchend",rs,!1),this.canvas.addEventListener("touchmove",br,!1)},"CameraControls"),yv=kX;var O_=(a=>(a.performance="Performance",a.low="Low",a.medium="Medium",a.high="High",a.ultra="Ultra",a))(O_||{});var H8=class H8 extends pn{constructor(t){super("CustomRenderPass");p(this,"effectComposer");p(this,"clearPass");this.renderToScreen=!1,this.needsSwap=!1,this.effectComposer=t,this.fullscreenMaterial=new We({uniforms:t.options.compositeUniforms,vertexShader:lf,fragmentShader:f_}),this.clearPass=new tu}render(t,n,r,a,o){let s=this.fullscreenMaterial.uniforms;n!==null&&s!==void 0&&s.inputBuffer!==void 0&&(s.inputBuffer.value=n.texture),this.clearPass.render(t,n,r,a,o),t.setRenderTarget(this.renderToScreen?null:n),t.render(this.scene,this.camera)}initialize(t,n,r){r!==void 0&&r!==ki&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}};l(H8,"CustomRenderPass");var z8=H8,Y8=class Y8 extends cv{constructor(t,n){let{scene:r,camera:a,renderer:o}=t;super(r,a,o.width,o.height);p(this,"effectComposer");p(this,"cachePass");p(this,"enabled");this.effectComposer=t,this.enabled=!0;let s=new We({uniforms:{colorTexture:{value:this.outputTargetInternal.texture}},vertexShader:lf,fragmentShader:d_});this.cachePass=new cl(s),Object.assign(this.configuration,n)}setAOConfiguration(t){Object.assign(this.configuration,t),t.color&&(this.configuration.color=new Ee(t.color)),t.aoResolution&&(t.halfRes=t.aoResolution==="half")}setQualityMode(t){let n=O_[t.toLowerCase()];n||(n="Performance"),super.setQualityMode(n)}get distanceFalloff(){if(!this.effectComposer.renderer.core.controls)return 0;let t=this.effectComposer.renderer.core.controls.getZoomLevel();return .2*((mt.clamp(t,vv,V8)-vv)/(V8-vv))}initialize(t,n,r){this.cachePass.initialize(t,n,r),super.initialize(t,n,r)}render(t,n,r,a,o){var u;let s=(u=this.effectComposer.options.compositeUniforms)==null?void 0:u.staticSceneDepthTexture.value;!(s?s.userData.needsAmbientOcclusionUpdate:!0)&&this.outputTargetInternal?this.cachePass.render(t,n,r,a,o):(this.configuration.distanceFalloff=this.distanceFalloff,super.render(t,n,r,a,o),s&&(s.userData.needsAmbientOcclusionUpdate=!1))}};l(Y8,"AmbientOcclusionPass");var j8=Y8,W8=class W8 extends r_{constructor(t,...n){super(t,...n);p(this,"_effects");this._effects=[...n]}getEffects(){return this._effects}getEffectByName(t){return this._effects.find(n=>n.name===t)||null}};l(W8,"CustomEffectPass");var G8=W8,X8=class X8{constructor(e,t){p(this,"options",{antialias:!0,antialiasQuality:"medium",aoEnabled:!1,aoQuality:"medium",aoResolution:"half",compositeUniforms:void 0});p(this,"isWebGL2");p(this,"effectComposer");p(this,"scene",null);p(this,"camera",null);p(this,"depthTexture");p(this,"renderer");var n;this.isWebGL2=!!e.renderer.capabilities.isWebGL2,this.options=(0,__.default)({},this.options,t),this.effectComposer=new a_(e.renderer),this.effectComposer.multisampling=0,this.effectComposer.depthTexture=((n=this.options.compositeUniforms)==null?void 0:n.staticSceneDepthTexture.value)||null,this.renderer=e}get initialized(){return!!this.effectComposer.passes.length}init(e,t){this.scene=e,this.camera=t;let n=this.getRenderPass();this.addPass(n,"RenderPass");let r=this.getAmbientOcclusionPass();this.addPass(r,"AmbientOcclusionPass");let a=this.getCompositePass();this.addPass(a,"CompositeRenderPass");let o=this.getEffectsPass(!0);this.addPass(o,"EffectsPassAntialiasEnabled");let s=this.getEffectsPass(!1);this.addPass(s,"EffectsPassAntialiasDisabled");let c=this.getFinalPass();this.addPass(c,"FinalPass")}render(){this.effectComposer.render()}setSize(e,t){this.effectComposer.setSize(e,t,!1)}getPassByName(e){return this.effectComposer.passes.find(({name:t})=>t===e)||null}getEffectsByName(e){let t=[],n=this.getPassByName("EffectsPassAntialiasEnabled"),r=this.getPassByName("EffectsPassAntialiasDisabled"),a=n==null?void 0:n.getEffectByName(e),o=r==null?void 0:r.getEffectByName(e);return a&&t.push(a),o&&t.push(o),t}setAmbientOcclusionConfiguration(e){let t=this.getPassByName("AmbientOcclusionPass"),n={};for(let r of Object.keys(e))e[r]!==void 0&&(n[r]=e[r]);t&&(n.aoEnabled!==void 0&&(t.enabled=n.aoEnabled),n.aoQuality&&t.setQualityMode(n.aoQuality),t.setAOConfiguration(n))}setAntialiasConfiguration(e){let t=this.getEffectsByName("SMAAEffect")[0],n=this.getPassByName("EffectsPassAntialiasEnabled"),r=this.getPassByName("EffectsPassAntialiasDisabled"),{antialias:a,antialiasQuality:o}=e;a!==void 0&&a!==this.options.antialias&&(this.options.antialias=a,a?(r.setEnabled(!1),n.setEnabled(!0)):(r.setEnabled(!0),n.setEnabled(!1))),t&&o&&o!==this.options.antialiasQuality&&(this.options.antialiasQuality=o,t.applyPreset(this.getAntialiasingPreset()))}setPolygonOutlineColor(e){let t=this.getEffectsByName("OutlineEffect");e=new Ee(e),t.forEach(n=>{n.visibleEdgeColor=e,n.hiddenEdgeColor=e})}addSelectionForOutline(e){this.getEffectsByName("OutlineEffect").forEach(n=>{n.selection.add(e)})}removeSelectionForOutline(e){this.getEffectsByName("OutlineEffect").forEach(n=>{n.selection.delete(e)})}addPass(e,t){e&&(e.name=t,this.effectComposer.addPass(e))}getRenderPass(){let e=this.options.compositeUniforms?new z8(this):new lv(this.scene,this.camera);return e.renderToScreen=!1,e.needsSwap=!1,e.needsDepthTexture=!0,e}getAmbientOcclusionPass(){let{aoResolution:e,aoEnabled:t,aoQuality:n}=this.options;if(!this.isWebGL2||!t)return null;let r={aoRadius:5,intensity:5,screenSpaceRadius:!0,halfRes:e==="half",denoiseIterations:this.renderer.core.resolutionScale===1?4:2},a=new j8(this,r);return a.setQualityMode(n),a.renderToScreen=!1,a.needsSwap=!0,a.needsDepthTexture=!0,a}getCompositePass(){if(!this.options.compositeUniforms)return null;let{staticSceneColorTexture:e,alwaysOnBottomSceneColorTexture:t,alwaysOnTopSceneColorTexture:n,...r}=this.options.compositeUniforms,a=new We({uniforms:r,vertexShader:lf,fragmentShader:h_}),o=new cl(a);return o.renderToScreen=!1,o.needsSwap=!0,o.needsDepthTexture=!1,o}getEffectsPass(e){let{compositeUniforms:t,antialias:n}=this.options,r=[];r.push(this.getOutlineEffect()),e&&r.push(this.getAntialiasingEffect());let a=new G8(this.camera,...r);return a.renderToScreen=!t,a.enabled=e===n,a.needsSwap=!!t,a.needsDepthTexture=!0,a}getFinalPass(){if(!this.options.compositeUniforms)return null;let{alwaysOnBottomSceneColorTexture:e,alwaysOnTopSceneColorTexture:t,inputBuffer:n}=this.options.compositeUniforms,r=new We({uniforms:{inputBuffer:n,alwaysOnBottomSceneColorTexture:e,alwaysOnTopSceneColorTexture:t},vertexShader:lf,fragmentShader:p_}),a=new cl(r);return a.renderToScreen=!0,a.needsSwap=!1,a.needsDepthTexture=!1,a}getOutlineEffect(){return new s_(this.scene,this.camera,{multisampling:Math.min(4,this.renderer.renderer.capabilities.maxSamples),edgeStrength:10,visibleEdgeColor:16711680,hiddenEdgeColor:16711680,xRay:!0,blendFunction:De.ALPHA})}getAntialiasingPreset(){switch(this.options.antialiasQuality){case"medium":return Xr.MEDIUM;case"high":return Xr.HIGH;case"ultra":return Xr.ULTRA;default:return Xr.LOW}}getAntialiasingEffect(){let e=new l_({preset:this.getAntialiasingPreset()});return e.blendMode.blendFunction=De.SRC,e}};l(X8,"EffectComposer");var hf=X8;var Q8=class Q8{constructor(e){e.multiBufferRendering=e.multiBufferRendering||!1,this.contextLost=!1,this.implementation=this.getRenderer(e),this.onWebGLContextCreationError=e.onWebGLContextCreationError,this.onWebGLContextLost=e.onWebGLContextLost,this.onWebGLContextRestored=e.onWebGLContextRestored,this.webGLContextCreationErrorListener=this.domElement().addEventListener("webglcontextcreationerror",r=>this.reportWebGlContextCreationError(r)),this.webGLContextLostListener=this.domElement().addEventListener("webglcontextlost",r=>this.reportWebGlContextLost(r)),this.webGLContextRestoredListener=this.domElement().addEventListener("webglcontextrestored",r=>this.reportWebGLContextRestored(r));let t=e.backgroundColor;typeof t=="string"&&(t=new Ee(e.backgroundColor)),t==null&&(t=new Ee("#ffffff"));let n=e.backgroundAlpha;n==null&&(n=1),this.shouldConsiderAlpha=e.alpha||!1,this.antialias=e.antialias||!1,this.setBackgroundColor(t,n)}destroy(){this.domElement().removeEventListener("webglcontextcreationerror",this.webGLContextCreationErrorListener),this.domElement().removeEventListener("webglcontextlost",this.webGLContextLostListener),this.domElement().removeEventListener("webglcontextrestored",this.webGLContextRestoredListener),this.implementation.destroy()}render(e,t,n,r){this.implementation.render(e,t,n,r)}getMaxAnisotropy(){return this.implementation.renderer.capabilities.getMaxAnisotropy()}getBufferSize(){return this.implementation.renderer.getSize(new he)}getContext(){return this.implementation.renderer.getContext()}preloadTexture(e){this.implementation.renderer.initTexture(e)}setBufferSize(e,t){this.implementation.setBufferSize(e,t)}get backgroundColor(){return this.implementation.backgroundColor}get backgroundAlpha(){return this.implementation.backgroundAlpha}setBackgroundColor(e,t=1){this.shouldConsiderAlpha||(t=1),t=t!==void 0?+t:1,t=t>=0&&t<=1?t:1,this.implementation.setBackgroundColor(e,t)}setMapboxOutdoorContext(e){this.implementation.setMapboxOutdoorContext(e)}domElement(){return this.implementation.renderer.domElement}isAvailable(){return this.implementation.renderer!=null&&!this.contextLost}disposeOfRenderLists(){this.implementation.renderer.renderLists.dispose()}reportWebGlContextCreationError(e){this.onWebGLContextCreationError&&this.onWebGLContextCreationError(e)}reportWebGlContextLost(e){e.preventDefault(),this.onWebGLContextLost&&this.onWebGLContextLost(e),this.contextLost=!0}reportWebGLContextRestored(){this.onWebGLContextRestored&&this.onWebGLContextRestored(),this.contextLost=!1}getTargetWebGLVersion(e){let t=/(AppleWebKit)/.test(navigator.userAgent),n=/(Mac)/.test(navigator.platform),r=e.getExtension("WEBGL_debug_renderer_info"),o=/radeon\spro\s4\d\d|radeon\spro\s5\d\d/i.test(e.getParameter(r.UNMASKED_RENDERER_WEBGL));return t&&n&&o?1:2}getRenderer(e){let t=e.multiBufferRendering?au:Z8,n=new t(e),r=this.getTargetWebGLVersion(n.renderer.getContext());return r===2?n:(n.destroy(),new t(e,r))}};l(Q8,"Renderer");var ru=Q8,K8=class K8{constructor(e,t=2){try{this.options=e;let n={alpha:e.alpha||!1,stencil:!0,outputColorSpace:rt,antialias:!1,powerPreference:"high-performance",preserveDrawingBuffer:!0};this.core=this.options.core,this.renderer=t===2?new a4(n):new o4(n),this.effectComposer=new hf(this,this.options)}catch(n){e.onWebGLRendererError&&e.onWebGLRendererError(n)}this.backgroundColor=new Ee,this.backgroundAlpha=1,this.mapboxOutdoorContext=null}destroy(){this.renderer.dispose()}render(e,t,n,r){r.layers.enable(Ct.STATIC),r.layers.enable(Ct.ANIMATED),r.layers.enable(Ct.ALWAYS_ON_TOP),this.renderer.setClearColor(this.backgroundColor,this.backgroundAlpha),this.effectComposer.initialized||this.effectComposer.init(n,r),this.renderer.clear(),this.effectComposer.render(),this.mapboxOutdoorContext!=null&&(this.renderer.state.reset(),this.mapboxOutdoorContext.render({resolution:this.renderer.getSize(new he),camera:r}),this.renderer.state.reset())}setBufferSize(e,t){this.width=e,this.height=t,this.renderer.setSize(e,t,!1),this.effectComposer.setSize(e,t)}setBackgroundColor(e,t){this.backgroundColor=e,this.backgroundAlpha=t}setMapboxOutdoorContext(e){this.mapboxOutdoorContext=e}};l(K8,"SingleBufferRenderer");var Z8=K8,J8=class J8{constructor(e,t=2){p(this,"effectComposer",null);p(this,"outdoorsVisible",!1);try{this.options=e;let n={alpha:e.alpha||!1,stencil:!0,antialias:!1,outputColorSpace:rt,powerPreference:"high-performance",preserveDrawingBuffer:!0};this.renderer=t===2?new a4(n):new o4(n),this.core=this.options.core,this.journeyOpacity=e.xRayPath?.3:0,this.backgroundColor=new Ee,this.backgroundAlpha=1,this.mapboxOutdoorContext=null,this.staticSceneRenderTarget=new st(this.renderer.width,this.renderer.height),this.populateRenderTarget(this.staticSceneRenderTarget),this.animatedSceneRenderTarget=new st(this.renderer.width,this.renderer.height),this.populateRenderTarget(this.animatedSceneRenderTarget),this.alwaysOnTopSceneRenderTarget=new st(this.renderer.width,this.renderer.height),this.populateRenderTarget(this.alwaysOnTopSceneRenderTarget),this.outdoorViewRenderTarget=new st(this.renderer.width,this.renderer.height),this.createOutdoorViewTexture(),this.populateRenderTarget(this.outdoorViewRenderTarget),this.setupEffectComposer()}catch(n){e.onWebGLRendererError&&e.onWebGLRendererError(n)}}populateRenderTarget(e){e.texture.colorSpace=rt,e.texture.format=ps,e.texture.minFilter=mi,e.texture.magFilter=mi,e.texture.generateMipmaps=!1,e.stencilBuffer=!0,e.depthBuffer=!0,e.depthTexture=new zl(this.renderer.width,this.renderer.height),e.depthTexture.type=kl}createOutdoorViewTexture(){this.outdoorViewTexture!=null&&this.outdoorViewTexture.dispose(),this.outdoorViewTexture=new na,this.outdoorViewTexture.colorSpace=rt,this.outdoorViewTextureProps=this.renderer.properties.get(this.outdoorViewTexture),this.outdoorViewRenderTarget.texture=this.outdoorViewTexture,this.effectComposer!=null&&this.outdoorsVisible&&(this.options.compositeUniforms.alwaysOnBottomSceneColorTexture.value=this.outdoorViewRenderTarget.texture)}setupEffectComposer(){this.options.compositeUniforms={animatedColorOpacity:new xe(this.journeyOpacity),inputBuffer:new xe(null),staticSceneColorTexture:new xe(this.staticSceneRenderTarget.texture),staticSceneDepthTexture:new xe(this.staticSceneRenderTarget.depthTexture),animatedSceneColorTexture:new xe(this.animatedSceneRenderTarget.texture),animatedSceneDepthTexture:new xe(this.animatedSceneRenderTarget.depthTexture),alwaysOnTopSceneColorTexture:new xe(this.alwaysOnTopSceneRenderTarget.texture),alwaysOnBottomSceneColorTexture:new xe(this.outdoorViewRenderTarget.texture)},this.effectComposer=new hf(this,this.options)}setOutdoorViewTexture(e){this.outdoorViewTextureProps.__webglTexture=e}destroy(){this.staticSceneRenderTarget.dispose(),this.animatedSceneRenderTarget.dispose(),this.alwaysOnTopSceneRenderTarget.dispose(),this.renderer.dispose()}renderComposite(e,t,n){n.layers.set(Ct.STATIC),this.renderer.setRenderTarget(e),this.effectComposer.render()}renderToAnimatedBuffer(e,t){t.layers.set(Ct.ANIMATED),this.renderer.setClearColor(new Ee,0),this.renderer.setRenderTarget(this.animatedSceneRenderTarget),this.renderer.clear(),this.renderer.render(e,t)}renderAnimated(e,t,n){this.renderToAnimatedBuffer(t,n),this.renderComposite(e,t,n)}renderToAlwaysOnTopBuffer(e,t){t.layers.set(Ct.ALWAYS_ON_TOP),this.renderer.setClearColor(new Ee,0),this.renderer.setRenderTarget(this.alwaysOnTopSceneRenderTarget),this.renderer.clear(),this.renderer.render(e,t)}renderAlwaysOnTop(e,t,n){this.renderToAlwaysOnTopBuffer(t,n),this.renderComposite(e,t,n)}renderAll(e,t,n){this.outdoorViewController!=null&&this.outdoorViewController.render(),this.renderer.state.reset(),n.layers.set(Ct.STATIC),this.renderer.autoClear=!1,this.renderer.setClearColor(this.backgroundColor,this.outdoorViewController?0:this.backgroundAlpha),this.staticSceneRenderTarget.depthTexture.userData.needsAmbientOcclusionUpdate=!0,this.renderer.setRenderTarget(this.staticSceneRenderTarget),this.renderer.clear(),this.renderer.render(t,n),this.mapboxOutdoorContext!=null&&(this.renderer.state.reset(),this.mapboxOutdoorContext.render({resolution:this.renderer.getSize(new he),camera:n,renderTarget:this.staticSceneRenderTarget}),this.renderer.state.reset()),this.renderToAnimatedBuffer(t,n),this.renderToAlwaysOnTopBuffer(t,n),this.renderComposite(e,t,n)}render(e,t,n,r){this.effectComposer.initialized||this.effectComposer.init(n,r),e===Re.ANIMATED?(this.renderer.state.reset(),this.renderAnimated(t,n,r)):e===Re.ALWAYS_ON_TOP?(this.renderer.state.reset(),this.renderAlwaysOnTop(t,n,r)):e===Re.COMPOSITE?(this.renderer.state.reset(),this.renderComposite(t,n,r)):e===Re.ALL?this.renderAll(t,n,r):F.error("Renderer.render called with invalid renderTask")}setBufferSize(e,t){this.width=e,this.height=t,this.renderer.setSize(e,t,!1),this.effectComposer.setSize(e,t),this.staticSceneRenderTarget.setSize(e,t),this.animatedSceneRenderTarget.setSize(e,t),this.alwaysOnTopSceneRenderTarget.setSize(e,t),this.outdoorViewRenderTarget.width=e,this.outdoorViewRenderTarget.height=t,this.outdoorViewRenderTarget.viewport.set(0,0,e,t),this.outdoorViewRenderTarget.scissor.set(0,0,e,t),this.createOutdoorViewTexture()}setBackgroundColor(e,t){this.backgroundColor=e,this.backgroundAlpha=t}setMapboxOutdoorContext(e){this.mapboxOutdoorContext=e}setOutdoorViewController(e){this.outdoorsVisible=!0,this.outdoorViewController=e}toggleOutdoorViewVisiblity(e){this.outdoorsVisible=e,e?this.options.compositeUniforms.alwaysOnBottomSceneColorTexture.value=this.outdoorViewRenderTarget.texture:this.options.compositeUniforms.alwaysOnBottomSceneColorTexture.value=null}};l(J8,"MultiBufferRenderer");var au=J8;y();var tx=et(D_());var BX=!1,rx=class rx{constructor(e,t){p(this,"_attribution");p(this,"core");p(this,"map");p(this,"enabled",!1);p(this,"hidden",!1);p(this,"url","https://tiles-cdn.mappedin.com/styles/mappedin/style.json");p(this,"authURL","https://auth.mappedin.com/oauth2/token");p(this,"headers");p(this,"customAttribution");p(this,"attributionPosition");p(this,"loaded",!1);p(this,"module");p(this,"getRequestHeaders",l(async()=>{if(this.headers)return this.headers;{let{authURL:e}=this,t=await this.fetchToken(e),{access_token:n}=await t.json();return{"x-mappedin-tiles-key":n}}},"getRequestHeaders"));p(this,"lastCameraPosition");this.core=e,this.url=(t==null?void 0:t.url)||this.url,this.authURL=(t==null?void 0:t.authURL)||this.authURL,this.headers=t==null?void 0:t.headers,this.attributionPosition=t==null?void 0:t.attributionPosition,(t==null?void 0:t.customAttribution)instanceof Array?(this.customAttribution=[],t==null||t.customAttribution.forEach(n=>{this.customAttribution.push((0,tx.sanitize)(n))})):t!=null&&t.customAttribution&&(this.customAttribution=(0,tx.sanitize)(t.customAttribution))}fetchToken(e){return fetch(e,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({grant_type:"client_credentials",client_id:this.core.venue.options.clientId,client_secret:this.core.venue.options.clientSecret})})}async load(){this.enabled=!0;try{let[e,t]=await Promise.all([import("./outdoor-context-BDJWNPA3.js"),this.getRequestHeaders()]);this.module=e;let{Map:n,Marker:r,AttributionControl:a}=this.module.default,o=document.createElement("div");Object.assign(o.style,{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",pointerEvents:"none"}),this.core.container.appendChild(o);let s=this.core.referenceMap.georeference[0].target.x,c=this.core.referenceMap.georeference[0].target.y,u=this.core.referenceMap.georeference[2].target.x,h=this.core.referenceMap.georeference[2].target.y,m=new Ze(s,c),f=new Ze(u,h),g=m.midpointTo(f),b=-mt.radToDeg(this.core.controls.getRotation()+this.core.referenceMap.getNorth()),M=mt.radToDeg(this.core.controls.getTilt()),x=this.core.controls.getZoomLevel(),T={canvas:this.core.renderer.domElement(),canvasContainer:o,container:this.core.container,style:this.url,center:[g.lon,g.lat],zoom:x,bearing:b,pitch:M,attributionControl:!1,transformRequest:S=>({url:S,headers:t})};this.map=new n(T),this._attribution=new a({collapse:!1,position:this.attributionPosition,customAttribution:this.customAttribution}),this.core.container.appendChild(this._attribution.onAdd(this.map)),this._attribution&&this.hidden&&this._attribution.hide(),this.map.on("error",S=>{F.error(S)}),this.map.transform.getElevation=()=>this.core.controls.getPedestal()*this.core.referenceMap.scale,this.core.renderer.implementation.setOutdoorViewTexture(this.map.painter.webGLRenderTargetTexture),this.map.on("load",()=>{if(this.core.tryRendering(),BX){let{x:S,y:_}=this.core.referenceMap.georeference[0].target,{x:P,y:q}=this.core.referenceMap.georeference[2].target,D=this.core.referenceMap.createCoordinate(S,_),U=this.core.referenceMap.createCoordinate(P,q);this.core.markers.add(D,"!",{rank:4}),this.core.markers.add(U,"!",{rank:4}),new r().setLngLat([_,S]).addTo(this.map),new r().setLngLat([q,P]).addTo(this.map)}}),this.map.on("resize",()=>{this.core.renderer.implementation.setOutdoorViewTexture(this.map.painter.webGLRenderTargetTexture)});let E=!1;this.map.on("render",async()=>{if(E||!this.map.getLayer("building-top"))return;let S=[],_=[[c,s],[h,u]].map(D=>{let{x:U,y:R}=this.map.project({lat:D[1],lon:D[0]});return[U,R]}),P=this.map.queryRenderedFeatures(_,{layers:["building-top"]});for(var q of P)S.push(["!=",["id"],q.id]);S.length>0&&(this.map.setFilter("building-top",["all",...S]),E=!0)}),this.map.on("idle",()=>{this.loaded||(this.loaded=!0,E=!0,this.core.publish(31)),this.core.tryRendering(Re.COMPOSITE)})}catch(e){this.enabled=!1,F.error(e)}}get attributions(){return this._attribution?this._attribution.attributions:[]}hide(){this.core.renderer.implementation.toggleOutdoorViewVisiblity(!1),this._attribution&&this._attribution.hide(),this.core.tryRendering(Re.COMPOSITE),this.lastCameraPosition=null,this.hidden=!0}show(){this.core.renderer.implementation.toggleOutdoorViewVisiblity(!0),this._attribution&&this._attribution.show(),this.core.tryRendering(Re.COMPOSITE),this.hidden=!1}resize(){this.enabled&&this.map!=null&&this.map.resize()}render(){if(!this.enabled||this.map==null)return;let{lat:e,lon:t}=this.core.controls.getPositionCoordinate(),n={center:{lat:e,lon:t},bearing:-mt.radToDeg(this.core.controls.getRotation()+this.core.referenceMap.getNorth()),pitch:mt.radToDeg(this.core.controls.getTilt()),zoom:this.core.controls.getZoomLevel()},r=this.core.controls.getPedestal()*this.core.referenceMap.scale;this.lastCameraPosition&&this.lastCameraPosition.center.lat===n.center.lat&&this.lastCameraPosition.center.lon===n.center.lon&&this.lastCameraPosition.bearing===n.bearing&&this.lastCameraPosition.pitch===n.pitch&&this.lastCameraPosition.zoom===n.zoom&&this.lastCameraPosition.elevation===r||(this.map.jumpTo(n),this.map.triggerRepaintSync(),this.lastCameraPosition={...n,elevation:r})}setStyle(e){this.map.setStyle(e),this.map.triggerRepaintSync()}setAttributionPosition(e){this._attribution&&this._attribution.setPosition(e)}};l(rx,"OutdoorViewController");var ix=rx,nx=ix;y();var bv,L_,xv,q_,pf,ax,ox=class ox{constructor(e){w(this,bv);w(this,xv);w(this,pf);p(this,"core");p(this,"glTFExporter");this.core=e}async getCurrentSceneGLTF(e){let n={...{onlyVisible:!0,binary:!0,scale:.05},...e},r=await Z(this,xv,q_).call(this),a=Z(this,bv,L_).call(this,n.scale);if(!a)return F.error("Unable to retrieve the current scene"),new Blob;let o=await r.parseAsync(a,{trs:!1,maxTextureSize:1/0,onlyVisible:n.onlyVisible,binary:n.binary,scale:n.scale});if(o instanceof ArrayBuffer)return new Blob([o],{type:"application/octet-stream"});{let s=JSON.stringify(o,null,2);return new Blob([s],{type:"text/plain"})}}};bv=new WeakSet,L_=l(function(e){var c;let t=new fs,n=(c=this.core.sceneManager)==null?void 0:c.currentScene;if(!n)return null;let r=new _T(16777215,1e5,100),a=n.currentMap.width,o=n.currentMap.height;r.position.y=Math.min(a,o)*e,t.add(r);let s=Z(this,pf,ax).call(this,n.object);return s.scale.set(e,e,e),t.add(s),s.traverse(u=>{let{geometry:h,material:m,position:f,rotation:g,quaternion:b,scale:M}=u;if(h!=null&&h.isBufferGeometry&&h&&h.isBufferGeometry){let x=h.attributes.position,T=h.attributes.normal,E=h.attributes.uv,S=new z,_=new z;for(let D=0;D<x.count;D++){S.fromBufferAttribute(x,D);let U=S.y;if(S.y=S.z,S.z=-U,x.setXYZ(D,S.x,S.y,S.z),T){_.fromBufferAttribute(T,D);let R=_.y;_.y=_.z,_.z=-R,T.setXYZ(D,_.x,_.y,_.z)}}let P=f.y;f.y=f.z,f.z=-P;let q=M.y;if(M.y=M.z,M.z=q,g instanceof Tm?g.set(g.x,g.y,g.z,"YXZ"):b.set(b.x,b.z,-b.y,b.w),E)for(let D=0;D<E.count;D++){let U=E.getX(D),R=E.getY(D);E.setXY(D,U,R)}m!=null&&m.map&&h.type==="PlaneGeometry"&&(u.side=Yn)}}),t},"#getExportedScene"),xv=new WeakSet,q_=l(async function(){if(!this.glTFExporter){let{GLTFExporter:e}=await import("./GLTFExporter-557DK237.js");this.glTFExporter=new e}return this.glTFExporter},"#getGLTFExporter"),pf=new WeakSet,ax=l(function(e){let t=e.clone();if(e.geometry&&(t.geometry=e.geometry.clone()),e.material)if(Array.isArray(e.material))t.material=e.material.map(n=>new c4().copy(n));else{let n=new c4;t.material=n.copy(e.material)}t.clear();for(let n=0;n<e.children.length;n++)t.add(Z(this,pf,ax).call(this,e.children[n]));return t.position.copy(e.position),t.rotation.copy(e.rotation),t.scale.copy(e.scale),t},"#cloneObject3D"),l(ox,"ExportController");var ou=ox;y();var FX="#ff0000",UX=["fill","fill-opacity"],VX=!1,Rt,ul,lx=class lx{constructor(e){w(this,Rt,void 0);w(this,ul,{});A(this,Rt,e),d(this,Rt).on(32,t=>{this.clearCache(t)}),d(this,Rt).controls.dispatcher.addEventListener(d(this,Rt).controls.CAMERA_EVENTS.CHANGE_EVENT.type,()=>this.runInterpolations()),d(this,Rt).on(7,()=>this.runInterpolations())}clearCache(e){d(this,ul)[e.id]=void 0}showLayers(e){if(!d(this,Rt).currentMap)return;let t=d(this,Rt).mapObjects.get(d(this,Rt).currentMap);t!=null&&(t.renderLayerGroup(e,[]),d(this,Rt).publish(32,t.mapClass),d(this,Rt).tryRendering())}async getAllLayersForMap(e){let t=d(this,Rt).mapObjects.get(e.id);return t?(await t.load(),this.processMapObjectLayers(t)):{}}processMapObjectLayers(e){let t=Array.from(e.loadedLayerNames),n={};return t.forEach(r=>{n[r]=!1}),e.layerGroups.forEach(r=>{r.isVisible&&r.layers.forEach(a=>{n[a]=!0})}),n}getVisibleLayersForLoadedMap(e){if(!d(this,Rt).currentMap)return[];if(d(this,ul)[e.id])return d(this,ul)[e.id];let t=d(this,Rt).mapObjects.get(e.id),n=[],r=this.processMapObjectLayers(t);for(let a in r)r[a]&&n.push(a);return d(this,ul)[e.id]=n,n}runInterpolations(){let e=d(this,Rt).controls.getZoomLevel();d(this,Rt).visibleMapObjectsInCurrentScene.forEach(t=>{t.layerGroups.forEach(n=>{if(n.interpolationFn!=null){let r=n.interpolationFn(e);n.setOpacity(r),r===1?n.isVisible=!0:n.isVisible=!1}})})}async addGeoJSONLayer(e,t){let n=d(this,Rt).mapObjects.get(d(this,Rt).currentMap);if(n!=null&&n.mapClass&&(await this.getAllLayersForMap(n==null?void 0:n.mapClass))[e]!=null)return F.error('"'.concat(e,'" layer already exists, not adding')),Promise.resolve();if(t.type==="FeatureCollection"){let r=[];for(let o of t.features){let s=this.convertFeatureToElement(e,o);await s.load(),r.push(s)}let a=n==null?void 0:n.processLayerGroup(e,[e],[],!0,r);n==null||n.object.add(a==null?void 0:a.mergedObjectsGroup),d(this,Rt).tryRendering()}else{let r=this.convertFeatureToElement(e,t);await r.load();let a=n==null?void 0:n.processLayerGroup(e,[e],[],!0,[r]);n==null||n.object.add(a==null?void 0:a.mergedObjectsGroup),d(this,Rt).tryRendering()}}convertFeatureToElement(e,t){var s,c,u,h;VX&&Object.keys(t.properties||{}).forEach(m=>{UX.includes(m)||F.warn("".concat(m," property not supported in GeoJSON layers"))});let n=d(this,Rt).mapObjects.get(d(this,Rt).currentMap),r=n.mapClass,a={vertexes:[],layer:e,material:{color:(c=(s=t.properties)==null?void 0:s.fill)!=null?c:FX,opacity:(h=(u=t.properties)==null?void 0:u["fill-opacity"])!=null?h:1},geometry:{visible:!0,position:{z:1},scale:{z:0}}};for(let m=0;m<t.geometry.coordinates[0].length;m++){let[f,g]=t.geometry.coordinates[0][m],b=r.createCoordinate(g,f);a.vertexes.push({x:b.x,y:b.y,lat:g,lon:f})}let o=new Vs(a,r,new Wn,void 0,void 0);return n.loadedElements.push(o),o}};Rt=new WeakMap,ul=new WeakMap,l(lx,"LayerController");var sx=lx,Tv=sx;y();var N_=et(R_());var ff=!1;var zX=l(function({core:i,blueDotManager:e,controller:t}){var u,h,m,f;let n=Dr.create({...(u=i==null?void 0:i.venue)==null?void 0:u.options,testMode:!((m=(h=i==null?void 0:i.venue)==null?void 0:h.options)!=null&&m.emitAnalyticsEvents),userPosition:{...(f=t.userPosition)==null?void 0:f.coords}}),{stateMachine:r}=t,a=rb(i.smartCollisionEngine.update,1e4),o=To({isFollowing:!1,blueDotTooltips:[],zoomCondition:0,setBlueDotPosition(){if(e&&t.userPosition&&t.userMap){let g=r.state===2||r.state===3;e.update({coordinates:t.userPosition.coords,bearing:t.bearing,radius:g&&t.userPosition.coords.accuracy||0,mapId:t.userMap.id})}},showBlueDotBearing(){if(e&&t.userPosition&&t.userMap){let g=r.state===2||r.state===3;e.update({coordinates:t.userPosition.coords,bearing:t.bearing,radius:g&&t.userPosition.coords.accuracy||0,mapId:t.userMap.id})}},addGhostMarkers(){e&&t.userPosition&&t.userMap&&e.update({mode:el.GHOST,coordinates:t.userPosition.coords,bearing:t.bearing,radius:t.userPosition.coords.accuracy,mapId:t.userMap.id})},addLocationUncertainMarkersAndTooltips(){e&&t.userPosition&&t.userMap&&e.update({mode:el.GREY,coordinates:t.userPosition.coords,radius:0,mapId:t.userMap.id})},addBlueDotMarker(){e&&t.userPosition&&t.userMap&&e.update({mode:el.BLUE,coordinates:t.userPosition.coords,bearing:t.bearing,radius:t.userPosition.coords.accuracy,mapId:t.userMap.id,baseColor:t.enableBlueDotOptions.baseColor})},removeTooltips(){o.blueDotTooltips.forEach(i.tooltips.removeTooltip),o.blueDotTooltips=[]},removeBlueDot(){e.cleanup()},centerBlueDot(){var P,q,D,U,R;if(!t.userPosition)return;let{latitude:g,longitude:b}=t.userPosition.coords;((P=t.userMap)==null?void 0:P.id)!==i.currentMap&&t.userMap!=null&&i.setMapWithReason(t.userMap,"blue-dot-level-transition");let M=t.userMap.createCoordinate(g,b),x=i.getPositionLatLon(g,b),T=i.currentPath!=null&&t.enableBlueDotOptions.useRotationMode,E=i.controls.zoomFactor||1,S=((D=(q=i.options.loadOptions)==null?void 0:q.zoomOverrides)==null?void 0:D.blueDotFollowingZoomFactor)||2.5,_=E*S;if(o.zoomCondition===0&&((R=(U=i.options.loadOptions)==null?void 0:U.zoomOverrides)==null?void 0:R.blueDotFollowingZoomFactor)!=null){o.zoomCondition=1,ff=!0;let B=i.convertTo3DMapPosition({x:M.x,y:M.y});i.focusOn({points:[B],changeZoom:!0,duration:500,focusZoomFactor:_,callback:()=>{o.zoomCondition=2}}),ff=!1}else if(this.zoomCondition!==1&&T){let B=t.userMap;if(B==null)return;let j=i.currentPath,G=i.camera.rotation,Q={x:x.x+B.width/2,y:-x.y+B.height/2},X=j==null?void 0:j.filter(be=>be.map.id===B.id);if(X!=null&&X.length){let be=(0,N_.default)(X,B._scale),ee=qI(be,Q),ge;ee!=null&&ee.proportion&&ee.proportion>.5?ge=be[ee.index||0+1]:ge=be[ee.index||0],G=RI(be,ge)+Math.PI}let ne=i.canvasHeight>i.canvasWidth&&i.canvasHeight>600&&i.canvasWidth>500,$=900,ue=NI(x,G,S*i.controls.getZoomScaledMin(),ne);i.controls.animateCamera({...ue,duration:$}),a()}else this.zoomCondition!==1&&(ff=!0,i.camera.focusOn({coordinates:[M]},{changeZoom:!1,duration:1e3}),ff=!1)},endFollowing(){o.isFollowing=!1,o.zoomCondition=0}}),s=null,c=!1;return i.on(22,()=>{!s&&c&&(s=setTimeout(()=>{o.endFollowing(),clearTimeout(s),s=null},60))}),i.on(26,()=>{ff||o.endFollowing()}),i.on(27,()=>{c=!0}),i.on(28,()=>{s&&(clearTimeout(s),s=null,c=!1)}),i.on(18,()=>{o.endFollowing()}),i.on("user-tilt-begin",()=>{o.endFollowing()}),i.on(20,()=>{o.endFollowing()}),t.on("userDataChanged",g=>{let{position:b,state:M,forceBlueDot:x}=g.newValue;switch(M){case 2:{o.removeTooltips(),o.addGhostMarkers(),b&&(n.updateAnalyticsUserPosition({...b.coords}),n.trackBlueDotEvent(Dr.BLUEDOT_EVENT.FOUND_POSITION)),o.setBlueDotPosition(),o.showBlueDotBearing();break}case 3:{o.removeTooltips(),o.addBlueDotMarker(),!x&&b&&(n.updateAnalyticsUserPosition({...b.coords}),n.trackBlueDotEvent(Dr.BLUEDOT_EVENT.FOUND_FLOOR)),o.setBlueDotPosition(),o.showBlueDotBearing();break}case 4:{o.removeTooltips(),o.addLocationUncertainMarkersAndTooltips(),o.setBlueDotPosition(),o.showBlueDotBearing();break}default:o.removeTooltips(),o.removeBlueDot(),n.updateAnalyticsUserPosition(void 0)}let T=!0,E=!1;g.oldValue&&(T=!!(g.oldValue.position&&g.newValue.position&&((b==null?void 0:b.coords.latitude)!==g.oldValue.position.coords.latitude||(b==null?void 0:b.coords.longitude)!==g.oldValue.position.coords.longitude)),E=g.oldValue.map!==g.newValue.map),o.isFollowing&&(T||E)&&o.centerBlueDot()}),o},"BlueDotUI"),C9=zX;y();y();var dl=20,jX=14,k_=8,wv=72,mf=16,B_=12,GX=52,HX=4,Ev=2,cx=8,ux=128,hx=320,ei=8,F_=2,YX=360*(2/(Math.sqrt(5)+1))/6,WX=60,XX=5,mx=class mx{constructor(){this._element=document.createElement("div"),this._titleElement=document.createElement("select"),this._minimizeElement=document.createElement("button"),this._performancePanelElement=document.createElement("div"),this._performanceEntries=new Map,this._sortedPerformanceEntryNames=[];let e=document.createElement("option");e.value="Performance",e.innerHTML="Performance",e.selected="selected",this._titleElement.appendChild(e),this._titleElement.addEventListener("change",this._onCategoryChanged.bind(this)),this._overviewGraph=new Cv({width:hx,height:ux,seriesList:[]}),this._controlPanels=new Map,this._sortedControlPanelNames=[],this._minimized=!1,this._element.appendChild(this._titleElement),this._element.appendChild(this._minimizeElement),this._element.appendChild(this._performancePanelElement),this._performancePanelElement.appendChild(this._overviewGraph.element),this._layout(),this._minimizeElement.addEventListener("click",this._onMinimizeClicked.bind(this)),window.MappedinDebug==null&&(window.MappedinDebug={}),window.MappedinDebug.DebugUI=this}destroy(){for(let e of this._performanceEntries.values())e.destroy();for(let e of this._controlPanels.values())e.destroy();this._controlPanels=null,this._performanceEntries=null,this._element=null,this._titleElement=null,this._minimizeElement=null,this._performancePanelElement=null,this._overviewGraph=null,Object.setPrototypeOf(this,null)}get element(){return this._element}reportFramePerformance(e){let t=!1;for(let n in e){if(!this._performanceEntries.has(n)){let r=new px({name:n});this._performanceEntries.set(n,r),this._performancePanelElement.appendChild(r.element),this._sortedPerformanceEntryNames.push(n),this._sortedPerformanceEntryNames.sort(),t=!0}this._performanceEntries.get(n).report(e[n])}for(let n of this._performanceEntries.keys())e[n]==null&&this._performanceEntries.get(n).report(0);t&&this._updateLayout();for(let n of this._performanceEntries.values())if(n.series.changed()){this._overviewGraph.redraw();break}}addDebugControls(e){for(let t in e){for(let n of e[t]){let{name:r,description:a,control:o}=n;this._addDebugControl(t,r,a,o)}this._controlPanels.get(t)._updateLayout()}this._updateLayout()}addDebugControl(e,t,n,r){this._addDebugControl(e,t,n,r),this._updateLayout(),this._controlPanels.get(e)._updateLayout()}removeDebugControls(e){for(let t in e){for(let n of e[t])this._removeDebugControl(t,n);this._controlPanels.get(t)._updateLayout()}this._updateLayout()}removeDebugControl(e,t){this._removeDebugControl(e,t),this._updateLayout(),this._controlPanels.get(e)._updateLayout()}_addDebugControl(e,t,n,r){if(!this._controlPanels.has(e)){let a=new gv({name:e});this._controlPanels.set(e,a),this._element.appendChild(a.element);let o=document.createElement("option");o.value=e,o.innerHTML=e;let s=this._titleElement.children,c=1;for(;c<s.length&&!(s[c].value>e);++c);c===s.length?this._titleElement.appendChild(o):this._titleElement.insertBefore(o,s[c]),Object.assign(a.element.style,{display:"hidden",position:"absolute",left:ei+"px",right:ei+"px",top:ei+dl+ei+"px"})}this._controlPanels.get(e).addControl(t,n,r)}_removeDebugControl(e,t){this._controlPanels.get(e).removeControl(t)}_layout(){Object.assign(this._element.style,{display:"block",position:"absolute",right:k_+"px",top:k_+"px",width:hx+2*ei+"px","font-family":"sans-serif",background:"rgba(255, 255, 255, 0.9)",outline:"1px solid white"}),Object.assign(this._titleElement.style,{display:"block",position:"absolute",left:ei+"px",top:ei+"px","font-size":jX+"px"}),Object.assign(this._minimizeElement.style,{display:"block",position:"absolute",right:ei+"px",top:ei+"px",width:dl*1.5+"px",height:dl+"px"}),Object.assign(this._performancePanelElement.style,{display:"block",position:"absolute",left:ei+"px",right:ei+"px",top:ei+dl+ei+"px"}),Object.assign(this._overviewGraph.element.style,{display:"block",position:"absolute",left:"0px",right:"0px",height:ux+"px",border:"1px solid white",outline:"1px solid #bbb"}),this._updateLayout()}_updateLayout(){let e=null;for(let t of this._titleElement.children){t.selected&&(e=t);let n=t.selected&&!this._minimized;t.value==="Performance"?this._performancePanelElement.style.display=n?"block":"none":this._controlPanels.get(t.value).element.style.display=n?"block":"none"}this._minimized?this._element.style.height=ei+dl+ei+"px":e.value==="Performance"?this._element.style.height=ei+dl+(wv+cx)*this._performanceEntries.size+ux+ei+2*ei+"px":this._element.style.height=ei+dl+this._controlPanels.get(e.value).height+ei+"px";for(let t=0;t<this._sortedPerformanceEntryNames.length;++t){let n=this._sortedPerformanceEntryNames[t],r=this._performanceEntries.get(n);r.setHue(t*YX),r.element.style.top=(wv+cx)*t+"px"}this._overviewGraph.setSeriesList(this._sortedPerformanceEntryNames.map(t=>this._performanceEntries.get(t).series)),this._overviewGraph.element.style.top=(wv+cx)*this._performanceEntries.size+ei+"px",this._minimizeElement.innerHTML=this._minimized?"\u21D5":"\u21D7"}_onMinimizeClicked(){this._minimized=!this._minimized,this._updateLayout()}_onCategoryChanged(){this._updateLayout()}};l(mx,"DebugUI");var su=mx,gx=class gx{constructor({name:e,hue:t}){this._name=e,this.series=new fx({hue:t}),this._graph=new Cv({width:hx,height:GX,seriesList:[this.series]}),this._element=document.createElement("div"),this._nameElement=document.createElement("div"),this._hueElement=document.createElement("div"),this._lastFrameTimeElement=document.createElement("div"),this._element.appendChild(this._graph.element),this._element.appendChild(this._nameElement),this._element.appendChild(this._hueElement),this._element.appendChild(this._lastFrameTimeElement),this._layout()}destroy(){this._element.removeChild(this._graph.element),this._element.removeChild(this._nameElement),this._element.removeChild(this._hueElement),this._element.removeChild(this._lastFrameTimeElement),this._graph.destroy(),this._element=null,this._nameElement=null,this._hueElement=null,this._lastFrameTimeElement=null}_layout(){Object.assign(this._element.style,{display:"block",position:"absolute",left:"0px",right:"0px",height:wv+"px"}),Object.assign(this._hueElement.style,{display:"block",position:"absolute",left:"-1px",top:Ev-1+"px",width:mf-2*Ev+"px",height:mf-2*Ev+"px","background-color":gf(this.series.hue,.3,.9),border:"1px solid "+gf(this.series.hue,.9,.9),"border-radius":"2px"}),Object.assign(this._nameElement.style,{display:"block",position:"absolute",left:mf-Ev+HX+"px",right:"0px",top:"0px",height:mf+"px","font-size":B_+"px","text-align":"left","vertical-align":"middle"}),Object.assign(this._lastFrameTimeElement.style,{display:"block",position:"absolute",left:"0px",right:"0px",top:"0px",height:mf+"px","font-size":B_+"px","text-align":"right","vertical-align":"middle"}),Object.assign(this._graph.element.style,{display:"block",position:"absolute",left:"0px",right:"0px",bottom:"0px","text-align":"right",border:"1px solid white",outline:"1px solid "+gf(this.series.hue,.2,1)}),this._nameElement.innerHTML=this._name}get element(){return this._element}report(e){if(this.series.report(e),this.series.changed()){if(this.series.length>=1){let t=0;for(let r=0;r<this.series.length;++r)t+=this.series.at(r);let n=this.series.maximumValue();this._lastFrameTimeElement.innerHTML="\u222B "+(t/this.series.length).toFixed(F_)+"ms, \u2912 "+n.toFixed(F_)+" ms"}this._graph.redraw()}}setHue(e){this.series.hue=e,this._graph.setSeriesList([this.series]),this._layout()}};l(gx,"PerformanceEntry");var px=gx,vx=class vx{constructor({seriesList:e,width:t,height:n}){this._gradients=new Map,this._canvas=document.createElement("canvas"),this._layout(t,n),this._context=this._canvas.getContext("2d"),this.setSeriesList(e)}destroy(){this._gradients=null,this._canvas=null,this._context=null,Object.setPrototypeOf(this,null)}_layout(e,t){Object.assign(this._canvas.style,{display:"block",position:"absolute",left:"0px",right:"0px",width:e+"px",height:t+"px"}),this._canvas.width=e*window.devicePixelRatio,this._canvas.height=t*window.devicePixelRatio}get element(){return this._canvas}redraw(){this._context.clearRect(0,0,this._canvas.width,this._canvas.height);let e=0;for(let t of this._seriesList)e=Math.max(e,t.maximumValue());for(let t of this._seriesList)if(t.length>=1){this._context.beginPath();let n=1-(t.length-1)/(t.windowSize-1),r=1-t.at(0)/e;this._context.moveTo(n*this._canvas.width,r*this._canvas.height);for(let a=1;a<t.length;++a){let o=1-(t.length-1-a)/(t.windowSize-1),s=1-t.at(a)/e;this._context.lineTo(o*this._canvas.width,s*this._canvas.height)}this._context.strokeStyle=this._gradients.get(t),this._context.lineWidth=window.devicePixelRatio,this._context.stroke()}}setSeriesList(e){this._seriesList=e;for(let t of this._seriesList){let n=this._context.createLinearGradient(0,0,0,this._canvas.height);n.addColorStop(0,gf(t.hue,1,1)),n.addColorStop(1,gf(t.hue,.5,.5)),this._gradients.set(t,n)}}};l(vx,"LineGraph");var Cv=vx,yx=class yx{constructor({windowSize:e=WX,totalAccumulationCount:t=XX,hue:n=0}){this.windowSize=e,this.hue=n,this._totalAccumulationCount=t,this._ringBuffer=new Array(this.windowSize).fill(0),this._ringBufferLength=0,this._ringBufferPointer=0,this._accumulatorValue=0,this._accumulatorCount=0,this._changed=!0}destroy(){}report(e){this._accumulatorValue+=e,++this._accumulatorCount,this._changed=!1,this._accumulatorCount===this._totalAccumulationCount&&(this._push(this._accumulatorValue/this._totalAccumulationCount),this._accumulatorValue=0,this._accumulatorCount=0,this._changed=!0)}at(e){if(!Number.isFinite(e)||e>=this._ringBufferLength||e<0)throw new Error("invalid index: "+e+" (length: "+this.length+")");let t=(this._ringBufferPointer+e-this._ringBufferLength+this.windowSize)%this.windowSize;return this._ringBuffer[t]}_push(e){this._ringBuffer[this._ringBufferPointer]=e,++this._ringBufferLength,this._ringBufferLength>this.windowSize&&(this._ringBufferLength=this.windowSize),++this._ringBufferPointer,this._ringBufferPointer>=this.windowSize&&(this._ringBufferPointer=0)}maximumValue(){let e=0;for(let t=0;t<this._ringBufferLength;++t)e=Math.max(e,this.at(t));return e}changed(){return this._changed}get length(){return this._ringBufferLength}};l(yx,"TimeSeries");var fx=yx;function gf(i,e,t,n){let r=i%360/60,a=r|0,o=r-a,s=t*(1-e),c=t*(1-e*o),u=t*(1-e*(1-o)),h=0,m=0,f=0;switch(a){case 0:h=t,m=u,f=s;break;case 1:h=c,m=t,f=s;break;case 2:h=s,m=t,f=u;break;case 3:h=s,m=c,f=t;break;case 4:h=u,m=s,f=t;break;case 5:h=t,m=s,f=c;break}return"#"+dx(h)+dx(m)+dx(f)}l(gf,"hsv2rgb");function dx(i){let e=(i*255|0).toString(16);return e.length===1&&(e="0"+e),e}l(dx,"toHex");y();y();y();var ZX=new Pn,U_=6371e3;function z_(i,e,t,n){let r=new rd;return r.setFromAxisAngle(t,n),i.applyQuaternion(r),i.position.sub(e),i.position.applyQuaternion(r),i.position.add(e),i}l(z_,"rotateAroundWorldAxis");function j_(i){let e=i.max.x-i.min.x,t=i.max.y-i.min.y,n=Math.max(e,t),r=new Ye(new z,new z(n,n,0)),a=new z;return a.subVectors(i.getCenter(new z),r.getCenter(new z)),r.translate(a),r}l(j_,"getSquareBoundingBoxByLongestSide");function Av(i,e,t,n){if(e===0)return i;let{lat:r,lon:a}=i,o=bx(t),s=bx(r),c=bx(a),u=e/U_*Math.cos(o),h=e/U_*Math.sin(o)/Math.cos(s),m=s+u,f=c+h,g=V_(m),b=V_(f);return n.createCoordinate(g,b)}l(Av,"translateCoordinate");function bx(i){return i*Math.PI/180}l(bx,"toRadians");function V_(i){return i*180/Math.PI}l(V_,"toDegrees");async function G_(i,e,t,n,r){let{signal:a}=n,o;try{o=await(await r.fetchTile(i,e,t,a)).blob()}catch(s){return}try{let s=await createImageBitmap(o,{imageOrientation:"flipY",colorSpaceConversion:"none"}),c=new ad(s);return c.wrapS=fi,c.wrapT=fi,c}catch{return new Promise(c=>{let u=URL.createObjectURL(o),h=ZX.load(u,()=>{h.colorSpace=rt,h.wrapS=fi,h.wrapT=fi,c(h)})})}}l(G_,"loadTextureByTile");function H_(i){return Math.sqrt(Math.pow(i,2)+Math.pow(i,2))/2}l(H_,"calculateCircleRadius");y();var Vo=class Vo{static MapSize(e,t){return Math.ceil(t*Math.pow(2,e))}static Clip(e,t,n){return Math.min(Math.max(e,t),n)}static GlobalPixelToPosition(e,t,n){var r=this.MapSize(t,n),a=this.Clip(e[0],0,r-1)/r-.5,o=.5-this.Clip(e[1],0,r-1)/r;return[360*a,90-360*Math.atan(Math.exp(-o*2*Math.PI))/Math.PI]}static GroundResolution(e,t,n){return e=this.Clip(e,this.MinLatitude,this.MaxLatitude),Math.cos(e*Math.PI/180)*2*Math.PI*this.EarthRadius/this.MapSize(t,n)}static TileXYToBoundingBox(e,t,n,r){var a=e*r,o=t*r,s=a+r,c=o+r,u=this.GlobalPixelToPosition([a,o],n,r),h=this.GlobalPixelToPosition([s,c],n,r);return[u[0],h[1],h[0],u[1]]}static PositionToTileXY(e,t,n){var r=this.Clip(e[1],this.MinLatitude,this.MaxLatitude),a=this.Clip(e[0],this.MinLongitude,this.MaxLongitude),o=(a+180)/360,s=Math.sin(r*Math.PI/180),c=.5-Math.log((1+s)/(1-s))/(4*Math.PI),u=this.MapSize(t,n);return{tileX:Math.floor(this.Clip(o*u+.5,0,u-1)/n),tileY:Math.floor(this.Clip(c*u+.5,0,u-1)/n)}}static TileXYToQuadKey(e,t,n){for(var r=[],a=n;a>0;a--){var o=0,s=1<<a-1;e&s&&o++,t&s&&(o+=2),r.push(o)}return r.join("")}};l(Vo,"TileMath"),p(Vo,"EarthRadius",6378137),p(Vo,"MinLatitude",-85.05112878),p(Vo,"MaxLatitude",85.05112878),p(Vo,"MinLongitude",-180),p(Vo,"MaxLongitude",180);var zo=Vo;var Zr,Qr,yf,xx=class xx{constructor(e,t,n,r,a){p(this,"center");p(this,"zoomLevel");w(this,Zr,void 0);w(this,Qr,void 0);w(this,yf,void 0);p(this,"mesh");p(this,"material");p(this,"texture");p(this,"cache",{});p(this,"rendered",!1);this.center=e,this.zoomLevel=t,A(this,Zr,n),A(this,Qr,r),A(this,yf,a)}get tileXY(){if(this.cache.tileXY)return this.cache.tileXY;let{tileX:e,tileY:t}=zo.PositionToTileXY([this.center.lon,this.center.lat],this.zoomLevel,d(this,Zr).tileSize);return this.cache.tileXY={tileX:e,tileY:t},{tileX:e,tileY:t}}get tileBoundingBoxInLatLon(){if(this.cache.tileBoundingBoxInLatLon)return this.cache.tileBoundingBoxInLatLon;let{tileX:e,tileY:t}=this.tileXY,{tileSize:n}=d(this,Zr),r=zo.TileXYToBoundingBox(e,t,this.zoomLevel,n);return this.cache.tileBoundingBoxInLatLon=r,r}discardTexture(){if(d(this,Zr).tileRenderMode===1){this.rendered=!1,this.material.opacity=0,this.material.map=null,this.material.needsUpdate=!0;try{this.texture.dispose()}catch{}d(this,Qr).tryRendering()}}applyTexture(){if(this.rendered&&d(this,Zr).tileRenderMode!==1)return;this.rendered=!0;let{tileX:e,tileY:t}=this.tileXY;d(this,Qr).taskScheduler.scheduleTask(new bt({name:"fetchTile",callback:()=>{G_(e,t,this.zoomLevel,d(this,yf),d(this,Zr).outdoorContextProvider).then(n=>{this.texture=n,this.material.map=n,Nn({from:{opacity:0},to:{opacity:1},duration:500,onStart:()=>{this.mesh.visible=!0},onUpdate:({opacity:r})=>{this.material.opacity=d(this,Zr).visible===!0?r:0,this.material.needsUpdate=!0,d(this,Qr).tryRendering()}}).start(d(this,Qr))})}}))}render(e,t){let n=e/t.scale,r=new nn(n,n,1,1);this.material=new Oi({opacity:0,transparent:!0,stencilWrite:!0,stencilFunc:bm,stencilRef:1}),this.mesh=new qe(r,this.material),this.mesh.visible=!1;let a=this.tileBoundingBoxInLatLon,o=d(this,Qr).referenceMap.createCoordinate(a[3],a[2]),s=d(this,Qr).convertTo3DMapPosition(o);return this.mesh.position.set(s.x-n/2,s.y-n/2,-1),z_(this.mesh,s,new z(0,0,1),-t.getNorth()),this.mesh}};Zr=new WeakMap,Qr=new WeakMap,yf=new WeakMap,l(xx,"Tile");var vf=xx;var KX=2;var Pv="#f0f0f1",Tt,Vn=class Vn{constructor(e){p(this,"tileSize",256);p(this,"token","");p(this,"apiKey");p(this,"tileRenderMode",1);p(this,"currentAbortController",new AbortController);w(this,Tt,void 0);p(this,"attributionEl");p(this,"outdoorContextProvider");p(this,"renderVisibleTiles");p(this,"cachedZoomLevel",-1/0);p(this,"visible",!0);p(this,"zoomLevelToAltitudeMap",[[18,-1/0],[17,800],[16,1800],[15,3e3]]);p(this,"plane");p(this,"tiles",[]);p(this,"maskMeshBoundingBox");var t,n,r,a;A(this,Tt,e),this.renderVisibleTiles=hn(this._renderVisibleTiles,32),Vn.ENABLED&&((t=Vn.OPTIONS)==null?void 0:t.provider)!==null&&(this.outdoorContextProvider=(n=Vn.OPTIONS)==null?void 0:n.provider,this.tileRenderMode=(a=(r=Vn.OPTIONS)==null?void 0:r.tileRenderMode)!=null?a:this.tileRenderMode,d(this,Tt).camera.on("CHANGED",()=>{this.fetchTiles(),this.renderVisibleTiles()}),d(this,Tt).on(7,()=>{this.fetchTiles(),this.renderVisibleTiles()}))}createAttributionEl(){this.attributionEl=document.createElement("div"),Object.assign(this.attributionEl.style,{position:"absolute",bottom:0,right:0,padding:"2px",pointerEvents:"none"}),d(this,Tt).container.append(this.attributionEl)}_renderVisibleTiles(){let e=d(this,Tt).cameraObject,t=new wm;t.setFromProjectionMatrix(new tt().multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse));for(let n of this.tiles){let r=n.mesh,o=r.geometry.attributes.position.array,s=[r.localToWorld(new z(o[0],o[1],o[2])),r.localToWorld(new z(o[3],o[4],o[5])),r.localToWorld(new z(o[6],o[7],o[8])),r.localToWorld(new z(o[9],o[10],o[11]))],c=!1;for(let u=0;u<4;u++)if((t.containsPoint(s[u])||t.intersectsObject(r))&&(c=!0,!n.rendered)){n.applyTexture();break}n.rendered&&!c&&n.discardTexture()}}fadeOut(){return!Vn.ENABLED||!this.visible?Promise.resolve():Nn({from:{opacity:1},to:{opacity:0},onUpdate:({opacity:e})=>{this.plane.children.forEach(t=>{t.material.opacity=e,t.material.needsUpdate=!0,d(this,Tt).tryRendering()})},onComplete:()=>{this.visible=!1,this.plane.visible=!1,d(this,Tt).tryRendering()}}).start(d(this,Tt))}fadeIn(){return!Vn.ENABLED||this.visible?Promise.resolve():Nn({from:{opacity:0},to:{opacity:1},onStart:()=>{this.plane.visible=!0,d(this,Tt).tryRendering()},onUpdate:({opacity:e})=>{this.plane.children.forEach(t=>{t.material.opacity=e,t.material.needsUpdate=!0,d(this,Tt).tryRendering()})},onComplete:()=>{this.visible=!0}}).start(d(this,Tt))}fetchTiles(){let t=d(this,Tt).controls.getZoom()*d(this,Tt).referenceMap.scale,n=-1/0;this.zoomLevelToAltitudeMap.forEach(([r,a])=>{t>a&&(n=r)}),n!==this.cachedZoomLevel&&(this.currentAbortController.signal.aborted||(this.currentAbortController.abort(),this.currentAbortController=new AbortController),this.fetchTilesForZoomLevel(n))}async fetchTilesForZoomLevel(e){var D,U;this.plane&&(this.tiles=[],d(this,Tt).scene.remove(this.plane),this.plane.destroy(),d(this,Tt).tryRendering()),this.cachedZoomLevel=e,this.plane=new Wn;let t=d(this,Tt).referenceMap,n=d(this,Tt).mapObjects.get(t.id);await n.load();let r=n.boundingBox,a=new Ye(new z(r.min.x,r.min.y,r.min.z),new z(r.max.x,r.max.y,r.max.z)),o=j_(a),s=XA(o,(U=(D=Vn.OPTIONS)==null?void 0:D.boundingBoxMultiplier)!=null?U:KX),{min:c,max:u}=s,h=new nn(u.x-c.x,u.y-c.y),m=new Oi({color:Pv,stencilWrite:!0,stencilRef:1,depthWrite:!1,stencilFunc:xm,stencilFail:Ul,stencilZFail:Ul,stencilZPass:Ul}),f=new qe(h,m);f.renderOrder=-1,f.applyMatrix4(n.object.matrix),this.maskMeshBoundingBox=new Ye().setFromObject(f),this.maskMeshBoundingBox.min.z=-100,this.maskMeshBoundingBox.max.z=100,this.plane.add(f);let g=new z(s.min.x,s.min.y,0),b=new z(s.max.x,s.max.y,0);if(typeof this.outdoorContextProvider.fetchAttribution=="function"){this.attributionEl==null&&this.createAttributionEl();let R=d(this,Tt).convert3DMapPositionToCoordinate(g),B=d(this,Tt).convert3DMapPositionToCoordinate(b);this.outdoorContextProvider.fetchAttribution(e,[B.lon,B.lat,R.lon,R.lat]).then(j=>j.json()).then(({copyrights:j})=>{this.attributionEl.innerHTML=j[0]}).catch(j=>F.error(j))}let M=s.getCenter(new z),x=d(this,Tt).convert3DMapPositionToCoordinate(M,t),T=zo.GroundResolution(x.lat,e,this.tileSize),E=this.tileSize*T,S=new vf(x,e,this,d(this,Tt),this.currentAbortController);S.render(E,t),this.plane.add(S.mesh),this.tiles.push(S);let _=H_(s.max.x-s.min.x),P=E/t.scale,q=Math.ceil(_/P);for(let R=1;R<=q;R++)this.populateLayer(R,x,e,E,t);d(this,Tt).scene.add(this.plane)}populateLayer(e=1,t,n,r,a){let o=Av(t,r*e,0,a);o=Av(o,r*e,270,a);let s=e*2+1,c=o,u=[90,180,270,0];for(let h of u)for(let m=0;m<s-1;m++){let f=new vf(c,n,this,d(this,Tt),this.currentAbortController);f.render(r,a),this.checkIfTileIsInBoundingBox(f)&&(this.plane.add(f.mesh),this.tiles.push(f)),c=Av(c,r,h,a)}}checkIfTileIsInBoundingBox(e){let t=new Ye().setFromObject(e.mesh);return this.maskMeshBoundingBox.intersectsBox(t)||this.maskMeshBoundingBox.containsBox(t)}};Tt=new WeakMap,l(Vn,"TileManager"),p(Vn,"ENABLED",!1),p(Vn,"OPTIONS");var hl=Vn;y();y();(function(){typeof globalThis!="object"&&(Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__)})();var Y_=et(Vr());y();Zt.prototype.destroy=function(){for(let i=this.children.length-1;i>=0;i--)this.children[i].destroy();this.geometry&&(this.geometry.dispose(),this.geometry=void 0),this.parent&&this.parent.remove(this),this.texture&&(this.texture.dispose(),this.texture=void 0),Array.isArray(this.material)?this.material.forEach(function(i){Mo(i)}):typeof this.material<"u"&&Mo(this.material),this.material=void 0};var $t=new Xn,JX={},Tn={BEFORE_CAMERA:5,CAMERA:4,AFTER_CAMERA:3,RENDER:2,AFTER_RENDER:1,AFTER_ALL_UPDATES:0},$X=mt.radToDeg(.698132);JX.CameraControls=yv;var pl,lu,cu,uu,jo,Ua,Go,Ai,Sv,fl,du,Ho,bf,xf,ml,Tf,Mf,Ef,wf,Cf,Af,Pf,Yo,Sf,Va,Kr,hu,If,_f,Of,pu,gl,Df,vl,yl,fr,mr,Iv,fu,Wo,_v,Ov,Dv,Lv,Lf,qf,Ex=class Ex extends Li{constructor(t,n,r={},a){var x,T,E,S,_,P,q,D,U,R,B;super();p(this,"eventSystem");p(this,"floatingLabels");p(this,"flatLabels");p(this,"paths");p(this,"polygonColors");p(this,"polygonHoverColors");p(this,"polygonInteraction");p(this,"polygonStates");p(this,"polygonImages");p(this,"markers");p(this,"tooltips");p(this,"threeDMarkers");p(this,"blueDot");p(this,"camera");p(this,"outdoorViewController");p(this,"exportController");p(this,"watermark");p(this,"layerController");p(this,"options");p(this,"currentPath");p(this,"state","explore");p(this,"imageFlippingCache",{});p(this,"imageFlippingEnabled",!1);p(this,"MapView");p(this,"type");p(this,"container");p(this,"venue");p(this,"colors");p(this,"loadOptions");p(this,"smartCollisionEngine");p(this,"taskScheduler");p(this,"renderer");p(this,"highlightedPolygons",{});p(this,"outlinedPolygons",new Map);p(this,"scene");p(this,"focusZoomFactor");p(this,"cameraObject");p(this,"polygonMeshesById");p(this,"textLabelsByPolygonId");p(this,"labelOrientationDelay");p(this,"isWebGL2");p(this,"interactivePolygons");p(this,"polygonHoverColorsById");p(this,"mapManager");p(this,"sceneManager");p(this,"mapObjects");p(this,"referenceMap");p(this,"currentInteractionEvent");p(this,"resolution");p(this,"cameraParameters");p(this,"controls");p(this,"cameraPlane");p(this,"canvasWidth");p(this,"canvasHeight");p(this,"cachedPadding",{top:0,left:0,right:0,bottom:0});p(this,"currentScale",0);p(this,"rendererDomElement");p(this,"resolutionScale");w(this,pl,void 0);w(this,lu,void 0);w(this,cu,void 0);w(this,uu,void 0);w(this,jo,void 0);w(this,Ua,void 0);w(this,Go,void 0);w(this,Ai,null);w(this,Sv,["top","bottom","left","right"]);w(this,fl,{PIXELS:"pixels",PORTIONS:"portions"});w(this,du,void 0);w(this,Ho,void 0);w(this,bf,void 0);w(this,xf,void 0);w(this,ml,void 0);w(this,Tf,void 0);w(this,Mf,void 0);w(this,Ef,void 0);w(this,wf,void 0);w(this,Cf,void 0);w(this,Af,void 0);w(this,Pf,void 0);w(this,Yo,void 0);w(this,Sf,void 0);w(this,Va,!1);w(this,Kr,void 0);w(this,hu,void 0);p(this,"performanceController");p(this,"outdoorGeometryLayers",[]);p(this,"billboardManager");p(this,"stackedMaps");p(this,"tileManager");p(this,"setMapReason");w(this,If,l((t=!0)=>{A(this,Va,t)},"#setFlippablesNeedUpdating"));w(this,_f,l(()=>{this.smartCollisionEngine.init(this.container,d(this,Iv))},"#initializeCollisionEngine"));w(this,Of,l(t=>Math.trunc(t*100)/100,"#round100"));w(this,pu,l(()=>{var t,n;this.canvasWidth=this.rendererDomElement.clientWidth,this.canvasHeight=this.rendererDomElement.clientHeight,d(this,Wo).call(this),this.outdoorViewController!=null&&this.outdoorViewController.resize(),d(this,gl).call(this),this.smartCollisionEngine.resize(this.container),typeof((n=(t=this.sceneManager)==null?void 0:t.currentScene)==null?void 0:n.resize)=="function"&&this.sceneManager.currentScene.resize(),this.watermark.resize()},"#onWindowResize"));w(this,gl,l(()=>{this.renderer.render(Re.ALL,null,this.scene,this.cameraObject)},"#renderFull"));w(this,Df,l((t,n)=>{t.style.transform="rotate("+(n+t._mRotationOffset)+"rad)"},"#rotateNode"));w(this,vl,l(()=>{A(this,jo,!0),A(this,Va,!0)},"#cameraRotationStarted"));w(this,yl,l(()=>{A(this,jo,!1),A(this,Va,!0)},"#cameraRotationStopped"));w(this,fr,l(()=>{},"#cameraMovementStart"));w(this,mr,l(()=>{},"#cameraMovementEnd"));w(this,Iv,l((t,n)=>{this.cameraObject.updateProjectionMatrix(),this.cameraObject.updateMatrixWorld(!0);let r=this.mapObjects.get(n);if(r==null)return{x:0,y:0};let a=this.convertTo3DMapPosition(t.nodeOrCoordinate);typeof t.height<"u"&&(a.z+=t.height*r.object.scale.x);let o=a.project(this.cameraObject),s=(o.x+1)/2*this.canvasWidth-0/2,c=(-o.y+1)/2*this.canvasHeight-0/2,u=d(this,Of).call(this,s),h=d(this,Of).call(this,c);return{x:u,y:h}},"#project"));w(this,fu,l((t,n)=>{this.renderer.setBufferSize(t,n),this.cameraObject.aspect=t/n,this.cameraObject.updateProjectionMatrix(),this.cameraObject.updateMatrixWorld(!0),this.resolution.x=t,this.resolution.y=n},"#setBufferSize"));w(this,Wo,l(()=>{let t=this.canvasWidth=this.rendererDomElement.clientWidth,n=this.canvasHeight=this.rendererDomElement.clientHeight,r=Math.floor(t*this.resolutionScale),a=Math.floor(n*this.resolutionScale);if(this.rendererDomElement.width!==r||this.rendererDomElement.height!==a){if(this.rendererDomElement.width*this.rendererDomElement.height*r*a!==0){let o=this.rendererDomElement.width!==r?this.rendererDomElement.width/r:this.rendererDomElement.height/a;this.controls.setZoom(o*this.controls.getZoom())}d(this,fu).call(this,r,a)}A(this,Yo,!1)},"#measureCanvas"));w(this,_v,l(()=>{var n;let t=d(this,Kr).rotation.z;if(d(this,jo)||d(this,Va)){let r=(n=this.sceneManager)==null?void 0:n.currentScene.mapObjects;r==null||r.forEach(a=>{let o=t-a.object.rotation.z;a.imagesToFlip.forEach(s=>s.flipIfNeeded(o))})}},"#rotateTextLabels"));w(this,Ov,l(()=>{var n;let t=d(this,Kr).rotation.z;if(d(this,jo)||d(this,Va)){let r=(n=this.sceneManager)==null?void 0:n.currentScene.mapObjects;r==null||r.forEach(a=>{let o=t-a.object.rotation.z;a.imagesToFlip.forEach(s=>s.flipIfNeeded(o))})}},"#rotateImages"));w(this,Dv,l(t=>{t.addDebugControls({MapView3D:[{name:"Background Color",description:"The color of the mapview background. Will be obscured if there is a fully-opaque outdoor context.",control:new uf({current:new Ee("#ffffff"),onValueChanged:n=>{this.renderer.setBackgroundColor(n,this.renderer.backgroundAlpha),this.tryRendering()}})},{name:"Background Opacity",description:"The opacity of the mapview background. Will be obscured if there is a fully-opaque outdoor context.",control:new cf({minimum:0,maximum:1,step:.01,current:this.renderer.backgroundAlpha,onValueChanged:n=>{this.renderer.setBackgroundColor(this.renderer.backgroundColor,n),this.tryRendering()}})}]})},"#addDebugControls"));w(this,Lv,l(t=>{t.removeDebugControls({MapView3D:["Background Color","Background Opacity"]})},"#removeDebugControls"));w(this,Lf,l((t,n)=>$t.intersectObjects(t,!0).filter(a=>a.object.name?n&&this.venue._polygonsById?a.object.name in this.venue._polygonsById:a.object.name in this.interactivePolygons:!1).map(a=>this.venue._polygonsById[a.object.name])||[],"#getPolygonsFromRaycaster"));w(this,qf,l(()=>{this.tryRendering()},"#onCameraChange"));p(this,"getPolygon",l(t=>xn(t,this.venue.polygons),"getPolygon"));p(this,"showEntireMap",l(t=>{if(this.currentMap==null)return;t||(t={});let n=this.mapObjects.get(this.currentMap),r;return t.interactiveOnly?r=Object.keys(this.interactivePolygons):(r=n==null?void 0:n.hoverableMeshChildren.map(function(a){return a.name}),!r.length&&(n!=null&&n.elements)&&(r=Object.keys(n.elements))),t.polygons=r,this.focusOn(t)},"showEntireMap"));p(this,"resetPanBounds",l(()=>{var r;if(this.currentMap==null)return;let t=this.mapObjects.get(this.currentMap);this.controls.panBounds.min=this.controls.getPosition(),this.controls.panBounds.max=this.controls.getPosition();let n=t==null?void 0:t.boundingBox;n||(n=new Ye().setFromObject(t==null?void 0:t.object),this.mapObjects.get(this.currentMap).boundingBox=n),(r=this.mapManager)==null||r.expandPanBounds(n)},"resetPanBounds"));p(this,"focusOn",l(t=>{var D,U;if(this.currentMap==null||t==null)return;let n=t.changeZoom!==void 0?t.changeZoom:!0,r;t.duration!==void 0?r=t.duration:C.env.TESTING==="true"?r=0:r=200;let a=t.focusZoomFactor!==void 0?t.focusZoomFactor:this.focusZoomFactor,o=t.curve,s=t.horizontalFovFactor!==void 0?t.horizontalFovFactor:1,c=t.verticalFovFactor!==void 0?t.verticalFovFactor:1,u=t.callback,h=t.cancelledCallback,m=t.minZoom!==void 0?t.minZoom:this.controls.minZoom,f=t.maxZoom!==void 0?t.maxZoom:this.controls.maxZoom,g=(D=t.updateZoomLimits)!=null?D:!0,b=!1,M=[],x=(U=t.doNotEmitFocusOnEvent)!=null?U:!1;if(d(this,Wo).call(this),t.nodes){let R=t.nodes;for(var T=0,E=R.length;T<E;T++){let B=R[T];typeof B=="string"&&(B=xn(B,this.venue.nodes)),(B.map==null||B.map.id==this.currentMap)&&(M.push(this.convertTo3DMapPosition(B)),b=!0)}}if(t.debug){d(this,Go)&&d(this,Go).destroy(),A(this,Go,new Zt),this.scene.add(d(this,Go));var S=new Em(100,100,100),_=new Oi({color:65280})}t.points&&(t.points.forEach(R=>M.push(R)),b=!0);let P=this.controls.getRotation(),q=this.controls.getTilt();if(this.controls.setRotation(t.rotation,!0),this.controls.setTilt(t.tilt,!0),t.boundingBox){let{min:R,max:B}=t.boundingBox;[new z(R.x,R.y,R.z),new z(R.x,B.y,R.z),new z(B.x,R.y,R.z),new z(B.x,B.y,R.z),new z(R.x,R.y,B.z),new z(R.x,B.y,B.z),new z(B.x,R.y,B.z),new z(B.x,B.y,B.z)].forEach(G=>{if(t.debug){let Q=new qe(S,_);Q.position.set(G.x,G.y,G.z),d(this,Go).add(Q)}M.push(G)}),b=!0}if(t.polygons){let R=t.polygons,B=this.mapObjects.get(this.currentMap),j=0;for(T=0,E=R.length;T<E;T++){let G=ut(R[T]),Q=B==null?void 0:B.objectsDictionary[G];if(Q)if(j++,Q.geometry.attributes){let X=Q.geometry.attributes.position;for(let ne=0,$=X.count;ne<$;ne++){let ue=new z;ue.set(X.getX(ne),X.getY(ne),X.getZ(ne)).applyMatrix4(B==null?void 0:B.object.matrix),M.push(ue)}b=!0}else{let X=Q.geometry.vertices;for(let ne=0,$=X.length;ne<$;ne++)M.push(Q.geometry.vertices[ne].clone().applyMatrix4(B==null?void 0:B.object.matrix));b=!0}}j===1&&(a=this.loadOptions&&this.loadOptions.zoomOverrides&&this.loadOptions.zoomOverrides.focusZoomFactorPolygon||a)}if(b){this.tryRendering();let R=t.padding||this.cachedPadding||{top:0,bottom:0,left:0,right:0},B=this.getZoomLevelForCurrentMap(),j=m*a,G=f*a,Q=this.getCameraFrameForPoints(M,s,c,R,!n,j,G),X=Q.zoom;g&&(this.controls.restrictZoomLimits(B),this.controls.expandZoomLimits(X*a));let ne={position:Q.position,tilt:t.tilt,rotation:t.rotation};return n&&(ne.zoom=mt.clamp(Q.zoom*a,m,f)),x||this.publish(26),this.controls.setRotation(P,!0),this.controls.setTilt(q,!0),this.controls.animateCamera(ne,r,o,u,h)}else return x||this.publish(26),this.controls.setRotation(P,!0),this.controls.setTilt(q,!0),this.controls.animateCamera({},r,o,u,h)},"focusOn"));p(this,"focusOnPolygon",l((t,n,r,a)=>this.focusOn({polygons:[t],changeZoom:n,duration:r,curve:a}),"focusOnPolygon"));p(this,"focusOnPath",l((t,n,r,a,o)=>this.focusOn({nodes:t,polygons:n,changeZoom:r,duration:a,curve:o}),"focusOnPath"));p(this,"getCameraFrameForPoints",l((t,n,r,a,o=!0,s=this.controls.getZoomScaledMin(),c=this.controls.getZoomScaledMax())=>{(!r||isNaN(r))&&(r=1),(!n||isNaN(n))&&(n=1);let u={position:this.controls.getPosition(),zoom:this.controls.minZoom};if(t==null||t.length===0)return u;a||(a={top:0,bottom:0,left:0,right:0,type:d(this,fl).PIXELS});for(let ce of d(this,Sv))typeof a[ce]!="number"&&(a[ce]=0);if(a.type||(a.type=d(this,fl).PIXELS),a.type===d(this,fl).PORTIONS&&(a={top:a.top*this.canvasHeight,bottom:a.bottom*this.canvasHeight,left:a.left*this.canvasWidth,right:a.right*this.canvasWidth,type:d(this,fl).PIXELS}),a.left+a.right>=this.canvasWidth||a.top+a.bottom>=this.canvasHeight)return u;d(this,Kr).updateMatrixWorld();let h=this.cameraObject.matrixWorldInverse,m=this.cameraObject.fov*(Math.PI/180)/2,f=m*r,g=Math.atan(Math.tan(m)*(this.canvasWidth/this.canvasHeight))*n;if(t.length===1){let ce=t[0].clone();ce.applyMatrix4(h);let Le=this.controls.minZoom*Math.tan(g)*2,St=this.controls.minZoom*Math.tan(f)*2,I=(a.left-a.right)/2/this.canvasWidth,N=(a.top-a.bottom)/2/this.canvasHeight,O=new z(-I*Le,N*St,0);return ce.add(O),ce.applyMatrix4(this.cameraObject.matrixWorld),u.position.x=ce.x,u.position.y=ce.y,u}let b=new z(1/0,1/0,1/0),M=new z(-1/0,-1/0,-1/0),x=new Ye().setFromPoints(t),T;for(let ce=0,Le=t.length;ce<Le;ce++)T=t[ce],T.applyMatrix4(h),b.min(T),M.max(T);let E=M.x-b.x,S=M.y-b.y,_=this.canvasWidth-a.left-a.right,P=this.canvasHeight-a.top-a.bottom,q=(M.x+b.x)/2,D=(M.y+b.y)/2,U=E/_,R=S/P,B=s,j=c,G=B*Math.tan(g)*2,Q=j*Math.tan(g)*2,X=G/this.canvasWidth,ne=Q/this.canvasWidth,$=Math.max(U,R);o||($=Math.min(Math.max($,X),ne));let ue=_*$,be=P*$,ee={min:{x:q-ue/2-a.left*$,y:D-be/2-a.bottom*$},max:{x:q+ue/2+a.right*$,y:D+be/2+a.top*$}},ge=(ee.min.x+ee.max.x)/2,de=(ee.min.y+ee.max.y)/2,Ae=x.getCenter(new z),Fe=Math.abs(ge-ee.min.x),Ce=Math.abs(de-ee.min.y),He=Fe/Math.tan(g),kt=Ce/Math.tan(f),$e=new z;$e.set(ge,de,M.z+Math.max(He,kt)),$e.applyMatrix4(this.cameraObject.matrixWorld);let ae=new z;if(ae.set(ge,de,M.z),ae.applyMatrix4(this.cameraObject.matrixWorld),this.state==="STACKED"){let ce=new z().subVectors(ae,$e),Le=(Ae.z-$e.z)/ce.z,St=new z().copy($e).add(ce.clone().multiplyScalar(Le));u.position=St,ae.set(u.position.x,u.position.y,u.position.z)}else{ae.sub($e);let ce=$e.z/ae.z;u.position.x=$e.x-ae.x*ce,u.position.y=$e.y-ae.y*ce,ae.set(u.position.x,u.position.y,0)}return $e.sub(ae),u.zoom=$e.length(),u},"getCameraFrameForPoints"));p(this,"setPadding",l(t=>{this.cachedPadding=t||{top:0,bottom:0,left:0,right:0}},"setPadding"));p(this,"getZoomLevelForPolygon",l(t=>{var o;if(this.currentMap==null)return;let n=ut(t),r=[],a=(o=this.mapObjects.get(this.currentMap))==null?void 0:o.objectsDictionary[n];if(a){let s=a.geometry.attributes?a.geometry.attributes.position:[];for(let c=0,u=s.count;c<u;c++){let h=new z;h.set(s.getX(c),s.getY(c),s.getZ(c)),r.push(h)}return this.getCameraFrameForPoints(r,1,1,this.cachedPadding,!0).zoom}return this.controls.getZoom()},"getZoomLevelForPolygon"));p(this,"getZoomLevelForCurrentMap",l(()=>{var n;if(this.currentMap==null)return;let t=(n=this.mapObjects.get(this.currentMap))==null?void 0:n.object;if(t){let r=this.mapObjects.get(this.currentMap).boundingBox;r||(r=new Ye().setFromObject(t),this.mapObjects.get(this.currentMap).boundingBox=r);let a=[r.min.clone(),r.max.clone()];return this.getCameraFrameForPoints(a,1,1,this.cachedPadding,!0).zoom}return this.controls.getZoom()},"getZoomLevelForCurrentMap"));p(this,"getZoomLevelForObject",l(t=>{let n;n||(n=new Ye().setFromObject(t));let r=[n.min.clone(),n.max.clone()];return this.getCameraFrameForPoints(r,1,1,0,!0).zoom},"getZoomLevelForObject"));p(this,"resetCamera",l((t=!1)=>{var s;if(this.currentMap==null)return;let n={x:0,y:0};if(!t){let c=(s=this.mapObjects.get(this.currentMap))==null?void 0:s.boundingBox;c&&(n={x:(c.max.x-c.min.x)/2+c.min.x,y:(c.max.y-c.min.y)/2+c.min.y})}let r=this.getZoomLevelForCurrentMap();this.controls.expandZoomLimits(r);let a=.6,o=0;this.controls.setMulti(n,r,o,a)},"resetCamera"));p(this,"getPositionLatLon",l((t,n,r)=>{let a;if(typeof r=="string"?a=r:r==null?a=this.currentMap:a=r.id,a==null)return;let o=this.mapObjects.get(a);if(o==null)throw new Error("Invalid map: "+a);return o.getPositionLatLon(t,n)},"getPositionLatLon"));p(this,"lockNorth",l((t,n=0)=>{d(this,Ua).push(t),t._mRotationOffset=n,d(this,Df).call(this,t,this.getNorth()+this.controls.getRotation())},"lockNorth"));p(this,"unlockNorth",l(t=>{delete t._mRotationOffset,A(this,Ua,d(this,Ua).filter(function(n){return n!=t}))},"unlockNorth"));p(this,"convertTo3DMapPosition",l(t=>{var a;let n=((a=t.map)==null?void 0:a.id)||this.currentMap;if(n==null)return;let r=this.venue.getCollectionItemById("maps",n);return new z(t.x-r.width/2,-t.y+r.height/2,1).applyMatrix4(this.mapObjects.get(n).object.matrix)},"convertTo3DMapPosition"));p(this,"convertScreenCoordinateToMapCoordinate",l((t,n,r)=>{var f;let a=(f=r==null?void 0:r.id)!=null?f:this.currentMap;if(a==null)return;let o=this.mapObjects.get(a);this.cameraObject.updateMatrixWorld(!0),this.cameraObject.updateMatrix();let s=t/this.canvasWidth*2-1,c=-(n/this.canvasHeight)*2+1,u=new z(s,c,0);$t.setFromCamera(u,this.cameraObject.clone());let h=$t.intersectObject(this.cameraPlane,!1)[0].point.applyMatrix4(new tt().copy(o.object.matrix).invert());return o.mapClass.createCoordinateByXY(h.x+o.mapClass.width/2,-h.y+o.mapClass.height/2)},"convertScreenCoordinateToMapCoordinate"));p(this,"convert3DMapPositionToCoordinate",l((t,n)=>{var h;let r=(h=n==null?void 0:n.id)!=null?h:this.currentMap;if(r==null)return;let a=this.mapObjects.get(r),o=a.mapClass,s=new z(t.x,t.y,t.z||0);s.applyMatrix4(new tt().copy(a.object.matrix).invert());let c=s.x+o.width/2,u=-s.y+o.height/2;return o.createCoordinateByXY(c,u)},"convert3DMapPositionToCoordinate"));p(this,"getPositionPolygon",l(t=>{var o;let n=ut(t),r=t;t.map==null&&(r=this.getPolygon(n));let a=(o=this.mapObjects.get(r.map.id))==null?void 0:o.objectsDictionary[n];if(a){a.geometry.computeBoundingBox();let s=a.geometry.boundingBox;return new z(s.min.x+(s.max.x-s.min.x)/2,s.min.y+(s.max.y-s.min.y)/2,s.max.z)}else return null},"getPositionPolygon"));p(this,"getPositionNode",l(t=>{let n=t;return typeof n=="string"&&(n=xn(t,this.venue.nodes)),this.convertTo3DMapPosition(n)},"getPositionNode"));p(this,"hideAllLabels",l(()=>{this.mapObjects.forEach(t=>{t.textObjects.forEach(n=>n.hide()),t.colliders.forEach(n=>{n.disable()})})},"hideAllLabels"));p(this,"setBackgroundColor",l((t,n)=>{this.renderer.setBackgroundColor(t,n)},"setBackgroundColor"));p(this,"setSize",l((t,n)=>{this.canvasWidth=this.rendererDomElement.clientWidth,this.canvasHeight=this.rendererDomElement.clientHeight;let r=Math.floor(t*this.resolutionScale),a=Math.floor(n*this.resolutionScale);if(!d(this,lu)&&this.rendererDomElement.width*this.rendererDomElement.height*r*a!==0){let o=this.rendererDomElement.width!==r?this.rendererDomElement.width/r:this.rendererDomElement.height/a;this.controls.setZoom(o*this.controls.getZoom())}d(this,fu).call(this,r,a)},"setSize"));p(this,"getMapScale",l(()=>this.currentMap==null?0:this.mapObjects.get(this.currentMap).getMapScale(),"getMapScale"));p(this,"getNorth",l(()=>this.currentMap==null?0:this.mapObjects.get(this.currentMap).getNorth(),"getNorth"));p(this,"tryRendering",l((t=Re.ALL)=>{if(this.renderer!=null)if(d(this,Ai)!=null&&this.taskScheduler.scheduleUpdate(d(this,Cf)),t===Re.ALL)this.taskScheduler.scheduleUpdate(d(this,Ho)),d(this,Af)!=null&&this.taskScheduler.scheduleUpdate(d(this,Af)),this.taskScheduler.scheduleUpdate(d(this,du)),this.taskScheduler.scheduleUpdate(d(this,bf)),this.taskScheduler.scheduleUpdate(d(this,xf)),this.taskScheduler.scheduleUpdate(d(this,ml)),this.taskScheduler.scheduleUpdate(d(this,Ef)),this.taskScheduler.scheduleUpdate(d(this,wf));else if(t===Re.ANIMATED)this.taskScheduler.scheduleUpdate(d(this,du)),this.taskScheduler.scheduleUpdate(d(this,Ho)),this.taskScheduler.scheduleUpdate(d(this,Tf));else if(t===Re.ALWAYS_ON_TOP)this.taskScheduler.scheduleUpdate(d(this,Ho)),this.taskScheduler.scheduleUpdate(d(this,Mf));else if(t===Re.TWEEN)this.taskScheduler.scheduleUpdate(d(this,Ho));else if(t===Re.COMPOSITE)this.taskScheduler.scheduleUpdate(d(this,Pf));else throw new Error("invalid render task passed to tryRendering")},"tryRendering"));p(this,"showDebugUI",l(()=>{d(this,Ai)==null&&(A(this,Ai,new su),this.container.appendChild(d(this,Ai).element),d(this,Dv).call(this,d(this,Ai)),this.controls.addDebugControls(d(this,Ai)),this.tryRendering())},"showDebugUI"));p(this,"hideDebugUI",l(()=>{d(this,Ai)!=null&&(this.container.removeChild(d(this,Ai).element),d(this,Lv).call(this,d(this,Ai)),this.controls.removeDebugControls(d(this,Ai)),d(this,Ai).destroy(),A(this,Ai,null))},"hideDebugUI"));p(this,"determineNewLabelSize",l(()=>{let t=this.controls.getZoom(),n=this.controls.getZoomScaledMin(),r=this.controls.getZoomScaledMax(),a=(t-n)/(r-n);this.currentScale=a},"determineNewLabelSize"));p(this,"mapSetInProgress",Promise.resolve(void 0));p(this,"mapSetResolved");p(this,"setMap",l(async t=>{await this.mapSetInProgress,this.mapSetInProgress=new Promise(a=>{this.mapSetResolved=a});let n=typeof t=="string"?this.venue.getCollectionItemById("maps",t):t;if(n==null)return Promise.reject(null);let{currentScene:r}=this.sceneManager;return r==null?Promise.reject(null):this.state==="STACKED"?this.stackedMaps.mapsInJourney.includes(n)?this.stackedMaps.zoomInToMap(n).then(()=>(this.mapSetResolved(),Promise.resolve(null))):(F.warn("Can't set map outside of current scene"),Promise.reject(null)):this.sceneManager.transitionTo(new Aa([n],this),{activeMap:n}).then(()=>(this.mapSetResolved(),Promise.resolve(null)))},"setMap"));p(this,"setMapWithReason",l((t,n)=>(this.setMapReason=n,this.setMap(t)),"setMapWithReason"));p(this,"getPolygonsAtScreenCoordinate",l((t,n,r)=>{if(this.currentMap==null)return[];let a=this.mapObjects.get(this.currentMap);if(!a||!a.hoverableMeshChildren)return[];let o=new he(t,n),s=o.x/this.canvasWidth*2-1,c=-(o.y/this.canvasHeight)*2+1,u=new z(s,c,0);return $t.setFromCamera(u,this.cameraObject),d(this,Lf).call(this,a.hoverableMeshChildren,r==null?void 0:r.includeNonInteractive)},"getPolygonsAtScreenCoordinate"));p(this,"getPolygonsAtCoordinate",l((t,n)=>{let r=this.mapObjects.get(t.map.id);if(!r||!r.hoverableMeshChildren)return[];let a=this.convertTo3DMapPosition(t);return a.setZ(this.controls.maxZoom),$t.set(a,new z(0,0,-1)),d(this,Lf).call(this,r.hoverableMeshChildren,n==null?void 0:n.includeNonInteractive)},"getPolygonsAtCoordinate"));p(this,"destroy",l(()=>{var t;this.flatLabels.removeAllLabels(),this.floatingLabels.removeAllLabels(),this.paths.removeAllPaths(),this.polygonInteraction.removeAllInteractivePolygons(),this.polygonColors.clearAllPolygonColors(),this.polygonHoverColors.clearAllPolygonHoverColors(),this.polygonStates.destroy(),this.markers.removeAll(),this.tooltips.removeAllTooltips(),this.smartCollisionEngine.destroy(),Vs.imagesLoadingInProgress.clear(),this.controls.dispose(),this.off(2,this.tryRendering),this.off(3,d(this,gl)),this.off(4,d(this,If)),this.off(0,d(this,_f)),window.removeEventListener("resize",d(this,pu),!1),d(this,pl)&&d(this,pl).disconnect(),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.CHANGE_EVENT.type,this.determineNewLabelSize),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.CHANGE_EVENT.type,d(this,qf)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.ZOOM_START_EVENT.type,d(this,fr)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.ROTATE_START_EVENT.type,d(this,fr)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.ROTATE_START_EVENT.type,d(this,vl)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.MULTI_START_EVENT.type,d(this,fr)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.MULTI_START_EVENT.type,this.publish(15)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.MULTI_START_EVENT.type,d(this,vl)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.PAN_START_EVENT.type,d(this,fr)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.PAN_START_EVENT.type,this.publish(15)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.ZOOM_END_EVENT.type,d(this,mr)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.ROTATE_END_EVENT.type,d(this,mr)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.ROTATE_END_EVENT.type,d(this,yl)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.MULTI_END_EVENT.type,d(this,mr)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.MULTI_END_EVENT.type,d(this,yl)),this.controls.dispatcher.removeEventListener(this.controls.CAMERA_EVENTS.PAN_END_EVENT.type,d(this,mr));for(let n in this.polygonMeshesById)this.polygonMeshesById[n].destroy();this.polygonMeshesById={},this.interactivePolygons={},this._subscribers={},(t=this.mapManager)==null||t.destroy(),this.scene.destroy(),this.interactivePolygons={},d(this,hu).dispose(),this.taskScheduler.destroy(),this.renderer.destroy(),this.container.removeChild(this.rendererDomElement),d(this,Ai)!=null&&this.hideDebugUI(),this.renderer=void 0},"destroy"));this.MapView=a,this.options=r,this.type="MapView3D",this.container=t,this.venue=n,window.MappedinDebug||(window.MappedinDebug={}),C.env.NODE_ENV==="test"&&(window.MappedinDebug.mapViewCoreInstance=this),A(this,lu,!1),A(this,cu,hl.ENABLED?Pv:r.backgroundColor||"#ffffff"),A(this,uu,(x=r.backgroundAlpha)!=null?x:1),this.colors={defaultHover2D:"#cccccc",select:"#4ca1fc",text:"#000000",path:"#ff834c",pathPulse:"#ffffff",textSelect:"#ffffff"},r.disableZoomOnMapSizeChange&&A(this,lu,!0),this.loadOptions={mapRenderStrategy:"SINGLE_GEOMETRY",...r.loadOptions},this.loadOptions.loadAsync===!0&&this.loadOptions.mapRenderStrategy==="SINGLE_GEOMETRY"&&(F.warn("Async loading does not work with the single geometry map render strategy. Reverting to non-async loading."),this.loadOptions.loadAsync=!1),A(this,hu,new js);let o=typeof r.multiBufferRendering=="boolean"?r.multiBufferRendering:!1;this.renderer=new ru({antialias:typeof r.antialias=="boolean"?r.antialias:!0,antialiasQuality:r.antialiasQuality,aoEnabled:r.aoEnabled,aoQuality:r.aoQuality,aoResolution:r.aoResolution,multiBufferRendering:o,xRayPath:typeof r.xRayPath=="boolean"?r.xRayPath:!0,alpha:!0,onWebGLContextCreationError:r.onWebGLContextCreationError,onWebGLContextLost:r.onWebGLContextLost,onWebGLContextRestored:()=>{r.onWebGLContextRestored&&r.onWebGLContextRestored(),d(this,hu).onWebGLContextRestored(),this.tryRendering()},onWebGLRendererError:r.onWebGLRendererError,backgroundColor:d(this,cu),backgroundAlpha:d(this,uu),core:this}),(this.options.dynamicPerformance!==!1||this.options.debug)&&import("./PerformanceController-5OTIOYMZ.js").then(({PerformanceController:j})=>{this.performanceController=new j({dynamicPerformance:this.options.dynamicPerformance===void 0?!0:this.options.dynamicPerformance,debug:!!this.options.debug,container:this.container,onFPSChangeArray:j.getDefaultOnFPSChangeArray(this)})}),this.taskScheduler=new lc({performance:!0,onUpdateEnd:()=>{var j;(j=this.performanceController)==null||j.update()}}),this.scene=new fs,this.outdoorGeometryLayers=(E=(T=r.loadOptions)==null?void 0:T.outdoorGeometryLayers)!=null?E:[];let s=window.__THREE_DEVTOOLS__;C.env.NODE_ENV==="dev"&&typeof s<"u"&&(s.dispatchEvent(new CustomEvent("observe",{detail:this.scene})),s.dispatchEvent(new CustomEvent("observe",{detail:this.renderer}))),this.resolutionScale=window.devicePixelRatio,this.cameraObject=new Vl($X,this.aspect,50,1e5),this.cameraObject.renderOrder=999;let c=new Zt;c.add(this.cameraObject),A(this,Kr,new Zt),d(this,Kr).add(c),this.billboardManager=new g8(d(this,Kr)),this.scene.add(d(this,Kr)),this.cameraObject.updateProjectionMatrix(),this.cameraObject.updateMatrixWorld(!0),this.focusZoomFactor=1.1,A(this,jo,!1),A(this,Ua,[]),this.polygonMeshesById={},this.textLabelsByPolygonId={},this.labelOrientationDelay=650,this.interactivePolygons={},this.polygonHoverColorsById={};let u=new Map;this.mapObjects=u,n.maps.forEach(j=>{var Q;let G=new Vg(j,this.polygonMeshesById,0,this,{taskScheduler:this.taskScheduler,useLivePolygons:(Q=this.loadOptions)==null?void 0:Q.useLivePolygons});this.mapObjects.set(j.id,G)}),this.referenceMap=n.getCollectionItemById("maps",n.venue.defaultMap),this.rendererDomElement=this.renderer.domElement(),this.resolution=new he,this.isWebGL2=!!((S=this.renderer.implementation.renderer)!=null&&S.capabilities.isWebGL2),o===!0&&this.renderer.implementation instanceof au&&((_=r==null?void 0:r.outdoorView)==null?void 0:_.enabled)===!0&&this.isWebGL2&&(this.outdoorViewController=new nx(this,r==null?void 0:r.outdoorView),this.outdoorViewController.load(),this.renderer.implementation.setOutdoorViewController(this.outdoorViewController)),A(this,Pf,new vi({name:"updateRenderTargets",ordering:Tn.RENDER,callback:()=>{this.renderer.render(Re.COMPOSITE,null,this.scene,this.cameraObject)}})),A(this,du,new vi({name:"updateBillboards",ordering:Tn.BEFORE_CAMERA,callback:()=>{this.billboardManager.update()}})),A(this,Ho,new vi({name:"updateTweens",ordering:Tn.BEFORE_CAMERA,callback:()=>{Y_.default.update()}})),this.cameraParameters={},A(this,bf,new vi({name:"camera",ordering:Tn.CAMERA,callback:()=>{this.controls.update(),this.cameraParameters.position=this.controls.getPosition(),this.cameraParameters.tilt=this.controls.getTilt(),this.cameraParameters.rotation=this.controls.getRotation(),this.cameraParameters.zoom=this.controls.getZoom(),this.controls.isCameraMoving()&&this.publish(9,this.cameraParameters),this.publish(10,this.controls.getZoom())}})),A(this,xf,new vi({name:"rotateObjects",ordering:Tn.AFTER_CAMERA,callback:()=>{let j=this.getNorth()+this.controls.getRotation();for(let G=0,Q=d(this,Ua).length;G<Q;++G)d(this,Df).call(this,d(this,Ua)[G],j);d(this,_v).call(this),d(this,Ov).call(this),A(this,Va,!1)}})),A(this,ml,new vi({name:"renderAll",ordering:Tn.RENDER,callback:()=>{this.currentMap!=null&&this.renderer.isAvailable()&&(d(this,Yo)&&d(this,Wo).call(this),this.renderer.render(Re.ALL,null,this.scene,this.cameraObject),this.controls.postRender&&this.controls.postRender())}})),A(this,Tf,new vi({name:"renderAnimated",ordering:Tn.RENDER,supersededBy:new Set([d(this,ml)]),callback:()=>{this.currentMap!=null&&this.renderer.isAvailable()&&(d(this,Yo)&&d(this,Wo).call(this),this.renderer.render(Re.ANIMATED,null,this.scene,this.cameraObject),this.controls.postRender&&this.controls.postRender())}})),A(this,Mf,new vi({name:"renderAlwaysOnTop",ordering:Tn.RENDER,supersededBy:new Set([d(this,ml)]),callback:()=>{this.currentMap!=null&&this.renderer.isAvailable()&&(d(this,Yo)&&d(this,Wo).call(this),this.renderer.render(Re.ALWAYS_ON_TOP,null,this.scene,this.cameraObject),this.controls.postRender&&this.controls.postRender())}})),A(this,Ef,new vi({name:"updateBlueDotPosition",ordering:Tn.AFTER_RENDER,callback:()=>{this.publish(11)}})),A(this,wf,new vi({name:"updateColliders",ordering:Tn.AFTER_RENDER,frameCount:32,callback:()=>{this.smartCollisionEngine.reposition()}})),A(this,Cf,new vi({name:"updateDebugUI",ordering:Tn.AFTER_ALL_UPDATES,frameCount:1,callback:()=>{var G;let j={};for(let Q of this.taskScheduler.getUpdatesRunLastFrame().values())j[Q.name]=Q.getLastFrameTime();(G=d(this,Ai))==null||G.reportFramePerformance(j)}}));let h=new nn(1e6,1e6),m=new Oi({color:0,visible:!1});this.cameraPlane=new qe(h,m),this.scene.add(this.cameraPlane),t.appendChild(this.rendererDomElement),window.addEventListener("resize",d(this,pu),!1),typeof ResizeObserver=="function"&&((P=C.env)==null?void 0:P.NODE_ENV)!=="test"&&(A(this,pl,new ResizeObserver(()=>{window.requestAnimationFrame(d(this,pu))})),(q=d(this,pl))==null||q.observe(t)),t.classList.add("mappedin-map"),this.rendererDomElement.style.width=(D=globalThis.MappedinDebug)!=null&&D.TEST_IOS?"1080px":"100%",this.rendererDomElement.style.height=(U=globalThis.MappedinDebug)!=null&&U.TEST_IOS?"1920px":"100%",this.rendererDomElement.style.cursor="grab",this.canvasWidth=this.rendererDomElement.clientWidth,this.canvasHeight=this.rendererDomElement.clientHeight,this.rendererDomElement.style.touchAction="manipulation";let f=this.canvasWidth,g=this.canvasHeight;A(this,Yo,!0),this.setBackgroundColor(d(this,cu),d(this,uu)),d(this,fu).call(this,Math.floor(f*this.resolutionScale),Math.floor(g*this.resolutionScale)),d(this,gl).call(this);let b=new OT(16777215,.3*Math.PI);b.position.set(-150,-150,350),this.scene.add(b);let M=new DT(16777215,.741*Math.PI);this.scene.add(M),this.controls=new yv(this.cameraObject,this.rendererDomElement,this.scene,this),this.controls.enableZoom=!0,this.smartCollisionEngine=new h8(this),this.controls.dispatcher.addEventListener(this.controls.CAMERA_EVENTS.CHANGE_EVENT.type,this.determineNewLabelSize),this.controls.dispatcher.addEventListener(this.controls.CAMERA_EVENTS.CHANGE_EVENT.type,d(this,qf)),this.controls.dispatcher.addEventListener(this.controls.CAMERA_EVENTS.ZOOM_START_EVENT.type,()=>{this.publish(18),d(this,fr).call(this)}),this.controls.dispatcher.addEventListener(this.controls.CAMERA_EVENTS.ROTATE_START_EVENT.type,()=>{this.publish(20),d(this,fr).call(this),d(this,vl).call(this)}),this.controls.dispatcher.addEventListener(this.controls.CAMERA_EVENTS.MULTI_START_EVENT.type,()=>{this.publish(24),this.publish(15),d(this,fr).call(this),d(this,vl).call(this)}),this.controls.dispatcher.addEventListener(this.controls.CAMERA_EVENTS.PAN_START_EVENT.type,()=>{this.publish(22),d(this,fr).call(this),this.publish(15)}),this.controls.dispatcher.addEventListener(this.controls.CAMERA_EVENTS.ZOOM_END_EVENT.type,()=>{this.publish(17),this.publish(18),d(this,mr).call(this)}),this.controls.dispatcher.addEventListener(this.controls.CAMERA_EVENTS.ROTATE_END_EVENT.type,()=>{this.publish(19),d(this,mr).call(this),d(this,yl).call(this)}),this.controls.dispatcher.addEventListener(this.controls.CAMERA_EVENTS.MULTI_END_EVENT.type,()=>{this.publish(25),d(this,mr).call(this),d(this,yl).call(this)}),this.controls.dispatcher.addEventListener(this.controls.CAMERA_EVENTS.PAN_END_EVENT.type,d(this,mr)),this.controls.dispatcher.addEventListener(this.controls.INTERACTION_EVENTS.USER_PAN_START_EVENT.type,()=>{this.currentInteractionEvent=21}),this.controls.dispatcher.addEventListener(this.controls.INTERACTION_EVENTS.USER_ROTATE_START_EVENT.type,()=>{this.currentInteractionEvent=19}),this.controls.dispatcher.addEventListener(this.controls.INTERACTION_EVENTS.USER_DOLLY_START_EVENT.type,()=>{this.currentInteractionEvent=17}),this.controls.dispatcher.addEventListener(this.controls.INTERACTION_EVENTS.USER_TILT_START_EVENT.type,()=>{this.currentInteractionEvent=23}),this.controls.dispatcher.addEventListener(this.controls.INTERACTION_EVENTS.USER_ZOOM_START_EVENT.type,()=>{this.publish(17),this.currentInteractionEvent=17}),A(this,Sf,Rh(n,r)),this.sceneManager=((R=r==null?void 0:r.dynamicFocus)==null?void 0:R.baseMap)!=null?new Ng(this,(B=r.dynamicFocus)==null?void 0:B.baseMap):new W6(this,new Aa([d(this,Sf)],this)),this.on(2,this.tryRendering),this.on(3,d(this,gl)),this.on(4,d(this,If)),this.on(1,j=>{this.tryRendering(),this.renderer.preloadTexture(j)}),this.on(0,()=>{d(this,_f).call(this),typeof this.options.onFirstMapLoaded=="function"&&this.options.onFirstMapLoaded(n)}),n.imageBinaries&&wx(new Kc(n.imageBinaries)),typeof r.onDataLoaded=="function"&&r.onDataLoaded(n),this.setPadding(),this.eventSystem=new e8(this),this.floatingLabels=new j7(this),this.flatLabels=new Z7(this),this.paths=new I7(this),this.polygonColors=new e9(this),this.polygonHoverColors=new n9(this),this.polygonInteraction=new o9(this),this.polygonStates=new h9(this),this.polygonImages=new g9(this),this.markers=new zb(this),this.tooltips=new c9(this),this.threeDMarkers=new Ap(this),this.blueDot=new T9(this),this.camera=new Y9(this),this.stackedMaps=new T8(this),this.tileManager=new hl(this),this.watermark=new dr(this),this.layerController=new Tv(this),this.exportController=new ou(this)}get aspect(){return this.canvasWidth/this.canvasHeight}get visibleMapsInCurrentScene(){return this.visibleMapObjectsInCurrentScene.map(t=>t.mapClass)}get visibleMapObjectsInCurrentScene(){return Array.from(this.sceneManager.currentScene.mapObjects.values()).filter(t=>t.visible).map(t=>t)}get visibleLayersInCurrentScene(){let t={};for(let n of this.visibleMapsInCurrentScene){let r=this.layerController.getVisibleLayersForLoadedMap(n);t[n.id]=r}return t}get currentMap(){var t,n;return(n=(t=this.sceneManager)==null?void 0:t.currentMap)!=null&&n.id?this.sceneManager.currentMap.id:(F.error("No maps loaded."),null)}async setState(t){if(t!==this.state){if(t==="explore")this.publish(14,!1),this.state=t;else if(t==="STACKED")this.publish(14,!1),this.state=t;else if(t==="follow")this.publish(14,!0),this.state=t;else throw new Error("Unsupported State");return this.publish(12,{state:this.state}),Promise.resolve()}}getNearestNodeByScreenCoordinate(t,n,r){let a=typeof r=="string"?r:(r==null?void 0:r.id)||this.currentMap,o=this.mapObjects.get(a);if(o==null)throw new Error("getNodeByScreenCoordinates failed: map not found");this.cameraObject.updateMatrixWorld(!0),this.cameraObject.updateMatrix();let s=t/this.canvasWidth*2-1,c=-(n/this.canvasHeight)*2+1,u=new z(s,c,0);$t.setFromCamera(u,this.cameraObject.clone());let h=$t.intersectObject(this.cameraPlane,!1)[0].point.applyMatrix4(o.object.matrix);return this.venue._mapsById[a].createCoordinateByXY(h.x+o.mapClass.width/2,-h.y+o.mapClass.height/2).nearestNode}};pl=new WeakMap,lu=new WeakMap,cu=new WeakMap,uu=new WeakMap,jo=new WeakMap,Ua=new WeakMap,Go=new WeakMap,Ai=new WeakMap,Sv=new WeakMap,fl=new WeakMap,du=new WeakMap,Ho=new WeakMap,bf=new WeakMap,xf=new WeakMap,ml=new WeakMap,Tf=new WeakMap,Mf=new WeakMap,Ef=new WeakMap,wf=new WeakMap,Cf=new WeakMap,Af=new WeakMap,Pf=new WeakMap,Yo=new WeakMap,Sf=new WeakMap,Va=new WeakMap,Kr=new WeakMap,hu=new WeakMap,If=new WeakMap,_f=new WeakMap,Of=new WeakMap,pu=new WeakMap,gl=new WeakMap,Df=new WeakMap,vl=new WeakMap,yl=new WeakMap,fr=new WeakMap,mr=new WeakMap,Iv=new WeakMap,fu=new WeakMap,Wo=new WeakMap,_v=new WeakMap,Ov=new WeakMap,Dv=new WeakMap,Lv=new WeakMap,Lf=new WeakMap,qf=new WeakMap,l(Ex,"Core");var Tx=Ex,Mx=Tx;var wx=Dc.setAssetManager.bind(Dc);y();y();y();y();y();y();y();y();y();y();y();y();y();function X_(i){dr.ENABLED=!0,i!=null&&(dr.OPTIONS={...dr.OPTIONS,...i})}l(X_,"__showWatermark");y();y();y();y();y();var mu=class mu{constructor(e,t,n){p(this,"__type",mu.__type);p(this,"id",it());p(this,"latitude");p(this,"longitude");p(this,"floorId");this.latitude=e,this.longitude=t,this.floorId=n}static is(e){return e.__type===mu.__type}isEqual(e){return this.latitude===e.latitude&&this.longitude===e.longitude&&this.floorId===e.floorId}toJSON(){return{latitude:this.latitude,longitude:this.longitude,floor:this.floorId}}destroy(){}};l(mu,"Coordinate"),p(mu,"__type","coordinate");var Cx=mu,Nt=Cx;y();y();y();y();var rZ=Object.freeze({center:0,top:1,left:2,bottom:3,right:4}),aZ=Object.freeze({medium:2,high:3,"always-visible":4});function oZ(i){return rZ[i]}l(oZ,"convertStrAnchorOptionToEnum");function Z_(i){return aZ[i]}l(Z_,"convertCollisionRankStrToEnum");function Ax(i){let{rank:e,anchor:t,...n}=i,r=n;if(e){let a=Z_(e);typeof a<"u"&&(r.rank=a)}if(t){let a=oZ(t);typeof a<"u"&&(r.anchor=a)}return r}l(Ax,"translateMarkerOptionToLegacyCore");function Px(i){let{rank:e,...t}=i,n=t;if(e){let r=Z_(e);typeof r<"u"&&(n.rank=r)}return n}l(Px,"translateLabelOptionToLegacyCore");y();var Sx=l(i=>i!=null,"notNull");y();y();var Ix=class Ix{constructor(e){p(this,"id");this.id=e}};l(Ix,"BaseMetaData");var bl=Ix;var Nf,gu,Rf=class Rf extends bl{constructor(t){super(String(it()));w(this,Nf,{});w(this,gu,void 0);A(this,gu,t.mvfData)}static is(t){return t.__type===Rf.__type}get url(){return d(this,gu).url}get name(){return d(this,gu).displayName}toJSON(){return{id:this.id,url:this.url,name:this.name}}destroy(){for(let t of globalThis.Object.keys(d(this,Nf)))delete d(this,Nf)[t]}};Nf=new WeakMap,gu=new WeakMap,l(Rf,"Hyperlink"),p(Rf,"__type","hyperlink");var _x=Rf,qv=_x;var Ox=class Ox{constructor(e,t){p(this,"id");p(this,"links",[]);var r;this.id=e;let n=(r=t==null?void 0:t.links)!=null?r:[];n.length>0&&(this.links=n.map(a=>new qv({mvfData:a})))}};l(Ox,"BaseMapData");var hi=Ox;var xl,za,Tl,Xo,vu=class vu extends hi{constructor(t,n){super(n.mvfData.properties.id,n.mvfData.properties.details);p(this,"__type",vu.__type);w(this,xl,void 0);w(this,za,void 0);w(this,Tl,void 0);w(this,Xo,void 0);A(this,za,{}),A(this,Xo,n.mvfData),A(this,xl,t),A(this,Tl,n.floorId)}static is(t){return t.__type===vu.__type}get name(){var t,n;return(n=(t=d(this,Xo).properties.details)==null?void 0:t.name)!=null?n:""}get description(){var t,n;return(n=(t=d(this,Xo).properties.details)==null?void 0:t.description)!=null?n:""}get images(){var t,n;return(n=(t=d(this,Xo).properties.details)==null?void 0:t.images)!=null?n:[]}get floor(){let t=d(this,xl).getById("floor",d(this,Tl));if(t==null)throw new Error("Floor ".concat(d(this,Tl)," not found!"));return t}get center(){if(d(this,za).center==null){let[[t,n],[r,a]]=d(this,Xo).geometry.coordinates,o=(t+r)/2,s=(n+a)/2;d(this,za).center=new Nt(s,o,d(this,Tl))}return d(this,za).center}get isExterior(){var r;let t=d(this,xl).obstructionIdByEntranceId[this.id],n=d(this,xl).getMVFFeatureById("obstruction",t);return(r=n==null?void 0:n.properties.footprintComponent)!=null?r:!1}toJSON(){return{id:this.id,name:this.name,floor:this.floor.id,center:this.center.toJSON()}}destroy(){for(let t of Object.keys(d(this,za)))delete d(this,za)[t]}};xl=new WeakMap,za=new WeakMap,Tl=new WeakMap,Xo=new WeakMap,l(vu,"Door"),p(vu,"__type","door");var Dx=vu,Ml=Dx;y();var kf,El,Zo,ja,yu=class yu extends hi{constructor(t,n){super(n.mvfData.properties.id,n.mvfData.properties.details);p(this,"__type",yu.__type);w(this,kf,void 0);w(this,El,void 0);w(this,Zo,{});w(this,ja,void 0);A(this,kf,t),A(this,El,n.floorId),A(this,ja,n.mvfData)}static is(t){return t.__type===yu.__type}get name(){var n,r;let{properties:t}=d(this,ja);return(r=(n=t.details)==null?void 0:n.name)!=null?r:t.externalId}get type(){return lZ(d(this,ja).properties.kind)}get description(){var t,n;return(n=(t=d(this,ja).properties.details)==null?void 0:t.description)!=null?n:""}get images(){var t,n;return(n=(t=d(this,ja).properties.details)==null?void 0:t.images)!=null?n:[]}get floor(){let t=d(this,kf).getById("floor",d(this,El));if(t==null)throw new Error("Floor ".concat(d(this,El)," not found!"));return t}get center(){var t;if(d(this,Zo).center==null){let[n,r]=(t=d(this,ja).properties.center)!=null?t:[0,0];d(this,Zo).center=new Nt(r,n,d(this,El))}return d(this,Zo).center}toJSON(){return{id:this.id,name:this.name,type:this.type,floor:this.floor.id,center:this.center.toJSON()}}destroy(){for(let t of Object.keys(d(this,Zo)))delete d(this,Zo)[t]}};kf=new WeakMap,El=new WeakMap,Zo=new WeakMap,ja=new WeakMap,l(yu,"Space"),p(yu,"__type","space");var Lx=yu,sZ=["room","hallway","exterior","void","connection.stairs","connection.elevator","poi"];function lZ(i){if(i==null||i==="default")return"room";let e=i.toLowerCase();return sZ.includes(e)?e:"room"}l(lZ,"validateSpaceType");var Qo=Lx;y();var Jr,jt,xu,bu=class bu extends hi{constructor(t,n){super(n.mvfData.id);p(this,"__type",bu.__type);w(this,Jr,void 0);w(this,jt,{});w(this,xu,void 0);A(this,Jr,t),A(this,xu,n.mvfData)}static is(t){return t.__type===bu.__type}get name(){return d(this,xu).externalId}get elevation(){return d(this,xu).elevation}get spaces(){if(d(this,jt).spaces==null){let t=d(this,Jr).spaces.filter(n=>n.floor.id===this.id);d(this,jt).spaces=t}return d(this,jt).spaces}get objects(){if(d(this,jt).objects==null){let t=d(this,Jr).objects.filter(n=>n.floor.id===this.id);d(this,jt).objects=t}return d(this,jt).objects}get connections(){if(d(this,jt).connections==null){let t=d(this,Jr).connections.filter(n=>n.floors.includes(this));d(this,jt).connections=t}return d(this,jt).connections}get doors(){if(d(this,jt).doors==null){let t=d(this,Jr).doors.filter(n=>n.floor.id===this.id);d(this,jt).doors=t}return d(this,jt).doors}get annotations(){if(d(this,jt).annotations==null){let t=d(this,Jr).annotations.filter(n=>n.floor.id===this.id);d(this,jt).annotations=t}return d(this,jt).annotations}get pois(){if(d(this,jt).pois==null){let t=d(this,Jr).pointsOfInterest.filter(n=>n.floor.id===this.id);d(this,jt).pois=t}return d(this,jt).pois}toJSON(){return{id:this.id,name:this.name,elevation:this.elevation,spaces:this.spaces.map(t=>t.id),objects:this.objects.map(t=>t.id),connections:this.connections.map(t=>t.id),doors:this.doors.map(t=>t.id),annotations:this.annotations.map(t=>t.id),pois:this.pois.map(t=>t.id)}}destroy(){for(let t of globalThis.Object.keys(d(this,jt)))delete d(this,jt)[t]}};Jr=new WeakMap,jt=new WeakMap,xu=new WeakMap,l(bu,"Floor"),p(bu,"__type","floor");var qx=bu,Rv=qx;y();var Bf,Ga,Ha,Tu=class Tu extends hi{constructor(t,n){let r=Object.values(n.mvfDataByFloorId)[0];super(r.properties.id,r.properties.details);p(this,"__type",Tu.__type);w(this,Bf,void 0);w(this,Ga,void 0);w(this,Ha,void 0);A(this,Ga,{}),A(this,Bf,t),A(this,Ha,n.mvfDataByFloorId)}static is(t){return t.__type===Tu.__type}get name(){var t,n;return(n=(t=Object.values(d(this,Ha))[0].properties.details)==null?void 0:t.name)!=null?n:""}get description(){var t,n;return(n=(t=Object.values(d(this,Ha))[0].properties.details)==null?void 0:t.description)!=null?n:""}get images(){var t,n;return(n=(t=Object.values(d(this,Ha))[0].properties.details)==null?void 0:t.images)!=null?n:[]}get type(){var t,n;return(n=(t=Object.values(d(this,Ha))[0].properties.kind)==null?void 0:t.split(".")[1])!=null?n:"unknown"}get coordinates(){return d(this,Ga).coordinates==null&&(d(this,Ga).coordinates=Object.entries(d(this,Ha)).map(([t,n])=>new Nt(n.geometry.coordinates[1],n.geometry.coordinates[0],t))),d(this,Ga).coordinates}get floors(){return this.coordinates.map(t=>t.floorId?d(this,Bf).getById("floor",t.floorId):void 0).filter(Sx)}toJSON(){return{id:this.id,name:this.name,type:this.type,coordinates:this.coordinates.map(t=>t.toJSON()),floors:this.floors.map(t=>t.id)}}destroy(){for(let t of Object.keys(d(this,Ga)))delete d(this,Ga)[t]}};Bf=new WeakMap,Ga=new WeakMap,Ha=new WeakMap,l(Tu,"Connection"),p(Tu,"__type","connection");var Rx=Tu,Ko=Rx;y();var Ff,wl,Jo,Ya,Mu=class Mu extends hi{constructor(t,n){super(n.mvfData.properties.id,n.mvfData.properties.details);p(this,"__type",Mu.__type);w(this,Ff,void 0);w(this,wl,void 0);w(this,Jo,{});w(this,Ya,void 0);A(this,Ff,t),A(this,wl,n.floorId),A(this,Ya,n.mvfData)}static is(t){return t.__type===Mu.__type}get name(){var t,n;return(n=(t=d(this,Ya).properties.details)==null?void 0:t.name)!=null?n:""}get description(){var t,n;return(n=(t=d(this,Ya).properties.details)==null?void 0:t.description)!=null?n:""}get images(){var t,n;return(n=(t=d(this,Ya).properties.details)==null?void 0:t.images)!=null?n:[]}get type(){let t=d(this,Ya).properties.kind;return t==null&&(t="object"),t==="Desks"&&(t="desk"),t.toLowerCase()}get floor(){let t=d(this,Ff).getById("floor",d(this,wl));if(t==null)throw new Error("Floor ".concat(d(this,wl)," not found!"));return t}get center(){var t;if(d(this,Jo).center==null){let[n,r]=(t=d(this,Ya).properties.center)!=null?t:[0,0];d(this,Jo).center=new Nt(r,n,d(this,wl))}return d(this,Jo).center}toJSON(){return{id:this.id,name:this.name,type:this.type,floor:this.floor.id,center:this.center.toJSON()}}destroy(){for(let t of globalThis.Object.keys(d(this,Jo)))d(this,Jo)[t]=null}};Ff=new WeakMap,wl=new WeakMap,Jo=new WeakMap,Ya=new WeakMap,l(Mu,"MapObject"),p(Mu,"__type","object");var Nx=Mu,$o=Nx;y();y();var Vf,Eu,Uf=class Uf extends bl{constructor(t){super(String(it()));w(this,Vf,{});w(this,Eu,void 0);A(this,Eu,t.mvfData)}static is(t){return t.__type===Uf.__type}get url(){return d(this,Eu).url}get name(){return d(this,Eu).altText}toJSON(){return{id:this.id,url:this.url,name:this.name}}destroy(){for(let t of globalThis.Object.keys(d(this,Vf)))delete d(this,Vf)[t]}};Vf=new WeakMap,Eu=new WeakMap,l(Uf,"Image"),p(Uf,"__type","image");var kx=Uf,Nv=kx;var zf,Cl,gr,es,wu=class wu extends hi{constructor(t,n){super(n.mvfData.properties.id,n.mvfData.properties.details);p(this,"__type",wu.__type);w(this,zf,void 0);w(this,Cl,void 0);w(this,gr,{});w(this,es,void 0);A(this,zf,t),A(this,es,n.mvfData),A(this,Cl,n.floorId)}static is(t){return t.__type===wu.__type}get name(){var t,n;return(n=(t=d(this,es).properties.details)==null?void 0:t.name)!=null?n:""}get description(){var t,n;return(n=(t=d(this,es).properties.details)==null?void 0:t.description)!=null?n:""}get images(){var t,n;if(d(this,gr).images==null){let r=(n=(t=d(this,es).properties.details)==null?void 0:t.images)!=null?n:[];d(this,gr).images=r.map(a=>new Nv({mvfData:a}))}return d(this,gr).images}get floor(){let t=d(this,zf).getById("floor",d(this,Cl));if(t==null)throw new Error("Floor ".concat(d(this,Cl)," not found!"));return t}get coordinate(){var t;if(d(this,gr).coordinate==null){let[n,r]=(t=d(this,es).geometry.coordinates)!=null?t:[0,0];d(this,gr).coordinate=new Nt(r,n,d(this,Cl))}return d(this,gr).coordinate}toJSON(){return{id:this.id,name:this.name,floor:this.floor.id,coordinate:this.coordinate.toJSON()}}destroy(){for(let t in d(this,gr))d(this,gr)[t]=null}};zf=new WeakMap,Cl=new WeakMap,gr=new WeakMap,es=new WeakMap,l(wu,"PointOfInterest"),p(wu,"__type","point-of-interest");var Bx=wu,Al=Bx;y();var jf,Pl,ts,Au,Gf,Ux,Cu=class Cu extends hi{constructor(t,n){super(n.mvfData.properties.id);w(this,Gf);p(this,"__type",Cu.__type);w(this,jf,void 0);w(this,Pl,void 0);w(this,ts,{});w(this,Au,void 0);A(this,jf,t),A(this,Pl,n.floorId),A(this,Au,n.mvfData)}static is(t){return t.__type===Cu.__type}get group(){return Z(this,Gf,Ux).call(this).group}get type(){return Z(this,Gf,Ux).call(this).type}get coordinate(){if(d(this,ts).coordinate==null){let[t,n]=d(this,Au).geometry.coordinates;d(this,ts).coordinate=new Nt(n,t,d(this,Pl))}return d(this,ts).coordinate}get floor(){let t=d(this,jf).getById("floor",d(this,Pl));if(t==null)throw new Error("Floor ".concat(d(this,Pl)," not found!"));return t}toJSON(){return{id:this.id,group:this.group,type:this.type,coordinate:this.coordinate.toJSON()}}destroy(){for(let t of Object.keys(d(this,ts)))delete d(this,ts)[t]}};jf=new WeakMap,Pl=new WeakMap,ts=new WeakMap,Au=new WeakMap,Gf=new WeakSet,Ux=l(function(){let[t,n]=d(this,Au).properties.symbolId.split("--");return{group:t,type:n}},"#getGroupAndTypeFromSymbolId"),l(Cu,"Annotation"),p(Cu,"__type","annotation");var Fx=Cu,kv=Fx;y();y();var Su,vr,Sl,Iu,Pu=class Pu extends hi{constructor(t,n){super(n.mvfData.properties.id);p(this,"__type",Pu.__type);w(this,Su,void 0);w(this,vr,{});w(this,Sl,void 0);w(this,Iu,void 0);A(this,Su,t),A(this,Sl,n.floorId),A(this,Iu,n.mvfData)}static is(t){return t.__type===Pu.__type}get floor(){let t=d(this,Su).getById("floor",d(this,Sl));if(t==null)throw new Error("Floor ".concat(d(this,Sl)," not found!"));return t}get coordinate(){if(d(this,vr).coordinate==null){let[t,n]=d(this,Iu).geometry.coordinates;d(this,vr).coordinate=new Nt(n,t,d(this,Sl))}return d(this,vr).coordinate}get neighbors(){if(d(this,vr).neighbours==null){let t=d(this,Iu).properties.neighbors.map(n=>{let r=d(this,Su).getById("node",n.id);if(r==null)throw new Error("Node ".concat(n.id," not found!"));return r});d(this,vr).neighbours=t}return d(this,vr).neighbours}toJSON(){return{id:this.id,floor:this.floor.id,coordinate:this.coordinate.toJSON(),neighbors:this.neighbors.map(t=>t.id)}}destroy(){for(let t of Object.keys(d(this,vr)))delete d(this,vr)[t]}};Su=new WeakMap,vr=new WeakMap,Sl=new WeakMap,Iu=new WeakMap,l(Pu,"Node"),p(Pu,"__type","node");var Vx=Pu,Q_=Vx;var cZ=l((i,e)=>{var m,f;let t={},n={},r={},a={},o={},s={},c={},u={},h=globalThis.Object.keys(i.space);for(let g of h){let b=i.space[g];if(b!=null)for(let M of b.features){u[M.properties.id]=g,o[M.properties.id]=M;for(let x of M.properties.destinationNodes)r[x]==null&&(r[x]=[]),r[x].push(M.properties.id);if(M.properties.kind==="desk-entrance"&&(a[M.properties.externalId]==null&&(a[M.properties.externalId]=[]),a[M.properties.externalId].push(...M.properties.destinationNodes)),!["void","desk-entrance"].includes((m=M.properties.kind)!=null?m:"")){if((f=M.properties.kind)!=null&&f.includes("connection")){let x="".concat(M.geometry.coordinates[1],"-").concat(M.geometry.coordinates[0]);s[x]==null&&(s[x]=[]),s[x].push(M.properties.id);continue}if(M.properties.kind==="poi"){let x=new Al(e,{floorId:g,mvfData:M});n[M.properties.id]=x}else{let x=new Qo(e,{floorId:g,mvfData:M});t[M.properties.id]=x}}}}for(let g in s){let b=s[g],M={};for(let T of b){let E=u[T],S=o[T];M[E]=S}let x=new Ko(e,{mvfDataByFloorId:M});c[x.id]=x}return{spacesById:t,poisById:n,connectionsById:c,spaceIdsByDestinationNodeId:r,objectEntranceNodeIdsByObstructionId:a,mvfSpacesById:o,connectionIdsByLatLon:s}},"processMVFSpaces"),uZ=l((i,e)=>{let t={},n={};for(let r of i["node.geojson"].features){n[r.properties.id]=r;let a=new Q_(e,{mvfData:r,floorId:r.properties.map});t[r.properties.id]=a}return{nodesById:t,mvfNodesById:n}},"processMVFNodes"),dZ=l((i,e)=>{let t={},n={},r={},a=globalThis.Object.keys(i.obstruction);for(let o of a){let s=i.obstruction[o];if(s!=null)for(let c of s.features){n[c.properties.id]=c;for(let h of c.properties.entrances)r[h]=c.properties.id;if(c.properties.kind==="Wall")continue;let u=new $o(e,{floorId:o,mvfData:c});t[c.properties.id]=u}}return{objectsById:t,mvfObstructionById:n,obstructionIdByEntranceId:r}},"processMVFObstructions"),hZ=l((i,e)=>{let t={},n={};for(let r of i["map.geojson"]){n[r.id]=r;let a=new Rv(e,{mvfData:r});t[r.id]=a}return{floorsById:t,mvfMapsById:n}},"processMVFMaps"),pZ=l((i,e)=>{let t={};for(let n of i["connection.json"])t[n.id]=n;return{mvfConnectionsById:t}},"processMVFConnections"),fZ=l((i,e)=>{let t={},n={},r=globalThis.Object.keys(i.entrance);for(let a of r){let o=i.entrance[a];if(o!=null)for(let s of o.features){n[s.properties.id]=s;let c=new Ml(e,{floorId:a,mvfData:s});t[s.properties.id]=c}}return{doorsById:t,mvfEntrancesById:n}},"processMVFEntrances"),mZ=l((i,e)=>{let t={},n={};if(i.annotation==null)return{annotationsById:t,mvfAnnotationsById:n};let r=globalThis.Object.keys(i.annotation);for(let a of r){let o=i.annotation[a];if(o!=null)for(let s of o.features){n[s.properties.id]=s;let c=new kv(e,{floorId:a,mvfData:s});t[s.properties.id]=c}}return{annotationsById:t,mvfAnnotationsById:n}},"processMVFAnnotations"),K_=l((i,e)=>{let{spacesById:t,spaceIdsByDestinationNodeId:n,poisById:r,mvfSpacesById:a,objectEntranceNodeIdsByObstructionId:o,connectionsById:s,connectionIdsByLatLon:c}=cZ(i,e),{nodesById:u,mvfNodesById:h}=uZ(i,e),{objectsById:m,mvfObstructionById:f,obstructionIdByEntranceId:g}=dZ(i,e),{floorsById:b,mvfMapsById:M}=hZ(i,e),{mvfConnectionsById:x}=pZ(i,e),{doorsById:T,mvfEntrancesById:E}=fZ(i,e),{annotationsById:S,mvfAnnotationsById:_}=mZ(i,e);return{spacesById:t,nodesById:u,objectsById:m,floorsById:b,connectionsById:s,doorsById:T,poisById:r,annotationsById:S,spaceIdsByDestinationNodeId:n,objectEntranceNodeIdsByObstructionId:o,obstructionIdByEntranceId:g,connectionIdsByLatLon:c,mvfSpacesById:a,mvfNodesById:h,mvfObstructionById:f,mvfMapsById:M,mvfConnectionsById:x,mvfEntrancesById:E,mvfAnnotationsById:_}},"createDataFromMVF");var ct,_u,Ou,Du,Lu,qu,Ru,Nu,ku,Yf,Wf,Xf,Zf,Qf,Kf,Jf,zx=class zx{constructor(e,t){w(this,ct,{});p(this,"mvf");p(this,"outdoorViewToken");p(this,"spaceIdsByDestinationNodeId");p(this,"objectEntranceNodeIdsByObstructionId");p(this,"obstructionIdByEntranceId");w(this,_u,void 0);w(this,Ou,void 0);w(this,Du,void 0);w(this,Lu,void 0);w(this,qu,void 0);w(this,Ru,void 0);w(this,Nu,void 0);w(this,ku,void 0);w(this,Yf,void 0);w(this,Wf,void 0);w(this,Xf,void 0);w(this,Zf,void 0);w(this,Qf,void 0);w(this,Kf,void 0);w(this,Jf,void 0);this.mvf=e,this.outdoorViewToken=t;let n=K_(e,this);A(this,_u,n.nodesById),A(this,Ou,n.spacesById),A(this,Du,n.floorsById),A(this,Lu,n.connectionsById),A(this,qu,n.objectsById),A(this,Ru,n.doorsById),A(this,Nu,n.poisById),A(this,ku,n.annotationsById),A(this,Yf,n.mvfAnnotationsById),A(this,Wf,n.mvfConnectionsById),A(this,Xf,n.mvfEntrancesById),A(this,Zf,n.mvfNodesById),A(this,Qf,n.mvfObstructionById),A(this,Kf,n.mvfSpacesById),A(this,Jf,n.mvfMapsById),this.spaceIdsByDestinationNodeId=n.spaceIdsByDestinationNodeId,this.objectEntranceNodeIdsByObstructionId=n.objectEntranceNodeIdsByObstructionId,this.obstructionIdByEntranceId=n.obstructionIdByEntranceId}get mapName(){return this.mvf["manifest.geojson"].features[0].properties.name}get organizationId(){var e;return(e=this.mvf["manifest.geojson"].features[0].properties.org_id)!=null?e:""}get mapCenter(){return new Nt(this.mvf["manifest.geojson"].features[0].geometry.coordinates[1],this.mvf["manifest.geojson"].features[0].geometry.coordinates[0])}get spaces(){return d(this,ct).spaces==null&&(d(this,ct).spaces=globalThis.Object.values(d(this,Ou))),d(this,ct).spaces}get objects(){return d(this,ct).objects==null&&(d(this,ct).objects=globalThis.Object.values(d(this,qu))),d(this,ct).objects}get connections(){return d(this,ct).connections==null&&(d(this,ct).connections=globalThis.Object.values(d(this,Lu))),d(this,ct).connections}get floors(){return d(this,ct).floors==null&&(d(this,ct).floors=globalThis.Object.values(d(this,Du))),d(this,ct).floors}get doors(){return d(this,ct).doors==null&&(d(this,ct).doors=globalThis.Object.values(d(this,Ru))),d(this,ct).doors}get pointsOfInterest(){return d(this,ct).pointsOfInterest==null&&(d(this,ct).pointsOfInterest=globalThis.Object.values(d(this,Nu))),d(this,ct).pointsOfInterest}get annotations(){return d(this,ct).annotations==null&&(d(this,ct).annotations=globalThis.Object.values(d(this,ku))),d(this,ct).annotations}get nodes(){return d(this,ct).nodes==null&&(d(this,ct).nodes=globalThis.Object.values(d(this,_u))),d(this,ct).nodes}getById(e,t){switch(e){case"space":return d(this,Ou)[t];case"floor":return d(this,Du)[t];case"node":return d(this,_u)[t];case"door":return d(this,Ru)[t];case"connection":return d(this,Lu)[t];case"object":return d(this,qu)[t];case"point-of-interest":return d(this,Nu)[t];case"annotation":return d(this,ku)[t];default:throw new Error("Unknown type: ".concat(e))}}getMVFFeatureById(e,t){switch(e){case"space":return d(this,Kf)[t];case"node":return d(this,Zf)[t];case"obstruction":return d(this,Qf)[t];case"map":return d(this,Jf)[t];case"connection":return d(this,Wf)[t];case"entrance":return d(this,Xf)[t];case"annotation":return d(this,Yf)[t];default:throw new Error("Unknown MVF feature type: ".concat(e))}}destroy(){for(let e of globalThis.Object.keys(d(this,ct)))d(this,ct)[e]=null}};ct=new WeakMap,_u=new WeakMap,Ou=new WeakMap,Du=new WeakMap,Lu=new WeakMap,qu=new WeakMap,Ru=new WeakMap,Nu=new WeakMap,ku=new WeakMap,Yf=new WeakMap,Wf=new WeakMap,Xf=new WeakMap,Zf=new WeakMap,Qf=new WeakMap,Kf=new WeakMap,Jf=new WeakMap,l(zx,"MapDataInternal");var Hf=zx;y();var Gx=new WeakMap,Ri,Yx=class Yx{constructor(e){w(this,Ri,void 0);A(this,Ri,e),Gx.set(this,e)}get mapName(){return d(this,Ri).mapName}get mapCenter(){return d(this,Ri).mapCenter}get organizationId(){return d(this,Ri).organizationId}get outdoorViewToken(){return d(this,Ri).outdoorViewToken}getByType(e){switch(e){case"space":return d(this,Ri).spaces;case"door":return d(this,Ri).doors;case"floor":return d(this,Ri).floors;case"connection":return d(this,Ri).connections;case"object":return d(this,Ri).objects;case"point-of-interest":return d(this,Ri).pointsOfInterest;case"annotation":return d(this,Ri).annotations;default:return[]}}getById(e,t){return d(this,Ri).getById(e,t)}};Ri=new WeakMap,l(Yx,"MapData");var jx=Yx,Hx=jx;y();y();var Bu=class Bu{constructor(e,t){p(this,"id");p(this,"text");p(this,"__type",Bu.__type);this.id=e,this.text=t}static is(e){return e.__type===Bu.__type}};l(Bu,"Label"),p(Bu,"__type","Label");var Fu=Bu;y();var Wx=class Wx{constructor(e,t,n){p(this,"id");p(this,"__type");p(this,"contentEl");p(this,"update");this.id=e,this.contentEl=t,this.update=n,this.__type="Marker"}};l(Wx,"Marker");var $f=Wx;y();var gZ=l(i=>{switch(i){case"Departure":return"Departure";case"Arrival":return"Arrival";case"TakeVortex":return"TakeConnection";case"ExitVortex":return"ExitConnection";case"Turn":default:return"Turn"}},"getActionType"),is,yr,Wa,Xx=class Xx{constructor(e,t){w(this,is,void 0);w(this,yr,{});w(this,Wa,void 0);A(this,is,e),A(this,Wa,t)}get coordinates(){return d(this,yr).coordinates?d(this,yr).coordinates:(d(this,yr).coordinates=d(this,Wa).path.map(e=>d(this,is).convertMappedinXYToCoordinate(e.x,e.y,e.map)),d(this,yr).coordinates)}get distance(){return d(this,Wa).distance}get instructions(){var t;if(d(this,yr).instructions)return d(this,yr).instructions;let e=[];for(let n=0;n<d(this,Wa).instructions.length;n++){let r=d(this,Wa).instructions[n],a=d(this,Wa).instructions[n+1];if(r.action==null||r.node==null)continue;let o={type:gZ(r.action.type),bearing:"bearing"in r.action?r.action.bearing:void 0,referencePosition:"referencePosition"in r.action?r.action.referencePosition:void 0,fromFloor:"fromMap"in r.action?d(this,is).mapData.getById("floor",r.action.fromMap.id):void 0,toFloor:"toMap"in r.action?d(this,is).mapData.getById("floor",r.action.toMap.id):void 0};["TakeVortex","ExitVortex"].includes(r.action.type)&&(o.connectionType=(t=r.atLocation)==null?void 0:t.type,o.fromFloor&&o.toFloor&&o.fromFloor.elevation!=o.toFloor.elevation&&(o.type==="ExitConnection"?o.direction=o.fromFloor.elevation<o.toFloor.elevation?"down":"up":o.type==="TakeConnection"&&(o.direction=o.fromFloor.elevation<o.toFloor.elevation?"up":"down")));let s={action:o,distance:(a==null?void 0:a.distance)||0,coordinate:d(this,is).convertMappedinXYToCoordinate(r.node.x,r.node.y,r.node.map)};e.push(s)}return d(this,yr).instructions=e,d(this,yr).instructions}};is=new WeakMap,yr=new WeakMap,Wa=new WeakMap,l(Xx,"Directions");var em=Xx;y();var Zx=class Zx{constructor(e){p(this,"id");p(this,"__type");this.id=e,this.__type="Path"}};l(Zx,"Path");var tm=Zx;y();var ns,Qx=class Qx{constructor(e){w(this,ns,void 0);A(this,ns,e)}get center(){return d(this,ns).center}get bearing(){return d(this,ns).bearing}get pitch(){return d(this,ns).pitch}get zoomLevel(){return d(this,ns).zoomLevel}};ns=new WeakMap,l(Qx,"CameraTransform");var im=Qx;y();var Kx=class Kx{constructor(e){p(this,"core");this.core=e}setScreenOffsets(e){this.core.mvCore.camera.setSafeAreaInsets(e)}focusOn(e,t){return new Promise(n=>{let r=[],a=Array.isArray(e)?e:[e];for(let o of a)if(Ko.is(o))r.push(...o.coordinates);else{let s=Fv(o);s&&r.push(s)}this.core.mvCore.focusOn({points:r.map(o=>this.core.mvCore.convertTo3DMapPosition(wn(o,this.core.mvCore))),tilt:t!=null&&t.pitch?mt.degToRad(t.pitch):void 0,rotation:t!=null&&t.bearing?mt.degToRad(t.bearing):void 0,padding:t==null?void 0:t.screenOffsets,minZoom:t!=null&&t.maxZoomLevel?this.maxZoomLevel:void 0,maxZoom:t!=null&&t.minZoomLevel?this.minZoomLevel:void 0,duration:t==null?void 0:t.duration,updateZoomLimits:!1,curve:t!=null&&t.easing?ui[t.easing]:ui["ease-in-out"],callback:()=>{n(void 0)}})})}animate(e,t){return new Promise(n=>{let{center:r,zoomLevel:a,bearing:o,pitch:s}=e,c=r!=null?r:this.center,u=this.core.mvCore.convertTo3DMapPosition(wn(c,this.core.mvCore));this.core.mvCore.controls.animateCamera({position:u,rotation:o?-mt.degToRad(o):void 0,tilt:s?mt.degToRad(s):void 0,zoom:this.core.mvCore.controls.convertZoomToAltitude(a)},t==null?void 0:t.duration,t!=null&&t.easing?ui[t.easing]:ui["ease-in-out"],()=>{n(void 0)},void 0,t)})}set(e){let{center:t,zoomLevel:n,bearing:r,pitch:a}=e,o=t!=null?t:this.center,s=this.core.mvCore.convertTo3DMapPosition(wn(o,this.core.mvCore));this.core.mvCore.controls.setMulti(s,this.core.mvCore.controls.convertZoomToAltitude(n),r?-mt.degToRad(r):void 0,a?mt.degToRad(a):void 0)}get center(){let e=this.core.mvCore.convert3DMapPositionToCoordinate(this.core.mvCore.controls.getPosition());return this.core.createCoordinate(e.lat,e.lon,void 0)}get zoomLevel(){return this.core.mvCore.controls.convertAltitudeToZoomLevel(this.core.mvCore.controls.getZoom())}get pitch(){return mt.radToDeg(this.core.mvCore.controls.getTilt())}get bearing(){let e=-mt.radToDeg(this.core.mvCore.controls.getRotation()+this.core.mvCore.referenceMap.getNorth());return(e<0?e+360:e)%360}get minZoomLevel(){return this.core.mvCore.controls.convertAltitudeToZoomLevel(this.core.mvCore.controls.maxZoom)}set minZoomLevel(e){this.core.mvCore.controls.maxZoom=this.core.mvCore.controls.convertZoomToAltitude(e)}get maxZoomLevel(){return this.core.mvCore.controls.convertAltitudeToZoomLevel(this.core.mvCore.controls.minZoom)}set maxZoomLevel(e){this.core.mvCore.controls.minZoom=this.core.mvCore.controls.convertZoomToAltitude(e)}};l(Kx,"Camera");var Bv=Kx;y();y();y();var vZ=new Map([["search-16x16",'<svg viewBox="0 0 16 16">\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M1 7C1 3.68629 3.68629 1 7 1C10.3137 1 13 3.68629 13 7C13 8.29583 12.5892 9.49572 11.8907 10.4765L15.4614 14.0472C15.6567 14.2425 15.6567 14.559 15.4614 14.7543L14.7543 15.4614C14.559 15.6567 14.2424 15.6567 14.0472 15.4614L10.4765 11.8907C9.49571 12.5892 8.29583 13 7 13C3.68629 13 1 10.3137 1 7ZM7 11C4.79086 11 3 9.20914 3 7C3 4.79086 4.79086 3 7 3C9.20914 3 11 4.79086 11 7C11 9.20914 9.20914 11 7 11Z"\n stroke="none"\n />\n </svg>'],["close-16x16",'<svg viewBox="0 0 16 16">\n <path\n d="M12.5963 1.98959C12.7916 1.79433 13.1082 1.79433 13.3034 1.98959L14.0105 2.6967C14.2058 2.89196 14.2058 3.20855 14.0105 3.40381L3.40392 14.0104C3.20866 14.2057 2.89208 14.2057 2.69682 14.0104L1.98971 13.3033C1.79445 13.108 1.79445 12.7915 1.98971 12.5962L12.5963 1.98959Z"\n stroke="none"\n />\n <path\n d="M1.98971 3.40381C1.79445 3.20855 1.79445 2.89196 1.98971 2.6967L2.69682 1.98959C2.89208 1.79433 3.20866 1.79433 3.40392 1.98959L14.0105 12.5962C14.2058 12.7915 14.2058 13.108 14.0105 13.3033L13.3034 14.0104C13.1082 14.2057 12.7916 14.2057 12.5963 14.0104L1.98971 3.40381Z"\n stroke="none"\n />\n </svg>'],["empty-64x40",'<svg viewBox="0 0 64 40">\n <g>\n <g clipPath="url(#clip0_499_175492)">\n <path\n d="M32 39.7032C49.6731 39.7032 64 36.5925 64 32.7552C64 28.9179 49.6731 25.8071 32 25.8071C14.3269 25.8071 0 28.9179 0 32.7552C0 36.5925 14.3269 39.7032 32 39.7032Z"\n stroke="none"\n fill="#F5F5F5"\n />\n <path\n d="M55 13.6653L44.854 2.24866C44.367 1.47048 43.656 1 42.907 1H21.093C20.344 1 19.633 1.47048 19.146 2.24767L9 13.6663V22.8367H55V13.6653Z"\n fill="none"\n />\n <path\n d="M41.613 16.8128C41.613 15.2197 42.607 13.9046 43.84 13.9036H55V31.9059C55 34.0132 53.68 35.7402 52.05 35.7402H11.95C10.32 35.7402 9 34.0122 9 31.9059V13.9036H20.16C21.393 13.9036 22.387 15.2167 22.387 16.8098V16.8317C22.387 18.4248 23.392 19.7111 24.624 19.7111H39.376C40.608 19.7111 41.613 18.4128 41.613 16.8198V16.8128Z"\n fill="#FAFAFA"\n />\n </g>\n <defs>\n <clipPath id="clip0_499_175492">\n <rect width="64" height="40" fill="white" />\n </clipPath>\n </defs>\n </g>\n </svg>'],["caret-12x12",'<svg viewBox="0 0 12 12">\n <path\n stroke="none"\n d="M8.38828 5.78337L3.92578 1.93493C3.75938 1.79196 3.51562 1.92087 3.51562 2.15173V9.84861C3.51562 10.0795 3.75938 10.2084 3.92578 10.0654L8.38828 6.21696C8.51602 6.10681 8.51602 5.89353 8.38828 5.78337Z"\n />\n </svg>'],["plus-16x16",'<svg viewBox="0 0 16 16">\n <path\n d="M7.5 1C7.22386 1 7 1.22386 7 1.5V7H1.5C1.22386 7 1 7.22386 1 7.5L1 8.5C1 8.77614 1.22386 9 1.5 9H7V14.5C7 14.7761 7.22386 15 7.5 15H8.5C8.77614 15 9 14.7761 9 14.5V9H14.5C14.7761 9 15 8.77614 15 8.5V7.5C15 7.22386 14.7761 7 14.5 7H9V1.5C9 1.22386 8.77614 1 8.5 1H7.5Z"\n stroke="none"\n />\n </svg>'],["recenter-16x16",'<svg viewBox="0 0 16 16">\n <g stroke="none">\n <path d="M0 2.5C0 2.22386 0.223858 2 0.5 2H1.5C1.77614 2 2 2.22386 2 2.5V13.5C2 13.7761 1.77614 14 1.5 14H0.5C0.223858 14 0 13.7761 0 13.5V2.5Z" />\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M4.5 4C4.22386 4 4 4.22386 4 4.5V11.5C4 11.7761 4.22386 12 4.5 12H11.5C11.7761 12 12 11.7761 12 11.5V4.5C12 4.22386 11.7761 4 11.5 4H4.5ZM6 6V10H10V6H6Z"\n />\n <path d="M14.5 2C14.2239 2 14 2.22386 14 2.5V13.5C14 13.7761 14.2239 14 14.5 14H15.5C15.7761 14 16 13.7761 16 13.5V2.5C16 2.22386 15.7761 2 15.5 2H14.5Z" />\n </g>\n </svg>'],["minus-16x16",'<svg viewBox="0 0 16 16">\n <path\n d="M1.5 9C1.22386 9 1 8.77614 1 8.5L1 7.5C1 7.22386 1.22386 7 1.5 7L14.5 7C14.7761 7 15 7.22386 15 7.5V8.5C15 8.77614 14.7761 9 14.5 9L1.5 9Z"\n stroke="none"\n />\n </svg>'],["logo-horizontal-206x48",'<svg viewBox="0 0 206 48">\n <path d="M27.2678 14.2261H22.3187C21.0695 14.2261 20.4695 14.7801 20.4695 15.9852V31.142L10.3966 15.5591C9.69665 14.4784 9.2475 14.2773 7.8475 14.2261H2.97462C1.67462 14.2261 1.07631 14.7801 1.07631 15.9852V44.7665C1.07631 45.9716 1.67462 46.5256 2.97462 46.5256H7.92377C9.22207 46.5256 9.82207 45.9716 9.82207 44.7665V29.6847L19.9441 45.1926C20.695 46.3244 21.095 46.5256 22.4933 46.5256H27.2933C28.5916 46.5256 29.1916 45.9716 29.1916 44.7665V15.9852C29.1407 14.7801 28.5424 14.2261 27.2678 14.2261Z" />\n <path d="M5.44915 10.9602C8.45863 10.9602 10.8983 8.50669 10.8983 5.48011C10.8983 2.45353 8.45863 0 5.44915 0C2.43967 0 0 2.45353 0 5.48011C0 8.50669 2.43967 10.9602 5.44915 10.9602Z" />\n <path d="M61.7899 25.0449C63.2306 23.1903 65.078 22.2051 67.556 22.2051C72.0526 22.2051 74.7611 25.3347 74.7611 29.4511V39.2489C74.8187 39.7125 74.5306 39.9443 74.0695 39.9443H72.5136C72.0526 39.9443 71.7645 39.7125 71.8221 39.2489V29.5091C71.8221 27.1909 69.9187 25.2187 67.4984 25.2187C65.1339 25.2187 63.2323 27.1329 63.2323 29.2773V39.2489C63.2899 39.7125 63.0018 39.9443 62.5407 39.9443H60.9831C60.5221 39.9443 60.2916 39.7125 60.2916 39.2489V29.4511C60.2916 27.1329 58.3899 25.2187 56.0255 25.2187C53.7204 25.2187 51.7594 27.075 51.7594 29.2773V39.3068C51.817 39.7705 51.5289 40.0023 51.0102 40.0023H49.5119C49.0509 40.0023 48.7628 39.7705 48.7628 39.3068V23.25C48.7051 22.7864 48.9933 22.4966 49.5119 22.4966H50.9526C51.356 22.4966 51.5289 22.6704 51.5289 23.0182V24.2352C52.7407 22.9602 54.239 22.2648 56.0255 22.2648C58.4475 22.2068 60.3492 23.192 61.7899 25.0466V25.0449ZM77.1255 31.2477C77.1255 26.3216 81.1018 22.2051 86.1187 22.2051C88.539 22.2051 90.6136 23.1903 92.3441 25.1608V23.1903C92.3441 22.7267 92.5746 22.5528 93.0357 22.5528H94.4187C94.8797 22.5528 95.1102 22.7847 95.1102 23.3062V39.3648C95.1102 39.8284 94.8797 40.0602 94.4187 40.0602H93.0357C92.5746 40.0602 92.3441 39.8284 92.3441 39.4227V37.4523C90.6712 39.3648 88.5967 40.35 86.1746 40.35C81.1018 40.2341 77.1238 36.1773 77.1238 31.2477H77.1255ZM92.1136 31.2477C92.1136 27.8284 89.4611 25.2187 86.0594 25.2187C82.7746 25.2187 80.1221 27.8864 80.1221 31.2477C80.1221 34.6687 82.7746 37.2784 86.1187 37.2784C86.9062 37.2789 87.6861 37.1232 88.4138 36.8202C89.1414 36.5173 89.8026 36.0731 90.3593 35.513C90.9161 34.9528 91.3577 34.2878 91.6587 33.556C91.9597 32.8241 92.1143 32.0397 92.1136 31.2477ZM100.992 37.3943V46.3807C101.049 46.8443 100.761 47.1341 100.298 47.1341H98.7424C98.2814 47.1341 97.9933 46.9023 97.9933 46.3807V23.1903C97.9933 22.7267 98.2238 22.4369 98.7424 22.4369H100.183C100.646 22.379 100.934 22.6687 100.934 23.0744V24.9869C102.605 23.0744 104.68 22.1472 107.044 22.1472C112.002 22.1472 116.037 26.2619 116.037 31.1898C116.037 36.1176 112.059 40.2341 107.044 40.2341C104.622 40.2341 102.603 39.3068 100.992 37.3943ZM106.987 25.2187C103.7 25.2187 101.049 27.8864 101.049 31.2477C101.049 34.6687 103.7 37.2784 107.044 37.2784C110.446 37.2784 113.039 34.6108 113.039 31.2477C113.039 27.8864 110.388 25.2187 106.987 25.2187ZM121.11 37.3943V46.3807C121.168 46.8443 120.88 47.1341 120.419 47.1341H118.861C118.4 47.1341 118.112 46.9023 118.112 46.3807V23.1903C118.112 22.7267 118.342 22.4369 118.861 22.4369H120.302C120.764 22.379 121.053 22.6687 121.053 23.0744V24.9869C122.724 23.0744 124.798 22.1472 127.163 22.1472C132.12 22.1472 136.156 26.2619 136.156 31.1898C136.156 36.1176 132.178 40.2341 127.163 40.2341C124.742 40.2341 122.781 39.3068 121.11 37.3943ZM127.105 25.2187C123.819 25.2187 121.168 27.8864 121.168 31.2477C121.168 34.6687 123.819 37.2784 127.163 37.2784C130.564 37.2784 133.158 34.6108 133.158 31.2477C133.158 27.8864 130.507 25.2187 127.107 25.2187H127.105ZM153.97 32.3506H141.054C141.342 35.2483 143.995 37.4523 147.164 37.4523C148.893 37.4523 150.393 37.0466 151.719 36.0597C152.007 35.8858 152.295 35.7699 152.353 35.7699C152.583 35.7699 152.756 35.8858 152.929 36.1773L153.505 37.1625C153.622 37.3364 153.68 37.4523 153.68 37.5682C153.68 37.8 153.507 38.0318 153.103 38.3216C151.258 39.5966 149.183 40.292 146.992 40.292C141.688 40.292 137.883 36.3511 137.883 31.2477C137.883 26.204 141.803 22.2051 146.703 22.2051C151.546 22.2051 154.717 25.7983 154.717 31.0176C154.717 31.5972 154.717 32.3506 153.968 32.3506H153.97ZM141.056 30.0324H151.72C151.432 26.8432 149.473 24.929 146.648 24.929C145.241 24.8904 143.875 25.3995 142.833 26.3501C141.791 27.3007 141.154 28.6194 141.056 30.0307V30.0324ZM156.332 31.2477C156.332 26.3216 160.31 22.2051 165.326 22.2051C167.748 22.2051 169.707 23.1324 171.32 25.0449V16.2324C171.263 15.7687 171.551 15.479 172.012 15.479H173.57C174.031 15.479 174.319 15.7108 174.319 16.2324V39.3068C174.319 39.7705 174.088 40.0023 173.57 40.0023H172.129C171.666 40.0602 171.378 39.7705 171.378 39.3648V37.3943C169.649 39.3068 167.632 40.292 165.268 40.292C160.31 40.2341 156.332 36.1773 156.332 31.2477ZM171.264 31.2477C171.264 27.8284 168.612 25.2187 165.21 25.2187C161.924 25.2187 159.273 27.8864 159.273 31.2477C159.273 34.6687 161.924 37.2784 165.268 37.2784C166.057 37.2838 166.839 37.1316 167.569 36.8304C168.299 36.5292 168.962 36.0852 169.52 35.5241C170.077 34.963 170.519 34.296 170.818 33.5619C171.117 32.8277 171.268 32.0411 171.263 31.2477H171.264ZM177.72 19.0739C177.715 18.8594 177.754 18.646 177.833 18.4468C177.912 18.2476 178.031 18.0667 178.182 17.915C178.333 17.7633 178.512 17.6439 178.71 17.5642C178.909 17.4845 179.121 17.446 179.334 17.4511C179.546 17.4507 179.756 17.4923 179.952 17.5737C180.148 17.6551 180.326 17.7746 180.476 17.9254C180.626 18.0762 180.745 18.2553 180.826 18.4523C180.907 18.6494 180.948 18.8606 180.948 19.0739C180.953 19.2884 180.914 19.5017 180.835 19.7009C180.756 19.9001 180.637 20.081 180.486 20.2327C180.335 20.3845 180.156 20.5038 179.957 20.5835C179.759 20.6633 179.547 20.7017 179.334 20.6966C178.412 20.7545 177.72 20.0591 177.72 19.0739ZM177.836 39.2489V23.1903C177.836 22.7267 178.066 22.4369 178.527 22.4369H180.083C180.544 22.4369 180.832 22.6687 180.775 23.1903V39.2489C180.832 39.7125 180.544 39.9443 180.083 39.9443H178.527C178.066 39.9443 177.836 39.7125 177.836 39.2489ZM186.944 23.0165V24.1756C188.212 22.8426 189.71 22.2051 191.497 22.2051C195.937 22.2051 198.646 25.2767 198.646 29.3932V39.2489C198.703 39.7125 198.415 39.9443 197.954 39.9443H196.398C195.936 39.9443 195.705 39.7125 195.705 39.2489V29.4511C195.705 27.1329 193.803 25.2187 191.439 25.2187C189.134 25.2187 187.175 27.075 187.175 29.2773V39.3068C187.232 39.7705 186.944 40.0023 186.424 40.0023H184.868C184.407 40.0023 184.119 39.7705 184.119 39.3068V23.1903C184.061 22.7267 184.349 22.4949 184.868 22.4949H186.309C186.712 22.4949 186.944 22.6687 186.944 23.0165Z" />\n <path d="M204 40C205.115 40 206 39.0857 206 38V37.9886C206 36.9029 205.126 36 204 36C202.885 36 202 36.9143 202 38V38.0114C202 39.0971 202.874 40 204 40ZM204 39.7829C202.989 39.7829 202.23 38.9829 202.23 38.0114V38C202.23 37.0286 203 36.2171 204 36.2171C205.011 36.2171 205.77 37.0171 205.77 37.9886V38C205.77 38.9714 205 39.7829 204 39.7829ZM203.218 38.9714H203.609V38.2743H204.034L204.517 38.9714H204.989L204.448 38.2057C204.724 38.1257 204.92 37.92 204.92 37.5886C204.92 37.1657 204.586 36.9486 204.138 36.9486H203.218V38.9714ZM203.609 37.9543V37.2914H204.103C204.368 37.2914 204.517 37.4057 204.517 37.6229C204.517 37.8171 204.368 37.9543 204.103 37.9543H203.609Z" />\n </svg>'],["share-16x16",'<svg viewBox="0 0 16 16">\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M13 6C14.6569 6 16 4.65685 16 3C16 1.34315 14.6569 0 13 0C11.3431 0 10 1.34315 10 3C10 3.13463 10.0089 3.26719 10.0261 3.39712L6.82972 5.17286C6.10576 4.44825 5.10523 4 4 4C1.79086 4 0 5.79086 0 8C0 10.2091 1.79086 12 4 12C5.10523 12 6.10576 11.5518 6.82972 10.8271L10.0261 12.6029C10.0089 12.7328 10 12.8654 10 13C10 14.6569 11.3431 16 13 16C14.6569 16 16 14.6569 16 13C16 11.3431 14.6569 10 13 10C12.2011 10 11.4752 10.3123 10.9376 10.8214L7.84579 9.1037C7.94622 8.75313 8 8.38284 8 8C8 7.61716 7.94622 7.24687 7.84579 6.8963L10.9376 5.17864C11.4752 5.68775 12.2011 6 13 6ZM13 4C13.5523 4 14 3.55228 14 3C14 2.44772 13.5523 2 13 2C12.4477 2 12 2.44772 12 3C12 3.55228 12.4477 4 13 4ZM4 10C5.10457 10 6 9.10457 6 8C6 6.89543 5.10457 6 4 6C2.89543 6 2 6.89543 2 8C2 9.10457 2.89543 10 4 10ZM14 13C14 13.5523 13.5523 14 13 14C12.4477 14 12 13.5523 12 13C12 12.4477 12.4477 12 13 12C13.5523 12 14 12.4477 14 13Z"\n stroke="none"\n />\n </svg>'],["checkmark-16x16",'<svg viewBox="0 0 16 16">\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M15.387 3.31662C15.6008 3.49148 15.6323 3.80649 15.4574 4.02021L6.77402 14.6332C6.58509 14.8642 6.30292 14.9986 6.00457 15C5.70622 15.0013 5.42285 14.8694 5.23184 14.6402L0.551937 9.02429C0.375155 8.81215 0.403817 8.49687 0.615956 8.32009L1.38418 7.67991C1.59632 7.50312 1.9116 7.53179 2.08838 7.74392L5.99299 12.4295L13.9095 2.75374C14.0844 2.54002 14.3994 2.50852 14.6131 2.68338L15.387 3.31662Z"\n stroke="none"\n />\n </svg>'],["arrow-right-16x16",'<svg viewBox="0 0 16 16">\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M8.35355 1.64645C8.54881 1.45118 8.8654 1.45118 9.06066 1.64645L14.7071 7.29289C15.0976 7.68342 15.0976 8.31658 14.7071 8.70711L9.06066 14.3536C8.8654 14.5488 8.54882 14.5488 8.35355 14.3536L7.64645 13.6464C7.45118 13.4512 7.45118 13.1346 7.64645 12.9393L11.5858 9H0.5C0.223858 9 0 8.77614 0 8.5V7.5C0 7.22386 0.223858 7 0.5 7H11.5858L7.64645 3.06066C7.45118 2.8654 7.45118 2.54882 7.64645 2.35355L8.35355 1.64645Z"\n stroke="none"\n />\n </svg>'],["arrow-up-16x16",'<svg viewBox="0 0 16 16">\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M8.00015 0.5C8.34685 0.5 8.67835 0.642318 8.91714 0.893677L15.6517 7.98267C15.8441 8.18525 15.8359 8.50548 15.6333 8.69793L14.533 9.7433C14.3304 9.93575 14.0101 9.92754 13.8177 9.72496L9.26497 4.93262V15.4249C9.26497 15.7043 9.03846 15.9308 8.75904 15.9308H7.24125C6.96184 15.9308 6.73532 15.7043 6.73532 15.4249V4.93262L2.1826 9.72496C1.99015 9.92754 1.66992 9.93575 1.46734 9.7433L0.366945 8.69793C0.164367 8.50548 0.156156 8.18525 0.348604 7.98267L7.08315 0.893677C7.32194 0.642318 7.65344 0.5 8.00015 0.5Z"\n stroke="none"\n />\n </svg>'],["connection-stairs-16x16",'<svg viewBox="0 0 16 16">\n <g stroke="none">\n <path d="M1 11.5C1 11.2239 1.22386 11 1.5 11H6V13.5C6 13.7761 5.77614 14 5.5 14H1.5C1.22386 14 1 13.7761 1 13.5V11.5Z" />\n <path d="M4 8.5C4 8.22386 4.22386 8 4.5 8H9V10.5C9 10.7761 8.77614 11 8.5 11H4V8.5Z" />\n <path d="M7 5.5C7 5.22386 7.22386 5 7.5 5H12V7.5C12 7.77614 11.7761 8 11.5 8H7V5.5Z" />\n <path d="M10 2.5C10 2.22386 10.2239 2 10.5 2H14.5C14.7761 2 15 2.22386 15 2.5V4.5C15 4.77614 14.7761 5 14.5 5H10V2.5Z" />\n </g>\n </svg>'],["connection-stairs-14x14",'<svg viewBox="0 0 14 14">\n <path\n d="M5.25 12H2.5C2.225 12 2 11.7429 2 11.4286C2 11.1143 2.225 10.8571 2.5 10.8571H4.25V7.91429H6.5V4.94286H8.75V2H11.5C11.775 2 12 2.25714 12 2.57143C12 2.88571 11.775 3.14286 11.5 3.14286H9.75V6.08571H7.5V9.02857H5.25V12Z"\n stroke="none"\n />\n </svg>'],["connection-stairs-12x12",'<svg viewBox="0 0 12 12" stroke="none">\n <path d="M1.625 8.1875C1.625 8.01491 1.76491 7.875 1.9375 7.875H4.75V9.4375C4.75 9.61009 4.61009 9.75 4.4375 9.75H1.9375C1.76491 9.75 1.625 9.61009 1.625 9.4375V8.1875Z" />\n <path d="M3.5 6.3125C3.5 6.13991 3.63991 6 3.8125 6H6.625V7.5625C6.625 7.73509 6.48509 7.875 6.3125 7.875H3.5V6.3125Z" />\n <path d="M5.375 4.4375C5.375 4.26491 5.51491 4.125 5.6875 4.125H8.5V5.6875C8.5 5.86009 8.36009 6 8.1875 6H5.375V4.4375Z" />\n <path d="M7.25 2.5625C7.25 2.38991 7.38991 2.25 7.5625 2.25H10.0625C10.2351 2.25 10.375 2.38991 10.375 2.5625V3.8125C10.375 3.98509 10.2351 4.125 10.0625 4.125H7.25V2.5625Z" />\n </svg>'],["connection-escalator-16x16",'<svg viewBox="0 0 16 16">\n <g stroke="none">\n <path d="M3.63008 12H2C0.895431 12 0 12.8954 0 14C0 15.1046 0.89543 16 2 16H4.63008C4.86879 16 5.09962 15.9146 5.28087 15.7593L11.7191 10.2407C11.9004 10.0854 12.1312 10 12.3699 10H14C15.1046 10 16 9.10457 16 8C16 6.89543 15.1046 6 14 6H11.3699C11.1312 6 10.9004 6.08539 10.7191 6.24074L4.28087 11.7593C4.09962 11.9146 3.86879 12 3.63008 12Z" />\n <path d="M5 6C5 4.89543 5.89543 4 7 4C8.10457 4 9 4.89543 9 6L5 9.5V6Z" />\n <path d="M9 2C9 3.10457 8.10457 4 7 4C5.89543 4 5 3.10457 5 2C5 0.89543 5.89543 0 7 0C8.10457 0 9 0.89543 9 2Z" />\n </g>\n </svg>'],["connection-escalator-14x14",'<svg viewBox="0 0 14 14">\n <path\n d="M5.26686 2.98522C5.26686 2.44335 5.71573 2 6.26436 2C6.81299 2 7.26187 2.44335 7.26187 2.98522C7.26187 3.5271 6.81299 3.97045 6.26436 3.97045C5.71573 3.97045 5.26686 3.50246 5.26686 2.98522Z"\n stroke="none"\n />\n <path\n d="M7.26188 5.48588V5.25125C7.26188 4.85716 6.91275 4.53696 6.48881 4.53696H6.03993C5.61599 4.53696 5.26687 4.88179 5.26687 5.25125V7.66458L4.3192 8.6995H3.67082C2.74813 8.6995 2 9.43842 2 10.3498C2 11.2611 2.74813 12 3.67082 12H4.61845C5.36658 12 6.11471 11.6798 6.61347 11.1133L9.6808 7.76354H10.3292C11.2519 7.76354 12 7.02463 12 6.11329C12 5.20196 11.2519 4.46305 10.3292 4.46305H9.38155C8.60848 4.46305 7.88529 4.78324 7.38653 5.34975L7.26188 5.48588ZM4.61846 11.0148H3.67083C3.29677 11.0148 2.99751 10.7192 2.99751 10.3498C2.99751 9.9803 3.29677 9.68473 3.67083 9.68473H4.61846C4.71821 9.68473 4.81796 9.63547 4.86784 9.56158L8.13467 5.99015C8.45886 5.64532 8.90774 5.44828 9.38155 5.44828H10.3292C10.7032 5.44828 11.0025 5.74384 11.0025 6.1133C11.0025 6.48276 10.7032 6.77833 10.3292 6.77833H9.38155C9.2818 6.77833 9.18205 6.82759 9.13218 6.87685L5.86534 10.4729C5.54115 10.8177 5.09228 11.0148 4.61846 11.0148Z"\n stroke="none"\n />\n </svg>'],["connection-elevator-16x16",'<svg viewBox="0 0 16 16">\n <g stroke="none">\n <path d="M3 5.5C3 6.32843 2.32843 7 1.5 7C0.671573 7 0 6.32843 0 5.5C0 4.67157 0.671573 4 1.5 4C2.32843 4 3 4.67157 3 5.5Z" />\n <path d="M3 10.5C3 11.3284 2.32843 12 1.5 12C0.671573 12 0 11.3284 0 10.5C0 9.67157 0.671573 9 1.5 9C2.32843 9 3 9.67157 3 10.5Z" />\n <path d="M11 1H14C14.5523 1 15 1.44772 15 2V14C15 14.5523 14.5523 15 14 15H11V1Z" />\n <path d="M9 1H6C5.44772 1 5 1.44772 5 2V14C5 14.5523 5.44772 15 6 15H9V1Z" />\n </g>\n </svg>'],["connection-elevator-14x14",'<svg viewBox="0 0 14 14">\n <path\n d="M7.476 2H2.72693C1.77095 2 1 2.72464 1 3.62319V10.3768C1 11.2754 1.77095 12 2.72693 12H7.476C8.43198 12 9.20293 11.2754 9.20293 10.3768V3.62319C9.17209 2.72464 8.40114 2 7.476 2ZM7.476 3.15942C7.75354 3.15942 7.96941 3.36232 7.96941 3.62319V10.3768C7.96941 10.6377 7.75354 10.8406 7.476 10.8406H5.71824V3.15942H7.476ZM4.48472 3.15942V10.8406H2.72693C2.44939 10.8406 2.23352 10.6377 2.23352 10.3768V3.62319C2.23352 3.36232 2.44939 3.15942 2.72693 3.15942H4.48472Z"\n stroke="none"\n />\n <path\n d="M12.4643 6.19064H10.6638C10.4456 6.19064 10.2546 6.06243 10.1728 5.88294C10.0909 5.70346 10.1455 5.47269 10.2819 5.31884L11.1821 4.47269C11.4004 4.26756 11.755 4.26756 11.946 4.47269L12.8462 5.31884C13.0099 5.47269 13.0371 5.67781 12.9553 5.88294C12.8735 6.08807 12.6825 6.19064 12.4643 6.19064Z"\n stroke="none"\n />\n <path\n d="M11.564 9.65216C11.4276 9.65216 11.2912 9.60088 11.1821 9.49831L10.2819 8.65216C10.1182 8.49831 10.0909 8.29319 10.1728 8.08806C10.2546 7.90857 10.4456 7.78036 10.6638 7.78036H12.4643C12.6825 7.78036 12.8735 7.90857 12.9553 8.08806C13.0371 8.26754 12.9826 8.49831 12.8462 8.65216L11.9459 9.49831C11.8641 9.60088 11.7004 9.65216 11.564 9.65216Z"\n stroke="none"\n />\n </svg>'],["connection-elevator-12x12",'<svg viewBox="0 0 12 12" stroke="none">\n <circle cx="1.9375" cy="4.4375" r="0.9375" />\n <circle cx="1.9375" cy="7.5625" r="0.9375" />\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M7.6 2H9.4C9.73137 2 10 2.26863 10 2.6V9.41328C10 9.74465 9.73137 10.0133 9.4 10.0133H7.6V2ZM6.4 2H4.6C4.26863 2 4 2.26863 4 2.6V9.41328C4 9.74465 4.26863 10.0133 4.6 10.0133H6.4V2Z"\n />\n </svg>'],["new-tab-14x14",'<svg viewBox="0 0 14 14">\n <g stroke="none">\n <path d="M2.625 2.625H5.6875C5.92913 2.625 6.125 2.42912 6.125 2.1875V1.3125C6.125 1.07088 5.92913 0.875 5.6875 0.875H1.3125C1.07088 0.875 0.875 1.07088 0.875 1.3125V12.6875C0.875 12.9291 1.07088 13.125 1.3125 13.125H12.6875C12.9291 13.125 13.125 12.9291 13.125 12.6875V8.3125C13.125 8.07088 12.9291 7.875 12.6875 7.875H11.8125C11.5709 7.875 11.375 8.07088 11.375 8.3125V11.375H2.625V2.625Z" />\n <path d="M12.9063 0.875H8.40311C8.20822 0.875 8.11063 1.11062 8.24843 1.24843L9.88124 2.88124L5.8156 6.94688C5.64475 7.11774 5.64475 7.39475 5.8156 7.5656L6.43432 8.18432C6.60517 8.35517 6.88218 8.35517 7.05304 8.18432L11.1187 4.11868L12.7516 5.75157C12.8894 5.88938 13.125 5.79178 13.125 5.59689V1.09375C13.125 0.972938 13.0271 0.875 12.9063 0.875Z" />\n </g>\n </svg>'],["compress-16x16",'<svg viewBox="0 0 16 16">\n <g stroke="none">\n <path\n id="Vector"\n d="M4.67773 10.7154H0.713449C0.556306 10.7154 0.427734 10.844 0.427734 11.0011V11.8583C0.427734 12.0154 0.556306 12.144 0.713449 12.144H3.82059V15.2868C3.82059 15.444 3.94916 15.5725 4.10631 15.5725H4.96345C5.12059 15.5725 5.24916 15.444 5.24916 15.2868V11.2868C5.24916 10.9708 4.99381 10.7154 4.67773 10.7154ZM4.96345 0.429688H4.10631C3.94916 0.429688 3.82059 0.558259 3.82059 0.715402V3.85826H0.713449C0.556306 3.85826 0.427734 3.98683 0.427734 4.14397V5.00112C0.427734 5.15826 0.556306 5.28683 0.713449 5.28683H4.67773C4.99381 5.28683 5.24916 5.03147 5.24916 4.7154V0.715402C5.24916 0.558259 5.12059 0.429688 4.96345 0.429688ZM15.2849 10.7154H11.3206C11.0045 10.7154 10.7492 10.9708 10.7492 11.2868V15.2868C10.7492 15.444 10.8777 15.5725 11.0349 15.5725H11.892C12.0492 15.5725 12.1777 15.444 12.1777 15.2868V12.144H15.2849C15.442 12.144 15.5706 12.0154 15.5706 11.8583V11.0011C15.5706 10.844 15.442 10.7154 15.2849 10.7154ZM15.2849 3.85826H12.1777V0.715402C12.1777 0.558259 12.0492 0.429688 11.892 0.429688H11.0349C10.8777 0.429688 10.7492 0.558259 10.7492 0.715402V4.7154C10.7492 5.03147 11.0045 5.28683 11.3206 5.28683H15.2849C15.442 5.28683 15.5706 5.15826 15.5706 5.00112V4.14397C15.5706 3.98683 15.442 3.85826 15.2849 3.85826Z"\n />\n </g>\n </svg>'],["washroom-14x14",'<svg viewBox="0 0 14 14" stroke="none">\n <path d="M4.55125 3.09062C4.55125 3.69326 4.07639 4.18176 3.49058 4.18176C2.90525 4.18176 2.43039 3.69326 2.43039 3.09062C2.43039 2.4885 2.90525 2 3.49058 2C4.07639 2 4.55125 2.4885 4.55125 3.09062Z" />\n <path d="M5.1193 5.48047C4.81653 4.83116 4.17252 4.41571 3.47822 4.41571C2.78392 4.41571 2.13986 4.83116 1.83714 5.48047L1.04175 7.22034C0.940664 7.441 1.02893 7.70073 1.24393 7.81791C1.47077 7.90871 1.72324 7.81791 1.82433 7.59725L2.49349 6.15554L2.21587 11.4407C2.20305 11.7263 2.41805 11.9734 2.69567 11.9993C2.97329 12.0124 3.21344 11.7913 3.23859 11.5057L3.4028 8.285H3.567L3.73121 11.5057C3.74403 11.7913 3.97086 11.9993 4.23616 11.9993H4.26131C4.53893 11.9861 4.75343 11.7395 4.74111 11.4407L4.46349 6.15554L5.13265 7.59725C5.20858 7.75298 5.35997 7.85697 5.52418 7.85697C5.5873 7.85697 5.65042 7.84379 5.71354 7.81792C5.92804 7.71393 6.0163 7.44153 5.91572 7.22035L5.1193 5.48047Z" />\n <path d="M12.9582 7.22034L12.1505 5.48047C11.8477 4.83116 11.2037 4.41571 10.5094 4.41571C9.81513 4.41571 9.17107 4.83116 8.86836 5.48047L8.06064 7.22034C7.95955 7.441 8.04782 7.70073 8.26282 7.81791C8.47732 7.9219 8.7298 7.8311 8.84371 7.60993L9.52519 6.12977L9.46207 7.2204L8.57842 8.92184C8.47733 9.11663 8.61638 9.36316 8.83089 9.36316H9.33584L9.22242 11.4668C9.2096 11.7397 9.41177 11.9862 9.68939 11.9994C9.95469 12.0126 10.1943 11.8046 10.2072 11.519L10.3581 9.33723H10.6737L10.7871 11.5058C10.7999 11.7787 11.0144 11.9862 11.2792 11.9862H11.3043C11.5696 11.973 11.7841 11.7396 11.7713 11.4535L11.6579 9.33718H12.1628C12.3773 9.33718 12.5287 9.09066 12.4153 8.89586L11.5317 7.19442L11.4685 6.1038L12.1757 7.5972C12.2516 7.75293 12.403 7.85692 12.5672 7.85692C12.6303 7.85692 12.6934 7.84373 12.7566 7.81786C12.9711 7.70068 13.0593 7.44102 12.9582 7.22034Z" />\n <path d="M11.5696 3.09062C11.5696 3.69326 11.0948 4.18176 10.5094 4.18176C9.92363 4.18176 9.44876 3.69326 9.44876 3.09062C9.44876 2.4885 9.92363 2 10.5094 2C11.0948 2 11.5696 2.4885 11.5696 3.09062Z" />\n <path d="M6.99996 2.00006C6.76031 2.00006 6.57095 2.19485 6.57095 2.44138V11.5575C6.57095 11.804 6.76031 11.9988 6.99996 11.9988C7.2396 11.9988 7.42896 11.804 7.42896 11.5575V2.44138C7.42896 2.19485 7.2396 2.00006 6.99996 2.00006Z" />\n </svg>'],["point-of-interest-12x12",'<svg viewBox="0 0 12 12" stroke="none">\n <path\n stroke="none"\n id="Subtract"\n fill-rule="evenodd"\n clip-rule="evenodd"\n d="M6.24724 10.7516C7.94597 9.0358 9.85962 6.89195 9.85962 4.85965C9.85962 2.72802 8.13159 1 5.99997 1C3.86834 1 2.14032 2.72802 2.14032 4.85965C2.14032 6.89195 4.05397 9.0358 5.7527 10.7516C5.88904 10.8893 6.1109 10.8893 6.24724 10.7516ZM5.99994 6.26317C6.77508 6.26317 7.40345 5.6348 7.40345 4.85967C7.40345 4.08453 6.77508 3.45616 5.99994 3.45616C5.22481 3.45616 4.59644 4.08453 4.59644 4.85967C4.59644 5.6348 5.22481 6.26317 5.99994 6.26317Z"\n />\n </svg>'],["flag-20x20",'<svg viewBox="0 0 20 20" stroke="none">\n <path\n d="M16.9987 4.27111C16.936 5.06715 16.3836 5.93162 15.5238 6.57845C14.7549 7.15682 13.0885 8.04927 10.5434 7.55174C8.32167 7.1164 6.82156 8.02129 6.08085 10.2416L8.24615 17.3998C8.31833 17.6471 8.17711 17.9059 7.9292 17.9813C7.88527 17.9938 7.83976 18 7.79426 18C7.58634 18 7.40277 17.8647 7.34236 17.6673L5.1644 10.4686C5.13773 10.4173 5.12125 10.3613 5.11419 10.3038L3.41956 4.70042C3.38112 4.63512 3.35994 4.56127 3.3568 4.48587L3.02101 3.37886C2.98413 3.25992 2.9959 3.13165 3.05553 3.02203C3.11437 2.91242 3.21479 2.83079 3.33482 2.79504C3.45564 2.75928 3.5851 2.7725 3.69494 2.83235C3.80477 2.89144 3.88637 2.99172 3.92167 3.11143L3.9813 3.31355C4.38847 2.85956 4.90472 2.51439 5.48136 2.30915C6.97201 1.75566 8.95216 1.95467 10.6469 2.83156C11.6888 3.36951 14.3374 4.54493 16.3647 3.79553C16.5154 3.74111 16.684 3.76599 16.8127 3.86239C16.9406 3.95879 17.0105 4.11251 16.9987 4.27111Z"\n stroke="none"\n />\n </svg>'],["link-16x16",'<svg viewBox="0 0 16 16" stroke="none">\n <path\n d="M9.10678 11.2433C9.07993 11.2167 9.04367 11.2018 9.00589 11.2018C8.9681 11.2018 8.93184 11.2167 8.90499 11.2433L6.82999 13.3183C5.86928 14.279 4.24785 14.3808 3.18714 13.3183C2.12464 12.2558 2.22642 10.6362 3.18714 9.67546L5.26214 7.60046C5.31749 7.5451 5.31749 7.45403 5.26214 7.39868L4.55142 6.68796C4.52457 6.66138 4.48832 6.64646 4.45053 6.64646C4.41274 6.64646 4.37649 6.66138 4.34964 6.68796L2.27464 8.76296C0.763923 10.2737 0.763923 12.7183 2.27464 14.2272C3.78535 15.7362 6.22999 15.738 7.73892 14.2272L9.81392 12.1522C9.86928 12.0969 9.86928 12.0058 9.81392 11.9505L9.10678 11.2433ZM13.7246 2.77903C12.2139 1.26832 9.76928 1.26832 8.26035 2.77903L6.18357 4.85403C6.15698 4.88088 6.14207 4.91714 6.14207 4.95493C6.14207 4.99271 6.15698 5.02897 6.18357 5.05582L6.89249 5.76475C6.94785 5.8201 7.03892 5.8201 7.09428 5.76475L9.16928 3.68975C10.13 2.72903 11.7514 2.62725 12.8121 3.68975C13.8746 4.75225 13.7729 6.37189 12.8121 7.3326L10.7371 9.4076C10.7106 9.43445 10.6956 9.47071 10.6956 9.5085C10.6956 9.54628 10.7106 9.58254 10.7371 9.60939L11.4479 10.3201C11.5032 10.3755 11.5943 10.3755 11.6496 10.3201L13.7246 8.2451C15.2336 6.73439 15.2336 4.28975 13.7246 2.77903ZM9.75142 6.00939C9.72457 5.9828 9.68832 5.96789 9.65053 5.96789C9.61275 5.96789 9.57649 5.9828 9.54964 6.00939L5.50499 10.0522C5.47841 10.0791 5.46349 10.1154 5.46349 10.1531C5.46349 10.1909 5.47841 10.2272 5.50499 10.254L6.21214 10.9612C6.26749 11.0165 6.35857 11.0165 6.41392 10.9612L10.4568 6.91832C10.5121 6.86296 10.5121 6.77189 10.4568 6.71653L9.75142 6.00939Z"\n stroke="none"\n />\n </svg>']]),yZ=/<svg([^>]*)>/g;function J_(i,e,t){let n=vZ.get(i);return n?n.replace(yZ,'<svg$1 xmlns="http://www.w3.org/2000/svg" style="fill:'.concat(e,"; width:").concat(t,"px; height:").concat(t,'px">')):""}l(J_,"getStyledIcon");var Il,Uu,nm,Jx,Vv,$_,zv,eO,rm,$x,jv,tO,eT=class eT{constructor(e,t){w(this,nm);w(this,Vv);w(this,zv);w(this,rm);w(this,jv);w(this,Il,void 0);w(this,Uu,void 0);p(this,"colors",{default:"#3D5676",connection:"#128387",washroom:"#3161B4",point:"#AD468F"});A(this,Il,e),A(this,Uu,t)}auto(){let e=d(this,Uu)[Object.keys(d(this,Uu))[0]];[...e.getByType("connection"),...e.getByType("point-of-interest"),...e.getByType("space")].forEach(t=>{t.__type==="connection"?t.coordinates.forEach(n=>{d(this,Il).Labels.add(n,t.name,Z(this,nm,Jx).call(this,t))}):(t.__type==="space"&&t.name!==""&&d(this,Il).updateState(t,{interactive:!0,hoverColor:"#F0F0F0"}),d(this,Il).Labels.add(t,t.name,Z(this,nm,Jx).call(this,t)))})}};Il=new WeakMap,Uu=new WeakMap,nm=new WeakSet,Jx=l(function(e){let t=J_(Z(this,Vv,$_).call(this,e),"white",12);return{appearance:{text:{foregroundColor:Z(this,rm,$x).call(this,e)},marker:{foregroundColor:{active:Z(this,rm,$x).call(this,e)},icon:t,iconSize:12}},interactive:!0,rank:Z(this,jv,tO).call(this,e)}},"#generatLabelAppearance"),Vv=new WeakSet,$_=l(function(e){return e.__type==="connection"?Z(this,zv,eO).call(this,e.type):e.name.includes("Washroom")?"washroom-14x14":e.__type==="point-of-interest"?"point-of-interest-12x12":""},"#getIconName"),zv=new WeakSet,eO=l(function(e){let t="";switch(e){case"elevator":t="connection-elevator-12x12";break;case"escalator":t="connection-escalator-12x12";break;case"stairs":t="connection-stairs-12x12";break}return t},"#attemptIconNameForConnection"),rm=new WeakSet,$x=l(function(e){return e.__type==="connection"?this.colors.connection:e.__type==="point-of-interest"?this.colors.point:"name"in e&&e.name.includes("Washroom")?this.colors.washroom:this.colors.default},"#getLabelColor"),jv=new WeakSet,tO=l(function(e){return e.__type==="connection"?"high":(e.__type==="point-of-interest","medium")},"#getDefaultLabelRank"),l(eT,"Labels");var Uv=eT;var tT=class tT{constructor(e,t){p(this,"Labels");p(this,"auto",l(()=>{this.Labels.auto()},"auto"));this.Labels=new Uv(e,t)}};l(tT,"DefaultTheme");var Gv=tT;y();y();y();var bZ=new Map([["search-16x16",'<svg viewBox="0 0 16 16">\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M1 7C1 3.68629 3.68629 1 7 1C10.3137 1 13 3.68629 13 7C13 8.29583 12.5892 9.49572 11.8907 10.4765L15.4614 14.0472C15.6567 14.2425 15.6567 14.559 15.4614 14.7543L14.7543 15.4614C14.559 15.6567 14.2424 15.6567 14.0472 15.4614L10.4765 11.8907C9.49571 12.5892 8.29583 13 7 13C3.68629 13 1 10.3137 1 7ZM7 11C4.79086 11 3 9.20914 3 7C3 4.79086 4.79086 3 7 3C9.20914 3 11 4.79086 11 7C11 9.20914 9.20914 11 7 11Z"\n stroke="none"\n />\n </svg>'],["close-16x16",'<svg viewBox="0 0 16 16">\n <path\n d="M12.5963 1.98959C12.7916 1.79433 13.1082 1.79433 13.3034 1.98959L14.0105 2.6967C14.2058 2.89196 14.2058 3.20855 14.0105 3.40381L3.40392 14.0104C3.20866 14.2057 2.89208 14.2057 2.69682 14.0104L1.98971 13.3033C1.79445 13.108 1.79445 12.7915 1.98971 12.5962L12.5963 1.98959Z"\n stroke="none"\n />\n <path\n d="M1.98971 3.40381C1.79445 3.20855 1.79445 2.89196 1.98971 2.6967L2.69682 1.98959C2.89208 1.79433 3.20866 1.79433 3.40392 1.98959L14.0105 12.5962C14.2058 12.7915 14.2058 13.108 14.0105 13.3033L13.3034 14.0104C13.1082 14.2057 12.7916 14.2057 12.5963 14.0104L1.98971 3.40381Z"\n stroke="none"\n />\n </svg>'],["empty-64x40",'<svg viewBox="0 0 64 40">\n <g>\n <g clipPath="url(#clip0_499_175492)">\n <path\n d="M32 39.7032C49.6731 39.7032 64 36.5925 64 32.7552C64 28.9179 49.6731 25.8071 32 25.8071C14.3269 25.8071 0 28.9179 0 32.7552C0 36.5925 14.3269 39.7032 32 39.7032Z"\n stroke="none"\n fill="#F5F5F5"\n />\n <path\n d="M55 13.6653L44.854 2.24866C44.367 1.47048 43.656 1 42.907 1H21.093C20.344 1 19.633 1.47048 19.146 2.24767L9 13.6663V22.8367H55V13.6653Z"\n fill="none"\n />\n <path\n d="M41.613 16.8128C41.613 15.2197 42.607 13.9046 43.84 13.9036H55V31.9059C55 34.0132 53.68 35.7402 52.05 35.7402H11.95C10.32 35.7402 9 34.0122 9 31.9059V13.9036H20.16C21.393 13.9036 22.387 15.2167 22.387 16.8098V16.8317C22.387 18.4248 23.392 19.7111 24.624 19.7111H39.376C40.608 19.7111 41.613 18.4128 41.613 16.8198V16.8128Z"\n fill="#FAFAFA"\n />\n </g>\n <defs>\n <clipPath id="clip0_499_175492">\n <rect width="64" height="40" fill="white" />\n </clipPath>\n </defs>\n </g>\n </svg>'],["caret-12x12",'<svg viewBox="0 0 12 12">\n <path\n stroke="none"\n d="M8.38828 5.78337L3.92578 1.93493C3.75938 1.79196 3.51562 1.92087 3.51562 2.15173V9.84861C3.51562 10.0795 3.75938 10.2084 3.92578 10.0654L8.38828 6.21696C8.51602 6.10681 8.51602 5.89353 8.38828 5.78337Z"\n />\n </svg>'],["plus-16x16",'<svg viewBox="0 0 16 16">\n <path\n d="M7.5 1C7.22386 1 7 1.22386 7 1.5V7H1.5C1.22386 7 1 7.22386 1 7.5L1 8.5C1 8.77614 1.22386 9 1.5 9H7V14.5C7 14.7761 7.22386 15 7.5 15H8.5C8.77614 15 9 14.7761 9 14.5V9H14.5C14.7761 9 15 8.77614 15 8.5V7.5C15 7.22386 14.7761 7 14.5 7H9V1.5C9 1.22386 8.77614 1 8.5 1H7.5Z"\n stroke="none"\n />\n </svg>'],["recenter-16x16",'<svg viewBox="0 0 16 16">\n <g stroke="none">\n <path d="M0 2.5C0 2.22386 0.223858 2 0.5 2H1.5C1.77614 2 2 2.22386 2 2.5V13.5C2 13.7761 1.77614 14 1.5 14H0.5C0.223858 14 0 13.7761 0 13.5V2.5Z" />\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M4.5 4C4.22386 4 4 4.22386 4 4.5V11.5C4 11.7761 4.22386 12 4.5 12H11.5C11.7761 12 12 11.7761 12 11.5V4.5C12 4.22386 11.7761 4 11.5 4H4.5ZM6 6V10H10V6H6Z"\n />\n <path d="M14.5 2C14.2239 2 14 2.22386 14 2.5V13.5C14 13.7761 14.2239 14 14.5 14H15.5C15.7761 14 16 13.7761 16 13.5V2.5C16 2.22386 15.7761 2 15.5 2H14.5Z" />\n </g>\n </svg>'],["minus-16x16",'<svg viewBox="0 0 16 16">\n <path\n d="M1.5 9C1.22386 9 1 8.77614 1 8.5L1 7.5C1 7.22386 1.22386 7 1.5 7L14.5 7C14.7761 7 15 7.22386 15 7.5V8.5C15 8.77614 14.7761 9 14.5 9L1.5 9Z"\n stroke="none"\n />\n </svg>'],["logo-horizontal-206x48",'<svg viewBox="0 0 206 48">\n <path d="M27.2678 14.2261H22.3187C21.0695 14.2261 20.4695 14.7801 20.4695 15.9852V31.142L10.3966 15.5591C9.69665 14.4784 9.2475 14.2773 7.8475 14.2261H2.97462C1.67462 14.2261 1.07631 14.7801 1.07631 15.9852V44.7665C1.07631 45.9716 1.67462 46.5256 2.97462 46.5256H7.92377C9.22207 46.5256 9.82207 45.9716 9.82207 44.7665V29.6847L19.9441 45.1926C20.695 46.3244 21.095 46.5256 22.4933 46.5256H27.2933C28.5916 46.5256 29.1916 45.9716 29.1916 44.7665V15.9852C29.1407 14.7801 28.5424 14.2261 27.2678 14.2261Z" />\n <path d="M5.44915 10.9602C8.45863 10.9602 10.8983 8.50669 10.8983 5.48011C10.8983 2.45353 8.45863 0 5.44915 0C2.43967 0 0 2.45353 0 5.48011C0 8.50669 2.43967 10.9602 5.44915 10.9602Z" />\n <path d="M61.7899 25.0449C63.2306 23.1903 65.078 22.2051 67.556 22.2051C72.0526 22.2051 74.7611 25.3347 74.7611 29.4511V39.2489C74.8187 39.7125 74.5306 39.9443 74.0695 39.9443H72.5136C72.0526 39.9443 71.7645 39.7125 71.8221 39.2489V29.5091C71.8221 27.1909 69.9187 25.2187 67.4984 25.2187C65.1339 25.2187 63.2323 27.1329 63.2323 29.2773V39.2489C63.2899 39.7125 63.0018 39.9443 62.5407 39.9443H60.9831C60.5221 39.9443 60.2916 39.7125 60.2916 39.2489V29.4511C60.2916 27.1329 58.3899 25.2187 56.0255 25.2187C53.7204 25.2187 51.7594 27.075 51.7594 29.2773V39.3068C51.817 39.7705 51.5289 40.0023 51.0102 40.0023H49.5119C49.0509 40.0023 48.7628 39.7705 48.7628 39.3068V23.25C48.7051 22.7864 48.9933 22.4966 49.5119 22.4966H50.9526C51.356 22.4966 51.5289 22.6704 51.5289 23.0182V24.2352C52.7407 22.9602 54.239 22.2648 56.0255 22.2648C58.4475 22.2068 60.3492 23.192 61.7899 25.0466V25.0449ZM77.1255 31.2477C77.1255 26.3216 81.1018 22.2051 86.1187 22.2051C88.539 22.2051 90.6136 23.1903 92.3441 25.1608V23.1903C92.3441 22.7267 92.5746 22.5528 93.0357 22.5528H94.4187C94.8797 22.5528 95.1102 22.7847 95.1102 23.3062V39.3648C95.1102 39.8284 94.8797 40.0602 94.4187 40.0602H93.0357C92.5746 40.0602 92.3441 39.8284 92.3441 39.4227V37.4523C90.6712 39.3648 88.5967 40.35 86.1746 40.35C81.1018 40.2341 77.1238 36.1773 77.1238 31.2477H77.1255ZM92.1136 31.2477C92.1136 27.8284 89.4611 25.2187 86.0594 25.2187C82.7746 25.2187 80.1221 27.8864 80.1221 31.2477C80.1221 34.6687 82.7746 37.2784 86.1187 37.2784C86.9062 37.2789 87.6861 37.1232 88.4138 36.8202C89.1414 36.5173 89.8026 36.0731 90.3593 35.513C90.9161 34.9528 91.3577 34.2878 91.6587 33.556C91.9597 32.8241 92.1143 32.0397 92.1136 31.2477ZM100.992 37.3943V46.3807C101.049 46.8443 100.761 47.1341 100.298 47.1341H98.7424C98.2814 47.1341 97.9933 46.9023 97.9933 46.3807V23.1903C97.9933 22.7267 98.2238 22.4369 98.7424 22.4369H100.183C100.646 22.379 100.934 22.6687 100.934 23.0744V24.9869C102.605 23.0744 104.68 22.1472 107.044 22.1472C112.002 22.1472 116.037 26.2619 116.037 31.1898C116.037 36.1176 112.059 40.2341 107.044 40.2341C104.622 40.2341 102.603 39.3068 100.992 37.3943ZM106.987 25.2187C103.7 25.2187 101.049 27.8864 101.049 31.2477C101.049 34.6687 103.7 37.2784 107.044 37.2784C110.446 37.2784 113.039 34.6108 113.039 31.2477C113.039 27.8864 110.388 25.2187 106.987 25.2187ZM121.11 37.3943V46.3807C121.168 46.8443 120.88 47.1341 120.419 47.1341H118.861C118.4 47.1341 118.112 46.9023 118.112 46.3807V23.1903C118.112 22.7267 118.342 22.4369 118.861 22.4369H120.302C120.764 22.379 121.053 22.6687 121.053 23.0744V24.9869C122.724 23.0744 124.798 22.1472 127.163 22.1472C132.12 22.1472 136.156 26.2619 136.156 31.1898C136.156 36.1176 132.178 40.2341 127.163 40.2341C124.742 40.2341 122.781 39.3068 121.11 37.3943ZM127.105 25.2187C123.819 25.2187 121.168 27.8864 121.168 31.2477C121.168 34.6687 123.819 37.2784 127.163 37.2784C130.564 37.2784 133.158 34.6108 133.158 31.2477C133.158 27.8864 130.507 25.2187 127.107 25.2187H127.105ZM153.97 32.3506H141.054C141.342 35.2483 143.995 37.4523 147.164 37.4523C148.893 37.4523 150.393 37.0466 151.719 36.0597C152.007 35.8858 152.295 35.7699 152.353 35.7699C152.583 35.7699 152.756 35.8858 152.929 36.1773L153.505 37.1625C153.622 37.3364 153.68 37.4523 153.68 37.5682C153.68 37.8 153.507 38.0318 153.103 38.3216C151.258 39.5966 149.183 40.292 146.992 40.292C141.688 40.292 137.883 36.3511 137.883 31.2477C137.883 26.204 141.803 22.2051 146.703 22.2051C151.546 22.2051 154.717 25.7983 154.717 31.0176C154.717 31.5972 154.717 32.3506 153.968 32.3506H153.97ZM141.056 30.0324H151.72C151.432 26.8432 149.473 24.929 146.648 24.929C145.241 24.8904 143.875 25.3995 142.833 26.3501C141.791 27.3007 141.154 28.6194 141.056 30.0307V30.0324ZM156.332 31.2477C156.332 26.3216 160.31 22.2051 165.326 22.2051C167.748 22.2051 169.707 23.1324 171.32 25.0449V16.2324C171.263 15.7687 171.551 15.479 172.012 15.479H173.57C174.031 15.479 174.319 15.7108 174.319 16.2324V39.3068C174.319 39.7705 174.088 40.0023 173.57 40.0023H172.129C171.666 40.0602 171.378 39.7705 171.378 39.3648V37.3943C169.649 39.3068 167.632 40.292 165.268 40.292C160.31 40.2341 156.332 36.1773 156.332 31.2477ZM171.264 31.2477C171.264 27.8284 168.612 25.2187 165.21 25.2187C161.924 25.2187 159.273 27.8864 159.273 31.2477C159.273 34.6687 161.924 37.2784 165.268 37.2784C166.057 37.2838 166.839 37.1316 167.569 36.8304C168.299 36.5292 168.962 36.0852 169.52 35.5241C170.077 34.963 170.519 34.296 170.818 33.5619C171.117 32.8277 171.268 32.0411 171.263 31.2477H171.264ZM177.72 19.0739C177.715 18.8594 177.754 18.646 177.833 18.4468C177.912 18.2476 178.031 18.0667 178.182 17.915C178.333 17.7633 178.512 17.6439 178.71 17.5642C178.909 17.4845 179.121 17.446 179.334 17.4511C179.546 17.4507 179.756 17.4923 179.952 17.5737C180.148 17.6551 180.326 17.7746 180.476 17.9254C180.626 18.0762 180.745 18.2553 180.826 18.4523C180.907 18.6494 180.948 18.8606 180.948 19.0739C180.953 19.2884 180.914 19.5017 180.835 19.7009C180.756 19.9001 180.637 20.081 180.486 20.2327C180.335 20.3845 180.156 20.5038 179.957 20.5835C179.759 20.6633 179.547 20.7017 179.334 20.6966C178.412 20.7545 177.72 20.0591 177.72 19.0739ZM177.836 39.2489V23.1903C177.836 22.7267 178.066 22.4369 178.527 22.4369H180.083C180.544 22.4369 180.832 22.6687 180.775 23.1903V39.2489C180.832 39.7125 180.544 39.9443 180.083 39.9443H178.527C178.066 39.9443 177.836 39.7125 177.836 39.2489ZM186.944 23.0165V24.1756C188.212 22.8426 189.71 22.2051 191.497 22.2051C195.937 22.2051 198.646 25.2767 198.646 29.3932V39.2489C198.703 39.7125 198.415 39.9443 197.954 39.9443H196.398C195.936 39.9443 195.705 39.7125 195.705 39.2489V29.4511C195.705 27.1329 193.803 25.2187 191.439 25.2187C189.134 25.2187 187.175 27.075 187.175 29.2773V39.3068C187.232 39.7705 186.944 40.0023 186.424 40.0023H184.868C184.407 40.0023 184.119 39.7705 184.119 39.3068V23.1903C184.061 22.7267 184.349 22.4949 184.868 22.4949H186.309C186.712 22.4949 186.944 22.6687 186.944 23.0165Z" />\n <path d="M204 40C205.115 40 206 39.0857 206 38V37.9886C206 36.9029 205.126 36 204 36C202.885 36 202 36.9143 202 38V38.0114C202 39.0971 202.874 40 204 40ZM204 39.7829C202.989 39.7829 202.23 38.9829 202.23 38.0114V38C202.23 37.0286 203 36.2171 204 36.2171C205.011 36.2171 205.77 37.0171 205.77 37.9886V38C205.77 38.9714 205 39.7829 204 39.7829ZM203.218 38.9714H203.609V38.2743H204.034L204.517 38.9714H204.989L204.448 38.2057C204.724 38.1257 204.92 37.92 204.92 37.5886C204.92 37.1657 204.586 36.9486 204.138 36.9486H203.218V38.9714ZM203.609 37.9543V37.2914H204.103C204.368 37.2914 204.517 37.4057 204.517 37.6229C204.517 37.8171 204.368 37.9543 204.103 37.9543H203.609Z" />\n </svg>'],["share-16x16",'<svg viewBox="0 0 16 16">\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M13 6C14.6569 6 16 4.65685 16 3C16 1.34315 14.6569 0 13 0C11.3431 0 10 1.34315 10 3C10 3.13463 10.0089 3.26719 10.0261 3.39712L6.82972 5.17286C6.10576 4.44825 5.10523 4 4 4C1.79086 4 0 5.79086 0 8C0 10.2091 1.79086 12 4 12C5.10523 12 6.10576 11.5518 6.82972 10.8271L10.0261 12.6029C10.0089 12.7328 10 12.8654 10 13C10 14.6569 11.3431 16 13 16C14.6569 16 16 14.6569 16 13C16 11.3431 14.6569 10 13 10C12.2011 10 11.4752 10.3123 10.9376 10.8214L7.84579 9.1037C7.94622 8.75313 8 8.38284 8 8C8 7.61716 7.94622 7.24687 7.84579 6.8963L10.9376 5.17864C11.4752 5.68775 12.2011 6 13 6ZM13 4C13.5523 4 14 3.55228 14 3C14 2.44772 13.5523 2 13 2C12.4477 2 12 2.44772 12 3C12 3.55228 12.4477 4 13 4ZM4 10C5.10457 10 6 9.10457 6 8C6 6.89543 5.10457 6 4 6C2.89543 6 2 6.89543 2 8C2 9.10457 2.89543 10 4 10ZM14 13C14 13.5523 13.5523 14 13 14C12.4477 14 12 13.5523 12 13C12 12.4477 12.4477 12 13 12C13.5523 12 14 12.4477 14 13Z"\n stroke="none"\n />\n </svg>'],["checkmark-16x16",'<svg viewBox="0 0 16 16">\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M15.387 3.31662C15.6008 3.49148 15.6323 3.80649 15.4574 4.02021L6.77402 14.6332C6.58509 14.8642 6.30292 14.9986 6.00457 15C5.70622 15.0013 5.42285 14.8694 5.23184 14.6402L0.551937 9.02429C0.375155 8.81215 0.403817 8.49687 0.615956 8.32009L1.38418 7.67991C1.59632 7.50312 1.9116 7.53179 2.08838 7.74392L5.99299 12.4295L13.9095 2.75374C14.0844 2.54002 14.3994 2.50852 14.6131 2.68338L15.387 3.31662Z"\n stroke="none"\n />\n </svg>'],["arrow-right-16x16",'<svg viewBox="0 0 16 16">\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M8.35355 1.64645C8.54881 1.45118 8.8654 1.45118 9.06066 1.64645L14.7071 7.29289C15.0976 7.68342 15.0976 8.31658 14.7071 8.70711L9.06066 14.3536C8.8654 14.5488 8.54882 14.5488 8.35355 14.3536L7.64645 13.6464C7.45118 13.4512 7.45118 13.1346 7.64645 12.9393L11.5858 9H0.5C0.223858 9 0 8.77614 0 8.5V7.5C0 7.22386 0.223858 7 0.5 7H11.5858L7.64645 3.06066C7.45118 2.8654 7.45118 2.54882 7.64645 2.35355L8.35355 1.64645Z"\n stroke="none"\n />\n </svg>'],["arrow-up-16x16",'<svg viewBox="0 0 16 16">\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M8.00015 0.5C8.34685 0.5 8.67835 0.642318 8.91714 0.893677L15.6517 7.98267C15.8441 8.18525 15.8359 8.50548 15.6333 8.69793L14.533 9.7433C14.3304 9.93575 14.0101 9.92754 13.8177 9.72496L9.26497 4.93262V15.4249C9.26497 15.7043 9.03846 15.9308 8.75904 15.9308H7.24125C6.96184 15.9308 6.73532 15.7043 6.73532 15.4249V4.93262L2.1826 9.72496C1.99015 9.92754 1.66992 9.93575 1.46734 9.7433L0.366945 8.69793C0.164367 8.50548 0.156156 8.18525 0.348604 7.98267L7.08315 0.893677C7.32194 0.642318 7.65344 0.5 8.00015 0.5Z"\n stroke="none"\n />\n </svg>'],["connection-stairs-16x16",'<svg viewBox="0 0 16 16">\n <g stroke="none">\n <path d="M1 11.5C1 11.2239 1.22386 11 1.5 11H6V13.5C6 13.7761 5.77614 14 5.5 14H1.5C1.22386 14 1 13.7761 1 13.5V11.5Z" />\n <path d="M4 8.5C4 8.22386 4.22386 8 4.5 8H9V10.5C9 10.7761 8.77614 11 8.5 11H4V8.5Z" />\n <path d="M7 5.5C7 5.22386 7.22386 5 7.5 5H12V7.5C12 7.77614 11.7761 8 11.5 8H7V5.5Z" />\n <path d="M10 2.5C10 2.22386 10.2239 2 10.5 2H14.5C14.7761 2 15 2.22386 15 2.5V4.5C15 4.77614 14.7761 5 14.5 5H10V2.5Z" />\n </g>\n </svg>'],["connection-stairs-14x14",'<svg viewBox="0 0 14 14">\n <path\n d="M5.25 12H2.5C2.225 12 2 11.7429 2 11.4286C2 11.1143 2.225 10.8571 2.5 10.8571H4.25V7.91429H6.5V4.94286H8.75V2H11.5C11.775 2 12 2.25714 12 2.57143C12 2.88571 11.775 3.14286 11.5 3.14286H9.75V6.08571H7.5V9.02857H5.25V12Z"\n stroke="none"\n />\n </svg>'],["connection-stairs-12x12",'<svg viewBox="0 0 12 12" stroke="none">\n <path d="M1.625 8.1875C1.625 8.01491 1.76491 7.875 1.9375 7.875H4.75V9.4375C4.75 9.61009 4.61009 9.75 4.4375 9.75H1.9375C1.76491 9.75 1.625 9.61009 1.625 9.4375V8.1875Z" />\n <path d="M3.5 6.3125C3.5 6.13991 3.63991 6 3.8125 6H6.625V7.5625C6.625 7.73509 6.48509 7.875 6.3125 7.875H3.5V6.3125Z" />\n <path d="M5.375 4.4375C5.375 4.26491 5.51491 4.125 5.6875 4.125H8.5V5.6875C8.5 5.86009 8.36009 6 8.1875 6H5.375V4.4375Z" />\n <path d="M7.25 2.5625C7.25 2.38991 7.38991 2.25 7.5625 2.25H10.0625C10.2351 2.25 10.375 2.38991 10.375 2.5625V3.8125C10.375 3.98509 10.2351 4.125 10.0625 4.125H7.25V2.5625Z" />\n </svg>'],["connection-escalator-16x16",'<svg viewBox="0 0 16 16">\n <g stroke="none">\n <path d="M3.63008 12H2C0.895431 12 0 12.8954 0 14C0 15.1046 0.89543 16 2 16H4.63008C4.86879 16 5.09962 15.9146 5.28087 15.7593L11.7191 10.2407C11.9004 10.0854 12.1312 10 12.3699 10H14C15.1046 10 16 9.10457 16 8C16 6.89543 15.1046 6 14 6H11.3699C11.1312 6 10.9004 6.08539 10.7191 6.24074L4.28087 11.7593C4.09962 11.9146 3.86879 12 3.63008 12Z" />\n <path d="M5 6C5 4.89543 5.89543 4 7 4C8.10457 4 9 4.89543 9 6L5 9.5V6Z" />\n <path d="M9 2C9 3.10457 8.10457 4 7 4C5.89543 4 5 3.10457 5 2C5 0.89543 5.89543 0 7 0C8.10457 0 9 0.89543 9 2Z" />\n </g>\n </svg>'],["connection-escalator-14x14",'<svg viewBox="0 0 14 14">\n <path\n d="M5.26686 2.98522C5.26686 2.44335 5.71573 2 6.26436 2C6.81299 2 7.26187 2.44335 7.26187 2.98522C7.26187 3.5271 6.81299 3.97045 6.26436 3.97045C5.71573 3.97045 5.26686 3.50246 5.26686 2.98522Z"\n stroke="none"\n />\n <path\n d="M7.26188 5.48588V5.25125C7.26188 4.85716 6.91275 4.53696 6.48881 4.53696H6.03993C5.61599 4.53696 5.26687 4.88179 5.26687 5.25125V7.66458L4.3192 8.6995H3.67082C2.74813 8.6995 2 9.43842 2 10.3498C2 11.2611 2.74813 12 3.67082 12H4.61845C5.36658 12 6.11471 11.6798 6.61347 11.1133L9.6808 7.76354H10.3292C11.2519 7.76354 12 7.02463 12 6.11329C12 5.20196 11.2519 4.46305 10.3292 4.46305H9.38155C8.60848 4.46305 7.88529 4.78324 7.38653 5.34975L7.26188 5.48588ZM4.61846 11.0148H3.67083C3.29677 11.0148 2.99751 10.7192 2.99751 10.3498C2.99751 9.9803 3.29677 9.68473 3.67083 9.68473H4.61846C4.71821 9.68473 4.81796 9.63547 4.86784 9.56158L8.13467 5.99015C8.45886 5.64532 8.90774 5.44828 9.38155 5.44828H10.3292C10.7032 5.44828 11.0025 5.74384 11.0025 6.1133C11.0025 6.48276 10.7032 6.77833 10.3292 6.77833H9.38155C9.2818 6.77833 9.18205 6.82759 9.13218 6.87685L5.86534 10.4729C5.54115 10.8177 5.09228 11.0148 4.61846 11.0148Z"\n stroke="none"\n />\n </svg>'],["connection-elevator-16x16",'<svg viewBox="0 0 16 16">\n <g stroke="none">\n <path d="M3 5.5C3 6.32843 2.32843 7 1.5 7C0.671573 7 0 6.32843 0 5.5C0 4.67157 0.671573 4 1.5 4C2.32843 4 3 4.67157 3 5.5Z" />\n <path d="M3 10.5C3 11.3284 2.32843 12 1.5 12C0.671573 12 0 11.3284 0 10.5C0 9.67157 0.671573 9 1.5 9C2.32843 9 3 9.67157 3 10.5Z" />\n <path d="M11 1H14C14.5523 1 15 1.44772 15 2V14C15 14.5523 14.5523 15 14 15H11V1Z" />\n <path d="M9 1H6C5.44772 1 5 1.44772 5 2V14C5 14.5523 5.44772 15 6 15H9V1Z" />\n </g>\n </svg>'],["connection-elevator-14x14",'<svg viewBox="0 0 14 14">\n <path\n d="M7.476 2H2.72693C1.77095 2 1 2.72464 1 3.62319V10.3768C1 11.2754 1.77095 12 2.72693 12H7.476C8.43198 12 9.20293 11.2754 9.20293 10.3768V3.62319C9.17209 2.72464 8.40114 2 7.476 2ZM7.476 3.15942C7.75354 3.15942 7.96941 3.36232 7.96941 3.62319V10.3768C7.96941 10.6377 7.75354 10.8406 7.476 10.8406H5.71824V3.15942H7.476ZM4.48472 3.15942V10.8406H2.72693C2.44939 10.8406 2.23352 10.6377 2.23352 10.3768V3.62319C2.23352 3.36232 2.44939 3.15942 2.72693 3.15942H4.48472Z"\n stroke="none"\n />\n <path\n d="M12.4643 6.19064H10.6638C10.4456 6.19064 10.2546 6.06243 10.1728 5.88294C10.0909 5.70346 10.1455 5.47269 10.2819 5.31884L11.1821 4.47269C11.4004 4.26756 11.755 4.26756 11.946 4.47269L12.8462 5.31884C13.0099 5.47269 13.0371 5.67781 12.9553 5.88294C12.8735 6.08807 12.6825 6.19064 12.4643 6.19064Z"\n stroke="none"\n />\n <path\n d="M11.564 9.65216C11.4276 9.65216 11.2912 9.60088 11.1821 9.49831L10.2819 8.65216C10.1182 8.49831 10.0909 8.29319 10.1728 8.08806C10.2546 7.90857 10.4456 7.78036 10.6638 7.78036H12.4643C12.6825 7.78036 12.8735 7.90857 12.9553 8.08806C13.0371 8.26754 12.9826 8.49831 12.8462 8.65216L11.9459 9.49831C11.8641 9.60088 11.7004 9.65216 11.564 9.65216Z"\n stroke="none"\n />\n </svg>'],["connection-elevator-12x12",'<svg viewBox="0 0 12 12" stroke="none">\n <circle cx="1.9375" cy="4.4375" r="0.9375" />\n <circle cx="1.9375" cy="7.5625" r="0.9375" />\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M7.6 2H9.4C9.73137 2 10 2.26863 10 2.6V9.41328C10 9.74465 9.73137 10.0133 9.4 10.0133H7.6V2ZM6.4 2H4.6C4.26863 2 4 2.26863 4 2.6V9.41328C4 9.74465 4.26863 10.0133 4.6 10.0133H6.4V2Z"\n />\n </svg>'],["new-tab-14x14",'<svg viewBox="0 0 14 14">\n <g stroke="none">\n <path d="M2.625 2.625H5.6875C5.92913 2.625 6.125 2.42912 6.125 2.1875V1.3125C6.125 1.07088 5.92913 0.875 5.6875 0.875H1.3125C1.07088 0.875 0.875 1.07088 0.875 1.3125V12.6875C0.875 12.9291 1.07088 13.125 1.3125 13.125H12.6875C12.9291 13.125 13.125 12.9291 13.125 12.6875V8.3125C13.125 8.07088 12.9291 7.875 12.6875 7.875H11.8125C11.5709 7.875 11.375 8.07088 11.375 8.3125V11.375H2.625V2.625Z" />\n <path d="M12.9063 0.875H8.40311C8.20822 0.875 8.11063 1.11062 8.24843 1.24843L9.88124 2.88124L5.8156 6.94688C5.64475 7.11774 5.64475 7.39475 5.8156 7.5656L6.43432 8.18432C6.60517 8.35517 6.88218 8.35517 7.05304 8.18432L11.1187 4.11868L12.7516 5.75157C12.8894 5.88938 13.125 5.79178 13.125 5.59689V1.09375C13.125 0.972938 13.0271 0.875 12.9063 0.875Z" />\n </g>\n </svg>'],["compress-16x16",'<svg viewBox="0 0 16 16">\n <g stroke="none">\n <path\n id="Vector"\n d="M4.67773 10.7154H0.713449C0.556306 10.7154 0.427734 10.844 0.427734 11.0011V11.8583C0.427734 12.0154 0.556306 12.144 0.713449 12.144H3.82059V15.2868C3.82059 15.444 3.94916 15.5725 4.10631 15.5725H4.96345C5.12059 15.5725 5.24916 15.444 5.24916 15.2868V11.2868C5.24916 10.9708 4.99381 10.7154 4.67773 10.7154ZM4.96345 0.429688H4.10631C3.94916 0.429688 3.82059 0.558259 3.82059 0.715402V3.85826H0.713449C0.556306 3.85826 0.427734 3.98683 0.427734 4.14397V5.00112C0.427734 5.15826 0.556306 5.28683 0.713449 5.28683H4.67773C4.99381 5.28683 5.24916 5.03147 5.24916 4.7154V0.715402C5.24916 0.558259 5.12059 0.429688 4.96345 0.429688ZM15.2849 10.7154H11.3206C11.0045 10.7154 10.7492 10.9708 10.7492 11.2868V15.2868C10.7492 15.444 10.8777 15.5725 11.0349 15.5725H11.892C12.0492 15.5725 12.1777 15.444 12.1777 15.2868V12.144H15.2849C15.442 12.144 15.5706 12.0154 15.5706 11.8583V11.0011C15.5706 10.844 15.442 10.7154 15.2849 10.7154ZM15.2849 3.85826H12.1777V0.715402C12.1777 0.558259 12.0492 0.429688 11.892 0.429688H11.0349C10.8777 0.429688 10.7492 0.558259 10.7492 0.715402V4.7154C10.7492 5.03147 11.0045 5.28683 11.3206 5.28683H15.2849C15.442 5.28683 15.5706 5.15826 15.5706 5.00112V4.14397C15.5706 3.98683 15.442 3.85826 15.2849 3.85826Z"\n />\n </g>\n </svg>'],["washroom-14x14",'<svg viewBox="0 0 14 14" stroke="none">\n <path d="M4.55125 3.09062C4.55125 3.69326 4.07639 4.18176 3.49058 4.18176C2.90525 4.18176 2.43039 3.69326 2.43039 3.09062C2.43039 2.4885 2.90525 2 3.49058 2C4.07639 2 4.55125 2.4885 4.55125 3.09062Z" />\n <path d="M5.1193 5.48047C4.81653 4.83116 4.17252 4.41571 3.47822 4.41571C2.78392 4.41571 2.13986 4.83116 1.83714 5.48047L1.04175 7.22034C0.940664 7.441 1.02893 7.70073 1.24393 7.81791C1.47077 7.90871 1.72324 7.81791 1.82433 7.59725L2.49349 6.15554L2.21587 11.4407C2.20305 11.7263 2.41805 11.9734 2.69567 11.9993C2.97329 12.0124 3.21344 11.7913 3.23859 11.5057L3.4028 8.285H3.567L3.73121 11.5057C3.74403 11.7913 3.97086 11.9993 4.23616 11.9993H4.26131C4.53893 11.9861 4.75343 11.7395 4.74111 11.4407L4.46349 6.15554L5.13265 7.59725C5.20858 7.75298 5.35997 7.85697 5.52418 7.85697C5.5873 7.85697 5.65042 7.84379 5.71354 7.81792C5.92804 7.71393 6.0163 7.44153 5.91572 7.22035L5.1193 5.48047Z" />\n <path d="M12.9582 7.22034L12.1505 5.48047C11.8477 4.83116 11.2037 4.41571 10.5094 4.41571C9.81513 4.41571 9.17107 4.83116 8.86836 5.48047L8.06064 7.22034C7.95955 7.441 8.04782 7.70073 8.26282 7.81791C8.47732 7.9219 8.7298 7.8311 8.84371 7.60993L9.52519 6.12977L9.46207 7.2204L8.57842 8.92184C8.47733 9.11663 8.61638 9.36316 8.83089 9.36316H9.33584L9.22242 11.4668C9.2096 11.7397 9.41177 11.9862 9.68939 11.9994C9.95469 12.0126 10.1943 11.8046 10.2072 11.519L10.3581 9.33723H10.6737L10.7871 11.5058C10.7999 11.7787 11.0144 11.9862 11.2792 11.9862H11.3043C11.5696 11.973 11.7841 11.7396 11.7713 11.4535L11.6579 9.33718H12.1628C12.3773 9.33718 12.5287 9.09066 12.4153 8.89586L11.5317 7.19442L11.4685 6.1038L12.1757 7.5972C12.2516 7.75293 12.403 7.85692 12.5672 7.85692C12.6303 7.85692 12.6934 7.84373 12.7566 7.81786C12.9711 7.70068 13.0593 7.44102 12.9582 7.22034Z" />\n <path d="M11.5696 3.09062C11.5696 3.69326 11.0948 4.18176 10.5094 4.18176C9.92363 4.18176 9.44876 3.69326 9.44876 3.09062C9.44876 2.4885 9.92363 2 10.5094 2C11.0948 2 11.5696 2.4885 11.5696 3.09062Z" />\n <path d="M6.99996 2.00006C6.76031 2.00006 6.57095 2.19485 6.57095 2.44138V11.5575C6.57095 11.804 6.76031 11.9988 6.99996 11.9988C7.2396 11.9988 7.42896 11.804 7.42896 11.5575V2.44138C7.42896 2.19485 7.2396 2.00006 6.99996 2.00006Z" />\n </svg>'],["point-of-interest-12x12",'<svg viewBox="0 0 12 12" stroke="none">\n <path\n stroke="none"\n id="Subtract"\n // Do not change these to fillRule or clipRule, since they need to be rendered as actual SVGs in labels, not React SVGs\n fill-rule="evenodd"\n clip-rule="evenodd"\n d="M6.24724 10.7516C7.94597 9.0358 9.85962 6.89195 9.85962 4.85965C9.85962 2.72802 8.13159 1 5.99997 1C3.86834 1 2.14032 2.72802 2.14032 4.85965C2.14032 6.89195 4.05397 9.0358 5.7527 10.7516C5.88904 10.8893 6.1109 10.8893 6.24724 10.7516ZM5.99994 6.26317C6.77508 6.26317 7.40345 5.6348 7.40345 4.85967C7.40345 4.08453 6.77508 3.45616 5.99994 3.45616C5.22481 3.45616 4.59644 4.08453 4.59644 4.85967C4.59644 5.6348 5.22481 6.26317 5.99994 6.26317Z"\n />\n </svg>'],["flag-20x20",'<svg viewBox="0 0 20 20" stroke="none">\n <path\n d="M16.9987 4.27111C16.936 5.06715 16.3836 5.93162 15.5238 6.57845C14.7549 7.15682 13.0885 8.04927 10.5434 7.55174C8.32167 7.1164 6.82156 8.02129 6.08085 10.2416L8.24615 17.3998C8.31833 17.6471 8.17711 17.9059 7.9292 17.9813C7.88527 17.9938 7.83976 18 7.79426 18C7.58634 18 7.40277 17.8647 7.34236 17.6673L5.1644 10.4686C5.13773 10.4173 5.12125 10.3613 5.11419 10.3038L3.41956 4.70042C3.38112 4.63512 3.35994 4.56127 3.3568 4.48587L3.02101 3.37886C2.98413 3.25992 2.9959 3.13165 3.05553 3.02203C3.11437 2.91242 3.21479 2.83079 3.33482 2.79504C3.45564 2.75928 3.5851 2.7725 3.69494 2.83235C3.80477 2.89144 3.88637 2.99172 3.92167 3.11143L3.9813 3.31355C4.38847 2.85956 4.90472 2.51439 5.48136 2.30915C6.97201 1.75566 8.95216 1.95467 10.6469 2.83156C11.6888 3.36951 14.3374 4.54493 16.3647 3.79553C16.5154 3.74111 16.684 3.76599 16.8127 3.86239C16.9406 3.95879 17.0105 4.11251 16.9987 4.27111Z"\n stroke="none"\n />\n </svg>'],["link-16x16",'<svg viewBox="0 0 16 16" stroke="none">\n <path\n d="M9.10678 11.2433C9.07993 11.2167 9.04367 11.2018 9.00589 11.2018C8.9681 11.2018 8.93184 11.2167 8.90499 11.2433L6.82999 13.3183C5.86928 14.279 4.24785 14.3808 3.18714 13.3183C2.12464 12.2558 2.22642 10.6362 3.18714 9.67546L5.26214 7.60046C5.31749 7.5451 5.31749 7.45403 5.26214 7.39868L4.55142 6.68796C4.52457 6.66138 4.48832 6.64646 4.45053 6.64646C4.41274 6.64646 4.37649 6.66138 4.34964 6.68796L2.27464 8.76296C0.763923 10.2737 0.763923 12.7183 2.27464 14.2272C3.78535 15.7362 6.22999 15.738 7.73892 14.2272L9.81392 12.1522C9.86928 12.0969 9.86928 12.0058 9.81392 11.9505L9.10678 11.2433ZM13.7246 2.77903C12.2139 1.26832 9.76928 1.26832 8.26035 2.77903L6.18357 4.85403C6.15698 4.88088 6.14207 4.91714 6.14207 4.95493C6.14207 4.99271 6.15698 5.02897 6.18357 5.05582L6.89249 5.76475C6.94785 5.8201 7.03892 5.8201 7.09428 5.76475L9.16928 3.68975C10.13 2.72903 11.7514 2.62725 12.8121 3.68975C13.8746 4.75225 13.7729 6.37189 12.8121 7.3326L10.7371 9.4076C10.7106 9.43445 10.6956 9.47071 10.6956 9.5085C10.6956 9.54628 10.7106 9.58254 10.7371 9.60939L11.4479 10.3201C11.5032 10.3755 11.5943 10.3755 11.6496 10.3201L13.7246 8.2451C15.2336 6.73439 15.2336 4.28975 13.7246 2.77903ZM9.75142 6.00939C9.72457 5.9828 9.68832 5.96789 9.65053 5.96789C9.61275 5.96789 9.57649 5.9828 9.54964 6.00939L5.50499 10.0522C5.47841 10.0791 5.46349 10.1154 5.46349 10.1531C5.46349 10.1909 5.47841 10.2272 5.50499 10.254L6.21214 10.9612C6.26749 11.0165 6.35857 11.0165 6.41392 10.9612L10.4568 6.91832C10.5121 6.86296 10.5121 6.77189 10.4568 6.71653L9.75142 6.00939Z"\n stroke="none"\n />\n </svg>']]),xZ=/<svg([^>]*)>/g;function iO(i,e,t){let n=bZ.get(i);return n?n.replace(xZ,'<svg$1 style="fill:'.concat(e,"; width:").concat(t,"px; height:").concat(t,'px">')):""}l(iO,"getStyledIcon");var TZ=l(i=>'\n <div class="pin-shadow" style="background: '.concat(i,'"></div>\n <svg width="').concat(20*.9,'px" height="').concat(48*.9,'px" viewBox="0 0 20 48">\n <path\n d="M1.37965 29.3246C1.5778 31.2167 2.27661 33.0694 3.83078 33.775C4.0998 37.1861 4.7451 40.2227 5.65918 42.4784C6.14556 43.6787 6.72883 44.71 7.41453 45.4578C8.10027 46.2056 8.97065 46.7527 9.99989 46.7527C11.0292 46.7527 11.8995 46.2055 12.585 45.4576C13.2706 44.7098 13.8536 43.6785 14.3398 42.4783C15.2536 40.2226 15.8988 37.186 16.1688 33.7752C17.7232 33.0697 18.422 31.2169 18.6201 29.3247C18.8386 27.2385 18.5165 24.6502 17.6475 22.0285L17.6473 22.0278C16.9657 19.9761 16.0319 18.1622 14.9848 16.7474C17.0884 15.1587 18.4471 12.5964 18.4471 9.7152C18.4471 4.93539 14.6967 1 9.99966 1C5.30272 1 1.54993 4.93527 1.54993 9.7152C1.54993 12.5961 2.90839 15.1583 5.01167 16.747C3.9635 18.1625 3.03185 19.977 2.3522 22.0286C1.48319 24.6503 1.16118 27.2385 1.37965 29.3246Z"\n fill={color}\n stroke="white"\n strokeWidth="2"\n />\n </svg>\n '),"getDeparturePin"),MZ=l(i=>'\n <div class="pin-shadow" style="background: '.concat(i,'"></div>\n <svg width="36" height="42" viewBox="-2 -2 40 46">\n <path\n d="M35.8372 5.86776C35.6765 7.92448 34.2625 10.158 32.0612 11.8292C30.0929 13.3235 25.8269 15.6292 19.3114 14.3438C13.6237 13.219 9.78333 15.5569 7.88708 21.2934L13.4303 39.7879C13.6151 40.4267 13.2536 41.0955 12.6189 41.2903C12.5064 41.3225 12.39 41.3385 12.2735 41.3385C11.7412 41.3385 11.2712 40.989 11.1166 40.4789L5.54093 21.88C5.47265 21.7474 5.43047 21.6028 5.41239 21.4542L1.07409 6.97696C0.975678 6.80825 0.921449 6.61744 0.913417 6.42263L0.053779 3.56251C-0.0406172 3.2552 -0.0104927 2.92379 0.142154 2.64058C0.29279 2.35738 0.549874 2.14649 0.857157 2.05411C1.16646 1.96172 1.49786 1.99587 1.77906 2.15052C2.06025 2.30317 2.26912 2.56226 2.35951 2.87155L2.51215 3.39375C3.55453 2.22081 4.87615 1.32902 6.35237 0.798742C10.1685 -0.631292 15.2377 -0.117113 19.5763 2.14846C22.2435 3.53834 29.0241 6.57524 34.2141 4.63904C34.5998 4.49845 35.0316 4.56272 35.361 4.81178C35.6884 5.06083 35.8673 5.45801 35.8372 5.86776Z"\n fill="none"\n stroke="white"\n strokeWidth="4"\n />\n <path\n d="M35.8372 5.86776C35.6765 7.92448 34.2625 10.158 32.0612 11.8292C30.0929 13.3235 25.8269 15.6292 19.3114 14.3438C13.6237 13.219 9.78333 15.5569 7.88708 21.2934L13.4303 39.7879C13.6151 40.4267 13.2536 41.0955 12.6189 41.2903C12.5064 41.3225 12.39 41.3385 12.2735 41.3385C11.7412 41.3385 11.2712 40.989 11.1166 40.4789L5.54093 21.88C5.47265 21.7474 5.43047 21.6028 5.41239 21.4542L1.07409 6.97696C0.975678 6.80825 0.921449 6.61744 0.913417 6.42263L0.053779 3.56251C-0.0406172 3.2552 -0.0104927 2.92379 0.142154 2.64058C0.29279 2.35738 0.549874 2.14649 0.857157 2.05411C1.16646 1.96172 1.49786 1.99587 1.77906 2.15052C2.06025 2.30317 2.26912 2.56226 2.35951 2.87155L2.51215 3.39375C3.55453 2.22081 4.87615 1.32902 6.35237 0.798742C10.1685 -0.631292 15.2377 -0.117113 19.5763 2.14846C22.2435 3.53834 29.0241 6.57524 34.2141 4.63904C34.5998 4.49845 35.0316 4.56272 35.361 4.81178C35.6884 5.06083 35.8673 5.45801 35.8372 5.86776Z"\n fill={color}\n />\n </svg>\n '),"getDestinationPin"),iT="#722ED1",nT="#1890FF",rT=l(({type:i="departure",destinationColor:e=iT,departureColor:t=nT})=>'<div class="dropped-pin-wrapper">\n '.concat(i==="departure"?TZ(t):MZ(e),"\n </div>"),"DroppedPin"),EZ=l(i=>{switch(i){case"default":return 28;case"selection":return 28;case"navigation":return 32}},"getSize"),nO=l(({type:i="stairs",color:e="#722ED1",direction:t="up"})=>{let n=EZ("default"),r=n/2+2;return'<div style="position: relative; width: 56px;" class="mappedin-connection-marker">\n '.concat(t!=null?'<div style="position: absolute; top: 0px; left:'.concat(n*.9,'px; zIndex: -1">\n <div class="bouncey">\n <div class="connection-circle"\n role="button"\n style="background: #595959; width: ').concat(n,"px; height: ").concat(n,'px;">\n <div class="').concat(t==="up"?"":"arrow--down",'">\n <svg viewBox="0 0 16 16" style="fill: white; width: ').concat(r,"px; height: ").concat(r,'px">\n <path\n fillRule="evenodd"\n clipRule="evenodd"\n d="M8.00015 0.5C8.34685 0.5 8.67835 0.642318 8.91714 0.893677L15.6517 7.98267C15.8441 8.18525 15.8359 8.50548 15.6333 8.69793L14.533 9.7433C14.3304 9.93575 14.0101 9.92754 13.8177 9.72496L9.26497 4.93262V15.4249C9.26497 15.7043 9.03846 15.9308 8.75904 15.9308H7.24125C6.96184 15.9308 6.73532 15.7043 6.73532 15.4249V4.93262L2.1826 9.72496C1.99015 9.92754 1.66992 9.93575 1.46734 9.7433L0.366945 8.69793C0.164367 8.50548 0.156156 8.18525 0.348604 7.98267L7.08315 0.893677C7.32194 0.642318 7.65344 0.5 8.00015 0.5Z"\n stroke="none"\n />\n </svg>\n </div>\n </div>\n </div>\n </div>'):"",'\n <div class="connection-circle"\n role="button"\n style="background:').concat(e,"; width:").concat(n,"px; height:").concat(n,'px;"\n >\n ').concat(iO("connection-"+i+"-16x16","white",r)||"","\n </div>\n </div>")},"ConnectionMarker");y();var aT=l(async i=>new Promise(e=>setTimeout(e,i)),"ms");var Hv={createMarkers:{departure:!0,destination:!0,connection:!0},pathOptions:{color:"#40A9FF",nearRadius:.25,farRadius:.25*4,displayArrowsOnPath:!1},polygons:{departure:"#40A9FF"}},Xa,Vu,Pi,Wv,rO,am,oT=class oT{constructor(e){w(this,Wv);p(this,"directions");w(this,Xa,new Map);w(this,Vu,void 0);w(this,Pi,void 0);p(this,"options",Hv);p(this,"draw",l(async(e,t={})=>{var s,c,u;if(e.coordinates.length<2){F.warn("Directions must have at least 2 coordinates");return}this.directions&&this.clear();let n={pathOptions:{...Hv.pathOptions,...t.pathOptions},createMarkers:{...Hv.createMarkers,...t.createMarkers},polygons:{...Hv.polygons,...t.polygons}};this.options=n,this.directions=e;let r=e.coordinates[0],a=e.coordinates[e.coordinates.length-1],o=d(this,Pi).mapData[Object.keys(d(this,Pi).mapData)[0]];if(r.floorId&&d(this,Pi).setFloor(o.getById("floor",r.floorId)),(s=n.createMarkers)!=null&&s.departure){let h=d(this,Pi).Markers.add(r,rT({type:"departure"}),{anchor:"top",rank:"always-visible"});d(this,Xa).set(h,void 0)}if(await aT(500),A(this,Vu,d(this,Pi).Paths.add(e.coordinates,n.pathOptions)),await aT(1e3),(c=n.createMarkers)!=null&&c.destination){let h=d(this,Pi).Markers.add(a,rT({type:"destination"}),{anchor:"top",rank:"always-visible"});d(this,Xa).set(h,void 0)}(u=n.createMarkers)!=null&&u.connection&&(e.instructions.filter(m=>Z(this,Wv,rO).call(this,m.action)).forEach(m=>{let f=d(this,Pi).Markers.add(m.coordinate,nO({type:m.action.connectionType,color:m.action.type==="ExitConnection"?nT:iT,direction:m.action.direction}),{interactive:!0,anchor:"top",rank:"always-visible"});d(this,Xa).set(f,m)}),d(this,Pi).on("click",d(this,am)))},"draw"));w(this,am,l(e=>{if(e.markers.length>0){let t=d(this,Xa).get(e.markers[0]);(t==null?void 0:t.action.type)==="ExitConnection"&&t.action.fromFloor?d(this,Pi).setFloor(t.action.fromFloor):t!=null&&t.action.toFloor&&d(this,Pi).setFloor(t.action.toFloor)}},"#handleClick"));p(this,"clear",l(()=>{this.directions&&(d(this,Xa).forEach((e,t)=>{d(this,Pi).Markers.remove(t)}),d(this,Xa).clear(),d(this,Pi).Paths.remove(d(this,Vu)),A(this,Vu,void 0),d(this,Pi).off("click",d(this,am)),this.directions=void 0)},"clear"));A(this,Pi,e)}};Xa=new WeakMap,Vu=new WeakMap,Pi=new WeakMap,Wv=new WeakSet,rO=l(function(e){return e!=null&&["TakeConnection","ExitConnection"].includes(e.type)},"#isVortexAction"),am=new WeakMap,l(oT,"Navigation");var Yv=oT;var wZ=l((i,e,t)=>new Promise(n=>{let r=new Mx(i,e,{...t,onFirstMapLoaded:()=>{n(r)},onDataLoaded:()=>{}},{})}),"asyncLoadCore");function Fv(i){let e;if(Qo.is(i)||Ml.is(i)||$o.is(i))e=i.center;else if(Al.is(i))e=i.coordinate;else if(Nt.is(i))e=i;else return;return e}l(Fv,"getCoordinateFromStuffs");function wn(i,e){let t=i.floorId,n=null;if(t!=null&&(n=e.venue.getCollectionItemById("maps",t)),n==null){let a=nc(e.venue.maps);n=a!=null?a:e.venue.maps[0]}return n.createCoordinate(i.latitude,i.longitude)}l(wn,"getMappedinCoordinate");var sT=class sT{constructor(e,t,n){p(this,"mvCore");p(this,"el");p(this,"mapData");p(this,"mapDataExternal",{});p(this,"mapView");p(this,"optionsWithDefaults");p(this,"labels",new Map);p(this,"markers",new Map);p(this,"directions",new WeakMap);p(this,"journey");p(this,"Navigation");p(this,"auto");p(this,"Labels",{add:(e,t,n)=>{let r=Fv(e);if(r==null)return;let a=it(),o=this.mvCore.floatingLabels.addLabel(wn(r,this.mvCore),t,{...n?Px(n):{},id:a}),s=new Fu(a,t);return this.labels.set(a,[o,s]),s},all:()=>this.mvCore.floatingLabels.labelAllLocations(),remove:e=>{let[t]=this.labels.get(e.id);t!=null&&(this.mvCore.floatingLabels.removeLabel(t.nodeOrCoordinate),this.labels.delete(e.id))},removeAll:()=>{this.mvCore.floatingLabels.removeAllLabels()}});p(this,"Markers",{add:(e,t,n)=>{let r=Fv(e);if(r==null)return;let a=it(),o=this.mvCore.markers.add(wn(r,this.mvCore),t,{...n?Ax(n):{},id:a}),s=new $f(a,o.containerEl,o.update.bind(o));return this.markers.set(a,[o,s]),s},remove:e=>{let[t]=this.markers.get(e.id);t!=null&&(this.mvCore.markers.remove(t),this.markers.delete(e.id))},removeAll:()=>{this.mvCore.markers.removeAll()}});p(this,"Paths",{add:(e,t)=>{let n=this.mvCore.paths.drawPath(e.map(r=>wn(r,this.mvCore)),t);return new tm(n.id)},remove:e=>{this.mvCore.paths.removePath(e.id)},removeAll:()=>{this.mvCore.paths.removeAllPaths()}});p(this,"Camera");p(this,"getDestinationNodesFromTarget",l(e=>{if(Nt.is(e))return[wn(e,this.mvCore).nearestNode.id];if(Al.is(e))return[wn(e.coordinate,this.mvCore).nearestNode.id];if(Ml.is(e))return[wn(e.center,this.mvCore).nearestNode.id];if(Qo.is(e)){let t=this.mapData.getMVFFeatureById("space",e.id);return t==null?[]:t.properties.destinationNodes}else return Ko.is(e)?e.coordinates.map(t=>wn(t,this.mvCore).nearestNode.id):$o.is(e)?this.mapData.objectEntranceNodeIdsByObstructionId[e.id]:[]},"getDestinationNodesFromTarget"));p(this,"getDirections",l((e,t,n={})=>{let{accessible:r=!1,smoothing:a=!0}=n,s=(Array.isArray(e)?e:[e]).flatMap(this.getDestinationNodesFromTarget),u=(Array.isArray(t)?t:[t]).flatMap(this.getDestinationNodesFromTarget),h=this.mvCore.venue.navigator.getDirections({originIds:s,destinationNodeIds:u,accessible:r,simplify:{enabled:a}});Nt.is(e)&&h.path.splice(0,0,wn(e,this.mvCore).nearestNode.toJSON()),Nt.is(t)&&h.path.push(wn(t,this.mvCore).nearestNode.toJSON());let m=new em(this,h);if(!(h.distance===0&&new Set([...s,...u]).size===s.length+u.length))return this.directions.set(m,h),m},"getDirections"));this.el=e,this.mapView=t,this.optionsWithDefaults=n,this.Camera=new Bv(this);let r=new Gv(t,this.mapDataExternal);this.auto=r.auto,this.Navigation=new Yv(this.mapView)}get currentFloor(){return this.mapData.getById("floor",this.mvCore.currentMap)}setFloor(e){this.mvCore.setMap(typeof e=="string"?e:e.id)}async addMap(e){var s,c;let t=Gx.get(e);if(t==null)throw new Error("Error adding map. Data is not valid!");this.mapData=t,this.mapDataExternal[e.mapName]=e;let n={aoEnabled:!!this.optionsWithDefaults.ambientOcclusion,antialias:!!this.optionsWithDefaults.antialiasing,debug:!!this.optionsWithDefaults.debug,dynamicPerformance:this.optionsWithDefaults.dynamicPerformance,aoQuality:"medium",aoResolution:"full",multiBufferRendering:!0,shadingAndOutlines:typeof this.optionsWithDefaults.shadingAndOutlines>"u"?!0:!!this.optionsWithDefaults.shadingAndOutlines},r=this.optionsWithDefaults.initialFloor;r&&(n.firstMap=typeof r=="string"?r:r.id),typeof this.optionsWithDefaults.antialiasing=="object"&&(n.antialias=this.optionsWithDefaults.antialiasing.enabled,n.antialiasQuality=this.optionsWithDefaults.antialiasing.quality),((s=this.optionsWithDefaults)==null?void 0:s.outdoorViewToken)!=null&&(n.outdoorView={enabled:!0,headers:{"x-mappedin-tiles-key":this.optionsWithDefaults.outdoorViewToken}});let a=await GC(this.mapData.mvf);if(this.mvCore=await wZ(this.el,a,n),typeof this.optionsWithDefaults.ambientOcclusion=="object"){let{enabled:u,quality:h,samples:m,radius:f,resolution:g,...b}=this.optionsWithDefaults.ambientOcclusion;(c=this.mvCore.renderer.implementation.effectComposer)==null||c.setAmbientOcclusionConfiguration({...b,aoEnabled:u,aoQuality:h,aoSamples:m,aoRadius:f,aoResolution:g})}Object.defineProperty(this.mvCore.controls,"zoomFactor",{writable:!1,value:1}),this.mvCore.on(16,u=>{if(!u)return;let{maps:h,polygons:m,position:f,floatingLabels:g,markers:b}=u,M=u.maps[0],x=[],T=[];for(let E of m){let S=this.mapData.getById("space",E.id);S!=null&&x.push(S);let _=this.mapData.getById("object",E.id);_!=null&&T.push(_)}this.mapView.publish("click",{labels:g.map(E=>this.labels.get(E.id)[1])||[],markers:b.map(E=>this.markers.get(E.id)[1])||[],spaces:x,objects:T,floors:h.map(E=>this.mapData.getById("floor",E.id))||[],coordinate:new Nt(f.latitude,f.longitude,M==null?void 0:M.id)})});let o=new im(this.Camera);return this.mvCore.on(9,()=>{this.mapView.publish("camera-change",o)}),this.mvCore.on(6,()=>{this.mapView.publish("floor-change-start",{floor:this.currentFloor})}),this.mvCore.on(7,u=>{this.mapView.publish("floor-change",{reason:u==null?void 0:u.context,floor:this.currentFloor})}),this.mvCore.on(31,()=>{this.mapView.publish("outdoor-view-loaded")}),this.mvCore.on(33,()=>{this.mapView.publish("user-interaction-start")}),this.mvCore.on(34,()=>{this.mapView.publish("user-interaction-end")}),e}createCoordinate(e,t,n){return new Nt(e,t,n==null?void 0:n.id)}createCoordinateFromScreenCoordinate(e,t,n){var o,s;n==null&&(n=this.currentFloor);let r=this.mvCore.venue.getCollectionItemById("maps",n.id);r==null&&(r=this.mvCore.venue.maps[0]);let a=this.mvCore.convertScreenCoordinateToMapCoordinate(e,t,r);return this.createCoordinate((o=a==null?void 0:a.lat)!=null?o:0,(s=a==null?void 0:a.lon)!=null?s:0,n)}convertMappedinXYToCoordinate(e,t,n){typeof n=="string"&&(n=this.mvCore.venue.getCollectionItemById("maps",n));let r=n.createCoordinateByXY(e,t),a=this.mapData.getById("floor",n.id);return this.createCoordinate(r.lat,r.lon,a)}updateState(e,t){if(Fu.is(e)){let[n]=this.labels.get(e.id);n!=null&&("appearance"in t&&t.appearance!=null&&this.mvCore.floatingLabels.setAppearance(n.nodeOrCoordinate,t.appearance),"priority"in t&&t.priority!=null&&(t.priority==="initial"?this.mvCore.floatingLabels.resetPriority(n.nodeOrCoordinate):this.mvCore.floatingLabels.setPriority(n.nodeOrCoordinate,t.priority)))}else if(Qo.is(e)||$o.is(e)){let n=this.mvCore.venue.getCollectionItemById("polygons",e.id);n!=null&&("color"in t&&t.color!=null&&(t.color==="initial"?this.mvCore.polygonColors.clearPolygonColor(n):this.mvCore.polygonColors.setPolygonColor(n,t.color)),"hoverColor"in t&&t.hoverColor!=null&&(t.hoverColor==="initial"?this.mvCore.polygonHoverColors.clearPolygonHoverColor(n):this.mvCore.polygonHoverColors.setPolygonHoverColor(n,t.hoverColor)),"interactive"in t&&(t.interactive?this.mvCore.polygonInteraction.addInteractivePolygon(n):this.mvCore.polygonInteraction.removeInteractivePolygon(n)))}}getNearestNodeToCoordinate(e){let t=e.floorId,n=null;if(t!=null&&(n=this.mvCore.venue.getCollectionItemById("maps",t)),n==null){let o=[...this.mvCore.venue.maps].sort((s,c)=>c.elevation-s.elevation).find(s=>s.elevation>=0);n=o!=null?o:this.mvCore.venue.maps[0]}return n.createCoordinate(e.latitude,e.longitude).nearestNode}};l(sT,"CMSAPI");var Xv=sT;function om(i,e){return{get(t,n){return i[e][n]},set(t,n,r){return i[e][n]=r,!0}}}l(om,"createProxyHandler");var fn,lT=class lT extends Li{constructor(t,n){super();w(this,fn,void 0);p(this,"Labels",{});p(this,"Markers",{});p(this,"Camera",{});p(this,"Paths",{});p(this,"Navigation",{});A(this,fn,new Xv(t,this,n));let r=d(this,fn);this.Labels=new Proxy(this.Labels,om(r,"Labels")),this.Camera=new Proxy(this.Camera,om(r,"Camera")),this.Markers=new Proxy(this.Markers,om(r,"Markers")),this.Paths=new Proxy(this.Paths,om(r,"Paths")),this.Navigation=new Proxy(this.Navigation,om(r,"Navigation")),t.dataset.version=C.env.npm_package_version}auto(){d(this,fn).auto()}async addMap(t){return d(this,fn).addMap(t)}updateState(t,n){d(this,fn).updateState(t,n)}createCoordinate(t,n,r=void 0){return d(this,fn).createCoordinate(t,n,r)}createCoordinateFromScreenCoordinate(t,n,r){return d(this,fn).createCoordinateFromScreenCoordinate(t,n,r)}get currentFloor(){return d(this,fn).currentFloor}get mapData(){return d(this,fn).mapDataExternal}setFloor(t){d(this,fn).setFloor(t)}getDirections(t,n,r){return d(this,fn).getDirections(t,n,r)}};fn=new WeakMap,l(lT,"MapView");var Zv=lT;var CZ={auto:!0,ambientOcclusion:!1,dynamicPerformance:!0,debug:!1,antialiasing:!0},pwe=l(async(i,e)=>{let t;if(e){let{access_token:a}=await d6(e);t=a}let n=new Hf(i,t);return new Hx(n)},"hydrateMapDataFromMVF"),fwe=l(async i=>{let e={emitAnalyticsEvents:!0,clientId:i.key,clientSecret:i.secret,venue:i.mapId,...i},t=VC({...e}),{access_token:n}=await d6(i),r=await jC(t,n),a=await W5(r),o=X5(a),s=new Hf(o,n);return new Hx(s)},"getMapData"),mwe=l(async(i,e,t)=>{let r={...{...CZ,outdoorViewToken:e.outdoorViewToken},...t!=null?t:{}};X_(r.watermark);let a=new Zv(i,r);return await a.addMap(e),a},"show3dMap");export{kv as Annotation,Ko as Connection,Nt as Coordinate,Ml as Door,Rv as Floor,qv as Hyperlink,Nv as Image,$o as MapObject,Al as PointOfInterest,Qo as Space,fwe as getMapData,pwe as hydrateMapDataFromMVF,X5 as parseMVF,mwe as show3dMap,W5 as unzipMVF};
|