@maptiler/geocoding-control 1.3.3 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/README.md +3 -4
  2. package/icons/airport.svg +6 -0
  3. package/icons/animal_shelter.svg +4 -0
  4. package/icons/art_gallery.svg +4 -0
  5. package/icons/atm.svg +5 -1
  6. package/icons/barrier.svg +4 -0
  7. package/icons/baseball.svg +4 -0
  8. package/icons/basketball.svg +4 -0
  9. package/icons/bbq.svg +4 -1
  10. package/icons/beach.svg +4 -0
  11. package/icons/beer.svg +4 -1
  12. package/icons/bench.svg +4 -1
  13. package/icons/bicycle.svg +4 -1
  14. package/icons/bicycle_parking.svg +5 -1
  15. package/icons/bicycle_rental.svg +5 -1
  16. package/icons/billiards.svg +4 -0
  17. package/icons/board.svg +4 -1
  18. package/icons/bollard.svg +4 -0
  19. package/icons/bowling.svg +4 -1
  20. package/icons/building.svg +4 -0
  21. package/icons/bulldozer.svg +4 -0
  22. package/icons/bus_guided.svg +4 -0
  23. package/icons/bus_trolley.svg +4 -0
  24. package/icons/butcher.svg +4 -1
  25. package/icons/camper_trailer.svg +4 -0
  26. package/icons/campfire.svg +4 -0
  27. package/icons/caution.svg +4 -0
  28. package/icons/cemetery.svg +3 -11
  29. package/icons/charging_station.svg +4 -1
  30. package/icons/christian.svg +5 -0
  31. package/icons/circle-dot.svg +4 -0
  32. package/icons/circle-stroke.svg +4 -0
  33. package/icons/circle.svg +4 -0
  34. package/icons/city.svg +4 -0
  35. package/icons/communications_tower.svg +4 -1
  36. package/icons/confectionery.svg +4 -1
  37. package/icons/construction.svg +4 -0
  38. package/icons/cricket.svg +4 -0
  39. package/icons/cross.svg +4 -1
  40. package/icons/cycle_barrier.svg +4 -0
  41. package/icons/dam.svg +4 -0
  42. package/icons/danger.svg +4 -0
  43. package/icons/diamond.svg +4 -0
  44. package/icons/diamond_stroked.svg +4 -0
  45. package/icons/dot.svg +4 -0
  46. package/icons/drinking_water.svg +4 -1
  47. package/icons/emergency_phone.svg +4 -1
  48. package/icons/entrance.svg +4 -0
  49. package/icons/farm.svg +3 -8
  50. package/icons/fence.svg +4 -0
  51. package/icons/florist.svg +4 -1
  52. package/icons/furniture.svg +4 -1
  53. package/icons/gaming.svg +4 -0
  54. package/icons/garden.svg +4 -0
  55. package/icons/garden_centre.svg +4 -1
  56. package/icons/gate.svg +4 -1
  57. package/icons/globe.svg +4 -0
  58. package/icons/golf_green.svg +4 -0
  59. package/icons/gondola.svg +4 -0
  60. package/icons/guidepost.svg +4 -1
  61. package/icons/hardware.svg +3 -3
  62. package/icons/heart.svg +4 -0
  63. package/icons/heliport.svg +4 -0
  64. package/icons/highway_rest_area.svg +4 -0
  65. package/icons/home.svg +4 -0
  66. package/icons/hot_spring.svg +4 -1
  67. package/icons/hut.svg +4 -0
  68. package/icons/industry.svg +4 -0
  69. package/icons/karaoke.svg +4 -0
  70. package/icons/lift_gate.svg +4 -0
  71. package/icons/light_rail.svg +4 -0
  72. package/icons/lighthouse.svg +4 -1
  73. package/icons/marker.svg +4 -0
  74. package/icons/marker_stroked.svg +4 -0
  75. package/icons/monorail.svg +4 -0
  76. package/icons/motorcycle.svg +4 -1
  77. package/icons/motorcycle_parking.svg +4 -1
  78. package/icons/motorcycle_rental.svg +4 -0
  79. package/icons/motorcycle_repair.svg +4 -0
  80. package/icons/natural.svg +4 -0
  81. package/icons/noodle.svg +4 -0
  82. package/icons/obelisk.svg +4 -1
  83. package/icons/observation_tower.svg +4 -1
  84. package/icons/oneway.svg +4 -0
  85. package/icons/optician.svg +4 -1
  86. package/icons/park.svg +4 -1
  87. package/icons/parking_paid.svg +4 -0
  88. package/icons/pin.svg +4 -0
  89. package/icons/pipe.svg +4 -0
  90. package/icons/pizza.svg +4 -0
  91. package/icons/place_of_worship.svg +4 -1
  92. package/icons/playground.svg +3 -3
  93. package/icons/racetrack.svg +4 -0
  94. package/icons/radiation.svg +4 -0
  95. package/icons/railway.svg +4 -0
  96. package/icons/ranger_station.svg +4 -0
  97. package/icons/recycling.svg +4 -1
  98. package/icons/road_accident.svg +4 -0
  99. package/icons/roadblock.svg +4 -0
  100. package/icons/rocket.svg +4 -0
  101. package/icons/school_bus.svg +4 -0
  102. package/icons/sculpture.svg +4 -0
  103. package/icons/seafood.svg +4 -1
  104. package/icons/shelter.svg +4 -1
  105. package/icons/shoes.svg +4 -1
  106. package/icons/sikh.svg +4 -0
  107. package/icons/snow.svg +4 -0
  108. package/icons/soccer.svg +4 -1
  109. package/icons/spring.svg +4 -1
  110. package/icons/square.svg +4 -0
  111. package/icons/square_stroked.svg +4 -0
  112. package/icons/star.svg +4 -0
  113. package/icons/star_stroked.svg +4 -0
  114. package/icons/statue.svg +4 -1
  115. package/icons/subway.svg +4 -0
  116. package/icons/sushi.svg +4 -0
  117. package/icons/swimming.svg +5 -0
  118. package/icons/swimming_pool.svg +8 -0
  119. package/icons/tako.svg +4 -0
  120. package/icons/taxi.svg +4 -1
  121. package/icons/teahouse.svg +4 -0
  122. package/icons/terminal.svg +4 -1
  123. package/icons/theme_park.svg +4 -0
  124. package/icons/town.svg +4 -0
  125. package/icons/town_hall.svg +4 -1
  126. package/icons/townhall.svg +4 -1
  127. package/icons/tram_stop.svg +4 -0
  128. package/icons/transit.svg +4 -0
  129. package/icons/triangle.svg +4 -0
  130. package/icons/triangle_stroked.svg +4 -0
  131. package/icons/truck.svg +4 -0
  132. package/icons/tunnel.svg +4 -0
  133. package/icons/veterinary.svg +4 -1
  134. package/icons/viewpoint.svg +4 -1
  135. package/icons/village.svg +4 -0
  136. package/icons/volleyball.svg +4 -0
  137. package/icons/warehouse.svg +4 -0
  138. package/icons/water.svg +3 -5
  139. package/icons/water_park.svg +6 -1
  140. package/icons/water_tower.svg +4 -1
  141. package/icons/watermill.svg +4 -0
  142. package/icons/wetland.svg +4 -0
  143. package/icons/wine.svg +4 -0
  144. package/leaflet-controller.d.ts +2 -2
  145. package/leaflet-controller.js +1427 -9922
  146. package/leaflet-controller.js.map +1 -1
  147. package/leaflet-controller.umd.js +3 -9
  148. package/leaflet-controller.umd.js.map +1 -1
  149. package/leaflet.js +2708 -11166
  150. package/leaflet.js.map +1 -1
  151. package/leaflet.umd.js +3 -9
  152. package/leaflet.umd.js.map +1 -1
  153. package/maplibregl-controller.d.ts +2 -2
  154. package/maplibregl-controller.js +1268 -9849
  155. package/maplibregl-controller.js.map +1 -1
  156. package/maplibregl-controller.umd.js +3 -9
  157. package/maplibregl-controller.umd.js.map +1 -1
  158. package/maplibregl.js +2550 -11094
  159. package/maplibregl.js.map +1 -1
  160. package/maplibregl.umd.js +3 -9
  161. package/maplibregl.umd.js.map +1 -1
  162. package/maptilersdk.js +2558 -11102
  163. package/maptilersdk.js.map +1 -1
  164. package/maptilersdk.umd.js +3 -9
  165. package/maptilersdk.umd.js.map +1 -1
  166. package/mask.d.ts +1 -1
  167. package/openlayers-controller.js +1191 -9762
  168. package/openlayers-controller.js.map +1 -1
  169. package/openlayers-controller.umd.js +3 -9
  170. package/openlayers-controller.umd.js.map +1 -1
  171. package/openlayers.js +2689 -11223
  172. package/openlayers.js.map +1 -1
  173. package/openlayers.umd.js +3 -9
  174. package/openlayers.umd.js.map +1 -1
  175. package/package.json +26 -24
  176. package/react.js +996 -955
  177. package/react.js.map +1 -1
  178. package/react.umd.js +1 -1
  179. package/react.umd.js.map +1 -1
  180. package/style.css +1 -1
  181. package/svelte/FeatureItem.svelte +6 -5
  182. package/svelte/GeocodingControl.svelte +68 -12
  183. package/svelte/GeocodingControl.svelte.d.ts +4 -2
  184. package/svelte/geoUtils.js +7 -1
  185. package/svelte/leaflet-controller.d.ts +2 -2
  186. package/svelte/leaflet-controller.js +48 -2
  187. package/svelte/maplibregl-controller.d.ts +2 -2
  188. package/svelte/maplibregl-controller.js +5 -2
  189. package/svelte/mask.d.ts +1 -1
  190. package/svelte/mask.js +32 -29
  191. package/svelte/openlayers-controller.js +13 -14
  192. package/svelte/types.d.ts +15 -9
  193. package/types.d.ts +15 -9
  194. package/vanilla.js +1016 -975
  195. package/vanilla.js.map +1 -1
  196. package/vanilla.umd.js +1 -1
  197. package/vanilla.umd.js.map +1 -1
  198. package/icons/beach_resort.svg +0 -1
  199. package/icons/drinking-water.svg +0 -1
  200. package/icons/emergency-phone.svg +0 -1
  201. package/icons/rental_bicycle.svg +0 -1
  202. package/icons/rental_car.svg +0 -1
  203. /package/icons/{camp_site.svg → campsite.svg} +0 -0
  204. /package/icons/{toll_booth.svg → toll.svg} +0 -0
package/leaflet.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(pe,xe){typeof exports=="object"&&typeof module<"u"?xe(exports,require("leaflet")):typeof define=="function"&&define.amd?define(["exports","leaflet"],xe):(pe=typeof globalThis<"u"?globalThis:pe||self,xe(pe.leafletMaptilerGeocoder={},pe.L))})(this,function(pe,xe){"use strict";var ah=Object.defineProperty;var Da=pe=>{throw TypeError(pe)};var uh=(pe,xe,Xe)=>xe in pe?ah(pe,xe,{enumerable:!0,configurable:!0,writable:!0,value:Xe}):pe[xe]=Xe;var Ir=(pe,xe,Xe)=>uh(pe,typeof xe!="symbol"?xe+"":xe,Xe),Fa=(pe,xe,Xe)=>xe.has(pe)||Da("Cannot "+Xe);var Lt=(pe,xe,Xe)=>(Fa(pe,xe,"read from private field"),Xe?Xe.call(pe):xe.get(pe)),wr=(pe,xe,Xe)=>xe.has(pe)?Da("Cannot add the same private member more than once"):xe instanceof WeakSet?xe.add(pe):xe.set(pe,Xe),Di=(pe,xe,Xe,ht)=>(Fa(pe,xe,"write to private field"),ht?ht.call(pe,Xe):xe.set(pe,Xe),Xe);var dt,rn;function Xe(o){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const s in o)if(s!=="default"){const l=Object.getOwnPropertyDescriptor(o,s);Object.defineProperty(a,s,l.get?l:{enumerable:!0,get:()=>o[s]})}}return a.default=o,Object.freeze(a)}const ht=Xe(xe);function Se(){}function Ga(o,a){for(const s in a)o[s]=a[s];return o}function Sr(o){return o()}function Lr(){return Object.create(null)}function Pt(o){o.forEach(Sr)}function br(o){return typeof o=="function"}function Bt(o,a){return o!=o?a==a:o!==a||o&&typeof o=="object"||typeof o=="function"}let ai;function We(o,a){return o===a?!0:(ai||(ai=document.createElement("a")),ai.href=a,o===ai.href)}function qa(o){return Object.keys(o).length===0}function za(o,a,s,l){if(o){const h=Tr(o,a,s,l);return o[0](h)}}function Tr(o,a,s,l){return o[1]&&l?Ga(s.ctx.slice(),o[1](l(a))):s.ctx}function Ya(o,a,s,l){if(o[2]&&l){const h=o[2](l(s));if(a.dirty===void 0)return h;if(typeof h=="object"){const g=[],v=Math.max(a.dirty.length,h.length);for(let m=0;m<v;m+=1)g[m]=a.dirty[m]|h[m];return g}return a.dirty|h}return a.dirty}function Ba(o,a,s,l,h,g){if(h){const v=Tr(a,s,l,g);o.p(v,h)}}function Ua(o){if(o.ctx.length>32){const a=[],s=o.ctx.length/32;for(let l=0;l<s;l++)a[l]=-1;return a}return-1}function Cr(o){return o??""}function de(o,a){o.appendChild(a)}function Re(o,a,s){o.insertBefore(a,s||null)}function Le(o){o.parentNode&&o.parentNode.removeChild(o)}function ke(o){return document.createElement(o)}function xt(o){return document.createElementNS("http://www.w3.org/2000/svg",o)}function Ut(o){return document.createTextNode(o)}function it(){return Ut(" ")}function Xa(){return Ut("")}function Ze(o,a,s,l){return o.addEventListener(a,s,l),()=>o.removeEventListener(a,s,l)}function Wa(o){return function(a){return a.preventDefault(),o.call(this,a)}}function Y(o,a,s){s==null?o.removeAttribute(a):o.getAttribute(a)!==s&&o.setAttribute(a,s)}function Va(o){return Array.from(o.childNodes)}function Dn(o,a){a=""+a,o.data!==a&&(o.data=a)}function Rr(o,a){o.value=a??""}function ct(o,a,s){o.classList.toggle(a,!!s)}function Ha(o,a,{bubbles:s=!1,cancelable:l=!1}={}){return new CustomEvent(o,{detail:a,bubbles:s,cancelable:l})}let Fn;function Gn(o){Fn=o}function Or(){if(!Fn)throw new Error("Function called outside component initialization");return Fn}function Za(o){Or().$$.on_destroy.push(o)}function ja(){const o=Or();return(a,s,{cancelable:l=!1}={})=>{const h=o.$$.callbacks[a];if(h){const g=Ha(a,s,{cancelable:l});return h.slice().forEach(v=>{v.call(o,g)}),!g.defaultPrevented}return!0}}function Mr(o,a){const s=o.$$.callbacks[a.type];s&&s.slice().forEach(l=>l.call(this,a))}const dn=[],Fi=[];let mn=[];const Pr=[],Qa=Promise.resolve();let Gi=!1;function Ka(){Gi||(Gi=!0,Qa.then(Ar))}function qi(o){mn.push(o)}const zi=new Set;let vn=0;function Ar(){if(vn!==0)return;const o=Fn;do{try{for(;vn<dn.length;){const a=dn[vn];vn++,Gn(a),Ja(a.$$)}}catch(a){throw dn.length=0,vn=0,a}for(Gn(null),dn.length=0,vn=0;Fi.length;)Fi.pop()();for(let a=0;a<mn.length;a+=1){const s=mn[a];zi.has(s)||(zi.add(s),s())}mn.length=0}while(dn.length);for(;Pr.length;)Pr.pop()();Gi=!1,zi.clear(),Gn(o)}function Ja(o){if(o.fragment!==null){o.update(),Pt(o.before_update);const a=o.dirty;o.dirty=[-1],o.fragment&&o.fragment.p(o.ctx,a),o.after_update.forEach(qi)}}function $a(o){const a=[],s=[];mn.forEach(l=>o.indexOf(l)===-1?a.push(l):s.push(l)),s.forEach(l=>l()),mn=a}const ui=new Set;let tn;function oi(){tn={r:0,c:[],p:tn}}function li(){tn.r||Pt(tn.c),tn=tn.p}function Fe(o,a){o&&o.i&&(ui.delete(o),o.i(a))}function Ye(o,a,s,l){if(o&&o.o){if(ui.has(o))return;ui.add(o),tn.c.push(()=>{ui.delete(o),l&&(s&&o.d(1),l())}),o.o(a)}else l&&l()}function Dr(o){return(o==null?void 0:o.length)!==void 0?o:Array.from(o)}function eu(o,a){Ye(o,1,1,()=>{a.delete(o.key)})}function tu(o,a,s,l,h,g,v,m,N,_,k,y){let x=o.length,E=g.length,I=x;const R={};for(;I--;)R[o[I].key]=I;const T=[],M=new Map,F=new Map,C=[];for(I=E;I--;){const z=y(h,g,I),X=s(z);let G=v.get(X);G?C.push(()=>G.p(z,a)):(G=_(X,z),G.c()),M.set(X,T[I]=G),X in R&&F.set(X,Math.abs(I-R[X]))}const q=new Set,O=new Set;function B(z){Fe(z,1),z.m(m,k),v.set(z.key,z),k=z.first,E--}for(;x&&E;){const z=T[E-1],X=o[x-1],G=z.key,Z=X.key;z===X?(k=z.first,x--,E--):M.has(Z)?!v.has(G)||q.has(G)?B(z):O.has(Z)?x--:F.get(G)>F.get(Z)?(O.add(G),B(z)):(q.add(Z),x--):(N(X,v),x--)}for(;x--;){const z=o[x];M.has(z.key)||N(z,v)}for(;E;)B(T[E-1]);return Pt(C),T}function Xt(o){o&&o.c()}function At(o,a,s){const{fragment:l,after_update:h}=o.$$;l&&l.m(a,s),qi(()=>{const g=o.$$.on_mount.map(Sr).filter(br);o.$$.on_destroy?o.$$.on_destroy.push(...g):Pt(g),o.$$.on_mount=[]}),h.forEach(qi)}function Dt(o,a){const s=o.$$;s.fragment!==null&&($a(s.after_update),Pt(s.on_destroy),s.fragment&&s.fragment.d(a),s.on_destroy=s.fragment=null,s.ctx=[])}function nu(o,a){o.$$.dirty[0]===-1&&(dn.push(o),Ka(),o.$$.dirty.fill(0)),o.$$.dirty[a/31|0]|=1<<a%31}function Wt(o,a,s,l,h,g,v=null,m=[-1]){const N=Fn;Gn(o);const _=o.$$={fragment:null,ctx:[],props:g,update:Se,not_equal:h,bound:Lr(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(a.context||(N?N.$$.context:[])),callbacks:Lr(),dirty:m,skip_bound:!1,root:a.target||N.$$.root};v&&v(_.root);let k=!1;if(_.ctx=s?s(o,a.props||{},(y,x,...E)=>{const I=E.length?E[0]:x;return _.ctx&&h(_.ctx[y],_.ctx[y]=I)&&(!_.skip_bound&&_.bound[y]&&_.bound[y](I),k&&nu(o,y)),x}):[],_.update(),k=!0,Pt(_.before_update),_.fragment=l?l(_.ctx):!1,a.target){if(a.hydrate){const y=Va(a.target);_.fragment&&_.fragment.l(y),y.forEach(Le)}else _.fragment&&_.fragment.c();a.intro&&Fe(o.$$.fragment),At(o,a.target,a.anchor),Ar()}Gn(N)}class Vt{constructor(){Ir(this,"$$");Ir(this,"$$set")}$destroy(){Dt(this,1),this.$destroy=Se}$on(a,s){if(!br(s))return Se;const l=this.$$.callbacks[a]||(this.$$.callbacks[a]=[]);return l.push(s),()=>{const h=l.indexOf(s);h!==-1&&l.splice(h,1)}}$set(a){this.$$set&&!qa(a)&&(this.$$.skip_bound=!0,this.$$set(a),this.$$.skip_bound=!1)}}const iu="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(iu);function ru(o){let a,s;return{c(){a=xt("svg"),s=xt("path"),Y(s,"d","M13.12.706a.982.982 0 0 0-1.391 0L6.907 5.517 2.087.696a.982.982 0 1 0-1.391 1.39l4.821 4.821L.696 11.73a.982.982 0 1 0 1.39 1.39l4.821-4.821 4.822 4.821a.982.982 0 1 0 1.39-1.39L8.298 6.908l4.821-4.822a.988.988 0 0 0 0-1.38Z"),Y(a,"viewBox","0 0 14 14"),Y(a,"width","13"),Y(a,"height","13"),Y(a,"class","svelte-en2qvf")},m(l,h){Re(l,a,h),de(a,s)},p:Se,i:Se,o:Se,d(l){l&&Le(a)}}}class Fr extends Vt{constructor(a){super(),Wt(this,a,null,ru,Bt,{})}}function su(o){let a,s;return{c(){a=xt("svg"),s=xt("path"),Y(s,"d","M15 0C6.705 0 0 6.705 0 15C0 23.295 6.705 30 15 30C23.295 30 30 23.295 30 15C30 6.705 23.295 0 15 0ZM22.5 20.385L20.385 22.5L15 17.115L9.615 22.5L7.5 20.385L12.885 15L7.5 9.615L9.615 7.5L15 12.885L20.385 7.5L22.5 9.615L17.115 15L22.5 20.385Z"),Y(a,"viewBox","0 0 30 30"),Y(a,"fill","none"),Y(a,"xmlns","http://www.w3.org/2000/svg"),Y(a,"class","svelte-d2loi5")},m(l,h){Re(l,a,h),de(a,s)},p:Se,i:Se,o:Se,d(l){l&&Le(a)}}}class Gr extends Vt{constructor(a){super(),Wt(this,a,null,su,Bt,{})}}function au(o){let a,s;return{c(){a=ke("img"),We(a.src,s=o[3]+"area.svg")||Y(a,"src",s),Y(a,"alt",o[6]),Y(a,"class","svelte-ltkwvy")},m(l,h){Re(l,a,h)},p(l,h){h&8&&!We(a.src,s=l[3]+"area.svg")&&Y(a,"src",s),h&64&&Y(a,"alt",l[6])},d(l){l&&Le(a)}}}function uu(o){let a,s;return{c(){a=ke("img"),We(a.src,s=o[3]+"reverse.svg")||Y(a,"src",s),Y(a,"alt",o[6]),Y(a,"class","svelte-ltkwvy")},m(l,h){Re(l,a,h)},p(l,h){h&8&&!We(a.src,s=l[3]+"reverse.svg")&&Y(a,"src",s),h&64&&Y(a,"alt",l[6])},d(l){l&&Le(a)}}}function ou(o){let a,s;return{c(){a=ke("img"),We(a.src,s=o[3]+"poi.svg")||Y(a,"src",s),Y(a,"alt",o[6]),Y(a,"class","svelte-ltkwvy")},m(l,h){Re(l,a,h)},p(l,h){h&8&&!We(a.src,s=l[3]+"poi.svg")&&Y(a,"src",s),h&64&&Y(a,"alt",l[6])},d(l){l&&Le(a)}}}function lu(o){let a,s;return{c(){a=ke("img"),We(a.src,s=o[3]+"postal_code.svg")||Y(a,"src",s),Y(a,"alt",o[6]),Y(a,"class","svelte-ltkwvy")},m(l,h){Re(l,a,h)},p(l,h){h&8&&!We(a.src,s=l[3]+"postal_code.svg")&&Y(a,"src",s),h&64&&Y(a,"alt",l[6])},d(l){l&&Le(a)}}}function hu(o){let a,s;return{c(){a=ke("img"),We(a.src,s=o[3]+"street.svg")||Y(a,"src",s),Y(a,"alt",o[6]),Y(a,"class","svelte-ltkwvy")},m(l,h){Re(l,a,h)},p(l,h){h&8&&!We(a.src,s=l[3]+"street.svg")&&Y(a,"src",s),h&64&&Y(a,"alt",l[6])},d(l){l&&Le(a)}}}function cu(o){let a,s;return{c(){a=ke("img"),We(a.src,s=o[3]+"road.svg")||Y(a,"src",s),Y(a,"alt",o[6]),Y(a,"class","svelte-ltkwvy")},m(l,h){Re(l,a,h)},p(l,h){h&8&&!We(a.src,s=l[3]+"road.svg")&&Y(a,"src",s),h&64&&Y(a,"alt",l[6])},d(l){l&&Le(a)}}}function fu(o){let a,s;return{c(){a=ke("img"),We(a.src,s=o[3]+"housenumber.svg")||Y(a,"src",s),Y(a,"alt",o[6]),Y(a,"class","svelte-ltkwvy")},m(l,h){Re(l,a,h)},p(l,h){h&8&&!We(a.src,s=l[3]+"housenumber.svg")&&Y(a,"src",s),h&64&&Y(a,"alt",l[6])},d(l){l&&Le(a)}}}function gu(o){let a,s,l,h;return{c(){a=ke("img"),We(a.src,s=o[5])||Y(a,"src",s),Y(a,"alt",o[4]),Y(a,"class","svelte-ltkwvy")},m(g,v){Re(g,a,v),l||(h=Ze(a,"error",o[14]),l=!0)},p(g,v){v&32&&!We(a.src,s=g[5])&&Y(a,"src",s),v&16&&Y(a,"alt",g[4])},d(g){g&&Le(a),l=!1,h()}}}function qr(o){let a,s;return{c(){a=ke("span"),s=Ut(o[6]),Y(a,"class","secondary svelte-ltkwvy")},m(l,h){Re(l,a,h),de(a,s)},p(l,h){h&64&&Dn(s,l[6])},d(l){l&&Le(a)}}}function du(o){var z,X;let a,s,l,h,g,v,m,N,_=(o[7]?o[0].place_name:o[0].place_name.replace(/,.*/,""))+"",k,y,x=o[2]==="always"||o[2]&&!o[0].address&&((z=o[0].properties)==null?void 0:z.kind)!=="road"&&((X=o[0].properties)==null?void 0:X.kind)!=="road_relation"&&!o[0].id.startsWith("address.")&&!o[0].id.startsWith("postal_code.")&&(!o[0].id.startsWith("poi.")||!o[5])&&!o[7],E,I,R=(o[7]?"":o[0].place_name.replace(/[^,]*,?\s*/,""))+"",T,M,F;function C(G,Z){var ee,j;return Z&1&&(s=null),Z&1&&(l=null),Z&1&&(h=null),G[5]?gu:G[0].address?fu:((ee=G[0].properties)==null?void 0:ee.kind)==="road"||((j=G[0].properties)==null?void 0:j.kind)==="road_relation"?cu:(s==null&&(s=!!G[0].id.startsWith("address.")),s?hu:(l==null&&(l=!!G[0].id.startsWith("postal_code.")),l?lu:(h==null&&(h=!!G[0].id.startsWith("poi.")),h?ou:G[7]?uu:au)))}let q=C(o,-1),O=q(o),B=x&&qr(o);return{c(){a=ke("li"),O.c(),g=it(),v=ke("span"),m=ke("span"),N=ke("span"),k=Ut(_),y=it(),B&&B.c(),E=it(),I=ke("span"),T=Ut(R),Y(N,"class","primary svelte-ltkwvy"),Y(m,"class","svelte-ltkwvy"),Y(I,"class","line2 svelte-ltkwvy"),Y(v,"class","texts svelte-ltkwvy"),Y(a,"tabindex","0"),Y(a,"data-selected",o[1]),Y(a,"class","svelte-ltkwvy"),ct(a,"selected",o[1])},m(G,Z){Re(G,a,Z),O.m(a,null),de(a,g),de(a,v),de(v,m),de(m,N),de(N,k),de(m,y),B&&B.m(m,null),de(v,E),de(v,I),de(I,T),M||(F=[Ze(a,"mouseenter",o[12]),Ze(a,"focus",o[13])],M=!0)},p(G,[Z]){var ee,j;q===(q=C(G,Z))&&O?O.p(G,Z):(O.d(1),O=q(G),O&&(O.c(),O.m(a,g))),Z&1&&_!==(_=(G[7]?G[0].place_name:G[0].place_name.replace(/,.*/,""))+"")&&Dn(k,_),Z&37&&(x=G[2]==="always"||G[2]&&!G[0].address&&((ee=G[0].properties)==null?void 0:ee.kind)!=="road"&&((j=G[0].properties)==null?void 0:j.kind)!=="road_relation"&&!G[0].id.startsWith("address.")&&!G[0].id.startsWith("postal_code.")&&(!G[0].id.startsWith("poi.")||!G[5])&&!G[7]),x?B?B.p(G,Z):(B=qr(G),B.c(),B.m(m,null)):B&&(B.d(1),B=null),Z&1&&R!==(R=(G[7]?"":G[0].place_name.replace(/[^,]*,?\s*/,""))+"")&&Dn(T,R),Z&2&&Y(a,"data-selected",G[1]),Z&2&&ct(a,"selected",G[1])},i:Se,o:Se,d(G){G&&Le(a),O.d(),B&&B.d(),M=!1,Pt(F)}}}function mu(o,a,s){var C;let l,h,{feature:g}=a,{selected:v=!1}=a,{showPlaceType:m}=a,{missingIconsCache:N}=a,{iconsBaseUrl:_}=a;const k=(C=g.properties)==null?void 0:C.categories;let y,x,E=0,I=g.place_type[0]==="reverse";function R(){x&&N.add(x),s(10,E++,E)}function T(q){Mr.call(this,o,q)}function M(q){Mr.call(this,o,q)}const F=()=>R();return o.$$set=q=>{"feature"in q&&s(0,g=q.feature),"selected"in q&&s(1,v=q.selected),"showPlaceType"in q&&s(2,m=q.showPlaceType),"missingIconsCache"in q&&s(9,N=q.missingIconsCache),"iconsBaseUrl"in q&&s(3,_=q.iconsBaseUrl)},o.$$.update=()=>{var q,O,B,z;if(o.$$.dirty&3640)do s(11,l--,l),s(4,y=k==null?void 0:k[l]),s(5,x=y?_+y.replace(/ /g,"_")+".svg":void 0);while(l>-1&&(!x||N.has(x)));o.$$.dirty&1&&s(6,h=g.id.startsWith("poi.")?(O=(q=g.properties)==null?void 0:q.categories)==null?void 0:O.join(", "):((z=(B=g.properties)==null?void 0:B.place_type_name)==null?void 0:z[0])??g.place_type[0])},s(11,l=(k==null?void 0:k.length)??0),[g,v,m,_,y,x,h,I,R,N,E,l,T,M,F]}class vu extends Vt{constructor(a){super(),Wt(this,a,mu,du,Bt,{feature:0,selected:1,showPlaceType:2,missingIconsCache:9,iconsBaseUrl:3})}}function yu(o){let a;return{c(){a=ke("div"),a.innerHTML='<svg viewBox="0 0 18 18" width="24" height="24" class="svelte-7cmwmc"><path fill="#333" d="M4.4 4.4l.8.8c2.1-2.1 5.5-2.1 7.6 0l.8-.8c-2.5-2.5-6.7-2.5-9.2 0z"></path><path opacity=".1" d="M12.8 12.9c-2.1 2.1-5.5 2.1-7.6 0-2.1-2.1-2.1-5.5 0-7.7l-.8-.8c-2.5 2.5-2.5 6.7 0 9.2s6.6 2.5 9.2 0 2.5-6.6 0-9.2l-.8.8c2.2 2.1 2.2 5.6 0 7.7z"></path></svg>',Y(a,"class","svelte-7cmwmc")},m(s,l){Re(s,a,l)},p:Se,i:Se,o:Se,d(s){s&&Le(a)}}}class pu extends Vt{constructor(a){super(),Wt(this,a,null,yu,Bt,{})}}function _u(o){let a,s,l;return{c(){a=xt("svg"),s=xt("path"),Y(s,"stroke-width","4"),Y(s,"d","M 5,33.103579 C 5,17.607779 18.457,5 35,5 C 51.543,5 65,17.607779 65,33.103579 C 65,56.388679 40.4668,76.048179 36.6112,79.137779 C 36.3714,79.329879 36.2116,79.457979 36.1427,79.518879 C 35.8203,79.800879 35.4102,79.942779 35,79.942779 C 34.5899,79.942779 34.1797,79.800879 33.8575,79.518879 C 33.7886,79.457979 33.6289,79.330079 33.3893,79.138079 C 29.5346,76.049279 5,56.389379 5,33.103579 Z M 35.0001,49.386379 C 43.1917,49.386379 49.8323,42.646079 49.8323,34.331379 C 49.8323,26.016779 43.1917,19.276479 35.0001,19.276479 C 26.8085,19.276479 20.1679,26.016779 20.1679,34.331379 C 20.1679,42.646079 26.8085,49.386379 35.0001,49.386379 Z"),Y(s,"class","svelte-gzo3ar"),Y(a,"width",l=o[0]==="list"?20:void 0),Y(a,"viewBox","0 0 70 85"),Y(a,"fill","none"),Y(a,"class","svelte-gzo3ar"),ct(a,"in-map",o[0]!=="list"),ct(a,"list-icon",o[0]==="list")},m(h,g){Re(h,a,g),de(a,s)},p(h,[g]){g&1&&l!==(l=h[0]==="list"?20:void 0)&&Y(a,"width",l),g&1&&ct(a,"in-map",h[0]!=="list"),g&1&&ct(a,"list-icon",h[0]==="list")},i:Se,o:Se,d(h){h&&Le(a)}}}function ku(o,a,s){let{displayIn:l}=a;return o.$$set=h=>{"displayIn"in h&&s(0,l=h.displayIn)},[l]}class Eu extends Vt{constructor(a){super(),Wt(this,a,ku,_u,Bt,{displayIn:0})}}function xu(o){let a,s;return{c(){a=xt("svg"),s=xt("path"),Y(s,"d","M30.003-26.765C13.46-26.765 0-14.158 0 1.337c0 23.286 24.535 42.952 28.39 46.04.24.192.402.316.471.376.323.282.732.424 1.142.424.41 0 .82-.142 1.142-.424.068-.06.231-.183.471-.376 3.856-3.09 28.39-22.754 28.39-46.04 0-15.495-13.46-28.102-30.003-28.102Zm1.757 12.469c4.38 0 7.858 1.052 10.431 3.158 2.595 2.105 3.89 4.913 3.89 8.422 0 2.34-.53 4.362-1.593 6.063-1.063 1.702-3.086 3.616-6.063 5.742-2.042 1.51-3.337 2.659-3.89 3.446-.532.787-.8 1.82-.8 3.096v1.914h-8.449V15.18c0-2.041.434-3.815 1.306-5.325.872-1.51 2.467-3.118 4.785-4.82 2.233-1.594 3.7-2.89 4.402-3.889a5.582 5.582 0 0 0 1.087-3.35c0-1.382-.51-2.435-1.531-3.158-1.02-.723-2.45-1.087-4.28-1.087-3.19 0-6.826 1.047-10.91 3.131l-3.472-6.986c4.742-2.659 9.77-3.992 15.087-3.992Zm-1.88 37.324c1.765 0 3.124.472 4.08 1.408.98.936 1.47 2.276 1.47 4.02 0 1.68-.49 3.007-1.47 3.985-.977.957-2.336 1.435-4.08 1.435-1.787 0-3.171-.465-4.15-1.4-.978-.958-1.47-2.298-1.47-4.02 0-1.787.48-3.14 1.436-4.054.957-.915 2.355-1.374 4.184-1.374Z"),Y(a,"viewBox","0 0 60.006 21.412"),Y(a,"width","14"),Y(a,"height","20"),Y(a,"class","svelte-en2qvf")},m(l,h){Re(l,a,h),de(a,s)},p:Se,i:Se,o:Se,d(l){l&&Le(a)}}}class Nu extends Vt{constructor(a){super(),Wt(this,a,null,xu,Bt,{})}}function Iu(o){let a,s,l;return{c(){a=xt("svg"),s=xt("circle"),l=xt("path"),Y(s,"cx","4.789"),Y(s,"cy","4.787"),Y(s,"r","3.85"),Y(s,"class","svelte-1aq105l"),Y(l,"d","M12.063 12.063 7.635 7.635"),Y(l,"class","svelte-1aq105l"),Y(a,"xmlns","http://www.w3.org/2000/svg"),Y(a,"width","13"),Y(a,"height","13"),Y(a,"viewBox","0 0 13 13"),Y(a,"class","svelte-1aq105l")},m(h,g){Re(h,a,g),de(a,s),de(a,l)},p:Se,i:Se,o:Se,d(h){h&&Le(a)}}}class wu extends Vt{constructor(a){super(),Wt(this,a,null,Iu,Bt,{})}}function Su(o,a,s){const l=a[1],h=a[0],g=l-h;return o===l&&s?o:((o-h)%g+g)%g+h}function zr(o){const a=[...o];return a[2]<a[0]&&(a[2]+=360),a}let qn;async function Lu(o,a,s){const l=o==null?void 0:o.getCenterAndZoom();for(const h of a??[])if(!(l&&(h.minZoom!=null&&h.minZoom>l[0]||h.maxZoom!=null&&h.maxZoom<l[0]))){if(h.type==="fixed")return h.coordinates.join(",");e:if(h.type==="client-geolocation"){if(qn&&h.cachedLocationExpiry&&qn.time+h.cachedLocationExpiry>Date.now()){if(!qn.coords)break e;return qn.coords}let g;try{return g=await new Promise((v,m)=>{s.signal.addEventListener("abort",()=>{m(Error("aborted"))}),navigator.geolocation.getCurrentPosition(N=>{v([N.coords.longitude,N.coords.latitude].map(_=>_.toFixed(6)).join(","))},N=>{m(N)},h)}),g}catch{}finally{h.cachedLocationExpiry&&(qn={time:Date.now(),coords:g})}if(s.signal.aborted)return}if(h.type==="server-geolocation")return"ip";if(l&&h.type==="map-center")return l[1].toFixed(6)+","+l[2].toFixed(6)}}const bu=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([6-9][0-9])\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([6-9][0-9])\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*(EAST|WEST|[EW])?$/i,Yr=/^([+-]?[0-8]?[0-9])\s+([0-5]?[0-9]\.\d{3,})[\s,]{1,}([+-]?[0-1]?[0-9]?[0-9])\s+([0-5]?[0-9]\.\d{3,})$/,Br=/^(NORTH|SOUTH|[NS])?[\s]*([+-]?[0-8]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(NORTH|SOUTH|[NS])?[\s]*[,/;]?[\s]*(EAST|WEST|[EW])?[\s]*([+-]?[0-1]?[0-9]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(EAST|WEST|[EW])?$/i,Ur=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(EAST|WEST|[EW])?$/i,Xr=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)\s*(EAST|WEST|[EW])?$/i,Wr=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|’’|´´|["″”\.])?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|´´|’’|["″”\.])?\s*(EAST|WEST|[EW])?$/i;function Tu(o){if(!["DMS","DM","DD"].includes(o))throw new Error("invalid format specified");if(this.decimalCoordinates&&this.decimalCoordinates.trim()){const a=this.decimalCoordinates.split(",").map(E=>Number(E.trim())),s=Number(a[0]),l=Number(a[1]),h=Math.abs(s),g=Math.abs(l),v=s>0?"N":"S",m=l>0?"E":"W";let N;o=="DD"&&(N=`${h}° ${v}, ${g}° ${m}`);const _=Math.floor(h),k=Math.floor(g),y=(h-_)*60,x=(g-k)*60;if(o=="DM"){let E=Vr(y,3).toFixed(3).padStart(6,"0"),I=Vr(x,3).toFixed(3).padStart(6,"0");E.endsWith(".000")&&I.endsWith(".000")&&(E=E.replace(/\.000$/,""),I=I.replace(/\.000$/,"")),N=`${_}° ${E}' ${v}, ${k}° ${I}' ${m}`}if(o=="DMS"){const E=Math.floor(y),I=Math.floor(x);let R=((y-E)*60).toFixed(1).padStart(4,"0"),T=((x-I)*60).toFixed(1).padStart(4,"0");const M=E.toString().padStart(2,"0"),F=I.toString().padStart(2,"0");R.endsWith(".0")&&T.endsWith(".0")&&(R=R.replace(/\.0$/,""),T=T.replace(/\.0$/,"")),N=`${_}° ${M}' ${R}" ${v}, ${k}° ${F}' ${T}" ${m}`}return N}else throw new Error("no decimal coordinates to convert")}function Vr(o,a){const s=Math.pow(10,a);return Math.round((o+Number.EPSILON)*s)/s}function Yi(o,a){a||(a=5),o=o.replace(/\s+/g," ").trim();let s=null,l=null,h="",g="",v=null,m=[],N=!1;if(bu.test(o))throw new Error("invalid coordinate value");if(Yr.test(o))if(m=Yr.exec(o),N=zn(m),N)s=Math.abs(m[1])+m[2]/60,Number(m[1])<0&&(s*=-1),l=Math.abs(m[3])+m[4]/60,Number(m[3])<0&&(l*=-1),v="DM";else throw new Error("invalid coordinate format");else if(Br.test(o))if(m=Br.exec(o),N=zn(m),N){if(s=m[2],l=m[6],s.includes(",")&&(s=s.replace(",",".")),l.includes(",")&&(l=l.replace(",",".")),v="DD",Number(Math.round(s))==Number(s))throw new Error("integer only coordinate provided");if(Number(Math.round(l))==Number(l))throw new Error("integer only coordinate provided");m[1]?(h=m[1],g=m[5]):m[4]&&(h=m[4],g=m[8])}else throw new Error("invalid decimal coordinate format");else if(Ur.test(o))if(m=Ur.exec(o),N=zn(m),N)s=Math.abs(parseInt(m[2])),m[4]&&(s+=m[4]/60,v="DM"),m[6]&&(s+=m[6].replace(",",".")/3600,v="DMS"),parseInt(m[2])<0&&(s=-1*s),l=Math.abs(parseInt(m[9])),m[11]&&(l+=m[11]/60),m[13]&&(l+=m[13].replace(",",".")/3600),parseInt(m[9])<0&&(l=-1*l),m[1]?(h=m[1],g=m[8]):m[7]&&(h=m[7],g=m[14]);else throw new Error("invalid DMS coordinates format");else if(Xr.test(o))if(m=Xr.exec(o),N=zn(m),N)s=Math.abs(parseInt(m[2])),m[4]&&(s+=m[4]/60,v="DM"),m[6]&&(s+=m[6]/3600,v="DMS"),parseInt(m[2])<0&&(s=-1*s),l=Math.abs(parseInt(m[10])),m[12]&&(l+=m[12]/60),m[14]&&(l+=m[14]/3600),parseInt(m[10])<0&&(l=-1*l),m[1]?(h=m[1],g=m[9]):m[8]&&(h=m[8],g=m[16]);else throw new Error("invalid DMS coordinates format");else if(Wr.test(o)){if(m=Wr.exec(o),N=zn(m),m.filter(_=>_).length<=5)throw new Error("invalid coordinates format");if(N)s=Math.abs(parseInt(m[2])),m[4]&&(s+=m[4].replace(",",".")/60,v="DM"),m[6]&&(s+=m[6].replace(",",".")/3600,v="DMS"),parseInt(m[2])<0&&(s=-1*s),l=Math.abs(parseInt(m[10])),m[12]&&(l+=m[12].replace(",",".")/60),m[14]&&(l+=m[14].replace(",",".")/3600),parseInt(m[10])<0&&(l=-1*l),m[1]?(h=m[1],g=m[9]):m[8]&&(h=m[8],g=m[16]);else throw new Error("invalid coordinates format")}if(N){if(Math.abs(l)>=180)throw new Error("invalid longitude value");if(Math.abs(s)>=90)throw new Error("invalid latitude value");if(h&&!g||!h&&g)throw new Error("invalid coordinates value");if(h&&h==g)throw new Error("invalid coordinates format");s.toString().includes(",")&&(s=s.replace(",",".")),l.toString().includes(",")&&(l=l.replace(",","."));let _=/S|SOUTH/i;_.test(h)&&s>0&&(s=-1*s),_=/W|WEST/i,_.test(g)&&l>0&&(l=-1*l);const k=m[0].trim();let y,x;const E=/[,/;\u0020]/g,I=k.match(E);if(I==null){const M=Math.floor(o.length/2);y=k.substring(0,M).trim(),x=k.substring(M).trim()}else{let M;I.length%2==1?M=Math.floor(I.length/2):M=I.length/2-1;let F=0;if(M==0)F=k.indexOf(I[0]),y=k.substring(0,F).trim(),x=k.substring(F+1).trim();else{let C=0,q=0;for(;C<=M;)F=k.indexOf(I[C],q),q=F+1,C++;y=k.substring(0,F).trim(),x=k.substring(F+1).trim()}}const R=y.split(".");if(R.length==2&&R[1]==0&&R[1].length!=2)throw new Error("invalid coordinates format");const T=x.split(".");if(T.length==2&&T[1]==0&&T[1].length!=2)throw new Error("invalid coordinates format");if(/^\d+$/.test(y)||/^\d+$/.test(x))throw new Error("degree only coordinate/s provided");return s=Number(Number(s).toFixed(a)),l=Number(Number(l).toFixed(a)),Object.freeze({verbatimCoordinates:k,verbatimLatitude:y,verbatimLongitude:x,decimalLatitude:s,decimalLongitude:l,decimalCoordinates:`${s},${l}`,originalFormat:v,closeEnough:Cu,toCoordinateFormat:Tu})}else throw new Error("coordinates pattern match failed")}function zn(o){if(!isNaN(o[0]))return!1;const a=[...o];if(a.shift(),a.length%2>0)return!1;const s=/^[-+]?\d+([\.,]\d+)?$/,l=/[eastsouthnorthwest]+/i,h=a.length/2;for(let g=0;g<h;g++){const v=a[g],m=a[g+h],N=s.test(v)&&s.test(m),_=l.test(v)&&l.test(m),k=v==m;if(!(v==null&&m==null)){if(v==null||m==null)return!1;if(N||_||k)continue;return!1}}return!0}function Hr(o,a){const s=Math.abs(o-a);return Number(s.toFixed(6))<=1e-5}function Cu(o){if(!o)throw new Error("coords must be provided");if(o.includes(",")){const a=o.split(",");if(Number(a[0])==NaN||Number(a[1])==NaN)throw new Error("coords are not valid decimals");return Hr(this.decimalLatitude,Number(a[0]))&&Hr(this.decimalLongitude,a[1])}else throw new Error("coords being tested must be separated by a comma")}const Ru=Object.freeze({DMS:"DMS",DM:"DM",DD:"DD"});Yi.to=Ru;const Ou=[{verbatimCoordinates:"40.123, -74.123",verbatimLatitude:"40.123",verbatimLongitude:"-74.123"},{verbatimCoordinates:"40.123° N 74.123° W",verbatimLatitude:"40.123° N",verbatimLongitude:"74.123° W"},{verbatimCoordinates:"40.123° N 74.123° W",verbatimLatitude:"40.123° N",verbatimLongitude:"74.123° W"},{verbatimCoordinates:'40° 7´ 22.8" N 74° 7´ 22.8" W',verbatimLatitude:'40° 7´ 22.8" N',verbatimLongitude:'74° 7´ 22.8" W'},{verbatimCoordinates:"40° 7.38’ , -74° 7.38’",verbatimLatitude:"40° 7.38’",verbatimLongitude:"-74° 7.38’"},{verbatimCoordinates:"N40°7’22.8’’, W74°7’22.8’’",verbatimLatitude:"N40°7’22.8’’",verbatimLongitude:"W74°7’22.8’’"},{verbatimCoordinates:'40°7’22.8"N, 74°7’22.8"W',verbatimLatitude:'40°7’22.8"N',verbatimLongitude:'74°7’22.8"W'},{verbatimCoordinates:`40°7'22.8"N, 74°7'22.8"W`,verbatimLatitude:`40°7'22.8"N`,verbatimLongitude:`74°7'22.8"W`},{verbatimCoordinates:"40 7 22.8, -74 7 22.8",verbatimLatitude:"40 7 22.8",verbatimLongitude:"-74 7 22.8"},{verbatimCoordinates:"40.123 -74.123",verbatimLatitude:"40.123",verbatimLongitude:"-74.123"},{verbatimCoordinates:"40.123°,-74.123°",verbatimLatitude:"40.123°",verbatimLongitude:"-74.123°"},{verbatimCoordinates:"40.123N74.123W",verbatimLatitude:"40.123N",verbatimLongitude:"74.123W"},{verbatimCoordinates:"4007.38N7407.38W",verbatimLatitude:"4007.38N",verbatimLongitude:"7407.38W"},{verbatimCoordinates:'40°7’22.8"N, 74°7’22.8"W',verbatimLatitude:'40°7’22.8"N',verbatimLongitude:'74°7’22.8"W'},{verbatimCoordinates:"400722.8N740722.8W",verbatimLatitude:"400722.8N",verbatimLongitude:"740722.8W"},{verbatimCoordinates:"N 40 7.38 W 74 7.38",verbatimLatitude:"N 40 7.38",verbatimLongitude:"W 74 7.38"},{verbatimCoordinates:"40:7:22.8N 74:7:22.8W",verbatimLatitude:"40:7:22.8N",verbatimLongitude:"74:7:22.8W"},{verbatimCoordinates:"40:7:23N,74:7:23W",verbatimLatitude:"40:7:23N",verbatimLongitude:"74:7:23W",decimalLatitude:40.1230555555,decimalLongitude:-74.1230555555},{verbatimCoordinates:'40°7’23"N 74°7’23"W',verbatimLatitude:'40°7’23"N',verbatimLongitude:'74°7’23"W',decimalLatitude:40.1230555555,decimalLongitude:-74.12305555555555},{verbatimCoordinates:'40°7’23"S 74°7’23"E',verbatimLatitude:'40°7’23"S',verbatimLongitude:'74°7’23"E',decimalLatitude:-40.1230555555,decimalLongitude:74.12305555555555},{verbatimCoordinates:'40°7’23" -74°7’23"',verbatimLatitude:'40°7’23"',verbatimLongitude:'-74°7’23"',decimalLatitude:40.1230555555,decimalLongitude:-74.123055555},{verbatimCoordinates:'40d 7’ 23" N 74d 7’ 23" W',verbatimLatitude:'40d 7’ 23" N',verbatimLongitude:'74d 7’ 23" W',decimalLatitude:40.1230555555,decimalLongitude:-74.123055555},{verbatimCoordinates:"40.123N 74.123W",verbatimLatitude:"40.123N",verbatimLongitude:"74.123W"},{verbatimCoordinates:"40° 7.38, -74° 7.38",verbatimLatitude:"40° 7.38",verbatimLongitude:"-74° 7.38"},{verbatimCoordinates:"40° 7.38, -74° 7.38",verbatimLatitude:"40° 7.38",verbatimLongitude:"-74° 7.38"},{verbatimCoordinates:"40 7 22.8; -74 7 22.8",verbatimLatitude:"40 7 22.8",verbatimLongitude:"-74 7 22.8"}],Mu={decimalLatitude:40.123,decimalLongitude:-74.123},Pu=[{verbatimCoordinates:`50°4'17.698"south, 14°24'2.826"east`,verbatimLatitude:`50°4'17.698"south`,verbatimLongitude:`14°24'2.826"east`,decimalLatitude:-50.07158277777778,decimalLongitude:14.400785},{verbatimCoordinates:"50d4m17.698S 14d24m2.826E",verbatimLatitude:"50d4m17.698S",verbatimLongitude:"14d24m2.826E",decimalLatitude:-50.07158277777778,decimalLongitude:14.400785},{verbatimCoordinates:"40:26:46N,79:56:55W",verbatimLatitude:"40:26:46N",verbatimLongitude:"79:56:55W",decimalLatitude:40.44611111111111,decimalLongitude:-79.9486111111111},{verbatimCoordinates:"40:26:46.302N 79:56:55.903W",verbatimLatitude:"40:26:46.302N",verbatimLongitude:"79:56:55.903W",decimalLatitude:40.446195,decimalLongitude:-79.94886194444445},{verbatimCoordinates:"40°26′47″N 79°58′36″W",verbatimLatitude:"40°26′47″N",verbatimLongitude:"79°58′36″W",decimalLatitude:40.44638888888889,decimalLongitude:-79.97666666666667},{verbatimCoordinates:"40d 26′ 47″ N 79d 58′ 36″ W",verbatimLatitude:"40d 26′ 47″ N",verbatimLongitude:"79d 58′ 36″ W",decimalLatitude:40.44638888888889,decimalLongitude:-79.97666666666667},{verbatimCoordinates:"40.446195N 79.948862W",verbatimLatitude:"40.446195N",verbatimLongitude:"79.948862W",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40,446195° 79,948862°",verbatimLatitude:"40,446195°",verbatimLongitude:"79,948862°",decimalLatitude:40.446195,decimalLongitude:79.948862},{verbatimCoordinates:"40° 26.7717, -79° 56.93172",verbatimLatitude:"40° 26.7717",verbatimLongitude:"-79° 56.93172",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40.446195, -79.948862",verbatimLatitude:"40.446195",verbatimLongitude:"-79.948862",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40.123256; -74.123256",verbatimLatitude:"40.123256",verbatimLongitude:"-74.123256",decimalLatitude:40.123256,decimalLongitude:-74.123256},{verbatimCoordinates:"18°24S 22°45E",verbatimLatitude:"18°24S",verbatimLongitude:"22°45E",decimalLatitude:-18.4,decimalLongitude:22.75}],Au=[{verbatimCoordinates:"10.432342S 10.6345345E",verbatimLatitude:"10.432342S",verbatimLongitude:"10.6345345E",decimalLatitude:-10.432342,decimalLongitude:10.6345345},{verbatimCoordinates:"10.00S 10.00E",verbatimLatitude:"10.00S",verbatimLongitude:"10.00E",decimalLatitude:-10,decimalLongitude:10},{verbatimCoordinates:"00.00S 01.00E",verbatimLatitude:"00.00S",verbatimLongitude:"01.00E",decimalLatitude:0,decimalLongitude:1},{verbatimCoordinates:"18.24S 22.45E",verbatimLatitude:"18.24S",verbatimLongitude:"22.45E",decimalLatitude:-18.4,decimalLongitude:22.75},{verbatimCoordinates:"27deg 15min 45.2sec S 18deg 32min 53.7sec E",verbatimLatitude:"27deg 15min 45.2sec S",verbatimLongitude:"18deg 32min 53.7sec E",decimalLatitude:-27.262555555555554,decimalLongitude:18.54825},{verbatimCoordinates:"-23.3245° S / 28.2344° E",verbatimLatitude:"-23.3245° S",verbatimLongitude:"28.2344° E",decimalLatitude:-23.3245,decimalLongitude:28.2344},{verbatimCoordinates:"40° 26.7717 -79° 56.93172",verbatimLatitude:"40° 26.7717",verbatimLongitude:"-79° 56.93172",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"27.15.45S 18.32.53E",verbatimLatitude:"27.15.45S",verbatimLongitude:"18.32.53E",decimalLatitude:-27.2625,decimalLongitude:18.548055},{verbatimCoordinates:"-27.15.45 18.32.53",verbatimLatitude:"-27.15.45",verbatimLongitude:"18.32.53",decimalLatitude:-27.2625,decimalLongitude:18.548055},{verbatimCoordinates:"27.15.45.2S 18.32.53.4E",verbatimLatitude:"27.15.45.2S",verbatimLongitude:"18.32.53.4E",decimalLatitude:-27.262556,decimalLongitude:18.548167},{verbatimCoordinates:"27.15.45,2S 18.32.53,4E",verbatimLatitude:"27.15.45,2S",verbatimLongitude:"18.32.53,4E",decimalLatitude:-27.262556,decimalLongitude:18.548167},{verbatimCoordinates:"S23.43563 ° E22.45634 °",verbatimLatitude:"S23.43563 °",verbatimLongitude:"E22.45634 °",decimalLatitude:-23.43563,decimalLongitude:22.45634},{verbatimCoordinates:"27,71372° S 23,07771° E",verbatimLatitude:"27,71372° S",verbatimLongitude:"23,07771° E",decimalLatitude:-27.71372,decimalLongitude:23.07771},{verbatimCoordinates:"27.45.34 S 23.23.23 E",verbatimLatitude:"27.45.34 S",verbatimLongitude:"23.23.23 E",decimalLatitude:-27.759444,decimalLongitude:23.38972222},{verbatimCoordinates:"S 27.45.34 E 23.23.23",verbatimLatitude:"S 27.45.34",verbatimLongitude:"E 23.23.23",decimalLatitude:-27.759444,decimalLongitude:23.38972222},{verbatimCoordinates:"53 16.3863,4 52.8171",verbatimLatitude:"53 16.3863",verbatimLongitude:"4 52.8171",decimalLatitude:53.273105,decimalLongitude:4.88029},{verbatimCoordinates:"50 8.2914,-5 2.4447",verbatimLatitude:"50 8.2914",verbatimLongitude:"-5 2.4447",decimalLatitude:50.13819,decimalLongitude:-5.040745},{verbatimCoordinates:"N 48° 30,6410', E 18° 57,4583'",verbatimLatitude:"N 48° 30,6410'",verbatimLongitude:"E 18° 57,4583'",decimalLatitude:48.51068,decimalLongitude:18.95764},{verbatimCoordinates:"1.23456, 18.33453",verbatimLatitude:"1.23456",verbatimLongitude:"18.33453",decimalLatitude:1.23456,decimalLongitude:18.33453}];function Du(){const o=[];return Ou.forEach(a=>{a.decimalLatitude?o.push(a):o.push({...a,...Mu})}),[...o,...Pu,...Au]}const Fu=Du();Yi.formats=Fu.map(o=>o.verbatimCoordinates);const Gu=Yi;function Zr(o,a,s){const l=o.slice();return l[81]=a[s],l[83]=s,l}function jr(o){let a,s;return a=new pu({}),{c(){Xt(a.$$.fragment)},m(l,h){At(a,l,h),s=!0},i(l){s||(Fe(a.$$.fragment,l),s=!0)},o(l){Ye(a.$$.fragment,l),s=!1},d(l){Dt(a,l)}}}function Qr(o){let a,s,l,h,g;return s=new Nu({}),{c(){a=ke("button"),Xt(s.$$.fragment),Y(a,"type","button"),Y(a,"title",o[9]),Y(a,"class","svelte-zh3kmv"),ct(a,"active",o[0])},m(v,m){Re(v,a,m),At(s,a,null),l=!0,h||(g=Ze(a,"click",o[67]),h=!0)},p(v,m){(!l||m[0]&512)&&Y(a,"title",v[9]),(!l||m[0]&1)&&ct(a,"active",v[0])},i(v){l||(Fe(s.$$.fragment,v),l=!0)},o(v){Ye(s.$$.fragment,v),l=!1},d(v){v&&Le(a),Dt(s),h=!1,g()}}}function qu(o){let a,s=[],l=new Map,h,g,v,m=Dr(o[14]);const N=_=>_[81].id+(_[81].address?","+_[81].address:"");for(let _=0;_<m.length;_+=1){let k=Zr(o,m,_),y=N(k);l.set(y,s[_]=Kr(y,k))}return{c(){a=ke("ul");for(let _=0;_<s.length;_+=1)s[_].c();Y(a,"class","svelte-zh3kmv")},m(_,k){Re(_,a,k);for(let y=0;y<s.length;y+=1)s[y]&&s[y].m(a,null);h=!0,g||(v=[Ze(a,"mouseleave",o[71]),Ze(a,"blur",o[72])],g=!0)},p(_,k){k[0]&17880064&&(m=Dr(_[14]),oi(),s=tu(s,k,N,1,_,m,l,a,eu,Kr,null,Zr),li())},i(_){if(!h){for(let k=0;k<m.length;k+=1)Fe(s[k]);h=!0}},o(_){for(let k=0;k<s.length;k+=1)Ye(s[k]);h=!1},d(_){_&&Le(a);for(let k=0;k<s.length;k+=1)s[k].d();g=!1,Pt(v)}}}function zu(o){let a,s,l,h,g,v;return s=new Gr({}),{c(){a=ke("div"),Xt(s.$$.fragment),l=it(),h=ke("div"),g=Ut(o[7]),Y(h,"class","svelte-zh3kmv"),Y(a,"class","no-results svelte-zh3kmv")},m(m,N){Re(m,a,N),At(s,a,null),de(a,l),de(a,h),de(h,g),v=!0},p(m,N){(!v||N[0]&128)&&Dn(g,m[7])},i(m){v||(Fe(s.$$.fragment,m),v=!0)},o(m){Ye(s.$$.fragment,m),v=!1},d(m){m&&Le(a),Dt(s)}}}function Yu(o){let a="",s;return{c(){s=Ut(a)},m(l,h){Re(l,s,h)},p:Se,i:Se,o:Se,d(l){l&&Le(s)}}}function Bu(o){let a,s,l,h,g,v,m,N,_,k,y;return s=new Gr({}),N=new Fr({}),{c(){a=ke("div"),Xt(s.$$.fragment),l=it(),h=ke("div"),g=Ut(o[6]),v=it(),m=ke("button"),Xt(N.$$.fragment),Y(h,"class","svelte-zh3kmv"),Y(m,"class","svelte-zh3kmv"),Y(a,"class","error svelte-zh3kmv")},m(x,E){Re(x,a,E),At(s,a,null),de(a,l),de(a,h),de(h,g),de(a,v),de(a,m),At(N,m,null),_=!0,k||(y=Ze(m,"click",o[68]),k=!0)},p(x,E){(!_||E[0]&64)&&Dn(g,x[6])},i(x){_||(Fe(s.$$.fragment,x),Fe(N.$$.fragment,x),_=!0)},o(x){Ye(s.$$.fragment,x),Ye(N.$$.fragment,x),_=!1},d(x){x&&Le(a),Dt(s),Dt(N),k=!1,y()}}}function Kr(o,a){let s,l,h;function g(){return a[69](a[83])}function v(){return a[70](a[81])}return l=new vu({props:{feature:a[81],showPlaceType:a[10],selected:a[15]===a[83],missingIconsCache:a[20],iconsBaseUrl:a[12]}}),l.$on("mouseenter",g),l.$on("focus",v),{key:o,first:null,c(){s=Xa(),Xt(l.$$.fragment),this.first=s},m(m,N){Re(m,s,N),At(l,m,N),h=!0},p(m,N){a=m;const _={};N[0]&16384&&(_.feature=a[81]),N[0]&1024&&(_.showPlaceType=a[10]),N[0]&49152&&(_.selected=a[15]===a[83]),N[0]&4096&&(_.iconsBaseUrl=a[12]),l.$set(_)},i(m){h||(Fe(l.$$.fragment,m),h=!0)},o(m){Ye(l.$$.fragment,m),h=!1},d(m){m&&Le(s),Dt(l,m)}}}function Uu(o){let a,s,l,h,g,v,m,N,_,k,y,x,E,I,R,T,M,F,C,q,O,B=!1;g=new wu({}),y=new Fr({});let z=o[19]&&jr(),X=o[5]===!0&&Qr(o);const G=o[59].default,Z=za(G,o,o[58],null),ee=[Bu,Yu,zu,qu],j=[];function ce(D,K){var se,me;return D[18]?0:D[16]?((se=D[14])==null?void 0:se.length)===0?2:D[16]&&((me=D[14])!=null&&me.length)?3:-1:1}return~(T=ce(o))&&(M=j[T]=ee[T](o)),{c(){a=it(),s=ke("form"),l=ke("div"),h=ke("button"),Xt(g.$$.fragment),v=it(),m=ke("input"),N=it(),_=ke("div"),k=ke("button"),Xt(y.$$.fragment),x=it(),z&&z.c(),E=it(),X&&X.c(),I=it(),Z&&Z.c(),R=it(),M&&M.c(),Y(h,"class","search-button svelte-zh3kmv"),Y(h,"type","button"),Y(m,"placeholder",o[8]),Y(m,"aria-label",o[8]),Y(m,"class","svelte-zh3kmv"),Y(k,"type","button"),Y(k,"title",o[3]),Y(k,"class","svelte-zh3kmv"),Y(_,"class","clear-button-container svelte-zh3kmv"),ct(_,"displayable",o[1]!==""),Y(l,"class","input-group svelte-zh3kmv"),Y(s,"tabindex","0"),Y(s,"class",F=Cr(o[2])+" svelte-zh3kmv"),ct(s,"can-collapse",o[4]&&o[1]==="")},m(D,K){Re(D,a,K),Re(D,s,K),de(s,l),de(l,h),At(g,h,null),de(l,v),de(l,m),o[61](m),Rr(m,o[1]),de(l,N),de(l,_),de(_,k),At(y,k,null),de(_,x),z&&z.m(_,null),de(l,E),X&&X.m(l,null),de(l,I),Z&&Z.m(l,null),de(s,R),~T&&j[T].m(s,null),C=!0,q||(O=[Ze(h,"click",o[60]),Ze(m,"input",o[62]),Ze(m,"focus",o[63]),Ze(m,"blur",o[64]),Ze(m,"keydown",o[22]),Ze(m,"input",o[65]),Ze(k,"click",o[66]),Ze(s,"submit",Wa(o[21]))],q=!0)},p(D,K){(!C||K[0]&256)&&Y(m,"placeholder",D[8]),(!C||K[0]&256)&&Y(m,"aria-label",D[8]),K[0]&2&&m.value!==D[1]&&Rr(m,D[1]),(!C||K[0]&8)&&Y(k,"title",D[3]),D[19]?z?K[0]&524288&&Fe(z,1):(z=jr(),z.c(),Fe(z,1),z.m(_,null)):z&&(oi(),Ye(z,1,1,()=>{z=null}),li()),(!C||K[0]&2)&&ct(_,"displayable",D[1]!==""),D[5]===!0?X?(X.p(D,K),K[0]&32&&Fe(X,1)):(X=Qr(D),X.c(),Fe(X,1),X.m(l,I)):X&&(oi(),Ye(X,1,1,()=>{X=null}),li()),Z&&Z.p&&(!C||K[1]&134217728)&&Ba(Z,G,D,D[58],C?Ya(G,D[58],K,null):Ua(D[58]),null);let se=T;T=ce(D),T===se?~T&&j[T].p(D,K):(M&&(oi(),Ye(j[se],1,1,()=>{j[se]=null}),li()),~T?(M=j[T],M?M.p(D,K):(M=j[T]=ee[T](D),M.c()),Fe(M,1),M.m(s,null)):M=null),(!C||K[0]&4&&F!==(F=Cr(D[2])+" svelte-zh3kmv"))&&Y(s,"class",F),(!C||K[0]&22)&&ct(s,"can-collapse",D[4]&&D[1]==="")},i(D){C||(Fe(B),Fe(g.$$.fragment,D),Fe(y.$$.fragment,D),Fe(z),Fe(X),Fe(Z,D),Fe(M),C=!0)},o(D){Ye(B),Ye(g.$$.fragment,D),Ye(y.$$.fragment,D),Ye(z),Ye(X),Ye(Z,D),Ye(M),C=!1},d(D){D&&(Le(a),Le(s)),Dt(g),o[61](null),Dt(y),z&&z.d(),X&&X.d(),Z&&Z.d(D),~T&&j[T].d(),q=!1,Pt(O)}}}function Xu(o,a,s){let l,{$$slots:h={},$$scope:g}=a,{class:v=void 0}=a,{apiKey:m}=a,{bbox:N=void 0}=a,{clearButtonTitle:_="clear"}=a,{clearOnBlur:k=!1}=a,{collapsed:y=!1}=a,{country:x=void 0}=a,{debounceSearch:E=200}=a,{enableReverse:I=!1}=a,{errorMessage:R="Something went wrong…"}=a,{filter:T=()=>!0}=a,{flyTo:M=!0}=a,{fuzzyMatch:F=!0}=a,{language:C=void 0}=a,{limit:q=void 0}=a,{mapController:O=void 0}=a,{minLength:B=2}=a,{noResultsMessage:z="Oops! Looks like you're trying to predict something that's not quite right. We can't seem to find what you're looking for. Maybe try double-checking your spelling or try a different search term. Keep on typing - we'll do our best to get you where you need to go!"}=a,{placeholder:X="Search"}=a,{proximity:G=[{type:"server-geolocation"}]}=a,{reverseActive:Z=I==="always"}=a,{reverseButtonTitle:ee="toggle reverse geocoding"}=a,{searchValue:j=""}=a,{showFullGeometry:ce=!0}=a,{showPlaceType:D="ifNeeded"}=a,{showResultsWhileTyping:K=!0}=a,{selectFirst:se=!0}=a,{flyToSelected:me=!1}=a,{markerOnSelected:Ae=!0}=a,{types:Ie=void 0}=a,{excludeTypes:Q=!1}=a,{zoom:Ge=16}=a,{maxZoom:be=18}=a,{apiUrl:Ue="https://api.maptiler.com/geocoding"}=a,{fetchParameters:he={}}=a,{iconsBaseUrl:mt="https://cdn.maptiler.com/maptiler-geocoding-control/v1.3.3/icons/"}=a,{adjustUrlQuery:Zn=()=>{}}=a;function Si(){et.focus()}function b(){et.blur()}function Li(A,Ce=!0,qe=!1){s(1,j=A),Ce?(s(15,we=-1),In()):(st(!qe,qe),setTimeout(()=>{et.focus(),et.select()}))}function Ee(){s(14,oe=void 0),s(55,ae=void 0),s(15,we=-1)}function J(){s(54,Te=[]),s(55,ae=void 0)}let w=!1,oe,Te,ae,jn="",et,we=-1,U,sn=[],Ct,tt,Nn,ue;const an=new Set,rt=ja();Za(()=>{O&&(O.setEventHandler(void 0),O.indicateReverse(!1),O.setSelectedMarker(-1),O.setMarkers(void 0,void 0))});function In(A){if(tt&&(clearTimeout(tt),tt=void 0),we>-1&&oe)s(55,ae=oe[we]),s(1,j=ae.place_type[0]==="reverse"?ae.place_name:ae.place_name.replace(/,.*/,"")),s(18,U=void 0),s(54,Te=void 0),s(15,we=-1);else if(j){const Ce=A||!te(j);un(j,{exact:!0}).then(()=>{s(54,Te=oe),s(55,ae=void 0),Ce&&ge()}).catch(qe=>s(18,U=qe))}}function te(A){try{return Gu(A,6)}catch{return!1}}async function un(A,{byId:Ce=!1,exact:qe=!1}={}){s(18,U=void 0),Ct==null||Ct.abort();const Qe=new AbortController;s(19,Ct=Qe);try{const fe=te(A),Ke=new URLSearchParams;if(C!==void 0&&Ke.set("language",Array.isArray(C)?C.join(","):C??""),Ie&&Ke.set("types",Ie.join(",")),Q&&Ke.set("excludeTypes",String(Q)),N&&Ke.set("bbox",N.map(Ln=>Ln.toFixed(6)).join(",")),x&&Ke.set("country",Array.isArray(x)?x.join(","):x),!Ce&&!fe){const Ln=await Lu(O,G,Qe);Ln&&Ke.set("proximity",Ln),(qe||!K)&&Ke.set("autocomplete","false"),Ke.set("fuzzyMatch",String(F))}q!==void 0&&(!fe||(Ie==null?void 0:Ie.length)===1)&&Ke.set("limit",String(q)),Ke.set("key",m),Zn(Ke);const yt=Ue+"/"+encodeURIComponent(fe?fe.decimalLongitude+","+fe.decimalLatitude:A)+".json?"+Ke.toString();if(yt===jn){Ce?(s(14,oe=void 0),s(55,ae=sn[0])):s(14,oe=sn);return}jn=yt;const Sn=await fetch(yt,{signal:Qe.signal,...he});if(!Sn.ok)throw new Error(await Sn.text());const $t=await Sn.json();rt("response",{url:yt,featureCollection:$t}),Ce?(s(14,oe=void 0),s(55,ae=$t.features[0]),sn=[ae]):(s(14,oe=$t.features.filter(T)),fe&&oe.unshift({type:"Feature",properties:{},id:"reverse_"+fe.decimalLongitude+"_"+fe.decimalLatitude,text:fe.decimalLatitude+", "+fe.decimalLongitude,place_name:fe.decimalLatitude+", "+fe.decimalLongitude,place_type:["reverse"],center:[fe.decimalLongitude,fe.decimalLatitude],bbox:[fe.decimalLongitude,fe.decimalLatitude,fe.decimalLongitude,fe.decimalLatitude],geometry:{type:"Point",coordinates:[fe.decimalLongitude,fe.decimalLatitude]}}),sn=oe,fe&&et.focus())}catch(fe){if(fe&&typeof fe=="object"&&"name"in fe&&fe.name==="AbortError")return;throw fe}finally{Qe===Ct&&s(19,Ct=void 0)}}function ge(){var qe;if(!(Te!=null&&Te.length)||!M)return;const A=[180,90,-180,-90],Ce=!Te.some(Qe=>!Qe.matching_text);for(const Qe of Te)if(Ce||!Qe.matching_text)for(const fe of[0,1,2,3])A[fe]=Math[fe<2?"min":"max"](A[fe],((qe=Qe.bbox)==null?void 0:qe[fe])??Qe.center[fe%2]);O&&Te.length>0&&(ae&&A[0]===A[2]&&A[1]===A[3]?O.flyTo(ae.center,Ge):O.fitBounds(zr(A),50,be))}function re(A){s(0,Z=I==="always"),s(14,oe=void 0),s(55,ae=void 0),s(15,we=-1),Li(A[1].toFixed(6)+", "+Su(A[0],[-180,180],!0).toFixed(6),!1,!0)}function rr(A){if(!oe)return;let Ce=A.key==="ArrowDown"?1:A.key==="ArrowUp"?-1:0;Ce&&(we===(se?0:-1)&&Ce===-1&&s(15,we=oe.length),s(15,we+=Ce),we>=oe.length&&s(15,we=-1),we<0&&se&&s(15,we=0),A.preventDefault())}function st(A=!0,Ce=!1){if(s(18,U=void 0),K||Ce){if(tt&&clearTimeout(tt),j.length<B)return;const qe=j;tt=window.setTimeout(()=>{un(qe).catch(Qe=>s(18,U=Qe))},A?E:0)}else s(14,oe=void 0),s(18,U=void 0)}function Qn(A){s(55,ae=A),s(1,j=A.place_name),s(15,we=-1)}const ne=()=>et.focus();function sr(A){Fi[A?"unshift":"push"](()=>{et=A,s(17,et)})}function ar(){j=this.value,s(1,j),s(13,w),s(27,k)}const Kn=()=>s(13,w=!0),nt=()=>s(13,w=!1),on=()=>st(),vt=()=>{s(1,j=""),et.focus()},bi=()=>s(0,Z=!Z),wn=()=>s(18,U=void 0),ur=A=>s(15,we=A),Ti=A=>Qn(A),Gt=()=>{se||s(15,we=-1)},H=()=>{};return o.$$set=A=>{"class"in A&&s(2,v=A.class),"apiKey"in A&&s(25,m=A.apiKey),"bbox"in A&&s(26,N=A.bbox),"clearButtonTitle"in A&&s(3,_=A.clearButtonTitle),"clearOnBlur"in A&&s(27,k=A.clearOnBlur),"collapsed"in A&&s(4,y=A.collapsed),"country"in A&&s(28,x=A.country),"debounceSearch"in A&&s(29,E=A.debounceSearch),"enableReverse"in A&&s(5,I=A.enableReverse),"errorMessage"in A&&s(6,R=A.errorMessage),"filter"in A&&s(30,T=A.filter),"flyTo"in A&&s(31,M=A.flyTo),"fuzzyMatch"in A&&s(32,F=A.fuzzyMatch),"language"in A&&s(33,C=A.language),"limit"in A&&s(34,q=A.limit),"mapController"in A&&s(35,O=A.mapController),"minLength"in A&&s(36,B=A.minLength),"noResultsMessage"in A&&s(7,z=A.noResultsMessage),"placeholder"in A&&s(8,X=A.placeholder),"proximity"in A&&s(37,G=A.proximity),"reverseActive"in A&&s(0,Z=A.reverseActive),"reverseButtonTitle"in A&&s(9,ee=A.reverseButtonTitle),"searchValue"in A&&s(1,j=A.searchValue),"showFullGeometry"in A&&s(38,ce=A.showFullGeometry),"showPlaceType"in A&&s(10,D=A.showPlaceType),"showResultsWhileTyping"in A&&s(39,K=A.showResultsWhileTyping),"selectFirst"in A&&s(11,se=A.selectFirst),"flyToSelected"in A&&s(40,me=A.flyToSelected),"markerOnSelected"in A&&s(41,Ae=A.markerOnSelected),"types"in A&&s(42,Ie=A.types),"excludeTypes"in A&&s(43,Q=A.excludeTypes),"zoom"in A&&s(44,Ge=A.zoom),"maxZoom"in A&&s(45,be=A.maxZoom),"apiUrl"in A&&s(46,Ue=A.apiUrl),"fetchParameters"in A&&s(47,he=A.fetchParameters),"iconsBaseUrl"in A&&s(12,mt=A.iconsBaseUrl),"adjustUrlQuery"in A&&s(48,Zn=A.adjustUrlQuery),"$$scope"in A&&s(58,g=A.$$scope)},o.$$.update=()=>{if(o.$$.dirty[0]&32&&s(0,Z=I==="always"),o.$$.dirty[0]&134225920&&setTimeout(()=>{s(16,Nn=w),k&&!w&&s(1,j="")}),o.$$.dirty[0]&16386|o.$$.dirty[1]&32&&j.length<B&&(s(55,ae=void 0),s(14,oe=void 0),s(18,U=void 0),s(54,Te=oe)),o.$$.dirty[1]&16777344&&ce&&ae&&!ae.address&&ae.geometry.type==="Point"&&ae.place_type[0]!=="reverse"&&un(ae.id,{byId:!0}).catch(A=>s(18,U=A)),o.$$.dirty[1]&50356241&&(O&&ae&&ae.id!==ue&&M&&(!ae.bbox||ae.bbox[0]===ae.bbox[2]&&ae.bbox[1]===ae.bbox[3]?O.flyTo(ae.center,ae.id.startsWith("poi.")||ae.id.startsWith("address.")?be:Ge):O.fitBounds(zr(ae.bbox),50,be),s(14,oe=void 0),s(54,Te=void 0),s(15,we=-1)),s(56,ue=ae==null?void 0:ae.id)),o.$$.dirty[0]&18432&&se&&oe!=null&&oe.length&&s(15,we=0),o.$$.dirty[0]&2050&&(se||s(15,we=-1)),o.$$.dirty[0]&16384|o.$$.dirty[1]&8388608&&Te!==oe&&s(54,Te=void 0),o.$$.dirty[0]&81921|o.$$.dirty[1]&8388624&&O&&O.setEventHandler(A=>{switch(A.type){case"mapClick":Z&&re(A.coordinates);break;case"markerClick":{const Ce=oe==null?void 0:oe.find(qe=>qe.id===A.id);Ce&&Qn(Ce)}break;case"markerMouseEnter":Te&&s(15,we=Nn?(oe==null?void 0:oe.findIndex(Ce=>Ce.id===A.id))??-1:-1);break;case"markerMouseLeave":Te&&s(15,we=-1);break}}),o.$$.dirty[0]&49152&&s(57,l=oe==null?void 0:oe[we]),o.$$.dirty[1]&67133969&&O&&l&&M&&me&&O.flyTo(l.center,l.id.startsWith("poi.")||l.id.startsWith("address.")?be:Ge),o.$$.dirty[1]&1040&&(Ae||O==null||O.setMarkers(void 0,void 0)),o.$$.dirty[1]&75498512&&O&&Ae&&!Te&&(O.setMarkers(l?[l]:void 0,void 0),O.setSelectedMarker(l?0:-1)),o.$$.dirty[1]&25165840&&O&&O.setMarkers(Te,ae),o.$$.dirty[0]&32768|o.$$.dirty[1]&8388624&&Te&&O&&O.setSelectedMarker(we),o.$$.dirty[0]&2|o.$$.dirty[1]&16&&O){const A=te(j);O.setReverseMarker(A?[A.decimalLongitude,A.decimalLatitude]:void 0)}o.$$.dirty[1]&67108864&&rt("select",l),o.$$.dirty[1]&16777216&&rt("pick",ae),o.$$.dirty[0]&81920&&rt("optionsVisibilityChange",Nn&&!!oe),o.$$.dirty[0]&16384&&rt("featuresListed",oe),o.$$.dirty[1]&8388608&&rt("featuresMarked",Te),o.$$.dirty[0]&1&&rt("reverseToggle",Z),o.$$.dirty[0]&2&&rt("queryChange",j),o.$$.dirty[0]&1|o.$$.dirty[1]&16&&O&&O.indicateReverse(Z)},[Z,j,v,_,y,I,R,z,X,ee,D,se,mt,w,oe,we,Nn,et,U,Ct,an,In,rr,st,Qn,m,N,k,x,E,T,M,F,C,q,O,B,G,ce,K,me,Ae,Ie,Q,Ge,be,Ue,he,Zn,Si,b,Li,Ee,J,Te,ae,ue,l,g,h,ne,sr,ar,Kn,nt,on,vt,bi,wn,ur,Ti,Gt,H]}let Wu=class extends Vt{constructor(a){super(),Wt(this,a,Xu,Uu,Bt,{class:2,apiKey:25,bbox:26,clearButtonTitle:3,clearOnBlur:27,collapsed:4,country:28,debounceSearch:29,enableReverse:5,errorMessage:6,filter:30,flyTo:31,fuzzyMatch:32,language:33,limit:34,mapController:35,minLength:36,noResultsMessage:7,placeholder:8,proximity:37,reverseActive:0,reverseButtonTitle:9,searchValue:1,showFullGeometry:38,showPlaceType:10,showResultsWhileTyping:39,selectFirst:11,flyToSelected:40,markerOnSelected:41,types:42,excludeTypes:43,zoom:44,maxZoom:45,apiUrl:46,fetchParameters:47,iconsBaseUrl:12,adjustUrlQuery:48,focus:49,blur:50,setQuery:51,clearList:52,clearMap:53},null,[-1,-1,-1])}get focus(){return this.$$.ctx[49]}get blur(){return this.$$.ctx[50]}get setQuery(){return this.$$.ctx[51]}get clearList(){return this.$$.ctx[52]}get clearMap(){return this.$$.ctx[53]}};var $e=63710088e-1,Jr={centimeters:$e*100,centimetres:$e*100,degrees:360/(2*Math.PI),feet:$e*3.28084,inches:$e*39.37,kilometers:$e/1e3,kilometres:$e/1e3,meters:$e,metres:$e,miles:$e/1609.344,millimeters:$e*1e3,millimetres:$e*1e3,nauticalmiles:$e/1852,radians:1,yards:$e*1.0936};function Yn(o,a,s={}){const l={type:"Feature"};return(s.id===0||s.id)&&(l.id=s.id),s.bbox&&(l.bbox=s.bbox),l.properties=a||{},l.geometry=o,l}function Vu(o,a,s={}){if(!o)throw new Error("coordinates is required");if(!Array.isArray(o))throw new Error("coordinates must be an Array");if(o.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!es(o[0])||!es(o[1]))throw new Error("coordinates must contain numbers");return Yn({type:"Point",coordinates:o},a,s)}function Bi(o,a,s={}){for(const h of o){if(h.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(h[h.length-1].length!==h[0].length)throw new Error("First and last Position are not equivalent.");for(let g=0;g<h[h.length-1].length;g++)if(h[h.length-1][g]!==h[0][g])throw new Error("First and last Position are not equivalent.")}return Yn({type:"Polygon",coordinates:o},a,s)}function yn(o,a={}){const s={type:"FeatureCollection"};return a.id&&(s.id=a.id),a.bbox&&(s.bbox=a.bbox),s.features=o,s}function $r(o,a,s={}){return Yn({type:"MultiPolygon",coordinates:o},a,s)}function Hu(o,a="kilometers"){const s=Jr[a];if(!s)throw new Error(a+" units is invalid");return o*s}function Zu(o,a="kilometers"){const s=Jr[a];if(!s)throw new Error(a+" units is invalid");return o/s}function es(o){return!isNaN(o)&&o!==null&&!Array.isArray(o)}/**
1
+ (function(O,B){typeof exports=="object"&&typeof module<"u"?B(exports,require("leaflet")):typeof define=="function"&&define.amd?define(["exports","leaflet"],B):(O=typeof globalThis<"u"?globalThis:O||self,B(O.leafletMaptilerGeocoder={},O.L))})(this,function(O,B){"use strict";var no=Object.defineProperty;var ji=O=>{throw TypeError(O)};var ro=(O,B,K)=>B in O?no(O,B,{enumerable:!0,configurable:!0,writable:!0,value:K}):O[B]=K;var Ft=(O,B,K)=>ro(O,typeof B!="symbol"?B+"":B,K),Zi=(O,B,K)=>B.has(O)||ji("Cannot "+K);var de=(O,B,K)=>(Zi(O,B,"read from private field"),K?K.call(O):B.get(O)),Gt=(O,B,K)=>B.has(O)?ji("Cannot add the same private member more than once"):B instanceof WeakSet?B.add(O):B.set(O,K),dt=(O,B,K,oe)=>(Zi(O,B,"write to private field"),oe?oe.call(O,K):B.set(O,K),K);var ue,Te;function K(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const oe=K(B);function D(){}function Qi(n,e){for(const t in e)n[t]=e[t];return n}function qt(n){return n()}function jt(){return Object.create(null)}function ye(n){n.forEach(qt)}function Zt(n){return typeof n=="function"}function we(n,e){return n!=n?e==e:n!==e||n&&typeof n=="object"||typeof n=="function"}let $e;function J(n,e){return n===e?!0:($e||($e=document.createElement("a")),$e.href=e,n===$e.href)}function Hi(n){return Object.keys(n).length===0}function Vi(n,e,t,i){if(n){const r=Qt(n,e,t,i);return n[0](r)}}function Qt(n,e,t,i){return n[1]&&i?Qi(t.ctx.slice(),n[1](i(e))):t.ctx}function Yi(n,e,t,i){if(n[2]&&i){const r=n[2](i(t));if(e.dirty===void 0)return r;if(typeof r=="object"){const o=[],l=Math.max(e.dirty.length,r.length);for(let s=0;s<l;s+=1)o[s]=e.dirty[s]|r[s];return o}return e.dirty|r}return e.dirty}function Xi(n,e,t,i,r,o){if(r){const l=Qt(e,t,i,o);n.p(l,r)}}function Ki(n){if(n.ctx.length>32){const e=[],t=n.ctx.length/32;for(let i=0;i<t;i++)e[i]=-1;return e}return-1}function Ht(n){return n??""}function T(n,e){n.appendChild(e)}function z(n,e,t){n.insertBefore(e,t||null)}function U(n){n.parentNode&&n.parentNode.removeChild(n)}function A(n){return document.createElement(n)}function ce(n){return document.createElementNS("http://www.w3.org/2000/svg",n)}function _e(n){return document.createTextNode(n)}function ie(){return _e(" ")}function Ji(){return _e("")}function ee(n,e,t,i){return n.addEventListener(e,t,i),()=>n.removeEventListener(e,t,i)}function $i(n){return function(e){return e.preventDefault(),n.call(this,e)}}function y(n,e,t){t==null?n.removeAttribute(e):n.getAttribute(e)!==t&&n.setAttribute(e,t)}function en(n){return Array.from(n.childNodes)}function Fe(n,e){e=""+e,n.data!==e&&(n.data=e)}function Vt(n,e){n.value=e??""}function se(n,e,t){n.classList.toggle(e,!!t)}function tn(n,e,{bubbles:t=!1,cancelable:i=!1}={}){return new CustomEvent(n,{detail:e,bubbles:t,cancelable:i})}let Ge;function qe(n){Ge=n}function Yt(){if(!Ge)throw new Error("Function called outside component initialization");return Ge}function nn(n){Yt().$$.on_destroy.push(n)}function rn(){const n=Yt();return(e,t,{cancelable:i=!1}={})=>{const r=n.$$.callbacks[e];if(r){const o=tn(e,t,{cancelable:i});return r.slice().forEach(l=>{l.call(n,o)}),!o.defaultPrevented}return!0}}function Xt(n,e){const t=n.$$.callbacks[e.type];t&&t.slice().forEach(i=>i.call(this,e))}const Oe=[],ht=[];let We=[];const Kt=[],on=Promise.resolve();let mt=!1;function sn(){mt||(mt=!0,on.then(Jt))}function gt(n){We.push(n)}const yt=new Set;let Ae=0;function Jt(){if(Ae!==0)return;const n=Ge;do{try{for(;Ae<Oe.length;){const e=Oe[Ae];Ae++,qe(e),ln(e.$$)}}catch(e){throw Oe.length=0,Ae=0,e}for(qe(null),Oe.length=0,Ae=0;ht.length;)ht.pop()();for(let e=0;e<We.length;e+=1){const t=We[e];yt.has(t)||(yt.add(t),t())}We.length=0}while(Oe.length);for(;Kt.length;)Kt.pop()();mt=!1,yt.clear(),qe(n)}function ln(n){if(n.fragment!==null){n.update(),ye(n.before_update);const e=n.dirty;n.dirty=[-1],n.fragment&&n.fragment.p(n.ctx,e),n.after_update.forEach(gt)}}function un(n){const e=[],t=[];We.forEach(i=>n.indexOf(i)===-1?e.push(i):t.push(i)),t.forEach(i=>i()),We=e}const et=new Set;let Pe;function tt(){Pe={r:0,c:[],p:Pe}}function it(){Pe.r||ye(Pe.c),Pe=Pe.p}function Q(n,e){n&&n.i&&(et.delete(n),n.i(e))}function X(n,e,t,i){if(n&&n.o){if(et.has(n))return;et.add(n),Pe.c.push(()=>{et.delete(n),i&&(t&&n.d(1),i())}),n.o(e)}else i&&i()}function $t(n){return(n==null?void 0:n.length)!==void 0?n:Array.from(n)}function an(n,e){X(n,1,1,()=>{e.delete(n.key)})}function cn(n,e,t,i,r,o,l,s,c,u,h,a){let f=n.length,d=o.length,g=f;const p={};for(;g--;)p[n[g].key]=g;const b=[],v=new Map,S=new Map,E=[];for(g=d;g--;){const L=a(r,o,g),w=t(L);let k=l.get(w);k?E.push(()=>k.p(L,e)):(k=u(w,L),k.c()),v.set(w,b[g]=k),w in p&&S.set(w,Math.abs(g-p[w]))}const _=new Set,C=new Set;function x(L){Q(L,1),L.m(s,h),l.set(L.key,L),h=L.first,d--}for(;f&&d;){const L=b[d-1],w=n[f-1],k=L.key,I=w.key;L===w?(h=L.first,f--,d--):v.has(I)?!l.has(k)||_.has(k)?x(L):C.has(I)?f--:S.get(k)>S.get(I)?(C.add(k),x(L)):(_.add(I),f--):(c(w,l),f--)}for(;f--;){const L=n[f];v.has(L.key)||c(L,l)}for(;d;)x(b[d-1]);return ye(E),b}function Ee(n){n&&n.c()}function pe(n,e,t){const{fragment:i,after_update:r}=n.$$;i&&i.m(e,t),gt(()=>{const o=n.$$.on_mount.map(qt).filter(Zt);n.$$.on_destroy?n.$$.on_destroy.push(...o):ye(o),n.$$.on_mount=[]}),r.forEach(gt)}function be(n,e){const t=n.$$;t.fragment!==null&&(un(t.after_update),ye(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function fn(n,e){n.$$.dirty[0]===-1&&(Oe.push(n),sn(),n.$$.dirty.fill(0)),n.$$.dirty[e/31|0]|=1<<e%31}function Le(n,e,t,i,r,o,l=null,s=[-1]){const c=Ge;qe(n);const u=n.$$={fragment:null,ctx:[],props:o,update:D,not_equal:r,bound:jt(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(c?c.$$.context:[])),callbacks:jt(),dirty:s,skip_bound:!1,root:e.target||c.$$.root};l&&l(u.root);let h=!1;if(u.ctx=t?t(n,e.props||{},(a,f,...d)=>{const g=d.length?d[0]:f;return u.ctx&&r(u.ctx[a],u.ctx[a]=g)&&(!u.skip_bound&&u.bound[a]&&u.bound[a](g),h&&fn(n,a)),f}):[],u.update(),h=!0,ye(u.before_update),u.fragment=i?i(u.ctx):!1,e.target){if(e.hydrate){const a=en(e.target);u.fragment&&u.fragment.l(a),a.forEach(U)}else u.fragment&&u.fragment.c();e.intro&&Q(n.$$.fragment),pe(n,e.target,e.anchor),Jt()}qe(c)}class Se{constructor(){Ft(this,"$$");Ft(this,"$$set")}$destroy(){be(this,1),this.$destroy=D}$on(e,t){if(!Zt(t))return D;const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(t),()=>{const r=i.indexOf(t);r!==-1&&i.splice(r,1)}}$set(e){this.$$set&&!Hi(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const dn="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(dn);function hn(n){let e,t;return{c(){e=ce("svg"),t=ce("path"),y(t,"d","M13.12.706a.982.982 0 0 0-1.391 0L6.907 5.517 2.087.696a.982.982 0 1 0-1.391 1.39l4.821 4.821L.696 11.73a.982.982 0 1 0 1.39 1.39l4.821-4.821 4.822 4.821a.982.982 0 1 0 1.39-1.39L8.298 6.908l4.821-4.822a.988.988 0 0 0 0-1.38Z"),y(e,"viewBox","0 0 14 14"),y(e,"width","13"),y(e,"height","13"),y(e,"class","svelte-en2qvf")},m(i,r){z(i,e,r),T(e,t)},p:D,i:D,o:D,d(i){i&&U(e)}}}class ei extends Se{constructor(e){super(),Le(this,e,null,hn,we,{})}}function mn(n){let e,t;return{c(){e=ce("svg"),t=ce("path"),y(t,"d","M15 0C6.705 0 0 6.705 0 15C0 23.295 6.705 30 15 30C23.295 30 30 23.295 30 15C30 6.705 23.295 0 15 0ZM22.5 20.385L20.385 22.5L15 17.115L9.615 22.5L7.5 20.385L12.885 15L7.5 9.615L9.615 7.5L15 12.885L20.385 7.5L22.5 9.615L17.115 15L22.5 20.385Z"),y(e,"viewBox","0 0 30 30"),y(e,"fill","none"),y(e,"xmlns","http://www.w3.org/2000/svg"),y(e,"class","svelte-d2loi5")},m(i,r){z(i,e,r),T(e,t)},p:D,i:D,o:D,d(i){i&&U(e)}}}class ti extends Se{constructor(e){super(),Le(this,e,null,mn,we,{})}}function gn(n){let e,t;return{c(){e=A("img"),J(e.src,t=n[3]+"area.svg")||y(e,"src",t),y(e,"alt",n[6]),y(e,"class","svelte-ltkwvy")},m(i,r){z(i,e,r)},p(i,r){r&8&&!J(e.src,t=i[3]+"area.svg")&&y(e,"src",t),r&64&&y(e,"alt",i[6])},d(i){i&&U(e)}}}function yn(n){let e,t;return{c(){e=A("img"),J(e.src,t=n[3]+"reverse.svg")||y(e,"src",t),y(e,"alt",n[6]),y(e,"class","svelte-ltkwvy")},m(i,r){z(i,e,r)},p(i,r){r&8&&!J(e.src,t=i[3]+"reverse.svg")&&y(e,"src",t),r&64&&y(e,"alt",i[6])},d(i){i&&U(e)}}}function pn(n){let e,t;return{c(){e=A("img"),J(e.src,t=n[3]+"poi.svg")||y(e,"src",t),y(e,"alt",n[6]),y(e,"class","svelte-ltkwvy")},m(i,r){z(i,e,r)},p(i,r){r&8&&!J(e.src,t=i[3]+"poi.svg")&&y(e,"src",t),r&64&&y(e,"alt",i[6])},d(i){i&&U(e)}}}function bn(n){let e,t;return{c(){e=A("img"),J(e.src,t=n[3]+"postal_code.svg")||y(e,"src",t),y(e,"alt",n[6]),y(e,"class","svelte-ltkwvy")},m(i,r){z(i,e,r)},p(i,r){r&8&&!J(e.src,t=i[3]+"postal_code.svg")&&y(e,"src",t),r&64&&y(e,"alt",i[6])},d(i){i&&U(e)}}}function vn(n){let e,t;return{c(){e=A("img"),J(e.src,t=n[3]+"street.svg")||y(e,"src",t),y(e,"alt",n[6]),y(e,"class","svelte-ltkwvy")},m(i,r){z(i,e,r)},p(i,r){r&8&&!J(e.src,t=i[3]+"street.svg")&&y(e,"src",t),r&64&&y(e,"alt",i[6])},d(i){i&&U(e)}}}function wn(n){let e,t;return{c(){e=A("img"),J(e.src,t=n[3]+"road.svg")||y(e,"src",t),y(e,"alt",n[6]),y(e,"class","svelte-ltkwvy")},m(i,r){z(i,e,r)},p(i,r){r&8&&!J(e.src,t=i[3]+"road.svg")&&y(e,"src",t),r&64&&y(e,"alt",i[6])},d(i){i&&U(e)}}}function _n(n){let e,t;return{c(){e=A("img"),J(e.src,t=n[3]+"housenumber.svg")||y(e,"src",t),y(e,"alt",n[6]),y(e,"class","svelte-ltkwvy")},m(i,r){z(i,e,r)},p(i,r){r&8&&!J(e.src,t=i[3]+"housenumber.svg")&&y(e,"src",t),r&64&&y(e,"alt",i[6])},d(i){i&&U(e)}}}function En(n){let e,t,i,r;return{c(){e=A("img"),J(e.src,t=n[5])||y(e,"src",t),y(e,"alt",n[4]),y(e,"class","svelte-ltkwvy")},m(o,l){z(o,e,l),i||(r=ee(e,"error",n[14]),i=!0)},p(o,l){l&32&&!J(e.src,t=o[5])&&y(e,"src",t),l&16&&y(e,"alt",o[4])},d(o){o&&U(e),i=!1,r()}}}function ii(n){let e,t;return{c(){e=A("span"),t=_e(n[6]),y(e,"class","secondary svelte-ltkwvy")},m(i,r){z(i,e,r),T(e,t)},p(i,r){r&64&&Fe(t,i[6])},d(i){i&&U(e)}}}function Ln(n){let e,t,i,r,o,l,s,c,u,h=(n[7]?n[0].place_name:n[0].place_name.replace(/,.*/,""))+"",a,f,d=n[2]==="always"||n[2]&&!n[0].address&&!n[0].id.startsWith("road.")&&!n[0].id.startsWith("address.")&&!n[0].id.startsWith("postal_code.")&&(!n[0].id.startsWith("poi.")||!n[5])&&!n[7],g,p,b=(n[7]?"":n[0].place_name.replace(/[^,]*,?\s*/,""))+"",v,S,E;function _(w,k){return k&1&&(t=null),k&1&&(i=null),k&1&&(r=null),k&1&&(o=null),w[5]?En:w[0].address?_n:(t==null&&(t=!!w[0].id.startsWith("road.")),t?wn:(i==null&&(i=!!w[0].id.startsWith("address.")),i?vn:(r==null&&(r=!!w[0].id.startsWith("postal_code.")),r?bn:(o==null&&(o=!!w[0].id.startsWith("poi.")),o?pn:w[7]?yn:gn))))}let C=_(n,-1),x=C(n),L=d&&ii(n);return{c(){e=A("li"),x.c(),l=ie(),s=A("span"),c=A("span"),u=A("span"),a=_e(h),f=ie(),L&&L.c(),g=ie(),p=A("span"),v=_e(b),y(u,"class","primary svelte-ltkwvy"),y(c,"class","svelte-ltkwvy"),y(p,"class","line2 svelte-ltkwvy"),y(s,"class","texts svelte-ltkwvy"),y(e,"tabindex","0"),y(e,"data-selected",n[1]),y(e,"class","svelte-ltkwvy"),se(e,"selected",n[1])},m(w,k){z(w,e,k),x.m(e,null),T(e,l),T(e,s),T(s,c),T(c,u),T(u,a),T(c,f),L&&L.m(c,null),T(s,g),T(s,p),T(p,v),S||(E=[ee(e,"mouseenter",n[12]),ee(e,"focus",n[13])],S=!0)},p(w,[k]){C===(C=_(w,k))&&x?x.p(w,k):(x.d(1),x=C(w),x&&(x.c(),x.m(e,l))),k&1&&h!==(h=(w[7]?w[0].place_name:w[0].place_name.replace(/,.*/,""))+"")&&Fe(a,h),k&37&&(d=w[2]==="always"||w[2]&&!w[0].address&&!w[0].id.startsWith("road.")&&!w[0].id.startsWith("address.")&&!w[0].id.startsWith("postal_code.")&&(!w[0].id.startsWith("poi.")||!w[5])&&!w[7]),d?L?L.p(w,k):(L=ii(w),L.c(),L.m(c,null)):L&&(L.d(1),L=null),k&1&&b!==(b=(w[7]?"":w[0].place_name.replace(/[^,]*,?\s*/,""))+"")&&Fe(v,b),k&2&&y(e,"data-selected",w[1]),k&2&&se(e,"selected",w[1])},i:D,o:D,d(w){w&&U(e),x.d(),L&&L.d(),S=!1,ye(E)}}}function Sn(n,e,t){var E;let i,r,{feature:o}=e,{selected:l=!1}=e,{showPlaceType:s}=e,{missingIconsCache:c}=e,{iconsBaseUrl:u}=e;const h=(E=o.properties)==null?void 0:E.categories;let a,f,d=0,g=o.place_type[0]==="reverse";function p(){f&&c.add(f),t(10,d++,d)}function b(_){Xt.call(this,n,_)}function v(_){Xt.call(this,n,_)}const S=()=>p();return n.$$set=_=>{"feature"in _&&t(0,o=_.feature),"selected"in _&&t(1,l=_.selected),"showPlaceType"in _&&t(2,s=_.showPlaceType),"missingIconsCache"in _&&t(9,c=_.missingIconsCache),"iconsBaseUrl"in _&&t(3,u=_.iconsBaseUrl)},n.$$.update=()=>{var _,C,x,L;if(n.$$.dirty&3640)do t(11,i--,i),t(4,a=h==null?void 0:h[i]),t(5,f=a?u+a.replace(/ /g,"_")+".svg":void 0);while(i>-1&&(!f||c.has(f)));n.$$.dirty&1&&t(6,r=((C=(_=o.properties)==null?void 0:_.categories)==null?void 0:C.join(", "))??((L=(x=o.properties)==null?void 0:x.place_type_name)==null?void 0:L[0])??o.place_type[0])},t(11,i=(h==null?void 0:h.length)??0),[o,l,s,u,a,f,r,g,p,c,d,i,b,v,S]}class xn extends Se{constructor(e){super(),Le(this,e,Sn,Ln,we,{feature:0,selected:1,showPlaceType:2,missingIconsCache:9,iconsBaseUrl:3})}}function Mn(n){let e;return{c(){e=A("div"),e.innerHTML='<svg viewBox="0 0 18 18" width="24" height="24" class="svelte-7cmwmc"><path fill="#333" d="M4.4 4.4l.8.8c2.1-2.1 5.5-2.1 7.6 0l.8-.8c-2.5-2.5-6.7-2.5-9.2 0z"></path><path opacity=".1" d="M12.8 12.9c-2.1 2.1-5.5 2.1-7.6 0-2.1-2.1-2.1-5.5 0-7.7l-.8-.8c-2.5 2.5-2.5 6.7 0 9.2s6.6 2.5 9.2 0 2.5-6.6 0-9.2l-.8.8c2.2 2.1 2.2 5.6 0 7.7z"></path></svg>',y(e,"class","svelte-7cmwmc")},m(t,i){z(t,e,i)},p:D,i:D,o:D,d(t){t&&U(e)}}}class Cn extends Se{constructor(e){super(),Le(this,e,null,Mn,we,{})}}function kn(n){let e,t,i;return{c(){e=ce("svg"),t=ce("path"),y(t,"stroke-width","4"),y(t,"d","M 5,33.103579 C 5,17.607779 18.457,5 35,5 C 51.543,5 65,17.607779 65,33.103579 C 65,56.388679 40.4668,76.048179 36.6112,79.137779 C 36.3714,79.329879 36.2116,79.457979 36.1427,79.518879 C 35.8203,79.800879 35.4102,79.942779 35,79.942779 C 34.5899,79.942779 34.1797,79.800879 33.8575,79.518879 C 33.7886,79.457979 33.6289,79.330079 33.3893,79.138079 C 29.5346,76.049279 5,56.389379 5,33.103579 Z M 35.0001,49.386379 C 43.1917,49.386379 49.8323,42.646079 49.8323,34.331379 C 49.8323,26.016779 43.1917,19.276479 35.0001,19.276479 C 26.8085,19.276479 20.1679,26.016779 20.1679,34.331379 C 20.1679,42.646079 26.8085,49.386379 35.0001,49.386379 Z"),y(t,"class","svelte-gzo3ar"),y(e,"width",i=n[0]==="list"?20:void 0),y(e,"viewBox","0 0 70 85"),y(e,"fill","none"),y(e,"class","svelte-gzo3ar"),se(e,"in-map",n[0]!=="list"),se(e,"list-icon",n[0]==="list")},m(r,o){z(r,e,o),T(e,t)},p(r,[o]){o&1&&i!==(i=r[0]==="list"?20:void 0)&&y(e,"width",i),o&1&&se(e,"in-map",r[0]!=="list"),o&1&&se(e,"list-icon",r[0]==="list")},i:D,o:D,d(r){r&&U(e)}}}function Nn(n,e,t){let{displayIn:i}=e;return n.$$set=r=>{"displayIn"in r&&t(0,i=r.displayIn)},[i]}class Pn extends Se{constructor(e){super(),Le(this,e,Nn,kn,we,{displayIn:0})}}function Tn(n){let e,t;return{c(){e=ce("svg"),t=ce("path"),y(t,"d","M30.003-26.765C13.46-26.765 0-14.158 0 1.337c0 23.286 24.535 42.952 28.39 46.04.24.192.402.316.471.376.323.282.732.424 1.142.424.41 0 .82-.142 1.142-.424.068-.06.231-.183.471-.376 3.856-3.09 28.39-22.754 28.39-46.04 0-15.495-13.46-28.102-30.003-28.102Zm1.757 12.469c4.38 0 7.858 1.052 10.431 3.158 2.595 2.105 3.89 4.913 3.89 8.422 0 2.34-.53 4.362-1.593 6.063-1.063 1.702-3.086 3.616-6.063 5.742-2.042 1.51-3.337 2.659-3.89 3.446-.532.787-.8 1.82-.8 3.096v1.914h-8.449V15.18c0-2.041.434-3.815 1.306-5.325.872-1.51 2.467-3.118 4.785-4.82 2.233-1.594 3.7-2.89 4.402-3.889a5.582 5.582 0 0 0 1.087-3.35c0-1.382-.51-2.435-1.531-3.158-1.02-.723-2.45-1.087-4.28-1.087-3.19 0-6.826 1.047-10.91 3.131l-3.472-6.986c4.742-2.659 9.77-3.992 15.087-3.992Zm-1.88 37.324c1.765 0 3.124.472 4.08 1.408.98.936 1.47 2.276 1.47 4.02 0 1.68-.49 3.007-1.47 3.985-.977.957-2.336 1.435-4.08 1.435-1.787 0-3.171-.465-4.15-1.4-.978-.958-1.47-2.298-1.47-4.02 0-1.787.48-3.14 1.436-4.054.957-.915 2.355-1.374 4.184-1.374Z"),y(e,"viewBox","0 0 60.006 21.412"),y(e,"width","14"),y(e,"height","20"),y(e,"class","svelte-en2qvf")},m(i,r){z(i,e,r),T(e,t)},p:D,i:D,o:D,d(i){i&&U(e)}}}class Rn extends Se{constructor(e){super(),Le(this,e,null,Tn,we,{})}}function In(n){let e,t,i;return{c(){e=ce("svg"),t=ce("circle"),i=ce("path"),y(t,"cx","4.789"),y(t,"cy","4.787"),y(t,"r","3.85"),y(t,"class","svelte-1aq105l"),y(i,"d","M12.063 12.063 7.635 7.635"),y(i,"class","svelte-1aq105l"),y(e,"xmlns","http://www.w3.org/2000/svg"),y(e,"width","13"),y(e,"height","13"),y(e,"viewBox","0 0 13 13"),y(e,"class","svelte-1aq105l")},m(r,o){z(r,e,o),T(e,t),T(e,i)},p:D,i:D,o:D,d(r){r&&U(e)}}}class On extends Se{constructor(e){super(),Le(this,e,null,In,we,{})}}function Wn(n,e,t){const i=e[1],r=e[0],o=i-r;return n===i&&t?n:((n-r)%o+o)%o+r}function je(n){const e=[...n];return e[2]<e[0]&&(Math.abs((e[0]+e[2]+360)/2)>Math.abs((e[0]-360+e[2])/2)?e[0]-=360:e[2]+=360),e}let Ze;async function An(n,e,t){const i=n==null?void 0:n.getCenterAndZoom();for(const r of e??[])if(!(i&&(r.minZoom!=null&&r.minZoom>i[0]||r.maxZoom!=null&&r.maxZoom<i[0]))){if(r.type==="fixed")return r.coordinates.join(",");e:if(r.type==="client-geolocation"){if(Ze&&r.cachedLocationExpiry&&Ze.time+r.cachedLocationExpiry>Date.now()){if(!Ze.coords)break e;return Ze.coords}let o;try{return o=await new Promise((l,s)=>{t.signal.addEventListener("abort",()=>{s(Error("aborted"))}),navigator.geolocation.getCurrentPosition(c=>{l([c.coords.longitude,c.coords.latitude].map(u=>u.toFixed(6)).join(","))},c=>{s(c)},r)}),o}catch{}finally{r.cachedLocationExpiry&&(Ze={time:Date.now(),coords:o})}if(t.signal.aborted)return}if(r.type==="server-geolocation")return"ip";if(i&&r.type==="map-center")return i[1].toFixed(6)+","+i[2].toFixed(6)}}const Bn=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([6-9][0-9])\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([6-9][0-9])\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*(EAST|WEST|[EW])?$/i,ni=/^([+-]?[0-8]?[0-9])\s+([0-5]?[0-9]\.\d{3,})[\s,]{1,}([+-]?[0-1]?[0-9]?[0-9])\s+([0-5]?[0-9]\.\d{3,})$/,ri=/^(NORTH|SOUTH|[NS])?[\s]*([+-]?[0-8]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(NORTH|SOUTH|[NS])?[\s]*[,/;]?[\s]*(EAST|WEST|[EW])?[\s]*([+-]?[0-1]?[0-9]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(EAST|WEST|[EW])?$/i,oi=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(EAST|WEST|[EW])?$/i,si=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)\s*(EAST|WEST|[EW])?$/i,li=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|’’|´´|["″”\.])?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|´´|’’|["″”\.])?\s*(EAST|WEST|[EW])?$/i;function Dn(n){if(!["DMS","DM","DD"].includes(n))throw new Error("invalid format specified");if(this.decimalCoordinates&&this.decimalCoordinates.trim()){const e=this.decimalCoordinates.split(",").map(d=>Number(d.trim())),t=Number(e[0]),i=Number(e[1]),r=Math.abs(t),o=Math.abs(i),l=t>0?"N":"S",s=i>0?"E":"W";let c;n=="DD"&&(c=`${r}° ${l}, ${o}° ${s}`);const u=Math.floor(r),h=Math.floor(o),a=(r-u)*60,f=(o-h)*60;if(n=="DM"){let d=ui(a,3).toFixed(3).padStart(6,"0"),g=ui(f,3).toFixed(3).padStart(6,"0");d.endsWith(".000")&&g.endsWith(".000")&&(d=d.replace(/\.000$/,""),g=g.replace(/\.000$/,"")),c=`${u}° ${d}' ${l}, ${h}° ${g}' ${s}`}if(n=="DMS"){const d=Math.floor(a),g=Math.floor(f);let p=((a-d)*60).toFixed(1).padStart(4,"0"),b=((f-g)*60).toFixed(1).padStart(4,"0");const v=d.toString().padStart(2,"0"),S=g.toString().padStart(2,"0");p.endsWith(".0")&&b.endsWith(".0")&&(p=p.replace(/\.0$/,""),b=b.replace(/\.0$/,"")),c=`${u}° ${v}' ${p}" ${l}, ${h}° ${S}' ${b}" ${s}`}return c}else throw new Error("no decimal coordinates to convert")}function ui(n,e){const t=Math.pow(10,e);return Math.round((n+Number.EPSILON)*t)/t}function pt(n,e){e||(e=5),n=n.replace(/\s+/g," ").trim();let t=null,i=null,r="",o="",l=null,s=[],c=!1;if(Bn.test(n))throw new Error("invalid coordinate value");if(ni.test(n))if(s=ni.exec(n),c=Qe(s),c)t=Math.abs(s[1])+s[2]/60,Number(s[1])<0&&(t*=-1),i=Math.abs(s[3])+s[4]/60,Number(s[3])<0&&(i*=-1),l="DM";else throw new Error("invalid coordinate format");else if(ri.test(n))if(s=ri.exec(n),c=Qe(s),c){if(t=s[2],i=s[6],t.includes(",")&&(t=t.replace(",",".")),i.includes(",")&&(i=i.replace(",",".")),l="DD",Number(Math.round(t))==Number(t))throw new Error("integer only coordinate provided");if(Number(Math.round(i))==Number(i))throw new Error("integer only coordinate provided");s[1]?(r=s[1],o=s[5]):s[4]&&(r=s[4],o=s[8])}else throw new Error("invalid decimal coordinate format");else if(oi.test(n))if(s=oi.exec(n),c=Qe(s),c)t=Math.abs(parseInt(s[2])),s[4]&&(t+=s[4]/60,l="DM"),s[6]&&(t+=s[6].replace(",",".")/3600,l="DMS"),parseInt(s[2])<0&&(t=-1*t),i=Math.abs(parseInt(s[9])),s[11]&&(i+=s[11]/60),s[13]&&(i+=s[13].replace(",",".")/3600),parseInt(s[9])<0&&(i=-1*i),s[1]?(r=s[1],o=s[8]):s[7]&&(r=s[7],o=s[14]);else throw new Error("invalid DMS coordinates format");else if(si.test(n))if(s=si.exec(n),c=Qe(s),c)t=Math.abs(parseInt(s[2])),s[4]&&(t+=s[4]/60,l="DM"),s[6]&&(t+=s[6]/3600,l="DMS"),parseInt(s[2])<0&&(t=-1*t),i=Math.abs(parseInt(s[10])),s[12]&&(i+=s[12]/60),s[14]&&(i+=s[14]/3600),parseInt(s[10])<0&&(i=-1*i),s[1]?(r=s[1],o=s[9]):s[8]&&(r=s[8],o=s[16]);else throw new Error("invalid DMS coordinates format");else if(li.test(n)){if(s=li.exec(n),c=Qe(s),s.filter(u=>u).length<=5)throw new Error("invalid coordinates format");if(c)t=Math.abs(parseInt(s[2])),s[4]&&(t+=s[4].replace(",",".")/60,l="DM"),s[6]&&(t+=s[6].replace(",",".")/3600,l="DMS"),parseInt(s[2])<0&&(t=-1*t),i=Math.abs(parseInt(s[10])),s[12]&&(i+=s[12].replace(",",".")/60),s[14]&&(i+=s[14].replace(",",".")/3600),parseInt(s[10])<0&&(i=-1*i),s[1]?(r=s[1],o=s[9]):s[8]&&(r=s[8],o=s[16]);else throw new Error("invalid coordinates format")}if(c){if(Math.abs(i)>=180)throw new Error("invalid longitude value");if(Math.abs(t)>=90)throw new Error("invalid latitude value");if(r&&!o||!r&&o)throw new Error("invalid coordinates value");if(r&&r==o)throw new Error("invalid coordinates format");t.toString().includes(",")&&(t=t.replace(",",".")),i.toString().includes(",")&&(i=i.replace(",","."));let u=/S|SOUTH/i;u.test(r)&&t>0&&(t=-1*t),u=/W|WEST/i,u.test(o)&&i>0&&(i=-1*i);const h=s[0].trim();let a,f;const d=/[,/;\u0020]/g,g=h.match(d);if(g==null){const v=Math.floor(n.length/2);a=h.substring(0,v).trim(),f=h.substring(v).trim()}else{let v;g.length%2==1?v=Math.floor(g.length/2):v=g.length/2-1;let S=0;if(v==0)S=h.indexOf(g[0]),a=h.substring(0,S).trim(),f=h.substring(S+1).trim();else{let E=0,_=0;for(;E<=v;)S=h.indexOf(g[E],_),_=S+1,E++;a=h.substring(0,S).trim(),f=h.substring(S+1).trim()}}const p=a.split(".");if(p.length==2&&p[1]==0&&p[1].length!=2)throw new Error("invalid coordinates format");const b=f.split(".");if(b.length==2&&b[1]==0&&b[1].length!=2)throw new Error("invalid coordinates format");if(/^\d+$/.test(a)||/^\d+$/.test(f))throw new Error("degree only coordinate/s provided");return t=Number(Number(t).toFixed(e)),i=Number(Number(i).toFixed(e)),Object.freeze({verbatimCoordinates:h,verbatimLatitude:a,verbatimLongitude:f,decimalLatitude:t,decimalLongitude:i,decimalCoordinates:`${t},${i}`,originalFormat:l,closeEnough:Un,toCoordinateFormat:Dn})}else throw new Error("coordinates pattern match failed")}function Qe(n){if(!isNaN(n[0]))return!1;const e=[...n];if(e.shift(),e.length%2>0)return!1;const t=/^[-+]?\d+([\.,]\d+)?$/,i=/[eastsouthnorthwest]+/i,r=e.length/2;for(let o=0;o<r;o++){const l=e[o],s=e[o+r],c=t.test(l)&&t.test(s),u=i.test(l)&&i.test(s),h=l==s;if(!(l==null&&s==null)){if(l==null||s==null)return!1;if(c||u||h)continue;return!1}}return!0}function ai(n,e){const t=Math.abs(n-e);return Number(t.toFixed(6))<=1e-5}function Un(n){if(!n)throw new Error("coords must be provided");if(n.includes(",")){const e=n.split(",");if(Number(e[0])==NaN||Number(e[1])==NaN)throw new Error("coords are not valid decimals");return ai(this.decimalLatitude,Number(e[0]))&&ai(this.decimalLongitude,e[1])}else throw new Error("coords being tested must be separated by a comma")}const zn=Object.freeze({DMS:"DMS",DM:"DM",DD:"DD"});pt.to=zn;const Fn=[{verbatimCoordinates:"40.123, -74.123",verbatimLatitude:"40.123",verbatimLongitude:"-74.123"},{verbatimCoordinates:"40.123° N 74.123° W",verbatimLatitude:"40.123° N",verbatimLongitude:"74.123° W"},{verbatimCoordinates:"40.123° N 74.123° W",verbatimLatitude:"40.123° N",verbatimLongitude:"74.123° W"},{verbatimCoordinates:'40° 7´ 22.8" N 74° 7´ 22.8" W',verbatimLatitude:'40° 7´ 22.8" N',verbatimLongitude:'74° 7´ 22.8" W'},{verbatimCoordinates:"40° 7.38’ , -74° 7.38’",verbatimLatitude:"40° 7.38’",verbatimLongitude:"-74° 7.38’"},{verbatimCoordinates:"N40°7’22.8’’, W74°7’22.8’’",verbatimLatitude:"N40°7’22.8’’",verbatimLongitude:"W74°7’22.8’’"},{verbatimCoordinates:'40°7’22.8"N, 74°7’22.8"W',verbatimLatitude:'40°7’22.8"N',verbatimLongitude:'74°7’22.8"W'},{verbatimCoordinates:`40°7'22.8"N, 74°7'22.8"W`,verbatimLatitude:`40°7'22.8"N`,verbatimLongitude:`74°7'22.8"W`},{verbatimCoordinates:"40 7 22.8, -74 7 22.8",verbatimLatitude:"40 7 22.8",verbatimLongitude:"-74 7 22.8"},{verbatimCoordinates:"40.123 -74.123",verbatimLatitude:"40.123",verbatimLongitude:"-74.123"},{verbatimCoordinates:"40.123°,-74.123°",verbatimLatitude:"40.123°",verbatimLongitude:"-74.123°"},{verbatimCoordinates:"40.123N74.123W",verbatimLatitude:"40.123N",verbatimLongitude:"74.123W"},{verbatimCoordinates:"4007.38N7407.38W",verbatimLatitude:"4007.38N",verbatimLongitude:"7407.38W"},{verbatimCoordinates:'40°7’22.8"N, 74°7’22.8"W',verbatimLatitude:'40°7’22.8"N',verbatimLongitude:'74°7’22.8"W'},{verbatimCoordinates:"400722.8N740722.8W",verbatimLatitude:"400722.8N",verbatimLongitude:"740722.8W"},{verbatimCoordinates:"N 40 7.38 W 74 7.38",verbatimLatitude:"N 40 7.38",verbatimLongitude:"W 74 7.38"},{verbatimCoordinates:"40:7:22.8N 74:7:22.8W",verbatimLatitude:"40:7:22.8N",verbatimLongitude:"74:7:22.8W"},{verbatimCoordinates:"40:7:23N,74:7:23W",verbatimLatitude:"40:7:23N",verbatimLongitude:"74:7:23W",decimalLatitude:40.1230555555,decimalLongitude:-74.1230555555},{verbatimCoordinates:'40°7’23"N 74°7’23"W',verbatimLatitude:'40°7’23"N',verbatimLongitude:'74°7’23"W',decimalLatitude:40.1230555555,decimalLongitude:-74.12305555555555},{verbatimCoordinates:'40°7’23"S 74°7’23"E',verbatimLatitude:'40°7’23"S',verbatimLongitude:'74°7’23"E',decimalLatitude:-40.1230555555,decimalLongitude:74.12305555555555},{verbatimCoordinates:'40°7’23" -74°7’23"',verbatimLatitude:'40°7’23"',verbatimLongitude:'-74°7’23"',decimalLatitude:40.1230555555,decimalLongitude:-74.123055555},{verbatimCoordinates:'40d 7’ 23" N 74d 7’ 23" W',verbatimLatitude:'40d 7’ 23" N',verbatimLongitude:'74d 7’ 23" W',decimalLatitude:40.1230555555,decimalLongitude:-74.123055555},{verbatimCoordinates:"40.123N 74.123W",verbatimLatitude:"40.123N",verbatimLongitude:"74.123W"},{verbatimCoordinates:"40° 7.38, -74° 7.38",verbatimLatitude:"40° 7.38",verbatimLongitude:"-74° 7.38"},{verbatimCoordinates:"40° 7.38, -74° 7.38",verbatimLatitude:"40° 7.38",verbatimLongitude:"-74° 7.38"},{verbatimCoordinates:"40 7 22.8; -74 7 22.8",verbatimLatitude:"40 7 22.8",verbatimLongitude:"-74 7 22.8"}],Gn={decimalLatitude:40.123,decimalLongitude:-74.123},qn=[{verbatimCoordinates:`50°4'17.698"south, 14°24'2.826"east`,verbatimLatitude:`50°4'17.698"south`,verbatimLongitude:`14°24'2.826"east`,decimalLatitude:-50.07158277777778,decimalLongitude:14.400785},{verbatimCoordinates:"50d4m17.698S 14d24m2.826E",verbatimLatitude:"50d4m17.698S",verbatimLongitude:"14d24m2.826E",decimalLatitude:-50.07158277777778,decimalLongitude:14.400785},{verbatimCoordinates:"40:26:46N,79:56:55W",verbatimLatitude:"40:26:46N",verbatimLongitude:"79:56:55W",decimalLatitude:40.44611111111111,decimalLongitude:-79.9486111111111},{verbatimCoordinates:"40:26:46.302N 79:56:55.903W",verbatimLatitude:"40:26:46.302N",verbatimLongitude:"79:56:55.903W",decimalLatitude:40.446195,decimalLongitude:-79.94886194444445},{verbatimCoordinates:"40°26′47″N 79°58′36″W",verbatimLatitude:"40°26′47″N",verbatimLongitude:"79°58′36″W",decimalLatitude:40.44638888888889,decimalLongitude:-79.97666666666667},{verbatimCoordinates:"40d 26′ 47″ N 79d 58′ 36″ W",verbatimLatitude:"40d 26′ 47″ N",verbatimLongitude:"79d 58′ 36″ W",decimalLatitude:40.44638888888889,decimalLongitude:-79.97666666666667},{verbatimCoordinates:"40.446195N 79.948862W",verbatimLatitude:"40.446195N",verbatimLongitude:"79.948862W",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40,446195° 79,948862°",verbatimLatitude:"40,446195°",verbatimLongitude:"79,948862°",decimalLatitude:40.446195,decimalLongitude:79.948862},{verbatimCoordinates:"40° 26.7717, -79° 56.93172",verbatimLatitude:"40° 26.7717",verbatimLongitude:"-79° 56.93172",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40.446195, -79.948862",verbatimLatitude:"40.446195",verbatimLongitude:"-79.948862",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40.123256; -74.123256",verbatimLatitude:"40.123256",verbatimLongitude:"-74.123256",decimalLatitude:40.123256,decimalLongitude:-74.123256},{verbatimCoordinates:"18°24S 22°45E",verbatimLatitude:"18°24S",verbatimLongitude:"22°45E",decimalLatitude:-18.4,decimalLongitude:22.75}],jn=[{verbatimCoordinates:"10.432342S 10.6345345E",verbatimLatitude:"10.432342S",verbatimLongitude:"10.6345345E",decimalLatitude:-10.432342,decimalLongitude:10.6345345},{verbatimCoordinates:"10.00S 10.00E",verbatimLatitude:"10.00S",verbatimLongitude:"10.00E",decimalLatitude:-10,decimalLongitude:10},{verbatimCoordinates:"00.00S 01.00E",verbatimLatitude:"00.00S",verbatimLongitude:"01.00E",decimalLatitude:0,decimalLongitude:1},{verbatimCoordinates:"18.24S 22.45E",verbatimLatitude:"18.24S",verbatimLongitude:"22.45E",decimalLatitude:-18.4,decimalLongitude:22.75},{verbatimCoordinates:"27deg 15min 45.2sec S 18deg 32min 53.7sec E",verbatimLatitude:"27deg 15min 45.2sec S",verbatimLongitude:"18deg 32min 53.7sec E",decimalLatitude:-27.262555555555554,decimalLongitude:18.54825},{verbatimCoordinates:"-23.3245° S / 28.2344° E",verbatimLatitude:"-23.3245° S",verbatimLongitude:"28.2344° E",decimalLatitude:-23.3245,decimalLongitude:28.2344},{verbatimCoordinates:"40° 26.7717 -79° 56.93172",verbatimLatitude:"40° 26.7717",verbatimLongitude:"-79° 56.93172",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"27.15.45S 18.32.53E",verbatimLatitude:"27.15.45S",verbatimLongitude:"18.32.53E",decimalLatitude:-27.2625,decimalLongitude:18.548055},{verbatimCoordinates:"-27.15.45 18.32.53",verbatimLatitude:"-27.15.45",verbatimLongitude:"18.32.53",decimalLatitude:-27.2625,decimalLongitude:18.548055},{verbatimCoordinates:"27.15.45.2S 18.32.53.4E",verbatimLatitude:"27.15.45.2S",verbatimLongitude:"18.32.53.4E",decimalLatitude:-27.262556,decimalLongitude:18.548167},{verbatimCoordinates:"27.15.45,2S 18.32.53,4E",verbatimLatitude:"27.15.45,2S",verbatimLongitude:"18.32.53,4E",decimalLatitude:-27.262556,decimalLongitude:18.548167},{verbatimCoordinates:"S23.43563 ° E22.45634 °",verbatimLatitude:"S23.43563 °",verbatimLongitude:"E22.45634 °",decimalLatitude:-23.43563,decimalLongitude:22.45634},{verbatimCoordinates:"27,71372° S 23,07771° E",verbatimLatitude:"27,71372° S",verbatimLongitude:"23,07771° E",decimalLatitude:-27.71372,decimalLongitude:23.07771},{verbatimCoordinates:"27.45.34 S 23.23.23 E",verbatimLatitude:"27.45.34 S",verbatimLongitude:"23.23.23 E",decimalLatitude:-27.759444,decimalLongitude:23.38972222},{verbatimCoordinates:"S 27.45.34 E 23.23.23",verbatimLatitude:"S 27.45.34",verbatimLongitude:"E 23.23.23",decimalLatitude:-27.759444,decimalLongitude:23.38972222},{verbatimCoordinates:"53 16.3863,4 52.8171",verbatimLatitude:"53 16.3863",verbatimLongitude:"4 52.8171",decimalLatitude:53.273105,decimalLongitude:4.88029},{verbatimCoordinates:"50 8.2914,-5 2.4447",verbatimLatitude:"50 8.2914",verbatimLongitude:"-5 2.4447",decimalLatitude:50.13819,decimalLongitude:-5.040745},{verbatimCoordinates:"N 48° 30,6410', E 18° 57,4583'",verbatimLatitude:"N 48° 30,6410'",verbatimLongitude:"E 18° 57,4583'",decimalLatitude:48.51068,decimalLongitude:18.95764},{verbatimCoordinates:"1.23456, 18.33453",verbatimLatitude:"1.23456",verbatimLongitude:"18.33453",decimalLatitude:1.23456,decimalLongitude:18.33453}];function Zn(){const n=[];return Fn.forEach(e=>{e.decimalLatitude?n.push(e):n.push({...e,...Gn})}),[...n,...qn,...jn]}const Qn=Zn();pt.formats=Qn.map(n=>n.verbatimCoordinates);const Hn=pt;function ci(n,e,t){const i=n.slice();return i[83]=e[t],i[85]=t,i}function fi(n){let e,t;return e=new Cn({}),{c(){Ee(e.$$.fragment)},m(i,r){pe(e,i,r),t=!0},i(i){t||(Q(e.$$.fragment,i),t=!0)},o(i){X(e.$$.fragment,i),t=!1},d(i){be(e,i)}}}function di(n){let e,t,i,r,o;return t=new Rn({}),{c(){e=A("button"),Ee(t.$$.fragment),y(e,"type","button"),y(e,"title",n[9]),y(e,"class","svelte-qnu791"),se(e,"active",n[0])},m(l,s){z(l,e,s),pe(t,e,null),i=!0,r||(o=ee(e,"click",n[68]),r=!0)},p(l,s){(!i||s[0]&512)&&y(e,"title",l[9]),(!i||s[0]&1)&&se(e,"active",l[0])},i(l){i||(Q(t.$$.fragment,l),i=!0)},o(l){X(t.$$.fragment,l),i=!1},d(l){l&&U(e),be(t),r=!1,o()}}}function Vn(n){let e,t=[],i=new Map,r,o,l,s=$t(n[14]);const c=u=>u[83].id+(u[83].address?","+u[83].address:"");for(let u=0;u<s.length;u+=1){let h=ci(n,s,u),a=c(h);i.set(a,t[u]=hi(a,h))}return{c(){e=A("ul");for(let u=0;u<t.length;u+=1)t[u].c();y(e,"class","svelte-qnu791")},m(u,h){z(u,e,h);for(let a=0;a<t.length;a+=1)t[a]&&t[a].m(e,null);r=!0,o||(l=[ee(e,"mouseleave",n[72]),ee(e,"blur",n[73])],o=!0)},p(u,h){h[0]&17880064&&(s=$t(u[14]),tt(),t=cn(t,h,c,1,u,s,i,e,an,hi,null,ci),it())},i(u){if(!r){for(let h=0;h<s.length;h+=1)Q(t[h]);r=!0}},o(u){for(let h=0;h<t.length;h+=1)X(t[h]);r=!1},d(u){u&&U(e);for(let h=0;h<t.length;h+=1)t[h].d();o=!1,ye(l)}}}function Yn(n){let e,t,i,r,o,l;return t=new ti({}),{c(){e=A("div"),Ee(t.$$.fragment),i=ie(),r=A("div"),o=_e(n[7]),y(r,"class","svelte-qnu791"),y(e,"class","no-results svelte-qnu791")},m(s,c){z(s,e,c),pe(t,e,null),T(e,i),T(e,r),T(r,o),l=!0},p(s,c){(!l||c[0]&128)&&Fe(o,s[7])},i(s){l||(Q(t.$$.fragment,s),l=!0)},o(s){X(t.$$.fragment,s),l=!1},d(s){s&&U(e),be(t)}}}function Xn(n){let e="",t;return{c(){t=_e(e)},m(i,r){z(i,t,r)},p:D,i:D,o:D,d(i){i&&U(t)}}}function Kn(n){let e,t,i,r,o,l,s,c,u,h,a;return t=new ti({}),c=new ei({}),{c(){e=A("div"),Ee(t.$$.fragment),i=ie(),r=A("div"),o=_e(n[6]),l=ie(),s=A("button"),Ee(c.$$.fragment),y(r,"class","svelte-qnu791"),y(s,"class","svelte-qnu791"),y(e,"class","error svelte-qnu791")},m(f,d){z(f,e,d),pe(t,e,null),T(e,i),T(e,r),T(r,o),T(e,l),T(e,s),pe(c,s,null),u=!0,h||(a=ee(s,"click",n[69]),h=!0)},p(f,d){(!u||d[0]&64)&&Fe(o,f[6])},i(f){u||(Q(t.$$.fragment,f),Q(c.$$.fragment,f),u=!0)},o(f){X(t.$$.fragment,f),X(c.$$.fragment,f),u=!1},d(f){f&&U(e),be(t),be(c),h=!1,a()}}}function hi(n,e){let t,i,r;function o(){return e[70](e[85])}function l(){return e[71](e[83])}return i=new xn({props:{feature:e[83],showPlaceType:e[10],selected:e[15]===e[85],missingIconsCache:e[20],iconsBaseUrl:e[12]}}),i.$on("mouseenter",o),i.$on("focus",l),{key:n,first:null,c(){t=Ji(),Ee(i.$$.fragment),this.first=t},m(s,c){z(s,t,c),pe(i,s,c),r=!0},p(s,c){e=s;const u={};c[0]&16384&&(u.feature=e[83]),c[0]&1024&&(u.showPlaceType=e[10]),c[0]&49152&&(u.selected=e[15]===e[85]),c[0]&4096&&(u.iconsBaseUrl=e[12]),i.$set(u)},i(s){r||(Q(i.$$.fragment,s),r=!0)},o(s){X(i.$$.fragment,s),r=!1},d(s){s&&U(t),be(i,s)}}}function Jn(n){let e,t,i,r,o,l,s,c,u,h,a,f,d,g,p,b,v,S,E,_,C,x=!1;o=new On({}),a=new ei({});let L=n[19]&&fi(),w=n[5]===!0&&di(n);const k=n[60].default,I=Vi(k,n,n[59],null),F=[Kn,Xn,Yn,Vn],q=[];function W(M,j){var ne,ae;return M[18]?0:M[16]?((ne=M[14])==null?void 0:ne.length)===0?2:M[16]&&((ae=M[14])!=null&&ae.length)?3:-1:1}return~(b=W(n))&&(v=q[b]=F[b](n)),{c(){e=ie(),t=A("form"),i=A("div"),r=A("button"),Ee(o.$$.fragment),l=ie(),s=A("input"),c=ie(),u=A("div"),h=A("button"),Ee(a.$$.fragment),f=ie(),L&&L.c(),d=ie(),w&&w.c(),g=ie(),I&&I.c(),p=ie(),v&&v.c(),y(r,"class","search-button svelte-qnu791"),y(r,"type","button"),y(s,"placeholder",n[8]),y(s,"aria-label",n[8]),y(s,"class","svelte-qnu791"),y(h,"type","button"),y(h,"title",n[3]),y(h,"class","svelte-qnu791"),y(u,"class","clear-button-container svelte-qnu791"),se(u,"displayable",n[1]!==""),y(i,"class","input-group svelte-qnu791"),y(t,"tabindex","0"),y(t,"class",S=Ht(n[2])+" svelte-qnu791"),se(t,"can-collapse",n[4]&&n[1]==="")},m(M,j){z(M,e,j),z(M,t,j),T(t,i),T(i,r),pe(o,r,null),T(i,l),T(i,s),n[62](s),Vt(s,n[1]),T(i,c),T(i,u),T(u,h),pe(a,h,null),T(u,f),L&&L.m(u,null),T(i,d),w&&w.m(i,null),T(i,g),I&&I.m(i,null),T(t,p),~b&&q[b].m(t,null),E=!0,_||(C=[ee(r,"click",n[61]),ee(s,"input",n[63]),ee(s,"focus",n[64]),ee(s,"blur",n[65]),ee(s,"keydown",n[22]),ee(s,"input",n[66]),ee(h,"click",n[67]),ee(t,"submit",$i(n[21]))],_=!0)},p(M,j){(!E||j[0]&256)&&y(s,"placeholder",M[8]),(!E||j[0]&256)&&y(s,"aria-label",M[8]),j[0]&2&&s.value!==M[1]&&Vt(s,M[1]),(!E||j[0]&8)&&y(h,"title",M[3]),M[19]?L?j[0]&524288&&Q(L,1):(L=fi(),L.c(),Q(L,1),L.m(u,null)):L&&(tt(),X(L,1,1,()=>{L=null}),it()),(!E||j[0]&2)&&se(u,"displayable",M[1]!==""),M[5]===!0?w?(w.p(M,j),j[0]&32&&Q(w,1)):(w=di(M),w.c(),Q(w,1),w.m(i,g)):w&&(tt(),X(w,1,1,()=>{w=null}),it()),I&&I.p&&(!E||j[1]&268435456)&&Xi(I,k,M,M[59],E?Yi(k,M[59],j,null):Ki(M[59]),null);let ne=b;b=W(M),b===ne?~b&&q[b].p(M,j):(v&&(tt(),X(q[ne],1,1,()=>{q[ne]=null}),it()),~b?(v=q[b],v?v.p(M,j):(v=q[b]=F[b](M),v.c()),Q(v,1),v.m(t,null)):v=null),(!E||j[0]&4&&S!==(S=Ht(M[2])+" svelte-qnu791"))&&y(t,"class",S),(!E||j[0]&22)&&se(t,"can-collapse",M[4]&&M[1]==="")},i(M){E||(Q(x),Q(o.$$.fragment,M),Q(a.$$.fragment,M),Q(L),Q(w),Q(I,M),Q(v),E=!0)},o(M){X(x),X(o.$$.fragment,M),X(a.$$.fragment,M),X(L),X(w),X(I,M),X(v),E=!1},d(M){M&&(U(e),U(t)),be(o),n[62](null),be(a),L&&L.d(),w&&w.d(),I&&I.d(M),~b&&q[b].d(),_=!1,ye(C)}}}function $n(n,e,t){let i,{$$slots:r={},$$scope:o}=e;const l={continental_marine:4,country:4,major_landform:8,region:5,subregion:6,county:7,joint_municipality:8,joint_submunicipality:9,municipality:10,municipal_district:11,locality:12,neighbourhood:13,place:14,postal_code:14,road:16,poi:17,address:18,"poi.peak":15,"poi.shop":18,"poi.cafe":18,"poi.restaurant":18,"poi.aerodrome":13};let{class:s=void 0}=e,{apiKey:c}=e,{bbox:u=void 0}=e,{clearButtonTitle:h="clear"}=e,{clearOnBlur:a=!1}=e,{collapsed:f=!1}=e,{country:d=void 0}=e,{debounceSearch:g=200}=e,{enableReverse:p=!1}=e,{errorMessage:b="Something went wrong…"}=e,{filter:v=()=>!0}=e,{flyTo:S=!0}=e,{fuzzyMatch:E=!0}=e,{language:_=void 0}=e,{limit:C=void 0}=e,{mapController:x=void 0}=e,{minLength:L=2}=e,{noResultsMessage:w="Oops! Looks like you're trying to predict something that's not quite right. We can't seem to find what you're looking for. Maybe try double-checking your spelling or try a different search term. Keep on typing - we'll do our best to get you where you need to go!"}=e,{placeholder:k="Search"}=e,{proximity:I=[{type:"server-geolocation"}]}=e,{reverseActive:F=p==="always"}=e,{reverseButtonTitle:q="toggle reverse geocoding"}=e,{searchValue:W=""}=e,{showFullGeometry:M=!0}=e,{showPlaceType:j="ifNeeded"}=e,{showResultsWhileTyping:ne=!0}=e,{selectFirst:ae=!0}=e,{flyToSelected:Pt=!1}=e,{markerOnSelected:st=!0}=e,{types:Re=void 0}=e,{excludeTypes:lt=!1}=e,{zoom:De=l}=e,{maxZoom:ut=void 0}=e,{apiUrl:Tt="https://api.maptiler.com/geocoding"}=e,{fetchParameters:Rt={}}=e,{iconsBaseUrl:zi="https://cdn.maptiler.com/maptiler-geocoding-control/v1.4.1/icons/"}=e,{adjustUrlQuery:It=()=>{}}=e;function Ar(){he.focus()}function Br(){he.blur()}function Fi(m,Z=!0,Y=!1){t(1,W=m),Z?(t(15,G=-1),qi()):(Bt(!Y,Y),setTimeout(()=>{he.focus(),he.select()}))}function Dr(){t(14,R=void 0),t(56,N=void 0),t(15,G=-1)}function Ur(){t(55,H=[]),t(56,N=void 0)}let Ue=!1,R,H,N,Gi="",he,G=-1,me,at=[],Ie,ze,ct,Ot;const zr=new Set,Ne=rn();nn(()=>{x&&(x.setEventHandler(void 0),x.indicateReverse(!1),x.setSelectedMarker(-1),x.setMarkers(void 0,void 0))});function qi(m){if(ze&&(clearTimeout(ze),ze=void 0),G>-1&&R)t(56,N=R[G]),t(1,W=N.place_type[0]==="reverse"?N.place_name:N.place_name.replace(/,.*/,"")),t(18,me=void 0),t(55,H=void 0),t(15,G=-1);else if(W){const Z=m||!Wt(W);At(W,{exact:!0}).then(()=>{t(55,H=R),t(56,N=void 0),Z&&Fr()}).catch(Y=>t(18,me=Y))}}function Wt(m){try{return Hn(m,6)}catch{return!1}}async function At(m,{byId:Z=!1,exact:Y=!1}={}){t(18,me=void 0),Ie==null||Ie.abort();const re=new AbortController;t(19,Ie=re);try{const P=Wt(m),V=new URLSearchParams;if(_!==void 0&&V.set("language",Array.isArray(_)?_.join(","):_??""),Re&&V.set("types",Re.join(",")),lt&&V.set("excludeTypes",String(lt)),u&&V.set("bbox",u.map(ft=>ft.toFixed(6)).join(",")),d&&V.set("country",Array.isArray(d)?d.join(","):d),!Z&&!P){const ft=await An(x,I,re);ft&&V.set("proximity",ft),(Y||!ne)&&V.set("autocomplete","false"),V.set("fuzzyMatch",String(E))}C!==void 0&&(!P||(Re==null?void 0:Re.length)===1)&&V.set("limit",String(C)),V.set("key",c),It(V);const ge=Tt+"/"+encodeURIComponent(P?P.decimalLongitude+","+P.decimalLatitude:m)+".json?"+V.toString();if(ge===Gi){Z?(t(14,R=void 0),t(56,N=at[0])):t(14,R=at);return}Gi=ge;const Ut=await fetch(ge,{signal:re.signal,...Rt});if(!Ut.ok)throw new Error(await Ut.text());const zt=await Ut.json();Ne("response",{url:ge,featureCollection:zt}),Z?(t(14,R=void 0),t(56,N=zt.features[0]),at=[N]):(t(14,R=zt.features.filter(v)),P&&R.unshift({type:"Feature",properties:{},id:"reverse_"+P.decimalLongitude+"_"+P.decimalLatitude,text:P.decimalLatitude+", "+P.decimalLongitude,place_name:P.decimalLatitude+", "+P.decimalLongitude,place_type:["reverse"],center:[P.decimalLongitude,P.decimalLatitude],bbox:[P.decimalLongitude,P.decimalLatitude,P.decimalLongitude,P.decimalLatitude],geometry:{type:"Point",coordinates:[P.decimalLongitude,P.decimalLatitude]}}),at=R,P&&he.focus())}catch(P){if(P&&typeof P=="object"&&"name"in P&&P.name==="AbortError")return;throw P}finally{re===Ie&&t(19,Ie=void 0)}}function Fr(){var re;if(!(H!=null&&H.length)||!S)return;const m=[180,90,-180,-90],Z=!H.some(P=>!P.matching_text);let Y;for(const P of H){const V=Je(P);if(Y=ut??(Y===void 0?V:V===void 0?Y:Math.max(Y,V)),Z||!P.matching_text)for(const ge of[0,1,2,3])m[ge]=Math[ge<2?"min":"max"](m[ge],((re=P.bbox)==null?void 0:re[ge])??P.center[ge%2])}x&&H.length>0&&(N&&m[0]===m[2]&&m[1]===m[3]?x.flyTo(N.center,Je(N)):x.fitBounds(je(m),50,Y))}function Je(m){var Y;if(!m.bbox||m.bbox[0]!==m.bbox[2]&&m.bbox[1]!==m.bbox[3])return;if(typeof De=="number")return m.id.startsWith("poi.")||m.id.startsWith("address.")?ut:De;const Z=m.id.replace(/\..*/,"");return(Array.isArray((Y=m.properties)==null?void 0:Y.categories)?m.properties.categories.reduce((re,P)=>{const V=De[Z+"."+P];return re===void 0?V:V===void 0?re:Math.max(re,V)},void 0):void 0)??De[Z]}function Gr(m){t(0,F=p==="always"),t(14,R=void 0),t(56,N=void 0),t(15,G=-1),Fi(m[1].toFixed(6)+", "+Wn(m[0],[-180,180],!0).toFixed(6),!1,!0)}function qr(m){if(!R)return;let Z=m.key==="ArrowDown"?1:m.key==="ArrowUp"?-1:0;Z&&(G===(ae?0:-1)&&Z===-1&&t(15,G=R.length),t(15,G+=Z),G>=R.length&&t(15,G=-1),G<0&&ae&&t(15,G=0),m.preventDefault())}function Bt(m=!0,Z=!1){if(t(18,me=void 0),ne||Z){if(ze&&clearTimeout(ze),W.length<L)return;const Y=W;ze=window.setTimeout(()=>{At(Y).catch(re=>t(18,me=re))},m?g:0)}else t(14,R=void 0),t(18,me=void 0)}function Dt(m){t(56,N=m),t(1,W=m.place_name),t(15,G=-1)}const jr=()=>he.focus();function Zr(m){ht[m?"unshift":"push"](()=>{he=m,t(17,he)})}function Qr(){W=this.value,t(1,W),t(13,Ue),t(28,a)}const Hr=()=>t(13,Ue=!0),Vr=()=>t(13,Ue=!1),Yr=()=>Bt(),Xr=()=>{t(1,W=""),he.focus()},Kr=()=>t(0,F=!F),Jr=()=>t(18,me=void 0),$r=m=>t(15,G=m),eo=m=>Dt(m),to=()=>{ae||t(15,G=-1)},io=()=>{};return n.$$set=m=>{"class"in m&&t(2,s=m.class),"apiKey"in m&&t(26,c=m.apiKey),"bbox"in m&&t(27,u=m.bbox),"clearButtonTitle"in m&&t(3,h=m.clearButtonTitle),"clearOnBlur"in m&&t(28,a=m.clearOnBlur),"collapsed"in m&&t(4,f=m.collapsed),"country"in m&&t(29,d=m.country),"debounceSearch"in m&&t(30,g=m.debounceSearch),"enableReverse"in m&&t(5,p=m.enableReverse),"errorMessage"in m&&t(6,b=m.errorMessage),"filter"in m&&t(31,v=m.filter),"flyTo"in m&&t(32,S=m.flyTo),"fuzzyMatch"in m&&t(33,E=m.fuzzyMatch),"language"in m&&t(34,_=m.language),"limit"in m&&t(35,C=m.limit),"mapController"in m&&t(36,x=m.mapController),"minLength"in m&&t(37,L=m.minLength),"noResultsMessage"in m&&t(7,w=m.noResultsMessage),"placeholder"in m&&t(8,k=m.placeholder),"proximity"in m&&t(38,I=m.proximity),"reverseActive"in m&&t(0,F=m.reverseActive),"reverseButtonTitle"in m&&t(9,q=m.reverseButtonTitle),"searchValue"in m&&t(1,W=m.searchValue),"showFullGeometry"in m&&t(39,M=m.showFullGeometry),"showPlaceType"in m&&t(10,j=m.showPlaceType),"showResultsWhileTyping"in m&&t(40,ne=m.showResultsWhileTyping),"selectFirst"in m&&t(11,ae=m.selectFirst),"flyToSelected"in m&&t(41,Pt=m.flyToSelected),"markerOnSelected"in m&&t(42,st=m.markerOnSelected),"types"in m&&t(43,Re=m.types),"excludeTypes"in m&&t(44,lt=m.excludeTypes),"zoom"in m&&t(45,De=m.zoom),"maxZoom"in m&&t(46,ut=m.maxZoom),"apiUrl"in m&&t(47,Tt=m.apiUrl),"fetchParameters"in m&&t(48,Rt=m.fetchParameters),"iconsBaseUrl"in m&&t(12,zi=m.iconsBaseUrl),"adjustUrlQuery"in m&&t(49,It=m.adjustUrlQuery),"$$scope"in m&&t(59,o=m.$$scope)},n.$$.update=()=>{if(n.$$.dirty[0]&32&&t(0,F=p==="always"),n.$$.dirty[0]&268443648&&setTimeout(()=>{t(16,ct=Ue),a&&!Ue&&t(1,W="")}),n.$$.dirty[0]&16386|n.$$.dirty[1]&64&&W.length<L&&(t(56,N=void 0),t(14,R=void 0),t(18,me=void 0),t(55,H=R)),n.$$.dirty[1]&33554688&&M&&N&&!N.address&&N.geometry.type==="Point"&&N.place_type[0]!=="reverse"&&At(N.id,{byId:!0}).catch(m=>t(18,me=m)),n.$$.dirty[1]&100663330&&(x&&N&&N.id!==Ot&&S&&(!N.bbox||N.bbox[0]===N.bbox[2]&&N.bbox[1]===N.bbox[3]?x.flyTo(N.center,Je(N)):x.fitBounds(je(N.bbox),50,Je(N)),t(14,R=void 0),t(55,H=void 0),t(15,G=-1)),t(57,Ot=N==null?void 0:N.id)),n.$$.dirty[0]&18432&&ae&&R!=null&&R.length&&t(15,G=0),n.$$.dirty[0]&2050&&(ae||t(15,G=-1)),n.$$.dirty[0]&16384|n.$$.dirty[1]&16777216&&H!==R&&t(55,H=void 0),n.$$.dirty[0]&81921|n.$$.dirty[1]&16777248&&x&&x.setEventHandler(m=>{switch(m.type){case"mapClick":F&&Gr(m.coordinates);break;case"markerClick":{const Z=R==null?void 0:R.find(Y=>Y.id===m.id);Z&&Dt(Z)}break;case"markerMouseEnter":H&&t(15,G=ct?(R==null?void 0:R.findIndex(Z=>Z.id===m.id))??-1:-1);break;case"markerMouseLeave":H&&t(15,G=-1);break}}),n.$$.dirty[0]&49152&&t(58,i=R==null?void 0:R[G]),n.$$.dirty[1]&134218786&&x&&i&&S&&Pt&&x.flyTo(i.center,Je(i)),n.$$.dirty[1]&2080&&(st||x==null||x.setMarkers(void 0,void 0)),n.$$.dirty[1]&150997024&&x&&st&&!H&&(x.setMarkers(i?[i]:void 0,void 0),x.setSelectedMarker(i?0:-1)),n.$$.dirty[1]&50331680&&x&&x.setMarkers(H,N),n.$$.dirty[0]&32768|n.$$.dirty[1]&16777248&&H&&x&&x.setSelectedMarker(G),n.$$.dirty[0]&2|n.$$.dirty[1]&32&&x){const m=Wt(W);x.setReverseMarker(m?[m.decimalLongitude,m.decimalLatitude]:void 0)}n.$$.dirty[1]&134217728&&Ne("select",i),n.$$.dirty[1]&33554432&&Ne("pick",N),n.$$.dirty[0]&81920&&Ne("optionsVisibilityChange",ct&&!!R),n.$$.dirty[0]&16384&&Ne("featuresListed",R),n.$$.dirty[1]&16777216&&Ne("featuresMarked",H),n.$$.dirty[0]&1&&Ne("reverseToggle",F),n.$$.dirty[0]&2&&Ne("queryChange",W),n.$$.dirty[0]&1|n.$$.dirty[1]&32&&x&&x.indicateReverse(F)},[F,W,s,h,f,p,b,w,k,q,j,ae,zi,Ue,R,G,ct,he,me,Ie,zr,qi,qr,Bt,Dt,l,c,u,a,d,g,v,S,E,_,C,x,L,I,M,ne,Pt,st,Re,lt,De,ut,Tt,Rt,It,Ar,Br,Fi,Dr,Ur,H,N,Ot,i,o,r,jr,Zr,Qr,Hr,Vr,Yr,Xr,Kr,Jr,$r,eo,to,io]}let er=class extends Se{constructor(e){super(),Le(this,e,$n,Jn,we,{ZOOM_DEFAULTS:25,class:2,apiKey:26,bbox:27,clearButtonTitle:3,clearOnBlur:28,collapsed:4,country:29,debounceSearch:30,enableReverse:5,errorMessage:6,filter:31,flyTo:32,fuzzyMatch:33,language:34,limit:35,mapController:36,minLength:37,noResultsMessage:7,placeholder:8,proximity:38,reverseActive:0,reverseButtonTitle:9,searchValue:1,showFullGeometry:39,showPlaceType:10,showResultsWhileTyping:40,selectFirst:11,flyToSelected:41,markerOnSelected:42,types:43,excludeTypes:44,zoom:45,maxZoom:46,apiUrl:47,fetchParameters:48,iconsBaseUrl:12,adjustUrlQuery:49,focus:50,blur:51,setQuery:52,clearList:53,clearMap:54},null,[-1,-1,-1])}get ZOOM_DEFAULTS(){return this.$$.ctx[25]}get focus(){return this.$$.ctx[50]}get blur(){return this.$$.ctx[51]}get setQuery(){return this.$$.ctx[52]}get clearList(){return this.$$.ctx[53]}get clearMap(){return this.$$.ctx[54]}};function He(n,e,t={}){const i={type:"Feature"};return(t.id===0||t.id)&&(i.id=t.id),t.bbox&&(i.bbox=t.bbox),i.properties=e||{},i.geometry=n,i}function bt(n,e,t={}){for(const r of n){if(r.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(r[r.length-1].length!==r[0].length)throw new Error("First and last Position are not equivalent.");for(let o=0;o<r[r.length-1].length;o++)if(r[r.length-1][o]!==r[0][o])throw new Error("First and last Position are not equivalent.")}return He({type:"Polygon",coordinates:n},e,t)}function Ve(n,e={}){const t={type:"FeatureCollection"};return e.id&&(t.id=e.id),e.bbox&&(t.bbox=e.bbox),t.features=n,t}function mi(n,e,t={}){return He({type:"MultiPolygon",coordinates:n},e,t)}function gi(n,e,t){if(n!==null)for(var i,r,o,l,s,c,u,h=0,a=0,f,d=n.type,g=d==="FeatureCollection",p=d==="Feature",b=g?n.features.length:1,v=0;v<b;v++){u=g?n.features[v].geometry:p?n.geometry:n,f=u?u.type==="GeometryCollection":!1,s=f?u.geometries.length:1;for(var S=0;S<s;S++){var E=0,_=0;if(l=f?u.geometries[S]:u,l!==null){c=l.coordinates;var C=l.type;switch(h=0,C){case null:break;case"Point":if(e(c,a,v,E,_)===!1)return!1;a++,E++;break;case"LineString":case"MultiPoint":for(i=0;i<c.length;i++){if(e(c[i],a,v,E,_)===!1)return!1;a++,C==="MultiPoint"&&E++}C==="LineString"&&E++;break;case"Polygon":case"MultiLineString":for(i=0;i<c.length;i++){for(r=0;r<c[i].length-h;r++){if(e(c[i][r],a,v,E,_)===!1)return!1;a++}C==="MultiLineString"&&E++,C==="Polygon"&&_++}C==="Polygon"&&E++;break;case"MultiPolygon":for(i=0;i<c.length;i++){for(_=0,r=0;r<c[i].length;r++){for(o=0;o<c[i][r].length-h;o++){if(e(c[i][r][o],a,v,E,_)===!1)return!1;a++}_++}E++}break;case"GeometryCollection":for(i=0;i<l.geometries.length;i++)if(gi(l.geometries[i],e)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function vt(n,e){var t,i,r,o,l,s,c,u,h,a,f=0,d=n.type==="FeatureCollection",g=n.type==="Feature",p=d?n.features.length:1;for(t=0;t<p;t++){for(s=d?n.features[t].geometry:g?n.geometry:n,u=d?n.features[t].properties:g?n.properties:{},h=d?n.features[t].bbox:g?n.bbox:void 0,a=d?n.features[t].id:g?n.id:void 0,c=s?s.type==="GeometryCollection":!1,l=c?s.geometries.length:1,r=0;r<l;r++){if(o=c?s.geometries[r]:s,o===null){if(e(null,f,u,h,a)===!1)return!1;continue}switch(o.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(e(o,f,u,h,a)===!1)return!1;break}case"GeometryCollection":{for(i=0;i<o.geometries.length;i++)if(e(o.geometries[i],f,u,h,a)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}f++}}function tr(n,e){vt(n,function(t,i,r,o,l){var s=t===null?null:t.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return e(He(t,r,{bbox:o,id:l}),i,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],a={type:c,coordinates:h};if(e(He(a,r),i,u)===!1)return!1}})}function ir(n,e={}){if(n.bbox!=null&&e.recompute!==!0)return n.bbox;const t=[1/0,1/0,-1/0,-1/0];return gi(n,i=>{t[0]>i[0]&&(t[0]=i[0]),t[1]>i[1]&&(t[1]=i[1]),t[2]<i[0]&&(t[2]=i[0]),t[3]<i[1]&&(t[3]=i[1])}),t}var wt=ir;function nr(n){if(!n)throw new Error("geojson is required");switch(n.type){case"Feature":return yi(n);case"FeatureCollection":return rr(n);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return _t(n);default:throw new Error("unknown GeoJSON type")}}function yi(n){const e={type:"Feature"};return Object.keys(n).forEach(t=>{switch(t){case"type":case"properties":case"geometry":return;default:e[t]=n[t]}}),e.properties=pi(n.properties),n.geometry==null?e.geometry=null:e.geometry=_t(n.geometry),e}function pi(n){const e={};return n&&Object.keys(n).forEach(t=>{const i=n[t];typeof i=="object"?i===null?e[t]=null:Array.isArray(i)?e[t]=i.map(r=>r):e[t]=pi(i):e[t]=i}),e}function rr(n){const e={type:"FeatureCollection"};return Object.keys(n).forEach(t=>{switch(t){case"type":case"features":return;default:e[t]=n[t]}}),e.features=n.features.map(t=>yi(t)),e}function _t(n){const e={type:n.type};return n.bbox&&(e.bbox=n.bbox),n.type==="GeometryCollection"?(e.geometries=n.geometries.map(t=>_t(t)),e):(e.coordinates=bi(n.coordinates),e)}function bi(n){const e=n;return typeof e[0]!="object"?e.slice():e.map(t=>bi(t))}var or=nr;/**
2
2
  * splaytree v3.1.2
3
3
  * Fast Splay tree for Node and browser
4
4
  *
@@ -18,12 +18,6 @@
18
18
 
19
19
  See the Apache Version 2.0 License for specific language governing permissions
20
20
  and limitations under the License.
21
- ***************************************************************************** */function ju(o,a){var s={label:0,sent:function(){if(g[0]&1)throw g[1];return g[1]},trys:[],ops:[]},l,h,g,v;return v={next:m(0),throw:m(1),return:m(2)},typeof Symbol=="function"&&(v[Symbol.iterator]=function(){return this}),v;function m(_){return function(k){return N([_,k])}}function N(_){if(l)throw new TypeError("Generator is already executing.");for(;s;)try{if(l=1,h&&(g=_[0]&2?h.return:_[0]?h.throw||((g=h.return)&&g.call(h),0):h.next)&&!(g=g.call(h,_[1])).done)return g;switch(h=0,g&&(_=[_[0]&2,g.value]),_[0]){case 0:case 1:g=_;break;case 4:return s.label++,{value:_[1],done:!1};case 5:s.label++,h=_[1],_=[0];continue;case 7:_=s.ops.pop(),s.trys.pop();continue;default:if(g=s.trys,!(g=g.length>0&&g[g.length-1])&&(_[0]===6||_[0]===2)){s=0;continue}if(_[0]===3&&(!g||_[1]>g[0]&&_[1]<g[3])){s.label=_[1];break}if(_[0]===6&&s.label<g[1]){s.label=g[1],g=_;break}if(g&&s.label<g[2]){s.label=g[2],s.ops.push(_);break}g[2]&&s.ops.pop(),s.trys.pop();continue}_=a.call(o,s)}catch(k){_=[6,k],h=0}finally{l=g=0}if(_[0]&5)throw _[1];return{value:_[0]?_[1]:void 0,done:!0}}}var Ht=function(){function o(a,s){this.next=null,this.key=a,this.data=s,this.left=null,this.right=null}return o}();function Qu(o,a){return o>a?1:o<a?-1:0}function Zt(o,a,s){for(var l=new Ht(null,null),h=l,g=l;;){var v=s(o,a.key);if(v<0){if(a.left===null)break;if(s(o,a.left.key)<0){var m=a.left;if(a.left=m.right,m.right=a,a=m,a.left===null)break}g.left=a,g=a,a=a.left}else if(v>0){if(a.right===null)break;if(s(o,a.right.key)>0){var m=a.right;if(a.right=m.left,m.left=a,a=m,a.right===null)break}h.right=a,h=a,a=a.right}else break}return h.right=a.left,g.left=a.right,a.left=l.right,a.right=l.left,a}function Ui(o,a,s,l){var h=new Ht(o,a);if(s===null)return h.left=h.right=null,h;s=Zt(o,s,l);var g=l(o,s.key);return g<0?(h.left=s.left,h.right=s,s.left=null):g>=0&&(h.right=s.right,h.left=s,s.right=null),h}function ts(o,a,s){var l=null,h=null;if(a){a=Zt(o,a,s);var g=s(a.key,o);g===0?(l=a.left,h=a.right):g<0?(h=a.right,a.right=null,l=a):(l=a.left,a.left=null,h=a)}return{left:l,right:h}}function Ku(o,a,s){return a===null?o:(o===null||(a=Zt(o.key,a,s),a.left=o),a)}function Xi(o,a,s,l,h){if(o){l(""+a+(s?"└── ":"├── ")+h(o)+`
22
- `);var g=a+(s?" ":"│ ");o.left&&Xi(o.left,g,!1,l,h),o.right&&Xi(o.right,g,!0,l,h)}}var Wi=function(){function o(a){a===void 0&&(a=Qu),this._root=null,this._size=0,this._comparator=a}return o.prototype.insert=function(a,s){return this._size++,this._root=Ui(a,s,this._root,this._comparator)},o.prototype.add=function(a,s){var l=new Ht(a,s);this._root===null&&(l.left=l.right=null,this._size++,this._root=l);var h=this._comparator,g=Zt(a,this._root,h),v=h(a,g.key);return v===0?this._root=g:(v<0?(l.left=g.left,l.right=g,g.left=null):v>0&&(l.right=g.right,l.left=g,g.right=null),this._size++,this._root=l),this._root},o.prototype.remove=function(a){this._root=this._remove(a,this._root,this._comparator)},o.prototype._remove=function(a,s,l){var h;if(s===null)return null;s=Zt(a,s,l);var g=l(a,s.key);return g===0?(s.left===null?h=s.right:(h=Zt(a,s.left,l),h.right=s.right),this._size--,h):s},o.prototype.pop=function(){var a=this._root;if(a){for(;a.left;)a=a.left;return this._root=Zt(a.key,this._root,this._comparator),this._root=this._remove(a.key,this._root,this._comparator),{key:a.key,data:a.data}}return null},o.prototype.findStatic=function(a){for(var s=this._root,l=this._comparator;s;){var h=l(a,s.key);if(h===0)return s;h<0?s=s.left:s=s.right}return null},o.prototype.find=function(a){return this._root&&(this._root=Zt(a,this._root,this._comparator),this._comparator(a,this._root.key)!==0)?null:this._root},o.prototype.contains=function(a){for(var s=this._root,l=this._comparator;s;){var h=l(a,s.key);if(h===0)return!0;h<0?s=s.left:s=s.right}return!1},o.prototype.forEach=function(a,s){for(var l=this._root,h=[],g=!1;!g;)l!==null?(h.push(l),l=l.left):h.length!==0?(l=h.pop(),a.call(s,l),l=l.right):g=!0;return this},o.prototype.range=function(a,s,l,h){for(var g=[],v=this._comparator,m=this._root,N;g.length!==0||m;)if(m)g.push(m),m=m.left;else{if(m=g.pop(),N=v(m.key,s),N>0)break;if(v(m.key,a)>=0&&l.call(h,m))return this;m=m.right}return this},o.prototype.keys=function(){var a=[];return this.forEach(function(s){var l=s.key;return a.push(l)}),a},o.prototype.values=function(){var a=[];return this.forEach(function(s){var l=s.data;return a.push(l)}),a},o.prototype.min=function(){return this._root?this.minNode(this._root).key:null},o.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},o.prototype.minNode=function(a){if(a===void 0&&(a=this._root),a)for(;a.left;)a=a.left;return a},o.prototype.maxNode=function(a){if(a===void 0&&(a=this._root),a)for(;a.right;)a=a.right;return a},o.prototype.at=function(a){for(var s=this._root,l=!1,h=0,g=[];!l;)if(s)g.push(s),s=s.left;else if(g.length>0){if(s=g.pop(),h===a)return s;h++,s=s.right}else l=!0;return null},o.prototype.next=function(a){var s=this._root,l=null;if(a.right){for(l=a.right;l.left;)l=l.left;return l}for(var h=this._comparator;s;){var g=h(a.key,s.key);if(g===0)break;g<0?(l=s,s=s.left):s=s.right}return l},o.prototype.prev=function(a){var s=this._root,l=null;if(a.left!==null){for(l=a.left;l.right;)l=l.right;return l}for(var h=this._comparator;s;){var g=h(a.key,s.key);if(g===0)break;g<0?s=s.left:(l=s,s=s.right)}return l},o.prototype.clear=function(){return this._root=null,this._size=0,this},o.prototype.toList=function(){return $u(this._root)},o.prototype.load=function(a,s,l){s===void 0&&(s=[]),l===void 0&&(l=!1);var h=a.length,g=this._comparator;if(l&&Zi(a,s,0,h-1,g),this._root===null)this._root=Vi(a,s,0,h),this._size=h;else{var v=eo(this.toList(),Ju(a,s),g);h=this._size+h,this._root=Hi({head:v},0,h)}return this},o.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(o.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),o.prototype.toString=function(a){a===void 0&&(a=function(l){return String(l.key)});var s=[];return Xi(this._root,"",!0,function(l){return s.push(l)},a),s.join("")},o.prototype.update=function(a,s,l){var h=this._comparator,g=ts(a,this._root,h),v=g.left,m=g.right;h(a,s)<0?m=Ui(s,l,m,h):v=Ui(s,l,v,h),this._root=Ku(v,m,h)},o.prototype.split=function(a){return ts(a,this._root,this._comparator)},o.prototype[Symbol.iterator]=function(){var a,s,l;return ju(this,function(h){switch(h.label){case 0:a=this._root,s=[],l=!1,h.label=1;case 1:return l?[3,6]:a===null?[3,2]:(s.push(a),a=a.left,[3,5]);case 2:return s.length===0?[3,4]:(a=s.pop(),[4,a]);case 3:return h.sent(),a=a.right,[3,5];case 4:l=!0,h.label=5;case 5:return[3,1];case 6:return[2]}})},o}();function Vi(o,a,s,l){var h=l-s;if(h>0){var g=s+Math.floor(h/2),v=o[g],m=a[g],N=new Ht(v,m);return N.left=Vi(o,a,s,g),N.right=Vi(o,a,g+1,l),N}return null}function Ju(o,a){for(var s=new Ht(null,null),l=s,h=0;h<o.length;h++)l=l.next=new Ht(o[h],a[h]);return l.next=null,s.next}function $u(o){for(var a=o,s=[],l=!1,h=new Ht(null,null),g=h;!l;)a?(s.push(a),a=a.left):s.length>0?(a=g=g.next=s.pop(),a=a.right):l=!0;return g.next=null,h.next}function Hi(o,a,s){var l=s-a;if(l>0){var h=a+Math.floor(l/2),g=Hi(o,a,h),v=o.head;return v.left=g,o.head=o.head.next,v.right=Hi(o,h+1,s),v}return null}function eo(o,a,s){for(var l=new Ht(null,null),h=l,g=o,v=a;g!==null&&v!==null;)s(g.key,v.key)<0?(h.next=g,g=g.next):(h.next=v,v=v.next),h=h.next;return g!==null?h.next=g:v!==null&&(h.next=v),l.next}function Zi(o,a,s,l,h){if(!(s>=l)){for(var g=o[s+l>>1],v=s-1,m=l+1;;){do v++;while(h(o[v],g)<0);do m--;while(h(o[m],g)>0);if(v>=m)break;var N=o[v];o[v]=o[m],o[m]=N,N=a[v],a[v]=a[m],a[m]=N}Zi(o,a,s,m,h),Zi(o,a,m+1,l,h)}}const Ft=11102230246251565e-32,Ve=134217729,to=(3+8*Ft)*Ft;function ji(o,a,s,l,h){let g,v,m,N,_=a[0],k=l[0],y=0,x=0;k>_==k>-_?(g=_,_=a[++y]):(g=k,k=l[++x]);let E=0;if(y<o&&x<s)for(k>_==k>-_?(v=_+g,m=g-(v-_),_=a[++y]):(v=k+g,m=g-(v-k),k=l[++x]),g=v,m!==0&&(h[E++]=m);y<o&&x<s;)k>_==k>-_?(v=g+_,N=v-g,m=g-(v-N)+(_-N),_=a[++y]):(v=g+k,N=v-g,m=g-(v-N)+(k-N),k=l[++x]),g=v,m!==0&&(h[E++]=m);for(;y<o;)v=g+_,N=v-g,m=g-(v-N)+(_-N),_=a[++y],g=v,m!==0&&(h[E++]=m);for(;x<s;)v=g+k,N=v-g,m=g-(v-N)+(k-N),k=l[++x],g=v,m!==0&&(h[E++]=m);return(g!==0||E===0)&&(h[E++]=g),E}function no(o,a){let s=a[0];for(let l=1;l<o;l++)s+=a[l];return s}function Bn(o){return new Float64Array(o)}const io=(3+16*Ft)*Ft,ro=(2+12*Ft)*Ft,so=(9+64*Ft)*Ft*Ft,pn=Bn(4),ns=Bn(8),is=Bn(12),rs=Bn(16),je=Bn(4);function ao(o,a,s,l,h,g,v){let m,N,_,k,y,x,E,I,R,T,M,F,C,q,O,B,z,X;const G=o-h,Z=s-h,ee=a-g,j=l-g;q=G*j,x=Ve*G,E=x-(x-G),I=G-E,x=Ve*j,R=x-(x-j),T=j-R,O=I*T-(q-E*R-I*R-E*T),B=ee*Z,x=Ve*ee,E=x-(x-ee),I=ee-E,x=Ve*Z,R=x-(x-Z),T=Z-R,z=I*T-(B-E*R-I*R-E*T),M=O-z,y=O-M,pn[0]=O-(M+y)+(y-z),F=q+M,y=F-q,C=q-(F-y)+(M-y),M=C-B,y=C-M,pn[1]=C-(M+y)+(y-B),X=F+M,y=X-F,pn[2]=F-(X-y)+(M-y),pn[3]=X;let ce=no(4,pn),D=ro*v;if(ce>=D||-ce>=D||(y=o-G,m=o-(G+y)+(y-h),y=s-Z,_=s-(Z+y)+(y-h),y=a-ee,N=a-(ee+y)+(y-g),y=l-j,k=l-(j+y)+(y-g),m===0&&N===0&&_===0&&k===0)||(D=so*v+to*Math.abs(ce),ce+=G*k+j*m-(ee*_+Z*N),ce>=D||-ce>=D))return ce;q=m*j,x=Ve*m,E=x-(x-m),I=m-E,x=Ve*j,R=x-(x-j),T=j-R,O=I*T-(q-E*R-I*R-E*T),B=N*Z,x=Ve*N,E=x-(x-N),I=N-E,x=Ve*Z,R=x-(x-Z),T=Z-R,z=I*T-(B-E*R-I*R-E*T),M=O-z,y=O-M,je[0]=O-(M+y)+(y-z),F=q+M,y=F-q,C=q-(F-y)+(M-y),M=C-B,y=C-M,je[1]=C-(M+y)+(y-B),X=F+M,y=X-F,je[2]=F-(X-y)+(M-y),je[3]=X;const K=ji(4,pn,4,je,ns);q=G*k,x=Ve*G,E=x-(x-G),I=G-E,x=Ve*k,R=x-(x-k),T=k-R,O=I*T-(q-E*R-I*R-E*T),B=ee*_,x=Ve*ee,E=x-(x-ee),I=ee-E,x=Ve*_,R=x-(x-_),T=_-R,z=I*T-(B-E*R-I*R-E*T),M=O-z,y=O-M,je[0]=O-(M+y)+(y-z),F=q+M,y=F-q,C=q-(F-y)+(M-y),M=C-B,y=C-M,je[1]=C-(M+y)+(y-B),X=F+M,y=X-F,je[2]=F-(X-y)+(M-y),je[3]=X;const se=ji(K,ns,4,je,is);q=m*k,x=Ve*m,E=x-(x-m),I=m-E,x=Ve*k,R=x-(x-k),T=k-R,O=I*T-(q-E*R-I*R-E*T),B=N*_,x=Ve*N,E=x-(x-N),I=N-E,x=Ve*_,R=x-(x-_),T=_-R,z=I*T-(B-E*R-I*R-E*T),M=O-z,y=O-M,je[0]=O-(M+y)+(y-z),F=q+M,y=F-q,C=q-(F-y)+(M-y),M=C-B,y=C-M,je[1]=C-(M+y)+(y-B),X=F+M,y=X-F,je[2]=F-(X-y)+(M-y),je[3]=X;const me=ji(se,is,4,je,rs);return rs[me-1]}function uo(o,a,s,l,h,g){const v=(a-g)*(s-h),m=(o-h)*(l-g),N=v-m,_=Math.abs(v+m);return Math.abs(N)>=io*_?N:-ao(o,a,s,l,h,g,_)}const Un=(o,a)=>o.ll.x<=a.x&&a.x<=o.ur.x&&o.ll.y<=a.y&&a.y<=o.ur.y,Qi=(o,a)=>{if(a.ur.x<o.ll.x||o.ur.x<a.ll.x||a.ur.y<o.ll.y||o.ur.y<a.ll.y)return null;const s=o.ll.x<a.ll.x?a.ll.x:o.ll.x,l=o.ur.x<a.ur.x?o.ur.x:a.ur.x,h=o.ll.y<a.ll.y?a.ll.y:o.ll.y,g=o.ur.y<a.ur.y?o.ur.y:a.ur.y;return{ll:{x:s,y:h},ur:{x:l,y:g}}};let jt=Number.EPSILON;jt===void 0&&(jt=Math.pow(2,-52));const oo=jt*jt,ss=(o,a)=>{if(-jt<o&&o<jt&&-jt<a&&a<jt)return 0;const s=o-a;return s*s<oo*o*a?0:o<a?-1:1};class lo{constructor(){this.reset()}reset(){this.xRounder=new as,this.yRounder=new as}round(a,s){return{x:this.xRounder.round(a),y:this.yRounder.round(s)}}}class as{constructor(){this.tree=new Wi,this.round(0)}round(a){const s=this.tree.add(a),l=this.tree.prev(s);if(l!==null&&ss(s.key,l.key)===0)return this.tree.remove(a),l.key;const h=this.tree.next(s);return h!==null&&ss(s.key,h.key)===0?(this.tree.remove(a),h.key):a}}const Xn=new lo,hi=(o,a)=>o.x*a.y-o.y*a.x,us=(o,a)=>o.x*a.x+o.y*a.y,os=(o,a,s)=>{const l=uo(o.x,o.y,a.x,a.y,s.x,s.y);return l>0?-1:l<0?1:0},ci=o=>Math.sqrt(us(o,o)),ho=(o,a,s)=>{const l={x:a.x-o.x,y:a.y-o.y},h={x:s.x-o.x,y:s.y-o.y};return hi(h,l)/ci(h)/ci(l)},co=(o,a,s)=>{const l={x:a.x-o.x,y:a.y-o.y},h={x:s.x-o.x,y:s.y-o.y};return us(h,l)/ci(h)/ci(l)},ls=(o,a,s)=>a.y===0?null:{x:o.x+a.x/a.y*(s-o.y),y:s},hs=(o,a,s)=>a.x===0?null:{x:s,y:o.y+a.y/a.x*(s-o.x)},fo=(o,a,s,l)=>{if(a.x===0)return hs(s,l,o.x);if(l.x===0)return hs(o,a,s.x);if(a.y===0)return ls(s,l,o.y);if(l.y===0)return ls(o,a,s.y);const h=hi(a,l);if(h==0)return null;const g={x:s.x-o.x,y:s.y-o.y},v=hi(g,a)/h,m=hi(g,l)/h,N=o.x+m*a.x,_=s.x+v*l.x,k=o.y+m*a.y,y=s.y+v*l.y,x=(N+_)/2,E=(k+y)/2;return{x,y:E}};class ft{static compare(a,s){const l=ft.comparePoints(a.point,s.point);return l!==0?l:(a.point!==s.point&&a.link(s),a.isLeft!==s.isLeft?a.isLeft?1:-1:Qt.compare(a.segment,s.segment))}static comparePoints(a,s){return a.x<s.x?-1:a.x>s.x?1:a.y<s.y?-1:a.y>s.y?1:0}constructor(a,s){a.events===void 0?a.events=[this]:a.events.push(this),this.point=a,this.isLeft=s}link(a){if(a.point===this.point)throw new Error("Tried to link already linked events");const s=a.point.events;for(let l=0,h=s.length;l<h;l++){const g=s[l];this.point.events.push(g),g.point=this.point}this.checkForConsuming()}checkForConsuming(){const a=this.point.events.length;for(let s=0;s<a;s++){const l=this.point.events[s];if(l.segment.consumedBy===void 0)for(let h=s+1;h<a;h++){const g=this.point.events[h];g.consumedBy===void 0&&l.otherSE.point.events===g.otherSE.point.events&&l.segment.consume(g.segment)}}}getAvailableLinkedEvents(){const a=[];for(let s=0,l=this.point.events.length;s<l;s++){const h=this.point.events[s];h!==this&&!h.segment.ringOut&&h.segment.isInResult()&&a.push(h)}return a}getLeftmostComparator(a){const s=new Map,l=h=>{const g=h.otherSE;s.set(h,{sine:ho(this.point,a.point,g.point),cosine:co(this.point,a.point,g.point)})};return(h,g)=>{s.has(h)||l(h),s.has(g)||l(g);const{sine:v,cosine:m}=s.get(h),{sine:N,cosine:_}=s.get(g);return v>=0&&N>=0?m<_?1:m>_?-1:0:v<0&&N<0?m<_?-1:m>_?1:0:N<v?-1:N>v?1:0}}}let go=0;class Qt{static compare(a,s){const l=a.leftSE.point.x,h=s.leftSE.point.x,g=a.rightSE.point.x,v=s.rightSE.point.x;if(v<l)return 1;if(g<h)return-1;const m=a.leftSE.point.y,N=s.leftSE.point.y,_=a.rightSE.point.y,k=s.rightSE.point.y;if(l<h){if(N<m&&N<_)return 1;if(N>m&&N>_)return-1;const y=a.comparePoint(s.leftSE.point);if(y<0)return 1;if(y>0)return-1;const x=s.comparePoint(a.rightSE.point);return x!==0?x:-1}if(l>h){if(m<N&&m<k)return-1;if(m>N&&m>k)return 1;const y=s.comparePoint(a.leftSE.point);if(y!==0)return y;const x=a.comparePoint(s.rightSE.point);return x<0?1:x>0?-1:1}if(m<N)return-1;if(m>N)return 1;if(g<v){const y=s.comparePoint(a.rightSE.point);if(y!==0)return y}if(g>v){const y=a.comparePoint(s.rightSE.point);if(y<0)return 1;if(y>0)return-1}if(g!==v){const y=_-m,x=g-l,E=k-N,I=v-h;if(y>x&&E<I)return 1;if(y<x&&E>I)return-1}return g>v?1:g<v||_<k?-1:_>k?1:a.id<s.id?-1:a.id>s.id?1:0}constructor(a,s,l,h){this.id=++go,this.leftSE=a,a.segment=this,a.otherSE=s,this.rightSE=s,s.segment=this,s.otherSE=a,this.rings=l,this.windings=h}static fromRing(a,s,l){let h,g,v;const m=ft.comparePoints(a,s);if(m<0)h=a,g=s,v=1;else if(m>0)h=s,g=a,v=-1;else throw new Error(`Tried to create degenerate segment at [${a.x}, ${a.y}]`);const N=new ft(h,!0),_=new ft(g,!1);return new Qt(N,_,[l],[v])}replaceRightSE(a){this.rightSE=a,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const a=this.leftSE.point.y,s=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:a<s?a:s},ur:{x:this.rightSE.point.x,y:a>s?a:s}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(a){return a.x===this.leftSE.point.x&&a.y===this.leftSE.point.y||a.x===this.rightSE.point.x&&a.y===this.rightSE.point.y}comparePoint(a){if(this.isAnEndpoint(a))return 0;const s=this.leftSE.point,l=this.rightSE.point,h=this.vector();if(s.x===l.x)return a.x===s.x?0:a.x<s.x?1:-1;const g=(a.y-s.y)/h.y,v=s.x+g*h.x;if(a.x===v)return 0;const m=(a.x-s.x)/h.x,N=s.y+m*h.y;return a.y===N?0:a.y<N?-1:1}getIntersection(a){const s=this.bbox(),l=a.bbox(),h=Qi(s,l);if(h===null)return null;const g=this.leftSE.point,v=this.rightSE.point,m=a.leftSE.point,N=a.rightSE.point,_=Un(s,m)&&this.comparePoint(m)===0,k=Un(l,g)&&a.comparePoint(g)===0,y=Un(s,N)&&this.comparePoint(N)===0,x=Un(l,v)&&a.comparePoint(v)===0;if(k&&_)return x&&!y?v:!x&&y?N:null;if(k)return y&&g.x===N.x&&g.y===N.y?null:g;if(_)return x&&v.x===m.x&&v.y===m.y?null:m;if(x&&y)return null;if(x)return v;if(y)return N;const E=fo(g,this.vector(),m,a.vector());return E===null||!Un(h,E)?null:Xn.round(E.x,E.y)}split(a){const s=[],l=a.events!==void 0,h=new ft(a,!0),g=new ft(a,!1),v=this.rightSE;this.replaceRightSE(g),s.push(g),s.push(h);const m=new Qt(h,v,this.rings.slice(),this.windings.slice());return ft.comparePoints(m.leftSE.point,m.rightSE.point)>0&&m.swapEvents(),ft.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),l&&(h.checkForConsuming(),g.checkForConsuming()),s}swapEvents(){const a=this.rightSE;this.rightSE=this.leftSE,this.leftSE=a,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let s=0,l=this.windings.length;s<l;s++)this.windings[s]*=-1}consume(a){let s=this,l=a;for(;s.consumedBy;)s=s.consumedBy;for(;l.consumedBy;)l=l.consumedBy;const h=Qt.compare(s,l);if(h!==0){if(h>0){const g=s;s=l,l=g}if(s.prev===l){const g=s;s=l,l=g}for(let g=0,v=l.rings.length;g<v;g++){const m=l.rings[g],N=l.windings[g],_=s.rings.indexOf(m);_===-1?(s.rings.push(m),s.windings.push(N)):s.windings[_]+=N}l.rings=null,l.windings=null,l.consumedBy=s,l.leftSE.consumedBy=s.leftSE,l.rightSE.consumedBy=s.rightSE}}prevInResult(){return this._prevInResult!==void 0?this._prevInResult:(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null,this._prevInResult)}beforeState(){if(this._beforeState!==void 0)return this._beforeState;if(!this.prev)this._beforeState={rings:[],windings:[],multiPolys:[]};else{const a=this.prev.consumedBy||this.prev;this._beforeState=a.afterState()}return this._beforeState}afterState(){if(this._afterState!==void 0)return this._afterState;const a=this.beforeState();this._afterState={rings:a.rings.slice(0),windings:a.windings.slice(0),multiPolys:[]};const s=this._afterState.rings,l=this._afterState.windings,h=this._afterState.multiPolys;for(let m=0,N=this.rings.length;m<N;m++){const _=this.rings[m],k=this.windings[m],y=s.indexOf(_);y===-1?(s.push(_),l.push(k)):l[y]+=k}const g=[],v=[];for(let m=0,N=s.length;m<N;m++){if(l[m]===0)continue;const _=s[m],k=_.poly;if(v.indexOf(k)===-1)if(_.isExterior)g.push(k);else{v.indexOf(k)===-1&&v.push(k);const y=g.indexOf(_.poly);y!==-1&&g.splice(y,1)}}for(let m=0,N=g.length;m<N;m++){const _=g[m].multiPoly;h.indexOf(_)===-1&&h.push(_)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(this._isInResult!==void 0)return this._isInResult;const a=this.beforeState().multiPolys,s=this.afterState().multiPolys;switch(Nt.type){case"union":{const l=a.length===0,h=s.length===0;this._isInResult=l!==h;break}case"intersection":{let l,h;a.length<s.length?(l=a.length,h=s.length):(l=s.length,h=a.length),this._isInResult=h===Nt.numMultiPolys&&l<h;break}case"xor":{const l=Math.abs(a.length-s.length);this._isInResult=l%2===1;break}case"difference":{const l=h=>h.length===1&&h[0].isSubject;this._isInResult=l(a)!==l(s);break}default:throw new Error(`Unrecognized operation type found ${Nt.type}`)}return this._isInResult}}class cs{constructor(a,s,l){if(!Array.isArray(a)||a.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=s,this.isExterior=l,this.segments=[],typeof a[0][0]!="number"||typeof a[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const h=Xn.round(a[0][0],a[0][1]);this.bbox={ll:{x:h.x,y:h.y},ur:{x:h.x,y:h.y}};let g=h;for(let v=1,m=a.length;v<m;v++){if(typeof a[v][0]!="number"||typeof a[v][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");let N=Xn.round(a[v][0],a[v][1]);N.x===g.x&&N.y===g.y||(this.segments.push(Qt.fromRing(g,N,this)),N.x<this.bbox.ll.x&&(this.bbox.ll.x=N.x),N.y<this.bbox.ll.y&&(this.bbox.ll.y=N.y),N.x>this.bbox.ur.x&&(this.bbox.ur.x=N.x),N.y>this.bbox.ur.y&&(this.bbox.ur.y=N.y),g=N)}(h.x!==g.x||h.y!==g.y)&&this.segments.push(Qt.fromRing(g,h,this))}getSweepEvents(){const a=[];for(let s=0,l=this.segments.length;s<l;s++){const h=this.segments[s];a.push(h.leftSE),a.push(h.rightSE)}return a}}class mo{constructor(a,s){if(!Array.isArray(a))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new cs(a[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(let l=1,h=a.length;l<h;l++){const g=new cs(a[l],this,!1);g.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=g.bbox.ll.x),g.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=g.bbox.ll.y),g.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=g.bbox.ur.x),g.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=g.bbox.ur.y),this.interiorRings.push(g)}this.multiPoly=s}getSweepEvents(){const a=this.exteriorRing.getSweepEvents();for(let s=0,l=this.interiorRings.length;s<l;s++){const h=this.interiorRings[s].getSweepEvents();for(let g=0,v=h.length;g<v;g++)a.push(h[g])}return a}}class fs{constructor(a,s){if(!Array.isArray(a))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{typeof a[0][0][0]=="number"&&(a=[a])}catch{}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(let l=0,h=a.length;l<h;l++){const g=new mo(a[l],this);g.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=g.bbox.ll.x),g.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=g.bbox.ll.y),g.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=g.bbox.ur.x),g.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=g.bbox.ur.y),this.polys.push(g)}this.isSubject=s}getSweepEvents(){const a=[];for(let s=0,l=this.polys.length;s<l;s++){const h=this.polys[s].getSweepEvents();for(let g=0,v=h.length;g<v;g++)a.push(h[g])}return a}}class fi{static factory(a){const s=[];for(let l=0,h=a.length;l<h;l++){const g=a[l];if(!g.isInResult()||g.ringOut)continue;let v=null,m=g.leftSE,N=g.rightSE;const _=[m],k=m.point,y=[];for(;v=m,m=N,_.push(m),m.point!==k;)for(;;){const x=m.getAvailableLinkedEvents();if(x.length===0){const R=_[0].point,T=_[_.length-1].point;throw new Error(`Unable to complete output ring starting at [${R.x}, ${R.y}]. Last matching segment found ends at [${T.x}, ${T.y}].`)}if(x.length===1){N=x[0].otherSE;break}let E=null;for(let R=0,T=y.length;R<T;R++)if(y[R].point===m.point){E=R;break}if(E!==null){const R=y.splice(E)[0],T=_.splice(R.index);T.unshift(T[0].otherSE),s.push(new fi(T.reverse()));continue}y.push({index:_.length,point:m.point});const I=m.getLeftmostComparator(v);N=x.sort(I)[0].otherSE;break}s.push(new fi(_))}return s}constructor(a){this.events=a;for(let s=0,l=a.length;s<l;s++)a[s].segment.ringOut=this;this.poly=null}getGeom(){let a=this.events[0].point;const s=[a];for(let _=1,k=this.events.length-1;_<k;_++){const y=this.events[_].point,x=this.events[_+1].point;os(y,a,x)!==0&&(s.push(y),a=y)}if(s.length===1)return null;const l=s[0],h=s[1];os(l,a,h)===0&&s.shift(),s.push(s[0]);const g=this.isExteriorRing()?1:-1,v=this.isExteriorRing()?0:s.length-1,m=this.isExteriorRing()?s.length:-1,N=[];for(let _=v;_!=m;_+=g)N.push([s[_].x,s[_].y]);return N}isExteriorRing(){if(this._isExteriorRing===void 0){const a=this.enclosingRing();this._isExteriorRing=a?!a.isExteriorRing():!0}return this._isExteriorRing}enclosingRing(){return this._enclosingRing===void 0&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}_calcEnclosingRing(){let a=this.events[0];for(let h=1,g=this.events.length;h<g;h++){const v=this.events[h];ft.compare(a,v)>0&&(a=v)}let s=a.segment.prevInResult(),l=s?s.prevInResult():null;for(;;){if(!s)return null;if(!l)return s.ringOut;if(l.ringOut!==s.ringOut)return l.ringOut.enclosingRing()!==s.ringOut?s.ringOut:s.ringOut.enclosingRing();s=l.prevInResult(),l=s?s.prevInResult():null}}}class gs{constructor(a){this.exteriorRing=a,a.poly=this,this.interiorRings=[]}addInterior(a){this.interiorRings.push(a),a.poly=this}getGeom(){const a=[this.exteriorRing.getGeom()];if(a[0]===null)return null;for(let s=0,l=this.interiorRings.length;s<l;s++){const h=this.interiorRings[s].getGeom();h!==null&&a.push(h)}return a}}class vo{constructor(a){this.rings=a,this.polys=this._composePolys(a)}getGeom(){const a=[];for(let s=0,l=this.polys.length;s<l;s++){const h=this.polys[s].getGeom();h!==null&&a.push(h)}return a}_composePolys(a){const s=[];for(let l=0,h=a.length;l<h;l++){const g=a[l];if(!g.poly)if(g.isExteriorRing())s.push(new gs(g));else{const v=g.enclosingRing();v.poly||s.push(new gs(v)),v.poly.addInterior(g)}}return s}}class yo{constructor(a){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Qt.compare;this.queue=a,this.tree=new Wi(s),this.segments=[]}process(a){const s=a.segment,l=[];if(a.consumedBy)return a.isLeft?this.queue.remove(a.otherSE):this.tree.remove(s),l;const h=a.isLeft?this.tree.add(s):this.tree.find(s);if(!h)throw new Error(`Unable to find segment #${s.id} [${s.leftSE.point.x}, ${s.leftSE.point.y}] -> [${s.rightSE.point.x}, ${s.rightSE.point.y}] in SweepLine tree.`);let g=h,v=h,m,N;for(;m===void 0;)g=this.tree.prev(g),g===null?m=null:g.key.consumedBy===void 0&&(m=g.key);for(;N===void 0;)v=this.tree.next(v),v===null?N=null:v.key.consumedBy===void 0&&(N=v.key);if(a.isLeft){let _=null;if(m){const y=m.getIntersection(s);if(y!==null&&(s.isAnEndpoint(y)||(_=y),!m.isAnEndpoint(y))){const x=this._splitSafely(m,y);for(let E=0,I=x.length;E<I;E++)l.push(x[E])}}let k=null;if(N){const y=N.getIntersection(s);if(y!==null&&(s.isAnEndpoint(y)||(k=y),!N.isAnEndpoint(y))){const x=this._splitSafely(N,y);for(let E=0,I=x.length;E<I;E++)l.push(x[E])}}if(_!==null||k!==null){let y=null;_===null?y=k:k===null?y=_:y=ft.comparePoints(_,k)<=0?_:k,this.queue.remove(s.rightSE),l.push(s.rightSE);const x=s.split(y);for(let E=0,I=x.length;E<I;E++)l.push(x[E])}l.length>0?(this.tree.remove(s),l.push(a)):(this.segments.push(s),s.prev=m)}else{if(m&&N){const _=m.getIntersection(N);if(_!==null){if(!m.isAnEndpoint(_)){const k=this._splitSafely(m,_);for(let y=0,x=k.length;y<x;y++)l.push(k[y])}if(!N.isAnEndpoint(_)){const k=this._splitSafely(N,_);for(let y=0,x=k.length;y<x;y++)l.push(k[y])}}}this.tree.remove(s)}return l}_splitSafely(a,s){this.tree.remove(a);const l=a.rightSE;this.queue.remove(l);const h=a.split(s);return h.push(l),a.consumedBy===void 0&&this.tree.add(a),h}}const ds=typeof process<"u"&&process.env.POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,po=typeof process<"u"&&process.env.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6;class _o{run(a,s,l){Nt.type=a,Xn.reset();const h=[new fs(s,!0)];for(let y=0,x=l.length;y<x;y++)h.push(new fs(l[y],!1));if(Nt.numMultiPolys=h.length,Nt.type==="difference"){const y=h[0];let x=1;for(;x<h.length;)Qi(h[x].bbox,y.bbox)!==null?x++:h.splice(x,1)}if(Nt.type==="intersection")for(let y=0,x=h.length;y<x;y++){const E=h[y];for(let I=y+1,R=h.length;I<R;I++)if(Qi(E.bbox,h[I].bbox)===null)return[]}const g=new Wi(ft.compare);for(let y=0,x=h.length;y<x;y++){const E=h[y].getSweepEvents();for(let I=0,R=E.length;I<R;I++)if(g.insert(E[I]),g.size>ds)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const v=new yo(g);let m=g.size,N=g.pop();for(;N;){const y=N.key;if(g.size===m){const E=y.segment;throw new Error(`Unable to pop() ${y.isLeft?"left":"right"} SweepEvent [${y.point.x}, ${y.point.y}] from segment #${E.id} [${E.leftSE.point.x}, ${E.leftSE.point.y}] -> [${E.rightSE.point.x}, ${E.rightSE.point.y}] from queue.`)}if(g.size>ds)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(v.segments.length>po)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const x=v.process(y);for(let E=0,I=x.length;E<I;E++){const R=x[E];R.consumedBy===void 0&&g.insert(R)}m=g.size,N=g.pop()}Xn.reset();const _=fi.factory(v.segments);return new vo(_).getGeom()}}const Nt=new _o;var ms={union:function(o){for(var a=arguments.length,s=new Array(a>1?a-1:0),l=1;l<a;l++)s[l-1]=arguments[l];return Nt.run("union",o,s)},intersection:function(o){for(var a=arguments.length,s=new Array(a>1?a-1:0),l=1;l<a;l++)s[l-1]=arguments[l];return Nt.run("intersection",o,s)},xor:function(o){for(var a=arguments.length,s=new Array(a>1?a-1:0),l=1;l<a;l++)s[l-1]=arguments[l];return Nt.run("xor",o,s)},difference:function(o){for(var a=arguments.length,s=new Array(a>1?a-1:0),l=1;l<a;l++)s[l-1]=arguments[l];return Nt.run("difference",o,s)}};function vs(o,a,s){if(o!==null)for(var l,h,g,v,m,N,_,k=0,y=0,x,E=o.type,I=E==="FeatureCollection",R=E==="Feature",T=I?o.features.length:1,M=0;M<T;M++){_=I?o.features[M].geometry:R?o.geometry:o,x=_?_.type==="GeometryCollection":!1,m=x?_.geometries.length:1;for(var F=0;F<m;F++){var C=0,q=0;if(v=x?_.geometries[F]:_,v!==null){N=v.coordinates;var O=v.type;switch(k=0,O){case null:break;case"Point":if(a(N,y,M,C,q)===!1)return!1;y++,C++;break;case"LineString":case"MultiPoint":for(l=0;l<N.length;l++){if(a(N[l],y,M,C,q)===!1)return!1;y++,O==="MultiPoint"&&C++}O==="LineString"&&C++;break;case"Polygon":case"MultiLineString":for(l=0;l<N.length;l++){for(h=0;h<N[l].length-k;h++){if(a(N[l][h],y,M,C,q)===!1)return!1;y++}O==="MultiLineString"&&C++,O==="Polygon"&&q++}O==="Polygon"&&C++;break;case"MultiPolygon":for(l=0;l<N.length;l++){for(q=0,h=0;h<N[l].length;h++){for(g=0;g<N[l][h].length-k;g++){if(a(N[l][h][g],y,M,C,q)===!1)return!1;y++}q++}C++}break;case"GeometryCollection":for(l=0;l<v.geometries.length;l++)if(vs(v.geometries[l],a)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function ys(o,a){if(o.type==="Feature")a(o,0);else if(o.type==="FeatureCollection")for(var s=0;s<o.features.length&&a(o.features[s],s)!==!1;s++);}function gi(o,a){var s,l,h,g,v,m,N,_,k,y,x=0,E=o.type==="FeatureCollection",I=o.type==="Feature",R=E?o.features.length:1;for(s=0;s<R;s++){for(m=E?o.features[s].geometry:I?o.geometry:o,_=E?o.features[s].properties:I?o.properties:{},k=E?o.features[s].bbox:I?o.bbox:void 0,y=E?o.features[s].id:I?o.id:void 0,N=m?m.type==="GeometryCollection":!1,v=N?m.geometries.length:1,h=0;h<v;h++){if(g=N?m.geometries[h]:m,g===null){if(a(null,x,_,k,y)===!1)return!1;continue}switch(g.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(a(g,x,_,k,y)===!1)return!1;break}case"GeometryCollection":{for(l=0;l<g.geometries.length;l++)if(a(g.geometries[l],x,_,k,y)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}x++}}function ko(o,a={}){const s=[];if(gi(o,h=>{s.push(h.coordinates)}),s.length<2)throw new Error("Must have at least 2 geometries");const l=ms.union(s[0],...s.slice(1));return l.length===0?null:l.length===1?Bi(l[0],a.properties):$r(l,a.properties)}var Eo=ko;function xo(o,a={}){if(o.bbox!=null&&a.recompute!==!0)return o.bbox;const s=[1/0,1/0,-1/0,-1/0];return vs(o,l=>{s[0]>l[0]&&(s[0]=l[0]),s[1]>l[1]&&(s[1]=l[1]),s[2]<l[0]&&(s[2]=l[0]),s[3]<l[1]&&(s[3]=l[1])}),s}function No(o,a={}){const s=xo(o),l=(s[0]+s[2])/2,h=(s[1]+s[3])/2;return Vu([l,h],a.properties,a)}var Io=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function wo(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var ps={exports:{}};(function(o,a){(function(s,l){o.exports=l()})(Io,function(){function s(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function l(r,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(r,n.key,n)}}function h(r,e,t){return e&&l(r.prototype,e),t&&l(r,t),r}function g(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");r.prototype=Object.create(e&&e.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),e&&m(r,e)}function v(r){return v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},v(r)}function m(r,e){return m=Object.setPrototypeOf||function(t,n){return t.__proto__=n,t},m(r,e)}function N(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _(r,e,t){return _=N()?Reflect.construct:function(n,i,u){var c=[null];c.push.apply(c,i);var f=new(Function.bind.apply(n,c));return u&&m(f,u.prototype),f},_.apply(null,arguments)}function k(r){var e=typeof Map=="function"?new Map:void 0;return k=function(t){if(t===null||(n=t,Function.toString.call(n).indexOf("[native code]")===-1))return t;var n;if(typeof t!="function")throw new TypeError("Super expression must either be null or a function");if(e!==void 0){if(e.has(t))return e.get(t);e.set(t,i)}function i(){return _(t,arguments,v(this).constructor)}return i.prototype=Object.create(t.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),m(i,t)},k(r)}function y(r){if(r===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return r}function x(r,e){if(e&&(typeof e=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return y(r)}function E(r){var e=N();return function(){var t,n=v(r);if(e){var i=v(this).constructor;t=Reflect.construct(n,arguments,i)}else t=n.apply(this,arguments);return x(this,t)}}function I(r,e,t){return I=typeof Reflect<"u"&&Reflect.get?Reflect.get:function(n,i,u){var c=function(d,p){for(;!Object.prototype.hasOwnProperty.call(d,p)&&(d=v(d))!==null;);return d}(n,i);if(c){var f=Object.getOwnPropertyDescriptor(c,i);return f.get?f.get.call(u):f.value}},I(r,e,t||r)}function R(r){return function(e){if(Array.isArray(e))return M(e)}(r)||function(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}(r)||T(r)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
23
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function T(r,e){if(r){if(typeof r=="string")return M(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?M(r,e):void 0}}function M(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function F(r,e){var t=typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=T(r))||e){t&&(r=t);var n=0,i=function(){};return{s:i,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(d){throw d},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
24
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var u,c=!0,f=!1;return{s:function(){t=t.call(r)},n:function(){var d=t.next();return c=d.done,d},e:function(d){f=!0,u=d},f:function(){try{c||t.return==null||t.return()}finally{if(f)throw u}}}}var C=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getEndCapStyle",value:function(){return this._endCapStyle}},{key:"isSingleSided",value:function(){return this._isSingleSided}},{key:"setQuadrantSegments",value:function(e){this._quadrantSegments=e,this._quadrantSegments===0&&(this._joinStyle=r.JOIN_BEVEL),this._quadrantSegments<0&&(this._joinStyle=r.JOIN_MITRE,this._mitreLimit=Math.abs(this._quadrantSegments)),e<=0&&(this._quadrantSegments=1),this._joinStyle!==r.JOIN_ROUND&&(this._quadrantSegments=r.DEFAULT_QUADRANT_SEGMENTS)}},{key:"getJoinStyle",value:function(){return this._joinStyle}},{key:"setJoinStyle",value:function(e){this._joinStyle=e}},{key:"setSimplifyFactor",value:function(e){this._simplifyFactor=e<0?0:e}},{key:"getSimplifyFactor",value:function(){return this._simplifyFactor}},{key:"getQuadrantSegments",value:function(){return this._quadrantSegments}},{key:"setEndCapStyle",value:function(e){this._endCapStyle=e}},{key:"getMitreLimit",value:function(){return this._mitreLimit}},{key:"setMitreLimit",value:function(e){this._mitreLimit=e}},{key:"setSingleSided",value:function(e){this._isSingleSided=e}}],[{key:"constructor_",value:function(){if(this._quadrantSegments=r.DEFAULT_QUADRANT_SEGMENTS,this._endCapStyle=r.CAP_ROUND,this._joinStyle=r.JOIN_ROUND,this._mitreLimit=r.DEFAULT_MITRE_LIMIT,this._isSingleSided=!1,this._simplifyFactor=r.DEFAULT_SIMPLIFY_FACTOR,arguments.length!==0){if(arguments.length===1){var e=arguments[0];this.setQuadrantSegments(e)}else if(arguments.length===2){var t=arguments[0],n=arguments[1];this.setQuadrantSegments(t),this.setEndCapStyle(n)}else if(arguments.length===4){var i=arguments[0],u=arguments[1],c=arguments[2],f=arguments[3];this.setQuadrantSegments(i),this.setEndCapStyle(u),this.setJoinStyle(c),this.setMitreLimit(f)}}}},{key:"bufferDistanceError",value:function(e){var t=Math.PI/2/e;return 1-Math.cos(t/2)}}]),r}();C.CAP_ROUND=1,C.CAP_FLAT=2,C.CAP_SQUARE=3,C.JOIN_ROUND=1,C.JOIN_MITRE=2,C.JOIN_BEVEL=3,C.DEFAULT_QUADRANT_SEGMENTS=8,C.DEFAULT_MITRE_LIMIT=5,C.DEFAULT_SIMPLIFY_FACTOR=.01;var q=function(r){g(t,r);var e=E(t);function t(n){var i;return s(this,t),(i=e.call(this,n)).name=Object.keys({Exception:t})[0],i}return h(t,[{key:"toString",value:function(){return this.message}}]),t}(k(Error)),O=function(r){g(t,r);var e=E(t);function t(n){var i;return s(this,t),(i=e.call(this,n)).name=Object.keys({IllegalArgumentException:t})[0],i}return t}(q),B=function(){function r(){s(this,r)}return h(r,[{key:"filter",value:function(e){}}]),r}();function z(){}function X(){}function G(){}var Z,ee,j,ce,D,K,se,me,Ae=function(){function r(){s(this,r)}return h(r,null,[{key:"equalsWithTolerance",value:function(e,t,n){return Math.abs(e-t)<=n}}]),r}(),Ie=function(){function r(e,t){s(this,r),this.low=t||0,this.high=e||0}return h(r,null,[{key:"toBinaryString",value:function(e){var t,n="";for(t=2147483648;t>0;t>>>=1)n+=(e.high&t)===t?"1":"0";for(t=2147483648;t>0;t>>>=1)n+=(e.low&t)===t?"1":"0";return n}}]),r}();function Q(){}function Ge(){}Q.NaN=NaN,Q.isNaN=function(r){return Number.isNaN(r)},Q.isInfinite=function(r){return!Number.isFinite(r)},Q.MAX_VALUE=Number.MAX_VALUE,Q.POSITIVE_INFINITY=Number.POSITIVE_INFINITY,Q.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,typeof Float64Array=="function"&&typeof Int32Array=="function"?(K=2146435072,se=new Float64Array(1),me=new Int32Array(se.buffer),Q.doubleToLongBits=function(r){se[0]=r;var e=0|me[0],t=0|me[1];return(t&K)===K&&1048575&t&&e!==0&&(e=0,t=2146959360),new Ie(t,e)},Q.longBitsToDouble=function(r){return me[0]=r.low,me[1]=r.high,se[0]}):(Z=1023,ee=Math.log2,j=Math.floor,ce=Math.pow,D=function(){for(var r=53;r>0;r--){var e=ce(2,r)-1;if(j(ee(e))+1===r)return e}return 0}(),Q.doubleToLongBits=function(r){var e,t,n,i,u,c,f,d,p;if(r<0||1/r===Number.NEGATIVE_INFINITY?(c=1<<31,r=-r):c=0,r===0)return new Ie(d=c,p=0);if(r===1/0)return new Ie(d=2146435072|c,p=0);if(r!=r)return new Ie(d=2146959360,p=0);if(i=0,p=0,(e=j(r))>1)if(e<=D)(i=j(ee(e)))<=20?(p=0,d=e<<20-i&1048575):(p=e%(t=ce(2,n=i-20))<<32-n,d=e/t&1048575);else for(n=e,p=0;(n=j(t=n/2))!==0;)i++,p>>>=1,p|=(1&d)<<31,d>>>=1,t!==n&&(d|=524288);if(f=i+Z,u=e===0,e=r-e,i<52&&e!==0)for(n=0;;){if((t=2*e)>=1?(e=t-1,u?(f--,u=!1):(n<<=1,n|=1,i++)):(e=t,u?--f==0&&(i++,u=!1):(n<<=1,i++)),i===20)d|=n,n=0;else if(i===52){p|=n;break}if(t===1){i<20?d|=n<<20-i:i<52&&(p|=n<<52-i);break}}return d|=f<<20,new Ie(d|=c,p)},Q.longBitsToDouble=function(r){var e,t,n,i,u=r.high,c=r.low,f=u&1<<31?-1:1;for(n=((2146435072&u)>>20)-Z,i=0,t=1<<19,e=1;e<=20;e++)u&t&&(i+=ce(2,-e)),t>>>=1;for(t=1<<31,e=21;e<=52;e++)c&t&&(i+=ce(2,-e)),t>>>=1;if(n===-1023){if(i===0)return 0*f;n=-1022}else{if(n===1024)return i===0?f/0:NaN;i+=1}return f*i*ce(2,n)});var be=function(r){g(t,r);var e=E(t);function t(n){var i;return s(this,t),(i=e.call(this,n)).name=Object.keys({RuntimeException:t})[0],i}return t}(q),Ue=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,null,[{key:"constructor_",value:function(){if(arguments.length===0)be.constructor_.call(this);else if(arguments.length===1){var n=arguments[0];be.constructor_.call(this,n)}}}]),t}(be),he=function(){function r(){s(this,r)}return h(r,null,[{key:"shouldNeverReachHere",value:function(){if(arguments.length===0)r.shouldNeverReachHere(null);else if(arguments.length===1){var e=arguments[0];throw new Ue("Should never reach here"+(e!==null?": "+e:""))}}},{key:"isTrue",value:function(){if(arguments.length===1){var e=arguments[0];r.isTrue(e,null)}else if(arguments.length===2){var t=arguments[0],n=arguments[1];if(!t)throw n===null?new Ue:new Ue(n)}}},{key:"equals",value:function(){if(arguments.length===2){var e=arguments[0],t=arguments[1];r.equals(e,t,null)}else if(arguments.length===3){var n=arguments[0],i=arguments[1],u=arguments[2];if(!i.equals(n))throw new Ue("Expected "+n+" but encountered "+i+(u!==null?": "+u:""))}}}]),r}(),mt=new ArrayBuffer(8),Zn=new Float64Array(mt),Si=new Int32Array(mt),b=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getM",value:function(){return Q.NaN}},{key:"setOrdinate",value:function(e,t){switch(e){case r.X:this.x=t;break;case r.Y:this.y=t;break;case r.Z:this.setZ(t);break;default:throw new O("Invalid ordinate index: "+e)}}},{key:"equals2D",value:function(){if(arguments.length===1){var e=arguments[0];return this.x===e.x&&this.y===e.y}if(arguments.length===2){var t=arguments[0],n=arguments[1];return!!Ae.equalsWithTolerance(this.x,t.x,n)&&!!Ae.equalsWithTolerance(this.y,t.y,n)}}},{key:"setM",value:function(e){throw new O("Invalid ordinate index: "+r.M)}},{key:"getZ",value:function(){return this.z}},{key:"getOrdinate",value:function(e){switch(e){case r.X:return this.x;case r.Y:return this.y;case r.Z:return this.getZ()}throw new O("Invalid ordinate index: "+e)}},{key:"equals3D",value:function(e){return this.x===e.x&&this.y===e.y&&(this.getZ()===e.getZ()||Q.isNaN(this.getZ())&&Q.isNaN(e.getZ()))}},{key:"equals",value:function(e){return e instanceof r&&this.equals2D(e)}},{key:"equalInZ",value:function(e,t){return Ae.equalsWithTolerance(this.getZ(),e.getZ(),t)}},{key:"setX",value:function(e){this.x=e}},{key:"compareTo",value:function(e){var t=e;return this.x<t.x?-1:this.x>t.x?1:this.y<t.y?-1:this.y>t.y?1:0}},{key:"getX",value:function(){return this.x}},{key:"setZ",value:function(e){this.z=e}},{key:"clone",value:function(){try{return null}catch(e){if(e instanceof CloneNotSupportedException)return he.shouldNeverReachHere("this shouldn't happen because this class is Cloneable"),null;throw e}}},{key:"copy",value:function(){return new r(this)}},{key:"toString",value:function(){return"("+this.x+", "+this.y+", "+this.getZ()+")"}},{key:"distance3D",value:function(e){var t=this.x-e.x,n=this.y-e.y,i=this.getZ()-e.getZ();return Math.sqrt(t*t+n*n+i*i)}},{key:"getY",value:function(){return this.y}},{key:"setY",value:function(e){this.y=e}},{key:"distance",value:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)}},{key:"hashCode",value:function(){var e=17;return e=37*(e=37*e+r.hashCode(this.x))+r.hashCode(this.y)}},{key:"setCoordinate",value:function(e){this.x=e.x,this.y=e.y,this.z=e.getZ()}},{key:"interfaces_",get:function(){return[z,X,G]}}],[{key:"constructor_",value:function(){if(this.x=null,this.y=null,this.z=null,arguments.length===0)r.constructor_.call(this,0,0);else if(arguments.length===1){var e=arguments[0];r.constructor_.call(this,e.x,e.y,e.getZ())}else if(arguments.length===2){var t=arguments[0],n=arguments[1];r.constructor_.call(this,t,n,r.NULL_ORDINATE)}else if(arguments.length===3){var i=arguments[0],u=arguments[1],c=arguments[2];this.x=i,this.y=u,this.z=c}}},{key:"hashCode",value:function(e){return Zn[0]=e,Si[0]^Si[1]}}]),r}(),Li=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"compare",value:function(e,t){var n=r.compare(e.x,t.x);if(n!==0)return n;var i=r.compare(e.y,t.y);return i!==0?i:this._dimensionsToTest<=2?0:r.compare(e.getZ(),t.getZ())}},{key:"interfaces_",get:function(){return[Ge]}}],[{key:"constructor_",value:function(){if(this._dimensionsToTest=2,arguments.length===0)r.constructor_.call(this,2);else if(arguments.length===1){var e=arguments[0];if(e!==2&&e!==3)throw new O("only 2 or 3 dimensions may be specified");this._dimensionsToTest=e}}},{key:"compare",value:function(e,t){return e<t?-1:e>t?1:Q.isNaN(e)?Q.isNaN(t)?0:-1:Q.isNaN(t)?1:0}}]),r}();b.DimensionalComparator=Li,b.NULL_ORDINATE=Q.NaN,b.X=0,b.Y=1,b.Z=2,b.M=3;var Ee=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getArea",value:function(){return this.getWidth()*this.getHeight()}},{key:"equals",value:function(e){if(!(e instanceof r))return!1;var t=e;return this.isNull()?t.isNull():this._maxx===t.getMaxX()&&this._maxy===t.getMaxY()&&this._minx===t.getMinX()&&this._miny===t.getMinY()}},{key:"intersection",value:function(e){if(this.isNull()||e.isNull()||!this.intersects(e))return new r;var t=this._minx>e._minx?this._minx:e._minx,n=this._miny>e._miny?this._miny:e._miny;return new r(t,this._maxx<e._maxx?this._maxx:e._maxx,n,this._maxy<e._maxy?this._maxy:e._maxy)}},{key:"isNull",value:function(){return this._maxx<this._minx}},{key:"getMaxX",value:function(){return this._maxx}},{key:"covers",value:function(){if(arguments.length===1){if(arguments[0]instanceof b){var e=arguments[0];return this.covers(e.x,e.y)}if(arguments[0]instanceof r){var t=arguments[0];return!this.isNull()&&!t.isNull()&&t.getMinX()>=this._minx&&t.getMaxX()<=this._maxx&&t.getMinY()>=this._miny&&t.getMaxY()<=this._maxy}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];return!this.isNull()&&n>=this._minx&&n<=this._maxx&&i>=this._miny&&i<=this._maxy}}},{key:"intersects",value:function(){if(arguments.length===1){if(arguments[0]instanceof r){var e=arguments[0];return!this.isNull()&&!e.isNull()&&!(e._minx>this._maxx||e._maxx<this._minx||e._miny>this._maxy||e._maxy<this._miny)}if(arguments[0]instanceof b){var t=arguments[0];return this.intersects(t.x,t.y)}}else if(arguments.length===2){if(arguments[0]instanceof b&&arguments[1]instanceof b){var n=arguments[0],i=arguments[1];if(this.isNull())return!1;var u=n.x<i.x?n.x:i.x;if(u>this._maxx)return!1;var c=n.x>i.x?n.x:i.x;if(c<this._minx)return!1;var f=n.y<i.y?n.y:i.y;if(f>this._maxy)return!1;var d=n.y>i.y?n.y:i.y;return!(d<this._miny)}if(typeof arguments[0]=="number"&&typeof arguments[1]=="number"){var p=arguments[0],S=arguments[1];return!this.isNull()&&!(p>this._maxx||p<this._minx||S>this._maxy||S<this._miny)}}}},{key:"getMinY",value:function(){return this._miny}},{key:"getDiameter",value:function(){if(this.isNull())return 0;var e=this.getWidth(),t=this.getHeight();return Math.sqrt(e*e+t*t)}},{key:"getMinX",value:function(){return this._minx}},{key:"expandToInclude",value:function(){if(arguments.length===1){if(arguments[0]instanceof b){var e=arguments[0];this.expandToInclude(e.x,e.y)}else if(arguments[0]instanceof r){var t=arguments[0];if(t.isNull())return null;this.isNull()?(this._minx=t.getMinX(),this._maxx=t.getMaxX(),this._miny=t.getMinY(),this._maxy=t.getMaxY()):(t._minx<this._minx&&(this._minx=t._minx),t._maxx>this._maxx&&(this._maxx=t._maxx),t._miny<this._miny&&(this._miny=t._miny),t._maxy>this._maxy&&(this._maxy=t._maxy))}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];this.isNull()?(this._minx=n,this._maxx=n,this._miny=i,this._maxy=i):(n<this._minx&&(this._minx=n),n>this._maxx&&(this._maxx=n),i<this._miny&&(this._miny=i),i>this._maxy&&(this._maxy=i))}}},{key:"minExtent",value:function(){if(this.isNull())return 0;var e=this.getWidth(),t=this.getHeight();return e<t?e:t}},{key:"getWidth",value:function(){return this.isNull()?0:this._maxx-this._minx}},{key:"compareTo",value:function(e){var t=e;return this.isNull()?t.isNull()?0:-1:t.isNull()?1:this._minx<t._minx?-1:this._minx>t._minx?1:this._miny<t._miny?-1:this._miny>t._miny?1:this._maxx<t._maxx?-1:this._maxx>t._maxx?1:this._maxy<t._maxy?-1:this._maxy>t._maxy?1:0}},{key:"translate",value:function(e,t){if(this.isNull())return null;this.init(this.getMinX()+e,this.getMaxX()+e,this.getMinY()+t,this.getMaxY()+t)}},{key:"copy",value:function(){return new r(this)}},{key:"toString",value:function(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"}},{key:"setToNull",value:function(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1}},{key:"disjoint",value:function(e){return!(!this.isNull()&&!e.isNull())||e._minx>this._maxx||e._maxx<this._minx||e._miny>this._maxy||e._maxy<this._miny}},{key:"getHeight",value:function(){return this.isNull()?0:this._maxy-this._miny}},{key:"maxExtent",value:function(){if(this.isNull())return 0;var e=this.getWidth(),t=this.getHeight();return e>t?e:t}},{key:"expandBy",value:function(){if(arguments.length===1){var e=arguments[0];this.expandBy(e,e)}else if(arguments.length===2){var t=arguments[0],n=arguments[1];if(this.isNull())return null;this._minx-=t,this._maxx+=t,this._miny-=n,this._maxy+=n,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}}},{key:"contains",value:function(){if(arguments.length===1){if(arguments[0]instanceof r){var e=arguments[0];return this.covers(e)}if(arguments[0]instanceof b){var t=arguments[0];return this.covers(t)}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];return this.covers(n,i)}}},{key:"centre",value:function(){return this.isNull()?null:new b((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)}},{key:"init",value:function(){if(arguments.length===0)this.setToNull();else if(arguments.length===1){if(arguments[0]instanceof b){var e=arguments[0];this.init(e.x,e.x,e.y,e.y)}else if(arguments[0]instanceof r){var t=arguments[0];this._minx=t._minx,this._maxx=t._maxx,this._miny=t._miny,this._maxy=t._maxy}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];this.init(n.x,i.x,n.y,i.y)}else if(arguments.length===4){var u=arguments[0],c=arguments[1],f=arguments[2],d=arguments[3];u<c?(this._minx=u,this._maxx=c):(this._minx=c,this._maxx=u),f<d?(this._miny=f,this._maxy=d):(this._miny=d,this._maxy=f)}}},{key:"getMaxY",value:function(){return this._maxy}},{key:"distance",value:function(e){if(this.intersects(e))return 0;var t=0;this._maxx<e._minx?t=e._minx-this._maxx:this._minx>e._maxx&&(t=this._minx-e._maxx);var n=0;return this._maxy<e._miny?n=e._miny-this._maxy:this._miny>e._maxy&&(n=this._miny-e._maxy),t===0?n:n===0?t:Math.sqrt(t*t+n*n)}},{key:"hashCode",value:function(){var e=17;return e=37*(e=37*(e=37*(e=37*e+b.hashCode(this._minx))+b.hashCode(this._maxx))+b.hashCode(this._miny))+b.hashCode(this._maxy)}},{key:"interfaces_",get:function(){return[z,G]}}],[{key:"constructor_",value:function(){if(this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,arguments.length===0)this.init();else if(arguments.length===1){if(arguments[0]instanceof b){var e=arguments[0];this.init(e.x,e.x,e.y,e.y)}else if(arguments[0]instanceof r){var t=arguments[0];this.init(t)}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];this.init(n.x,i.x,n.y,i.y)}else if(arguments.length===4){var u=arguments[0],c=arguments[1],f=arguments[2],d=arguments[3];this.init(u,c,f,d)}}},{key:"intersects",value:function(){if(arguments.length===3){var e=arguments[0],t=arguments[1],n=arguments[2];return n.x>=(e.x<t.x?e.x:t.x)&&n.x<=(e.x>t.x?e.x:t.x)&&n.y>=(e.y<t.y?e.y:t.y)&&n.y<=(e.y>t.y?e.y:t.y)}if(arguments.length===4){var i=arguments[0],u=arguments[1],c=arguments[2],f=arguments[3],d=Math.min(c.x,f.x),p=Math.max(c.x,f.x),S=Math.min(i.x,u.x),L=Math.max(i.x,u.x);return!(S>p)&&!(L<d)&&(d=Math.min(c.y,f.y),p=Math.max(c.y,f.y),S=Math.min(i.y,u.y),L=Math.max(i.y,u.y),!(S>p)&&!(L<d))}}}]),r}(),J=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"isGeometryCollection",value:function(){return this.getTypeCode()===r.TYPECODE_GEOMETRYCOLLECTION}},{key:"getFactory",value:function(){return this._factory}},{key:"getGeometryN",value:function(e){return this}},{key:"getArea",value:function(){return 0}},{key:"isRectangle",value:function(){return!1}},{key:"equalsExact",value:function(e){return this===e||this.equalsExact(e,0)}},{key:"geometryChanged",value:function(){this.apply(r.geometryChangedFilter)}},{key:"geometryChangedAction",value:function(){this._envelope=null}},{key:"equalsNorm",value:function(e){return e!==null&&this.norm().equalsExact(e.norm())}},{key:"getLength",value:function(){return 0}},{key:"getNumGeometries",value:function(){return 1}},{key:"compareTo",value:function(){var e;if(arguments.length===1){var t=arguments[0];return e=t,this.getTypeCode()!==e.getTypeCode()?this.getTypeCode()-e.getTypeCode():this.isEmpty()&&e.isEmpty()?0:this.isEmpty()?-1:e.isEmpty()?1:this.compareToSameClass(t)}if(arguments.length===2){var n=arguments[0],i=arguments[1];return e=n,this.getTypeCode()!==e.getTypeCode()?this.getTypeCode()-e.getTypeCode():this.isEmpty()&&e.isEmpty()?0:this.isEmpty()?-1:e.isEmpty()?1:this.compareToSameClass(n,i)}}},{key:"getUserData",value:function(){return this._userData}},{key:"getSRID",value:function(){return this._SRID}},{key:"getEnvelope",value:function(){return this.getFactory().toGeometry(this.getEnvelopeInternal())}},{key:"checkNotGeometryCollection",value:function(e){if(e.getTypeCode()===r.TYPECODE_GEOMETRYCOLLECTION)throw new O("This method does not support GeometryCollection arguments")}},{key:"equal",value:function(e,t,n){return n===0?e.equals(t):e.distance(t)<=n}},{key:"norm",value:function(){var e=this.copy();return e.normalize(),e}},{key:"reverse",value:function(){var e=this.reverseInternal();return this.envelope!=null&&(e.envelope=this.envelope.copy()),e.setSRID(this.getSRID()),e}},{key:"copy",value:function(){var e=this.copyInternal();return e.envelope=this._envelope==null?null:this._envelope.copy(),e._SRID=this._SRID,e._userData=this._userData,e}},{key:"getPrecisionModel",value:function(){return this._factory.getPrecisionModel()}},{key:"getEnvelopeInternal",value:function(){return this._envelope===null&&(this._envelope=this.computeEnvelopeInternal()),new Ee(this._envelope)}},{key:"setSRID",value:function(e){this._SRID=e}},{key:"setUserData",value:function(e){this._userData=e}},{key:"compare",value:function(e,t){for(var n=e.iterator(),i=t.iterator();n.hasNext()&&i.hasNext();){var u=n.next(),c=i.next(),f=u.compareTo(c);if(f!==0)return f}return n.hasNext()?1:i.hasNext()?-1:0}},{key:"hashCode",value:function(){return this.getEnvelopeInternal().hashCode()}},{key:"isEquivalentClass",value:function(e){return this.getClass()===e.getClass()}},{key:"isGeometryCollectionOrDerived",value:function(){return this.getTypeCode()===r.TYPECODE_GEOMETRYCOLLECTION||this.getTypeCode()===r.TYPECODE_MULTIPOINT||this.getTypeCode()===r.TYPECODE_MULTILINESTRING||this.getTypeCode()===r.TYPECODE_MULTIPOLYGON}},{key:"interfaces_",get:function(){return[X,z,G]}},{key:"getClass",value:function(){return r}}],[{key:"hasNonEmptyElements",value:function(e){for(var t=0;t<e.length;t++)if(!e[t].isEmpty())return!0;return!1}},{key:"hasNullElements",value:function(e){for(var t=0;t<e.length;t++)if(e[t]===null)return!0;return!1}}]),r}();J.constructor_=function(r){r&&(this._envelope=null,this._userData=null,this._factory=r,this._SRID=r.getSRID())},J.TYPECODE_POINT=0,J.TYPECODE_MULTIPOINT=1,J.TYPECODE_LINESTRING=2,J.TYPECODE_LINEARRING=3,J.TYPECODE_MULTILINESTRING=4,J.TYPECODE_POLYGON=5,J.TYPECODE_MULTIPOLYGON=6,J.TYPECODE_GEOMETRYCOLLECTION=7,J.TYPENAME_POINT="Point",J.TYPENAME_MULTIPOINT="MultiPoint",J.TYPENAME_LINESTRING="LineString",J.TYPENAME_LINEARRING="LinearRing",J.TYPENAME_MULTILINESTRING="MultiLineString",J.TYPENAME_POLYGON="Polygon",J.TYPENAME_MULTIPOLYGON="MultiPolygon",J.TYPENAME_GEOMETRYCOLLECTION="GeometryCollection",J.geometryChangedFilter={get interfaces_(){return[B]},filter:function(r){r.geometryChangedAction()}};var w=function(){function r(){s(this,r)}return h(r,null,[{key:"toLocationSymbol",value:function(e){switch(e){case r.EXTERIOR:return"e";case r.BOUNDARY:return"b";case r.INTERIOR:return"i";case r.NONE:return"-"}throw new O("Unknown location value: "+e)}}]),r}();w.INTERIOR=0,w.BOUNDARY=1,w.EXTERIOR=2,w.NONE=-1;var oe=function(){function r(){s(this,r)}return h(r,[{key:"add",value:function(){}},{key:"addAll",value:function(){}},{key:"isEmpty",value:function(){}},{key:"iterator",value:function(){}},{key:"size",value:function(){}},{key:"toArray",value:function(){}},{key:"remove",value:function(){}}]),r}(),Te=function(r){g(t,r);var e=E(t);function t(n){var i;return s(this,t),(i=e.call(this,n)).name=Object.keys({NoSuchElementException:t})[0],i}return t}(q),ae=function(r){g(t,r);var e=E(t);function t(n){var i;return s(this,t),(i=e.call(this,n)).name=Object.keys({UnsupportedOperationException:t})[0],i}return t}(q),jn=function(r){g(t,r);var e=E(t);function t(){return s(this,t),e.apply(this,arguments)}return h(t,[{key:"contains",value:function(){}}]),t}(oe),et=function(r,e){g(n,r);var t=E(n);function n(i){var u;return s(this,n),(u=t.call(this)).map=new Map,i instanceof oe&&u.addAll(i),u}return h(n,[{key:"contains",value:function(i){var u=i.hashCode?i.hashCode():i;return!!this.map.has(u)}},{key:"add",value:function(i){var u=i.hashCode?i.hashCode():i;return!this.map.has(u)&&!!this.map.set(u,i)}},{key:"addAll",value:function(i){var u,c=F(i);try{for(c.s();!(u=c.n()).done;){var f=u.value;this.add(f)}}catch(d){c.e(d)}finally{c.f()}return!0}},{key:"remove",value:function(){throw new ae}},{key:"size",value:function(){return this.map.size}},{key:"isEmpty",value:function(){return this.map.size===0}},{key:"toArray",value:function(){return Array.from(this.map.values())}},{key:"iterator",value:function(){return new we(this.map)}},{key:e,value:function(){return this.map}}]),n}(jn,Symbol.iterator),we=function(){function r(e){s(this,r),this.iterator=e.values();var t=this.iterator.next(),n=t.done,i=t.value;this.done=n,this.value=i}return h(r,[{key:"next",value:function(){if(this.done)throw new Te;var e=this.value,t=this.iterator.next(),n=t.done,i=t.value;return this.done=n,this.value=i,e}},{key:"hasNext",value:function(){return!this.done}},{key:"remove",value:function(){throw new ae}}]),r}(),U=function(){function r(){s(this,r)}return h(r,null,[{key:"opposite",value:function(e){return e===r.LEFT?r.RIGHT:e===r.RIGHT?r.LEFT:e}}]),r}();U.ON=0,U.LEFT=1,U.RIGHT=2;var sn=function(r){g(t,r);var e=E(t);function t(n){var i;return s(this,t),(i=e.call(this,n)).name=Object.keys({EmptyStackException:t})[0],i}return t}(q),Ct=function(r){g(t,r);var e=E(t);function t(n){var i;return s(this,t),(i=e.call(this,n)).name=Object.keys({IndexOutOfBoundsException:t})[0],i}return t}(q),tt=function(r){g(t,r);var e=E(t);function t(){return s(this,t),e.apply(this,arguments)}return h(t,[{key:"get",value:function(){}},{key:"set",value:function(){}},{key:"isEmpty",value:function(){}}]),t}(oe),Nn=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),(n=e.call(this)).array=[],n}return h(t,[{key:"add",value:function(n){return this.array.push(n),!0}},{key:"get",value:function(n){if(n<0||n>=this.size())throw new Ct;return this.array[n]}},{key:"push",value:function(n){return this.array.push(n),n}},{key:"pop",value:function(){if(this.array.length===0)throw new sn;return this.array.pop()}},{key:"peek",value:function(){if(this.array.length===0)throw new sn;return this.array[this.array.length-1]}},{key:"empty",value:function(){return this.array.length===0}},{key:"isEmpty",value:function(){return this.empty()}},{key:"search",value:function(n){return this.array.indexOf(n)}},{key:"size",value:function(){return this.array.length}},{key:"toArray",value:function(){return this.array.slice()}}]),t}(tt);function ue(r,e){return r.interfaces_&&r.interfaces_.indexOf(e)>-1}var an=function(){function r(e){s(this,r),this.str=e}return h(r,[{key:"append",value:function(e){this.str+=e}},{key:"setCharAt",value:function(e,t){this.str=this.str.substr(0,e)+t+this.str.substr(e+1)}},{key:"toString",value:function(){return this.str}}]),r}(),rt=function(){function r(e){s(this,r),this.value=e}return h(r,[{key:"intValue",value:function(){return this.value}},{key:"compareTo",value:function(e){return this.value<e?-1:this.value>e?1:0}}],[{key:"compare",value:function(e,t){return e<t?-1:e>t?1:0}},{key:"isNan",value:function(e){return Number.isNaN(e)}},{key:"valueOf",value:function(e){return new r(e)}}]),r}(),In=function(){function r(){s(this,r)}return h(r,null,[{key:"isWhitespace",value:function(e){return e<=32&&e>=0||e===127}},{key:"toUpperCase",value:function(e){return e.toUpperCase()}}]),r}(),te=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"le",value:function(e){return this._hi<e._hi||this._hi===e._hi&&this._lo<=e._lo}},{key:"extractSignificantDigits",value:function(e,t){var n=this.abs(),i=r.magnitude(n._hi),u=r.TEN.pow(i);(n=n.divide(u)).gt(r.TEN)?(n=n.divide(r.TEN),i+=1):n.lt(r.ONE)&&(n=n.multiply(r.TEN),i-=1);for(var c=i+1,f=new an,d=r.MAX_PRINT_DIGITS-1,p=0;p<=d;p++){e&&p===c&&f.append(".");var S=Math.trunc(n._hi);if(S<0)break;var L=!1,P=0;S>9?(L=!0,P="9"):P="0"+S,f.append(P),n=n.subtract(r.valueOf(S)).multiply(r.TEN),L&&n.selfAdd(r.TEN);var V=!0,W=r.magnitude(n._hi);if(W<0&&Math.abs(W)>=d-p&&(V=!1),!V)break}return t[0]=i,f.toString()}},{key:"sqr",value:function(){return this.multiply(this)}},{key:"doubleValue",value:function(){return this._hi+this._lo}},{key:"subtract",value:function(){if(arguments[0]instanceof r){var e=arguments[0];return this.add(e.negate())}if(typeof arguments[0]=="number"){var t=arguments[0];return this.add(-t)}}},{key:"equals",value:function(){if(arguments.length===1&&arguments[0]instanceof r){var e=arguments[0];return this._hi===e._hi&&this._lo===e._lo}}},{key:"isZero",value:function(){return this._hi===0&&this._lo===0}},{key:"selfSubtract",value:function(){if(arguments[0]instanceof r){var e=arguments[0];return this.isNaN()?this:this.selfAdd(-e._hi,-e._lo)}if(typeof arguments[0]=="number"){var t=arguments[0];return this.isNaN()?this:this.selfAdd(-t,0)}}},{key:"getSpecialNumberString",value:function(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null}},{key:"min",value:function(e){return this.le(e)?this:e}},{key:"selfDivide",value:function(){if(arguments.length===1){if(arguments[0]instanceof r){var e=arguments[0];return this.selfDivide(e._hi,e._lo)}if(typeof arguments[0]=="number"){var t=arguments[0];return this.selfDivide(t,0)}}else if(arguments.length===2){var n=arguments[0],i=arguments[1],u=null,c=null,f=null,d=null,p=null,S=null,L=null,P=null;return p=this._hi/n,P=(u=(S=r.SPLIT*p)-(u=S-p))*(f=(P=r.SPLIT*n)-(f=P-n))-(L=p*n)+u*(d=n-f)+(c=p-u)*f+c*d,P=p+(S=(this._hi-L-P+this._lo-p*i)/n),this._hi=P,this._lo=p-P+S,this}}},{key:"dump",value:function(){return"DD<"+this._hi+", "+this._lo+">"}},{key:"divide",value:function(){if(arguments[0]instanceof r){var e=arguments[0],t=null,n=null,i=null,u=null,c=null,f=null,d=null,p=null;n=(c=this._hi/e._hi)-(t=(f=r.SPLIT*c)-(t=f-c)),p=t*(i=(p=r.SPLIT*e._hi)-(i=p-e._hi))-(d=c*e._hi)+t*(u=e._hi-i)+n*i+n*u;var S=p=c+(f=(this._hi-d-p+this._lo-c*e._lo)/e._hi),L=c-p+f;return new r(S,L)}if(typeof arguments[0]=="number"){var P=arguments[0];return Q.isNaN(P)?r.createNaN():r.copy(this).selfDivide(P,0)}}},{key:"ge",value:function(e){return this._hi>e._hi||this._hi===e._hi&&this._lo>=e._lo}},{key:"pow",value:function(e){if(e===0)return r.valueOf(1);var t=new r(this),n=r.valueOf(1),i=Math.abs(e);if(i>1)for(;i>0;)i%2==1&&n.selfMultiply(t),(i/=2)>0&&(t=t.sqr());else n=t;return e<0?n.reciprocal():n}},{key:"ceil",value:function(){if(this.isNaN())return r.NaN;var e=Math.ceil(this._hi),t=0;return e===this._hi&&(t=Math.ceil(this._lo)),new r(e,t)}},{key:"compareTo",value:function(e){var t=e;return this._hi<t._hi?-1:this._hi>t._hi?1:this._lo<t._lo?-1:this._lo>t._lo?1:0}},{key:"rint",value:function(){return this.isNaN()?this:this.add(.5).floor()}},{key:"setValue",value:function(){if(arguments[0]instanceof r){var e=arguments[0];return this.init(e),this}if(typeof arguments[0]=="number"){var t=arguments[0];return this.init(t),this}}},{key:"max",value:function(e){return this.ge(e)?this:e}},{key:"sqrt",value:function(){if(this.isZero())return r.valueOf(0);if(this.isNegative())return r.NaN;var e=1/Math.sqrt(this._hi),t=this._hi*e,n=r.valueOf(t),i=this.subtract(n.sqr())._hi*(.5*e);return n.add(i)}},{key:"selfAdd",value:function(){if(arguments.length===1){if(arguments[0]instanceof r){var e=arguments[0];return this.selfAdd(e._hi,e._lo)}if(typeof arguments[0]=="number"){var t=arguments[0],n=null,i=null,u=null,c=null,f=null,d=null;return c=(u=this._hi+t)-(f=u-this._hi),i=(d=(c=t-f+(this._hi-c))+this._lo)+(u-(n=u+d)),this._hi=n+i,this._lo=i+(n-this._hi),this}}else if(arguments.length===2){var p=arguments[0],S=arguments[1],L=null,P=null,V=null,W=null,$=null,ie=null,le=null;W=this._hi+p,P=this._lo+S,$=W-(ie=W-this._hi),V=P-(le=P-this._lo);var _e=(L=W+(ie=($=p-ie+(this._hi-$))+P))+(ie=(V=S-le+(this._lo-V))+(ie+(W-L))),De=ie+(L-_e);return this._hi=_e,this._lo=De,this}}},{key:"selfMultiply",value:function(){if(arguments.length===1){if(arguments[0]instanceof r){var e=arguments[0];return this.selfMultiply(e._hi,e._lo)}if(typeof arguments[0]=="number"){var t=arguments[0];return this.selfMultiply(t,0)}}else if(arguments.length===2){var n=arguments[0],i=arguments[1],u=null,c=null,f=null,d=null,p=null,S=null;u=(p=r.SPLIT*this._hi)-this._hi,S=r.SPLIT*n,u=p-u,c=this._hi-u,f=S-n;var L=(p=this._hi*n)+(S=u*(f=S-f)-p+u*(d=n-f)+c*f+c*d+(this._hi*i+this._lo*n)),P=S+(u=p-L);return this._hi=L,this._lo=P,this}}},{key:"selfSqr",value:function(){return this.selfMultiply(this)}},{key:"floor",value:function(){if(this.isNaN())return r.NaN;var e=Math.floor(this._hi),t=0;return e===this._hi&&(t=Math.floor(this._lo)),new r(e,t)}},{key:"negate",value:function(){return this.isNaN()?this:new r(-this._hi,-this._lo)}},{key:"clone",value:function(){try{return null}catch(e){if(e instanceof CloneNotSupportedException)return null;throw e}}},{key:"multiply",value:function(){if(arguments[0]instanceof r){var e=arguments[0];return e.isNaN()?r.createNaN():r.copy(this).selfMultiply(e)}if(typeof arguments[0]=="number"){var t=arguments[0];return Q.isNaN(t)?r.createNaN():r.copy(this).selfMultiply(t,0)}}},{key:"isNaN",value:function(){return Q.isNaN(this._hi)}},{key:"intValue",value:function(){return Math.trunc(this._hi)}},{key:"toString",value:function(){var e=r.magnitude(this._hi);return e>=-3&&e<=20?this.toStandardNotation():this.toSciNotation()}},{key:"toStandardNotation",value:function(){var e=this.getSpecialNumberString();if(e!==null)return e;var t=new Array(1).fill(null),n=this.extractSignificantDigits(!0,t),i=t[0]+1,u=n;if(n.charAt(0)===".")u="0"+n;else if(i<0)u="0."+r.stringOfChar("0",-i)+n;else if(n.indexOf(".")===-1){var c=i-n.length;u=n+r.stringOfChar("0",c)+".0"}return this.isNegative()?"-"+u:u}},{key:"reciprocal",value:function(){var e,t,n,i,u=null,c=null,f=null,d=null;e=(n=1/this._hi)-(u=(f=r.SPLIT*n)-(u=f-n)),c=(d=r.SPLIT*this._hi)-this._hi;var p=n+(f=(1-(i=n*this._hi)-(d=u*(c=d-c)-i+u*(t=this._hi-c)+e*c+e*t)-n*this._lo)/this._hi);return new r(p,n-p+f)}},{key:"toSciNotation",value:function(){if(this.isZero())return r.SCI_NOT_ZERO;var e=this.getSpecialNumberString();if(e!==null)return e;var t=new Array(1).fill(null),n=this.extractSignificantDigits(!1,t),i=r.SCI_NOT_EXPONENT_CHAR+t[0];if(n.charAt(0)==="0")throw new IllegalStateException("Found leading zero: "+n);var u="";n.length>1&&(u=n.substring(1));var c=n.charAt(0)+"."+u;return this.isNegative()?"-"+c+i:c+i}},{key:"abs",value:function(){return this.isNaN()?r.NaN:this.isNegative()?this.negate():new r(this)}},{key:"isPositive",value:function(){return this._hi>0||this._hi===0&&this._lo>0}},{key:"lt",value:function(e){return this._hi<e._hi||this._hi===e._hi&&this._lo<e._lo}},{key:"add",value:function(){if(arguments[0]instanceof r){var e=arguments[0];return r.copy(this).selfAdd(e)}if(typeof arguments[0]=="number"){var t=arguments[0];return r.copy(this).selfAdd(t)}}},{key:"init",value:function(){if(arguments.length===1){if(typeof arguments[0]=="number"){var e=arguments[0];this._hi=e,this._lo=0}else if(arguments[0]instanceof r){var t=arguments[0];this._hi=t._hi,this._lo=t._lo}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];this._hi=n,this._lo=i}}},{key:"gt",value:function(e){return this._hi>e._hi||this._hi===e._hi&&this._lo>e._lo}},{key:"isNegative",value:function(){return this._hi<0||this._hi===0&&this._lo<0}},{key:"trunc",value:function(){return this.isNaN()?r.NaN:this.isPositive()?this.floor():this.ceil()}},{key:"signum",value:function(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0}},{key:"interfaces_",get:function(){return[G,z,X]}}],[{key:"constructor_",value:function(){if(this._hi=0,this._lo=0,arguments.length===0)this.init(0);else if(arguments.length===1){if(typeof arguments[0]=="number"){var e=arguments[0];this.init(e)}else if(arguments[0]instanceof r){var t=arguments[0];this.init(t)}else if(typeof arguments[0]=="string"){var n=arguments[0];r.constructor_.call(this,r.parse(n))}}else if(arguments.length===2){var i=arguments[0],u=arguments[1];this.init(i,u)}}},{key:"determinant",value:function(){if(typeof arguments[3]=="number"&&typeof arguments[2]=="number"&&typeof arguments[0]=="number"&&typeof arguments[1]=="number"){var e=arguments[0],t=arguments[1],n=arguments[2],i=arguments[3];return r.determinant(r.valueOf(e),r.valueOf(t),r.valueOf(n),r.valueOf(i))}if(arguments[3]instanceof r&&arguments[2]instanceof r&&arguments[0]instanceof r&&arguments[1]instanceof r){var u=arguments[0],c=arguments[1],f=arguments[2],d=arguments[3],p=u.multiply(d).selfSubtract(c.multiply(f));return p}}},{key:"sqr",value:function(e){return r.valueOf(e).selfMultiply(e)}},{key:"valueOf",value:function(){if(typeof arguments[0]=="string"){var e=arguments[0];return r.parse(e)}if(typeof arguments[0]=="number"){var t=arguments[0];return new r(t)}}},{key:"sqrt",value:function(e){return r.valueOf(e).sqrt()}},{key:"parse",value:function(e){for(var t=0,n=e.length;In.isWhitespace(e.charAt(t));)t++;var i=!1;if(t<n){var u=e.charAt(t);u!=="-"&&u!=="+"||(t++,u==="-"&&(i=!0))}for(var c=new r,f=0,d=0,p=0,S=!1;!(t>=n);){var L=e.charAt(t);if(t++,In.isDigit(L)){var P=L-"0";c.selfMultiply(r.TEN),c.selfAdd(P),f++}else{if(L!=="."){if(L==="e"||L==="E"){var V=e.substring(t);try{p=rt.parseInt(V)}catch(_e){throw _e instanceof NumberFormatException?new NumberFormatException("Invalid exponent "+V+" in string "+e):_e}break}throw new NumberFormatException("Unexpected character '"+L+"' at position "+t+" in string "+e)}d=f,S=!0}}var W=c;S||(d=f);var $=f-d-p;if($===0)W=c;else if($>0){var ie=r.TEN.pow($);W=c.divide(ie)}else if($<0){var le=r.TEN.pow(-$);W=c.multiply(le)}return i?W.negate():W}},{key:"createNaN",value:function(){return new r(Q.NaN,Q.NaN)}},{key:"copy",value:function(e){return new r(e)}},{key:"magnitude",value:function(e){var t=Math.abs(e),n=Math.log(t)/Math.log(10),i=Math.trunc(Math.floor(n));return 10*Math.pow(10,i)<=t&&(i+=1),i}},{key:"stringOfChar",value:function(e,t){for(var n=new an,i=0;i<t;i++)n.append(e);return n.toString()}}]),r}();te.PI=new te(3.141592653589793,12246467991473532e-32),te.TWO_PI=new te(6.283185307179586,24492935982947064e-32),te.PI_2=new te(1.5707963267948966,6123233995736766e-32),te.E=new te(2.718281828459045,14456468917292502e-32),te.NaN=new te(Q.NaN,Q.NaN),te.EPS=123259516440783e-46,te.SPLIT=134217729,te.MAX_PRINT_DIGITS=32,te.TEN=te.valueOf(10),te.ONE=te.valueOf(1),te.SCI_NOT_EXPONENT_CHAR="E",te.SCI_NOT_ZERO="0.0E0";var un=function(){function r(){s(this,r)}return h(r,null,[{key:"orientationIndex",value:function(e,t,n){var i=r.orientationIndexFilter(e,t,n);if(i<=1)return i;var u=te.valueOf(t.x).selfAdd(-e.x),c=te.valueOf(t.y).selfAdd(-e.y),f=te.valueOf(n.x).selfAdd(-t.x),d=te.valueOf(n.y).selfAdd(-t.y);return u.selfMultiply(d).selfSubtract(c.selfMultiply(f)).signum()}},{key:"signOfDet2x2",value:function(){if(arguments[3]instanceof te&&arguments[2]instanceof te&&arguments[0]instanceof te&&arguments[1]instanceof te){var e=arguments[0],t=arguments[1],n=arguments[2],i=arguments[3],u=e.multiply(i).selfSubtract(t.multiply(n));return u.signum()}if(typeof arguments[3]=="number"&&typeof arguments[2]=="number"&&typeof arguments[0]=="number"&&typeof arguments[1]=="number"){var c=arguments[0],f=arguments[1],d=arguments[2],p=arguments[3],S=te.valueOf(c),L=te.valueOf(f),P=te.valueOf(d),V=te.valueOf(p),W=S.multiply(V).selfSubtract(L.multiply(P));return W.signum()}}},{key:"intersection",value:function(e,t,n,i){var u=new te(e.y).selfSubtract(t.y),c=new te(t.x).selfSubtract(e.x),f=new te(e.x).selfMultiply(t.y).selfSubtract(new te(t.x).selfMultiply(e.y)),d=new te(n.y).selfSubtract(i.y),p=new te(i.x).selfSubtract(n.x),S=new te(n.x).selfMultiply(i.y).selfSubtract(new te(i.x).selfMultiply(n.y)),L=c.multiply(S).selfSubtract(p.multiply(f)),P=d.multiply(f).selfSubtract(u.multiply(S)),V=u.multiply(p).selfSubtract(d.multiply(c)),W=L.selfDivide(V).doubleValue(),$=P.selfDivide(V).doubleValue();return Q.isNaN(W)||Q.isInfinite(W)||Q.isNaN($)||Q.isInfinite($)?null:new b(W,$)}},{key:"orientationIndexFilter",value:function(e,t,n){var i=null,u=(e.x-n.x)*(t.y-n.y),c=(e.y-n.y)*(t.x-n.x),f=u-c;if(u>0){if(c<=0)return r.signum(f);i=u+c}else{if(!(u<0)||c>=0)return r.signum(f);i=-u-c}var d=r.DP_SAFE_EPSILON*i;return f>=d||-f>=d?r.signum(f):2}},{key:"signum",value:function(e){return e>0?1:e<0?-1:0}}]),r}();un.DP_SAFE_EPSILON=1e-15;var ge=function(){function r(){s(this,r)}return h(r,[{key:"getM",value:function(e){if(this.hasM()){var t=this.getDimension()-this.getMeasures();return this.getOrdinate(e,t)}return Q.NaN}},{key:"setOrdinate",value:function(e,t,n){}},{key:"getZ",value:function(e){return this.hasZ()?this.getOrdinate(e,2):Q.NaN}},{key:"size",value:function(){}},{key:"getOrdinate",value:function(e,t){}},{key:"getCoordinate",value:function(){}},{key:"getCoordinateCopy",value:function(e){}},{key:"createCoordinate",value:function(){}},{key:"getDimension",value:function(){}},{key:"hasM",value:function(){return this.getMeasures()>0}},{key:"getX",value:function(e){}},{key:"hasZ",value:function(){return this.getDimension()-this.getMeasures()>2}},{key:"getMeasures",value:function(){return 0}},{key:"expandEnvelope",value:function(e){}},{key:"copy",value:function(){}},{key:"getY",value:function(e){}},{key:"toCoordinateArray",value:function(){}},{key:"interfaces_",get:function(){return[X]}}]),r}();ge.X=0,ge.Y=1,ge.Z=2,ge.M=3;var re=function(){function r(){s(this,r)}return h(r,null,[{key:"index",value:function(e,t,n){return un.orientationIndex(e,t,n)}},{key:"isCCW",value:function(){if(arguments[0]instanceof Array){var e=arguments[0],t=e.length-1;if(t<3)throw new O("Ring has fewer than 4 points, so orientation cannot be determined");for(var n=e[0],i=0,u=1;u<=t;u++){var c=e[u];c.y>n.y&&(n=c,i=u)}var f=i;do(f-=1)<0&&(f=t);while(e[f].equals2D(n)&&f!==i);var d=i;do d=(d+1)%t;while(e[d].equals2D(n)&&d!==i);var p=e[f],S=e[d];if(p.equals2D(n)||S.equals2D(n)||p.equals2D(S))return!1;var L=r.index(p,n,S),P=null;return P=L===0?p.x>S.x:L>0,P}if(ue(arguments[0],ge)){var V=arguments[0],W=V.size()-1;if(W<3)throw new O("Ring has fewer than 4 points, so orientation cannot be determined");for(var $=V.getCoordinate(0),ie=0,le=1;le<=W;le++){var _e=V.getCoordinate(le);_e.y>$.y&&($=_e,ie=le)}var De=null,He=ie;do(He-=1)<0&&(He=W),De=V.getCoordinate(He);while(De.equals2D($)&&He!==ie);var lt=null,St=ie;do St=(St+1)%W,lt=V.getCoordinate(St);while(lt.equals2D($)&&St!==ie);if(De.equals2D($)||lt.equals2D($)||De.equals2D(lt))return!1;var Yt=r.index(De,$,lt);return Yt===0?De.x>lt.x:Yt>0}}}]),r}();re.CLOCKWISE=-1,re.RIGHT=re.CLOCKWISE,re.COUNTERCLOCKWISE=1,re.LEFT=re.COUNTERCLOCKWISE,re.COLLINEAR=0,re.STRAIGHT=re.COLLINEAR;var rr=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getCoordinate",value:function(){return this._minCoord}},{key:"getRightmostSide",value:function(e,t){var n=this.getRightmostSideOfSegment(e,t);return n<0&&(n=this.getRightmostSideOfSegment(e,t-1)),n<0&&(this._minCoord=null,this.checkForRightmostCoordinate(e)),n}},{key:"findRightmostEdgeAtVertex",value:function(){var e=this._minDe.getEdge().getCoordinates();he.isTrue(this._minIndex>0&&this._minIndex<e.length,"rightmost point expected to be interior vertex of edge");var t=e[this._minIndex-1],n=e[this._minIndex+1],i=re.index(this._minCoord,n,t),u=!1;(t.y<this._minCoord.y&&n.y<this._minCoord.y&&i===re.COUNTERCLOCKWISE||t.y>this._minCoord.y&&n.y>this._minCoord.y&&i===re.CLOCKWISE)&&(u=!0),u&&(this._minIndex=this._minIndex-1)}},{key:"getRightmostSideOfSegment",value:function(e,t){var n=e.getEdge().getCoordinates();if(t<0||t+1>=n.length||n[t].y===n[t+1].y)return-1;var i=U.LEFT;return n[t].y<n[t+1].y&&(i=U.RIGHT),i}},{key:"getEdge",value:function(){return this._orientedDe}},{key:"checkForRightmostCoordinate",value:function(e){for(var t=e.getEdge().getCoordinates(),n=0;n<t.length-1;n++)(this._minCoord===null||t[n].x>this._minCoord.x)&&(this._minDe=e,this._minIndex=n,this._minCoord=t[n])}},{key:"findRightmostEdgeAtNode",value:function(){var e=this._minDe.getNode().getEdges();this._minDe=e.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)}},{key:"findEdge",value:function(e){for(var t=e.iterator();t.hasNext();){var n=t.next();n.isForward()&&this.checkForRightmostCoordinate(n)}he.isTrue(this._minIndex!==0||this._minCoord.equals(this._minDe.getCoordinate()),"inconsistency in rightmost processing"),this._minIndex===0?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe,this.getRightmostSide(this._minDe,this._minIndex)===U.LEFT&&(this._orientedDe=this._minDe.getSym())}}],[{key:"constructor_",value:function(){this._minIndex=-1,this._minCoord=null,this._minDe=null,this._orientedDe=null}}]),r}(),st=function(r){g(t,r);var e=E(t);function t(n,i){var u;return s(this,t),(u=e.call(this,i?n+" [ "+i+" ]":n)).pt=i?new b(i):void 0,u.name=Object.keys({TopologyException:t})[0],u}return h(t,[{key:"getCoordinate",value:function(){return this.pt}}]),t}(be),Qn=function(){function r(){s(this,r),this.array=[]}return h(r,[{key:"addLast",value:function(e){this.array.push(e)}},{key:"removeFirst",value:function(){return this.array.shift()}},{key:"isEmpty",value:function(){return this.array.length===0}}]),r}(),ne=function(r,e){g(n,r);var t=E(n);function n(i){var u;return s(this,n),(u=t.call(this)).array=[],i instanceof oe&&u.addAll(i),u}return h(n,[{key:"interfaces_",get:function(){return[tt,oe]}},{key:"ensureCapacity",value:function(){}},{key:"add",value:function(i){return arguments.length===1?this.array.push(i):this.array.splice(arguments[0],0,arguments[1]),!0}},{key:"clear",value:function(){this.array=[]}},{key:"addAll",value:function(i){var u,c=F(i);try{for(c.s();!(u=c.n()).done;){var f=u.value;this.array.push(f)}}catch(d){c.e(d)}finally{c.f()}}},{key:"set",value:function(i,u){var c=this.array[i];return this.array[i]=u,c}},{key:"iterator",value:function(){return new sr(this)}},{key:"get",value:function(i){if(i<0||i>=this.size())throw new Ct;return this.array[i]}},{key:"isEmpty",value:function(){return this.array.length===0}},{key:"sort",value:function(i){i?this.array.sort(function(u,c){return i.compare(u,c)}):this.array.sort()}},{key:"size",value:function(){return this.array.length}},{key:"toArray",value:function(){return this.array.slice()}},{key:"remove",value:function(i){for(var u=0,c=this.array.length;u<c;u++)if(this.array[u]===i)return!!this.array.splice(u,1);return!1}},{key:e,value:function(){return this.array.values()}}]),n}(tt,Symbol.iterator),sr=function(){function r(e){s(this,r),this.arrayList=e,this.position=0}return h(r,[{key:"next",value:function(){if(this.position===this.arrayList.size())throw new Te;return this.arrayList.get(this.position++)}},{key:"hasNext",value:function(){return this.position<this.arrayList.size()}},{key:"set",value:function(e){return this.arrayList.set(this.position-1,e)}},{key:"remove",value:function(){this.arrayList.remove(this.arrayList.get(this.position))}}]),r}(),ar=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"clearVisitedEdges",value:function(){for(var e=this._dirEdgeList.iterator();e.hasNext();)e.next().setVisited(!1)}},{key:"getRightmostCoordinate",value:function(){return this._rightMostCoord}},{key:"computeNodeDepth",value:function(e){for(var t=null,n=e.getEdges().iterator();n.hasNext();){var i=n.next();if(i.isVisited()||i.getSym().isVisited()){t=i;break}}if(t===null)throw new st("unable to find edge to compute depths at "+e.getCoordinate());e.getEdges().computeDepths(t);for(var u=e.getEdges().iterator();u.hasNext();){var c=u.next();c.setVisited(!0),this.copySymDepths(c)}}},{key:"computeDepth",value:function(e){this.clearVisitedEdges();var t=this._finder.getEdge();t.getNode(),t.getLabel(),t.setEdgeDepths(U.RIGHT,e),this.copySymDepths(t),this.computeDepths(t)}},{key:"create",value:function(e){this.addReachable(e),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()}},{key:"findResultEdges",value:function(){for(var e=this._dirEdgeList.iterator();e.hasNext();){var t=e.next();t.getDepth(U.RIGHT)>=1&&t.getDepth(U.LEFT)<=0&&!t.isInteriorAreaEdge()&&t.setInResult(!0)}}},{key:"computeDepths",value:function(e){var t=new et,n=new Qn,i=e.getNode();for(n.addLast(i),t.add(i),e.setVisited(!0);!n.isEmpty();){var u=n.removeFirst();t.add(u),this.computeNodeDepth(u);for(var c=u.getEdges().iterator();c.hasNext();){var f=c.next().getSym();if(!f.isVisited()){var d=f.getNode();t.contains(d)||(n.addLast(d),t.add(d))}}}}},{key:"compareTo",value:function(e){var t=e;return this._rightMostCoord.x<t._rightMostCoord.x?-1:this._rightMostCoord.x>t._rightMostCoord.x?1:0}},{key:"getEnvelope",value:function(){if(this._env===null){for(var e=new Ee,t=this._dirEdgeList.iterator();t.hasNext();)for(var n=t.next().getEdge().getCoordinates(),i=0;i<n.length-1;i++)e.expandToInclude(n[i]);this._env=e}return this._env}},{key:"addReachable",value:function(e){var t=new Nn;for(t.add(e);!t.empty();){var n=t.pop();this.add(n,t)}}},{key:"copySymDepths",value:function(e){var t=e.getSym();t.setDepth(U.LEFT,e.getDepth(U.RIGHT)),t.setDepth(U.RIGHT,e.getDepth(U.LEFT))}},{key:"add",value:function(e,t){e.setVisited(!0),this._nodes.add(e);for(var n=e.getEdges().iterator();n.hasNext();){var i=n.next();this._dirEdgeList.add(i);var u=i.getSym().getNode();u.isVisited()||t.push(u)}}},{key:"getNodes",value:function(){return this._nodes}},{key:"getDirectedEdges",value:function(){return this._dirEdgeList}},{key:"interfaces_",get:function(){return[z]}}],[{key:"constructor_",value:function(){this._finder=null,this._dirEdgeList=new ne,this._nodes=new ne,this._rightMostCoord=null,this._env=null,this._finder=new rr}}]),r}(),Kn=function(){function r(){s(this,r)}return h(r,null,[{key:"intersection",value:function(e,t,n,i){var u=e.x<t.x?e.x:t.x,c=e.y<t.y?e.y:t.y,f=e.x>t.x?e.x:t.x,d=e.y>t.y?e.y:t.y,p=n.x<i.x?n.x:i.x,S=n.y<i.y?n.y:i.y,L=n.x>i.x?n.x:i.x,P=n.y>i.y?n.y:i.y,V=((u>p?u:p)+(f<L?f:L))/2,W=((c>S?c:S)+(d<P?d:P))/2,$=e.x-V,ie=e.y-W,le=t.x-V,_e=t.y-W,De=n.x-V,He=n.y-W,lt=i.x-V,St=i.y-W,Yt=ie-_e,gn=le-$,ri=$*_e-le*ie,si=He-St,An=lt-De,Pa=De*St-lt*He,Aa=Yt*An-si*gn,xr=(gn*Pa-An*ri)/Aa,Nr=(si*ri-Yt*Pa)/Aa;return Q.isNaN(xr)||Q.isInfinite(xr)||Q.isNaN(Nr)||Q.isInfinite(Nr)?null:new b(xr+V,Nr+W)}}]),r}(),nt=function(){function r(){s(this,r)}return h(r,null,[{key:"arraycopy",value:function(e,t,n,i,u){for(var c=0,f=t;f<t+u;f++)n[i+c]=e[f],c++}},{key:"getProperty",value:function(e){return{"line.separator":`
25
- `}[e]}}]),r}(),on=function(){function r(){s(this,r)}return h(r,null,[{key:"log10",value:function(e){var t=Math.log(e);return Q.isInfinite(t)||Q.isNaN(t)?t:t/r.LOG_10}},{key:"min",value:function(e,t,n,i){var u=e;return t<u&&(u=t),n<u&&(u=n),i<u&&(u=i),u}},{key:"clamp",value:function(){if(typeof arguments[2]=="number"&&typeof arguments[0]=="number"&&typeof arguments[1]=="number"){var e=arguments[0],t=arguments[1],n=arguments[2];return e<t?t:e>n?n:e}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var i=arguments[0],u=arguments[1],c=arguments[2];return i<u?u:i>c?c:i}}},{key:"wrap",value:function(e,t){return e<0?t- -e%t:e%t}},{key:"max",value:function(){if(arguments.length===3){var e=arguments[0],t=arguments[1],n=arguments[2],i=e;return t>i&&(i=t),n>i&&(i=n),i}if(arguments.length===4){var u=arguments[0],c=arguments[1],f=arguments[2],d=arguments[3],p=u;return c>p&&(p=c),f>p&&(p=f),d>p&&(p=d),p}}},{key:"average",value:function(e,t){return(e+t)/2}}]),r}();on.LOG_10=Math.log(10);var vt=function(){function r(){s(this,r)}return h(r,null,[{key:"segmentToSegment",value:function(e,t,n,i){if(e.equals(t))return r.pointToSegment(e,n,i);if(n.equals(i))return r.pointToSegment(i,e,t);var u=!1;if(Ee.intersects(e,t,n,i)){var c=(t.x-e.x)*(i.y-n.y)-(t.y-e.y)*(i.x-n.x);if(c===0)u=!0;else{var f=(e.y-n.y)*(i.x-n.x)-(e.x-n.x)*(i.y-n.y),d=((e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y))/c,p=f/c;(p<0||p>1||d<0||d>1)&&(u=!0)}}else u=!0;return u?on.min(r.pointToSegment(e,n,i),r.pointToSegment(t,n,i),r.pointToSegment(n,e,t),r.pointToSegment(i,e,t)):0}},{key:"pointToSegment",value:function(e,t,n){if(t.x===n.x&&t.y===n.y)return e.distance(t);var i=(n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y),u=((e.x-t.x)*(n.x-t.x)+(e.y-t.y)*(n.y-t.y))/i;if(u<=0)return e.distance(t);if(u>=1)return e.distance(n);var c=((t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y))/i;return Math.abs(c)*Math.sqrt(i)}},{key:"pointToLinePerpendicular",value:function(e,t,n){var i=(n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y),u=((t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y))/i;return Math.abs(u)*Math.sqrt(i)}},{key:"pointToSegmentString",value:function(e,t){if(t.length===0)throw new O("Line array must contain at least one vertex");for(var n=e.distance(t[0]),i=0;i<t.length-1;i++){var u=r.pointToSegment(e,t[i],t[i+1]);u<n&&(n=u)}return n}}]),r}(),bi=function(){function r(){s(this,r)}return h(r,[{key:"create",value:function(){if(arguments.length===1)arguments[0]instanceof Array||ue(arguments[0],ge);else if(arguments.length!==2){if(arguments.length===3){var e=arguments[0],t=arguments[1];return this.create(e,t)}}}}]),r}(),wn=function(){function r(){s(this,r)}return h(r,[{key:"filter",value:function(e){}}]),r}(),ur=function(){function r(){s(this,r)}return h(r,null,[{key:"ofLine",value:function(e){var t=e.size();if(t<=1)return 0;var n=0,i=new b;e.getCoordinate(0,i);for(var u=i.x,c=i.y,f=1;f<t;f++){e.getCoordinate(f,i);var d=i.x,p=i.y,S=d-u,L=p-c;n+=Math.sqrt(S*S+L*L),u=d,c=p}return n}}]),r}(),Ti=function r(){s(this,r)},Gt=function(){function r(){s(this,r)}return h(r,null,[{key:"copyCoord",value:function(e,t,n,i){for(var u=Math.min(e.getDimension(),n.getDimension()),c=0;c<u;c++)n.setOrdinate(i,c,e.getOrdinate(t,c))}},{key:"isRing",value:function(e){var t=e.size();return t===0||!(t<=3)&&e.getOrdinate(0,ge.X)===e.getOrdinate(t-1,ge.X)&&e.getOrdinate(0,ge.Y)===e.getOrdinate(t-1,ge.Y)}},{key:"scroll",value:function(){if(arguments.length===2){if(ue(arguments[0],ge)&&Number.isInteger(arguments[1])){var e=arguments[0],t=arguments[1];r.scroll(e,t,r.isRing(e))}else if(ue(arguments[0],ge)&&arguments[1]instanceof b){var n=arguments[0],i=arguments[1],u=r.indexOf(i,n);if(u<=0)return null;r.scroll(n,u)}}else if(arguments.length===3){var c=arguments[0],f=arguments[1],d=arguments[2],p=f;if(p<=0)return null;for(var S=c.copy(),L=d?c.size()-1:c.size(),P=0;P<L;P++)for(var V=0;V<c.getDimension();V++)c.setOrdinate(P,V,S.getOrdinate((f+P)%L,V));if(d)for(var W=0;W<c.getDimension();W++)c.setOrdinate(L,W,c.getOrdinate(0,W))}}},{key:"isEqual",value:function(e,t){var n=e.size();if(n!==t.size())return!1;for(var i=Math.min(e.getDimension(),t.getDimension()),u=0;u<n;u++)for(var c=0;c<i;c++){var f=e.getOrdinate(u,c),d=t.getOrdinate(u,c);if(e.getOrdinate(u,c)!==t.getOrdinate(u,c)&&(!Q.isNaN(f)||!Q.isNaN(d)))return!1}return!0}},{key:"minCoordinateIndex",value:function(){if(arguments.length===1){var e=arguments[0];return r.minCoordinateIndex(e,0,e.size()-1)}if(arguments.length===3){for(var t=arguments[0],n=arguments[1],i=arguments[2],u=-1,c=null,f=n;f<=i;f++){var d=t.getCoordinate(f);(c===null||c.compareTo(d)>0)&&(c=d,u=f)}return u}}},{key:"extend",value:function(e,t,n){var i=e.create(n,t.getDimension()),u=t.size();if(r.copy(t,0,i,0,u),u>0)for(var c=u;c<n;c++)r.copy(t,u-1,i,c,1);return i}},{key:"reverse",value:function(e){for(var t=e.size()-1,n=Math.trunc(t/2),i=0;i<=n;i++)r.swap(e,i,t-i)}},{key:"swap",value:function(e,t,n){if(t===n)return null;for(var i=0;i<e.getDimension();i++){var u=e.getOrdinate(t,i);e.setOrdinate(t,i,e.getOrdinate(n,i)),e.setOrdinate(n,i,u)}}},{key:"copy",value:function(e,t,n,i,u){for(var c=0;c<u;c++)r.copyCoord(e,t+c,n,i+c)}},{key:"ensureValidRing",value:function(e,t){var n=t.size();return n===0?t:n<=3?r.createClosedRing(e,t,4):t.getOrdinate(0,ge.X)===t.getOrdinate(n-1,ge.X)&&t.getOrdinate(0,ge.Y)===t.getOrdinate(n-1,ge.Y)?t:r.createClosedRing(e,t,n+1)}},{key:"indexOf",value:function(e,t){for(var n=0;n<t.size();n++)if(e.x===t.getOrdinate(n,ge.X)&&e.y===t.getOrdinate(n,ge.Y))return n;return-1}},{key:"createClosedRing",value:function(e,t,n){var i=e.create(n,t.getDimension()),u=t.size();r.copy(t,0,i,0,u);for(var c=u;c<n;c++)r.copy(t,0,i,c,1);return i}},{key:"minCoordinate",value:function(e){for(var t=null,n=0;n<e.size();n++){var i=e.getCoordinate(n);(t===null||t.compareTo(i)>0)&&(t=i)}return t}}]),r}(),H=function(){function r(){s(this,r)}return h(r,null,[{key:"toDimensionSymbol",value:function(e){switch(e){case r.FALSE:return r.SYM_FALSE;case r.TRUE:return r.SYM_TRUE;case r.DONTCARE:return r.SYM_DONTCARE;case r.P:return r.SYM_P;case r.L:return r.SYM_L;case r.A:return r.SYM_A}throw new O("Unknown dimension value: "+e)}},{key:"toDimensionValue",value:function(e){switch(In.toUpperCase(e)){case r.SYM_FALSE:return r.FALSE;case r.SYM_TRUE:return r.TRUE;case r.SYM_DONTCARE:return r.DONTCARE;case r.SYM_P:return r.P;case r.SYM_L:return r.L;case r.SYM_A:return r.A}throw new O("Unknown dimension symbol: "+e)}}]),r}();H.P=0,H.L=1,H.A=2,H.FALSE=-1,H.TRUE=-2,H.DONTCARE=-3,H.SYM_FALSE="F",H.SYM_TRUE="T",H.SYM_DONTCARE="*",H.SYM_P="0",H.SYM_L="1",H.SYM_A="2";var A=function(){function r(){s(this,r)}return h(r,[{key:"filter",value:function(e){}}]),r}(),Ce=function(){function r(){s(this,r)}return h(r,[{key:"filter",value:function(e,t){}},{key:"isDone",value:function(){}},{key:"isGeometryChanged",value:function(){}}]),r}(),qe=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"computeEnvelopeInternal",value:function(){return this.isEmpty()?new Ee:this._points.expandEnvelope(new Ee)}},{key:"isRing",value:function(){return this.isClosed()&&this.isSimple()}},{key:"getCoordinates",value:function(){return this._points.toCoordinateArray()}},{key:"copyInternal",value:function(){return new t(this._points.copy(),this._factory)}},{key:"equalsExact",value:function(){if(arguments.length===2&&typeof arguments[1]=="number"&&arguments[0]instanceof J){var n=arguments[0],i=arguments[1];if(!this.isEquivalentClass(n))return!1;var u=n;if(this._points.size()!==u._points.size())return!1;for(var c=0;c<this._points.size();c++)if(!this.equal(this._points.getCoordinate(c),u._points.getCoordinate(c),i))return!1;return!0}return I(v(t.prototype),"equalsExact",this).apply(this,arguments)}},{key:"normalize",value:function(){for(var n=0;n<Math.trunc(this._points.size()/2);n++){var i=this._points.size()-1-n;if(!this._points.getCoordinate(n).equals(this._points.getCoordinate(i))){if(this._points.getCoordinate(n).compareTo(this._points.getCoordinate(i))>0){var u=this._points.copy();Gt.reverse(u),this._points=u}return null}}}},{key:"getCoordinate",value:function(){return this.isEmpty()?null:this._points.getCoordinate(0)}},{key:"getBoundaryDimension",value:function(){return this.isClosed()?H.FALSE:0}},{key:"isClosed",value:function(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))}},{key:"reverseInternal",value:function(){var n=this._points.copy();return Gt.reverse(n),this.getFactory().createLineString(n)}},{key:"getEndPoint",value:function(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)}},{key:"getTypeCode",value:function(){return J.TYPECODE_LINESTRING}},{key:"getDimension",value:function(){return 1}},{key:"getLength",value:function(){return ur.ofLine(this._points)}},{key:"getNumPoints",value:function(){return this._points.size()}},{key:"compareToSameClass",value:function(){if(arguments.length===1){for(var n=arguments[0],i=n,u=0,c=0;u<this._points.size()&&c<i._points.size();){var f=this._points.getCoordinate(u).compareTo(i._points.getCoordinate(c));if(f!==0)return f;u++,c++}return u<this._points.size()?1:c<i._points.size()?-1:0}if(arguments.length===2){var d=arguments[0],p=arguments[1],S=d;return p.compare(this._points,S._points)}}},{key:"apply",value:function(){if(ue(arguments[0],wn))for(var n=arguments[0],i=0;i<this._points.size();i++)n.filter(this._points.getCoordinate(i));else if(ue(arguments[0],Ce)){var u=arguments[0];if(this._points.size()===0)return null;for(var c=0;c<this._points.size()&&(u.filter(this._points,c),!u.isDone());c++);u.isGeometryChanged()&&this.geometryChanged()}else if(ue(arguments[0],A)){var f=arguments[0];f.filter(this)}else if(ue(arguments[0],B)){var d=arguments[0];d.filter(this)}}},{key:"getBoundary",value:function(){throw new ae}},{key:"isEquivalentClass",value:function(n){return n instanceof t}},{key:"getCoordinateN",value:function(n){return this._points.getCoordinate(n)}},{key:"getGeometryType",value:function(){return J.TYPENAME_LINESTRING}},{key:"getCoordinateSequence",value:function(){return this._points}},{key:"isEmpty",value:function(){return this._points.size()===0}},{key:"init",value:function(n){if(n===null&&(n=this.getFactory().getCoordinateSequenceFactory().create([])),n.size()===1)throw new O("Invalid number of points in LineString (found "+n.size()+" - must be 0 or >= 2)");this._points=n}},{key:"isCoordinate",value:function(n){for(var i=0;i<this._points.size();i++)if(this._points.getCoordinate(i).equals(n))return!0;return!1}},{key:"getStartPoint",value:function(){return this.isEmpty()?null:this.getPointN(0)}},{key:"getPointN",value:function(n){return this.getFactory().createPoint(this._points.getCoordinate(n))}},{key:"interfaces_",get:function(){return[Ti]}}],[{key:"constructor_",value:function(){if(this._points=null,arguments.length!==0){if(arguments.length===2){var n=arguments[0],i=arguments[1];J.constructor_.call(this,i),this.init(n)}}}}]),t}(J),Qe=function r(){s(this,r)},fe=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"computeEnvelopeInternal",value:function(){if(this.isEmpty())return new Ee;var n=new Ee;return n.expandToInclude(this._coordinates.getX(0),this._coordinates.getY(0)),n}},{key:"getCoordinates",value:function(){return this.isEmpty()?[]:[this.getCoordinate()]}},{key:"copyInternal",value:function(){return new t(this._coordinates.copy(),this._factory)}},{key:"equalsExact",value:function(){if(arguments.length===2&&typeof arguments[1]=="number"&&arguments[0]instanceof J){var n=arguments[0],i=arguments[1];return!!this.isEquivalentClass(n)&&(!(!this.isEmpty()||!n.isEmpty())||this.isEmpty()===n.isEmpty()&&this.equal(n.getCoordinate(),this.getCoordinate(),i))}return I(v(t.prototype),"equalsExact",this).apply(this,arguments)}},{key:"normalize",value:function(){}},{key:"getCoordinate",value:function(){return this._coordinates.size()!==0?this._coordinates.getCoordinate(0):null}},{key:"getBoundaryDimension",value:function(){return H.FALSE}},{key:"reverseInternal",value:function(){return this.getFactory().createPoint(this._coordinates.copy())}},{key:"getTypeCode",value:function(){return J.TYPECODE_POINT}},{key:"getDimension",value:function(){return 0}},{key:"getNumPoints",value:function(){return this.isEmpty()?0:1}},{key:"getX",value:function(){if(this.getCoordinate()===null)throw new IllegalStateException("getX called on empty Point");return this.getCoordinate().x}},{key:"compareToSameClass",value:function(){if(arguments.length===1){var n=arguments[0],i=n;return this.getCoordinate().compareTo(i.getCoordinate())}if(arguments.length===2){var u=arguments[0],c=arguments[1],f=u;return c.compare(this._coordinates,f._coordinates)}}},{key:"apply",value:function(){if(ue(arguments[0],wn)){var n=arguments[0];if(this.isEmpty())return null;n.filter(this.getCoordinate())}else if(ue(arguments[0],Ce)){var i=arguments[0];if(this.isEmpty())return null;i.filter(this._coordinates,0),i.isGeometryChanged()&&this.geometryChanged()}else if(ue(arguments[0],A)){var u=arguments[0];u.filter(this)}else if(ue(arguments[0],B)){var c=arguments[0];c.filter(this)}}},{key:"getBoundary",value:function(){return this.getFactory().createGeometryCollection()}},{key:"getGeometryType",value:function(){return J.TYPENAME_POINT}},{key:"getCoordinateSequence",value:function(){return this._coordinates}},{key:"getY",value:function(){if(this.getCoordinate()===null)throw new IllegalStateException("getY called on empty Point");return this.getCoordinate().y}},{key:"isEmpty",value:function(){return this._coordinates.size()===0}},{key:"init",value:function(n){n===null&&(n=this.getFactory().getCoordinateSequenceFactory().create([])),he.isTrue(n.size()<=1),this._coordinates=n}},{key:"isSimple",value:function(){return!0}},{key:"interfaces_",get:function(){return[Qe]}}],[{key:"constructor_",value:function(){this._coordinates=null;var n=arguments[0],i=arguments[1];J.constructor_.call(this,i),this.init(n)}}]),t}(J),Ke=function(){function r(){s(this,r)}return h(r,null,[{key:"ofRing",value:function(){if(arguments[0]instanceof Array){var e=arguments[0];return Math.abs(r.ofRingSigned(e))}if(ue(arguments[0],ge)){var t=arguments[0];return Math.abs(r.ofRingSigned(t))}}},{key:"ofRingSigned",value:function(){if(arguments[0]instanceof Array){var e=arguments[0];if(e.length<3)return 0;for(var t=0,n=e[0].x,i=1;i<e.length-1;i++){var u=e[i].x-n,c=e[i+1].y,f=e[i-1].y;t+=u*(f-c)}return t/2}if(ue(arguments[0],ge)){var d=arguments[0],p=d.size();if(p<3)return 0;var S=new b,L=new b,P=new b;d.getCoordinate(0,L),d.getCoordinate(1,P);var V=L.x;P.x-=V;for(var W=0,$=1;$<p-1;$++)S.y=L.y,L.x=P.x,L.y=P.y,d.getCoordinate($+1,P),P.x-=V,W+=L.x*(S.y-P.y);return W/2}}}]),r}(),yt=function(){function r(){s(this,r)}return h(r,null,[{key:"sort",value:function(){var e=arguments,t=arguments[0];if(arguments.length===1)t.sort(function(V,W){return V.compareTo(W)});else if(arguments.length===2)t.sort(function(V,W){return e[1].compare(V,W)});else if(arguments.length===3){var n=t.slice(arguments[1],arguments[2]);n.sort();var i=t.slice(0,arguments[1]).concat(n,t.slice(arguments[2],t.length));t.splice(0,t.length);var u,c=F(i);try{for(c.s();!(u=c.n()).done;){var f=u.value;t.push(f)}}catch(V){c.e(V)}finally{c.f()}}else if(arguments.length===4){var d=t.slice(arguments[1],arguments[2]);d.sort(function(V,W){return e[3].compare(V,W)});var p=t.slice(0,arguments[1]).concat(d,t.slice(arguments[2],t.length));t.splice(0,t.length);var S,L=F(p);try{for(L.s();!(S=L.n()).done;){var P=S.value;t.push(P)}}catch(V){L.e(V)}finally{L.f()}}}},{key:"asList",value:function(e){var t,n=new ne,i=F(e);try{for(i.s();!(t=i.n()).done;){var u=t.value;n.add(u)}}catch(c){i.e(c)}finally{i.f()}return n}},{key:"copyOf",value:function(e,t){return e.slice(0,t)}}]),r}(),Sn=function r(){s(this,r)},$t=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"computeEnvelopeInternal",value:function(){return this._shell.getEnvelopeInternal()}},{key:"getCoordinates",value:function(){if(this.isEmpty())return[];for(var n=new Array(this.getNumPoints()).fill(null),i=-1,u=this._shell.getCoordinates(),c=0;c<u.length;c++)n[++i]=u[c];for(var f=0;f<this._holes.length;f++)for(var d=this._holes[f].getCoordinates(),p=0;p<d.length;p++)n[++i]=d[p];return n}},{key:"getArea",value:function(){var n=0;n+=Ke.ofRing(this._shell.getCoordinateSequence());for(var i=0;i<this._holes.length;i++)n-=Ke.ofRing(this._holes[i].getCoordinateSequence());return n}},{key:"copyInternal",value:function(){for(var n=this._shell.copy(),i=new Array(this._holes.length).fill(null),u=0;u<this._holes.length;u++)i[u]=this._holes[u].copy();return new t(n,i,this._factory)}},{key:"isRectangle",value:function(){if(this.getNumInteriorRing()!==0||this._shell===null||this._shell.getNumPoints()!==5)return!1;for(var n=this._shell.getCoordinateSequence(),i=this.getEnvelopeInternal(),u=0;u<5;u++){var c=n.getX(u);if(c!==i.getMinX()&&c!==i.getMaxX())return!1;var f=n.getY(u);if(f!==i.getMinY()&&f!==i.getMaxY())return!1}for(var d=n.getX(0),p=n.getY(0),S=1;S<=4;S++){var L=n.getX(S),P=n.getY(S);if(L!==d==(P!==p))return!1;d=L,p=P}return!0}},{key:"equalsExact",value:function(){if(arguments.length===2&&typeof arguments[1]=="number"&&arguments[0]instanceof J){var n=arguments[0],i=arguments[1];if(!this.isEquivalentClass(n))return!1;var u=n,c=this._shell,f=u._shell;if(!c.equalsExact(f,i)||this._holes.length!==u._holes.length)return!1;for(var d=0;d<this._holes.length;d++)if(!this._holes[d].equalsExact(u._holes[d],i))return!1;return!0}return I(v(t.prototype),"equalsExact",this).apply(this,arguments)}},{key:"normalize",value:function(){if(arguments.length===0){this._shell=this.normalized(this._shell,!0);for(var n=0;n<this._holes.length;n++)this._holes[n]=this.normalized(this._holes[n],!1);yt.sort(this._holes)}else if(arguments.length===2){var i=arguments[0],u=arguments[1];if(i.isEmpty())return null;var c=i.getCoordinateSequence(),f=Gt.minCoordinateIndex(c,0,c.size()-2);Gt.scroll(c,f,!0),re.isCCW(c)===u&&Gt.reverse(c)}}},{key:"getCoordinate",value:function(){return this._shell.getCoordinate()}},{key:"getNumInteriorRing",value:function(){return this._holes.length}},{key:"getBoundaryDimension",value:function(){return 1}},{key:"reverseInternal",value:function(){for(var n=this.getExteriorRing().reverse(),i=new Array(this.getNumInteriorRing()).fill(null),u=0;u<i.length;u++)i[u]=this.getInteriorRingN(u).reverse();return this.getFactory().createPolygon(n,i)}},{key:"getTypeCode",value:function(){return J.TYPECODE_POLYGON}},{key:"getDimension",value:function(){return 2}},{key:"getLength",value:function(){var n=0;n+=this._shell.getLength();for(var i=0;i<this._holes.length;i++)n+=this._holes[i].getLength();return n}},{key:"getNumPoints",value:function(){for(var n=this._shell.getNumPoints(),i=0;i<this._holes.length;i++)n+=this._holes[i].getNumPoints();return n}},{key:"convexHull",value:function(){return this.getExteriorRing().convexHull()}},{key:"normalized",value:function(n,i){var u=n.copy();return this.normalize(u,i),u}},{key:"compareToSameClass",value:function(){if(arguments.length===1){var n=arguments[0],i=this._shell,u=n._shell;return i.compareToSameClass(u)}if(arguments.length===2){var c=arguments[0],f=arguments[1],d=c,p=this._shell,S=d._shell,L=p.compareToSameClass(S,f);if(L!==0)return L;for(var P=this.getNumInteriorRing(),V=d.getNumInteriorRing(),W=0;W<P&&W<V;){var $=this.getInteriorRingN(W),ie=d.getInteriorRingN(W),le=$.compareToSameClass(ie,f);if(le!==0)return le;W++}return W<P?1:W<V?-1:0}}},{key:"apply",value:function(){if(ue(arguments[0],wn)){var n=arguments[0];this._shell.apply(n);for(var i=0;i<this._holes.length;i++)this._holes[i].apply(n)}else if(ue(arguments[0],Ce)){var u=arguments[0];if(this._shell.apply(u),!u.isDone())for(var c=0;c<this._holes.length&&(this._holes[c].apply(u),!u.isDone());c++);u.isGeometryChanged()&&this.geometryChanged()}else if(ue(arguments[0],A)){var f=arguments[0];f.filter(this)}else if(ue(arguments[0],B)){var d=arguments[0];d.filter(this),this._shell.apply(d);for(var p=0;p<this._holes.length;p++)this._holes[p].apply(d)}}},{key:"getBoundary",value:function(){if(this.isEmpty())return this.getFactory().createMultiLineString();var n=new Array(this._holes.length+1).fill(null);n[0]=this._shell;for(var i=0;i<this._holes.length;i++)n[i+1]=this._holes[i];return n.length<=1?this.getFactory().createLinearRing(n[0].getCoordinateSequence()):this.getFactory().createMultiLineString(n)}},{key:"getGeometryType",value:function(){return J.TYPENAME_POLYGON}},{key:"getExteriorRing",value:function(){return this._shell}},{key:"isEmpty",value:function(){return this._shell.isEmpty()}},{key:"getInteriorRingN",value:function(n){return this._holes[n]}},{key:"interfaces_",get:function(){return[Sn]}}],[{key:"constructor_",value:function(){this._shell=null,this._holes=null;var n=arguments[0],i=arguments[1],u=arguments[2];if(J.constructor_.call(this,u),n===null&&(n=this.getFactory().createLinearRing()),i===null&&(i=[]),J.hasNullElements(i))throw new O("holes must not contain null elements");if(n.isEmpty()&&J.hasNonEmptyElements(i))throw new O("shell is empty but holes are not");this._shell=n,this._holes=i}}]),t}(J),Ln=function(r){g(t,r);var e=E(t);function t(){return s(this,t),e.apply(this,arguments)}return t}(jn),ea=function(r){g(t,r);var e=E(t);function t(n){var i;return s(this,t),(i=e.call(this)).array=[],n instanceof oe&&i.addAll(n),i}return h(t,[{key:"contains",value:function(n){var i,u=F(this.array);try{for(u.s();!(i=u.n()).done;)if(i.value.compareTo(n)===0)return!0}catch(c){u.e(c)}finally{u.f()}return!1}},{key:"add",value:function(n){if(this.contains(n))return!1;for(var i=0,u=this.array.length;i<u;i++)if(this.array[i].compareTo(n)===1)return!!this.array.splice(i,0,n);return this.array.push(n),!0}},{key:"addAll",value:function(n){var i,u=F(n);try{for(u.s();!(i=u.n()).done;){var c=i.value;this.add(c)}}catch(f){u.e(f)}finally{u.f()}return!0}},{key:"remove",value:function(){throw new ae}},{key:"size",value:function(){return this.array.length}},{key:"isEmpty",value:function(){return this.array.length===0}},{key:"toArray",value:function(){return this.array.slice()}},{key:"iterator",value:function(){return new ol(this.array)}}]),t}(Ln),ol=function(){function r(e){s(this,r),this.array=e,this.position=0}return h(r,[{key:"next",value:function(){if(this.position===this.array.length)throw new Te;return this.array[this.position++]}},{key:"hasNext",value:function(){return this.position<this.array.length}},{key:"remove",value:function(){throw new ae}}]),r}(),at=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"computeEnvelopeInternal",value:function(){for(var n=new Ee,i=0;i<this._geometries.length;i++)n.expandToInclude(this._geometries[i].getEnvelopeInternal());return n}},{key:"getGeometryN",value:function(n){return this._geometries[n]}},{key:"getCoordinates",value:function(){for(var n=new Array(this.getNumPoints()).fill(null),i=-1,u=0;u<this._geometries.length;u++)for(var c=this._geometries[u].getCoordinates(),f=0;f<c.length;f++)n[++i]=c[f];return n}},{key:"getArea",value:function(){for(var n=0,i=0;i<this._geometries.length;i++)n+=this._geometries[i].getArea();return n}},{key:"copyInternal",value:function(){for(var n=new Array(this._geometries.length).fill(null),i=0;i<n.length;i++)n[i]=this._geometries[i].copy();return new t(n,this._factory)}},{key:"equalsExact",value:function(){if(arguments.length===2&&typeof arguments[1]=="number"&&arguments[0]instanceof J){var n=arguments[0],i=arguments[1];if(!this.isEquivalentClass(n))return!1;var u=n;if(this._geometries.length!==u._geometries.length)return!1;for(var c=0;c<this._geometries.length;c++)if(!this._geometries[c].equalsExact(u._geometries[c],i))return!1;return!0}return I(v(t.prototype),"equalsExact",this).apply(this,arguments)}},{key:"normalize",value:function(){for(var n=0;n<this._geometries.length;n++)this._geometries[n].normalize();yt.sort(this._geometries)}},{key:"getCoordinate",value:function(){return this.isEmpty()?null:this._geometries[0].getCoordinate()}},{key:"getBoundaryDimension",value:function(){for(var n=H.FALSE,i=0;i<this._geometries.length;i++)n=Math.max(n,this._geometries[i].getBoundaryDimension());return n}},{key:"reverseInternal",value:function(){for(var n=this._geometries.length,i=new ne(n),u=0;u<n;u++)i.add(this._geometries[u].reverse());return this.getFactory().buildGeometry(i)}},{key:"getTypeCode",value:function(){return J.TYPECODE_GEOMETRYCOLLECTION}},{key:"getDimension",value:function(){for(var n=H.FALSE,i=0;i<this._geometries.length;i++)n=Math.max(n,this._geometries[i].getDimension());return n}},{key:"getLength",value:function(){for(var n=0,i=0;i<this._geometries.length;i++)n+=this._geometries[i].getLength();return n}},{key:"getNumPoints",value:function(){for(var n=0,i=0;i<this._geometries.length;i++)n+=this._geometries[i].getNumPoints();return n}},{key:"getNumGeometries",value:function(){return this._geometries.length}},{key:"compareToSameClass",value:function(){if(arguments.length===1){var n=arguments[0],i=new ea(yt.asList(this._geometries)),u=new ea(yt.asList(n._geometries));return this.compare(i,u)}if(arguments.length===2){for(var c=arguments[0],f=arguments[1],d=c,p=this.getNumGeometries(),S=d.getNumGeometries(),L=0;L<p&&L<S;){var P=this.getGeometryN(L),V=d.getGeometryN(L),W=P.compareToSameClass(V,f);if(W!==0)return W;L++}return L<p?1:L<S?-1:0}}},{key:"apply",value:function(){if(ue(arguments[0],wn))for(var n=arguments[0],i=0;i<this._geometries.length;i++)this._geometries[i].apply(n);else if(ue(arguments[0],Ce)){var u=arguments[0];if(this._geometries.length===0)return null;for(var c=0;c<this._geometries.length&&(this._geometries[c].apply(u),!u.isDone());c++);u.isGeometryChanged()&&this.geometryChanged()}else if(ue(arguments[0],A)){var f=arguments[0];f.filter(this);for(var d=0;d<this._geometries.length;d++)this._geometries[d].apply(f)}else if(ue(arguments[0],B)){var p=arguments[0];p.filter(this);for(var S=0;S<this._geometries.length;S++)this._geometries[S].apply(p)}}},{key:"getBoundary",value:function(){return J.checkNotGeometryCollection(this),he.shouldNeverReachHere(),null}},{key:"getGeometryType",value:function(){return J.TYPENAME_GEOMETRYCOLLECTION}},{key:"isEmpty",value:function(){for(var n=0;n<this._geometries.length;n++)if(!this._geometries[n].isEmpty())return!1;return!0}}],[{key:"constructor_",value:function(){if(this._geometries=null,arguments.length!==0){if(arguments.length===2){var n=arguments[0],i=arguments[1];if(J.constructor_.call(this,i),n===null&&(n=[]),J.hasNullElements(n))throw new O("geometries must not contain null elements");this._geometries=n}}}}]),t}(J),or=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"copyInternal",value:function(){for(var n=new Array(this._geometries.length).fill(null),i=0;i<n.length;i++)n[i]=this._geometries[i].copy();return new t(n,this._factory)}},{key:"isValid",value:function(){return!0}},{key:"equalsExact",value:function(){if(arguments.length===2&&typeof arguments[1]=="number"&&arguments[0]instanceof J){var n=arguments[0],i=arguments[1];return!!this.isEquivalentClass(n)&&I(v(t.prototype),"equalsExact",this).call(this,n,i)}return I(v(t.prototype),"equalsExact",this).apply(this,arguments)}},{key:"getCoordinate",value:function(){if(arguments.length===1&&Number.isInteger(arguments[0])){var n=arguments[0];return this._geometries[n].getCoordinate()}return I(v(t.prototype),"getCoordinate",this).apply(this,arguments)}},{key:"getBoundaryDimension",value:function(){return H.FALSE}},{key:"getTypeCode",value:function(){return J.TYPECODE_MULTIPOINT}},{key:"getDimension",value:function(){return 0}},{key:"getBoundary",value:function(){return this.getFactory().createGeometryCollection()}},{key:"getGeometryType",value:function(){return J.TYPENAME_MULTIPOINT}},{key:"interfaces_",get:function(){return[Qe]}}],[{key:"constructor_",value:function(){var n=arguments[0],i=arguments[1];at.constructor_.call(this,n,i)}}]),t}(at),Jn=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"copyInternal",value:function(){return new t(this._points.copy(),this._factory)}},{key:"getBoundaryDimension",value:function(){return H.FALSE}},{key:"isClosed",value:function(){return!!this.isEmpty()||I(v(t.prototype),"isClosed",this).call(this)}},{key:"reverseInternal",value:function(){var n=this._points.copy();return Gt.reverse(n),this.getFactory().createLinearRing(n)}},{key:"getTypeCode",value:function(){return J.TYPECODE_LINEARRING}},{key:"validateConstruction",value:function(){if(!this.isEmpty()&&!I(v(t.prototype),"isClosed",this).call(this))throw new O("Points of LinearRing do not form a closed linestring");if(this.getCoordinateSequence().size()>=1&&this.getCoordinateSequence().size()<t.MINIMUM_VALID_SIZE)throw new O("Invalid number of points in LinearRing (found "+this.getCoordinateSequence().size()+" - must be 0 or >= 4)")}},{key:"getGeometryType",value:function(){return J.TYPENAME_LINEARRING}}],[{key:"constructor_",value:function(){var n=arguments[0],i=arguments[1];qe.constructor_.call(this,n,i),this.validateConstruction()}}]),t}(qe);Jn.MINIMUM_VALID_SIZE=4;var ln=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"setOrdinate",value:function(n,i){switch(n){case t.X:this.x=i;break;case t.Y:this.y=i;break;default:throw new O("Invalid ordinate index: "+n)}}},{key:"getZ",value:function(){return b.NULL_ORDINATE}},{key:"getOrdinate",value:function(n){switch(n){case t.X:return this.x;case t.Y:return this.y}throw new O("Invalid ordinate index: "+n)}},{key:"setZ",value:function(n){throw new O("CoordinateXY dimension 2 does not support z-ordinate")}},{key:"copy",value:function(){return new t(this)}},{key:"toString",value:function(){return"("+this.x+", "+this.y+")"}},{key:"setCoordinate",value:function(n){this.x=n.x,this.y=n.y,this.z=n.getZ()}}],[{key:"constructor_",value:function(){if(arguments.length===0)b.constructor_.call(this);else if(arguments.length===1){if(arguments[0]instanceof t){var n=arguments[0];b.constructor_.call(this,n.x,n.y)}else if(arguments[0]instanceof b){var i=arguments[0];b.constructor_.call(this,i.x,i.y)}}else if(arguments.length===2){var u=arguments[0],c=arguments[1];b.constructor_.call(this,u,c,b.NULL_ORDINATE)}}}]),t}(b);ln.X=0,ln.Y=1,ln.Z=-1,ln.M=-1;var hn=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"getM",value:function(){return this._m}},{key:"setOrdinate",value:function(n,i){switch(n){case t.X:this.x=i;break;case t.Y:this.y=i;break;case t.M:this._m=i;break;default:throw new O("Invalid ordinate index: "+n)}}},{key:"setM",value:function(n){this._m=n}},{key:"getZ",value:function(){return b.NULL_ORDINATE}},{key:"getOrdinate",value:function(n){switch(n){case t.X:return this.x;case t.Y:return this.y;case t.M:return this._m}throw new O("Invalid ordinate index: "+n)}},{key:"setZ",value:function(n){throw new O("CoordinateXY dimension 2 does not support z-ordinate")}},{key:"copy",value:function(){return new t(this)}},{key:"toString",value:function(){return"("+this.x+", "+this.y+" m="+this.getM()+")"}},{key:"setCoordinate",value:function(n){this.x=n.x,this.y=n.y,this.z=n.getZ(),this._m=n.getM()}}],[{key:"constructor_",value:function(){if(this._m=null,arguments.length===0)b.constructor_.call(this),this._m=0;else if(arguments.length===1){if(arguments[0]instanceof t){var n=arguments[0];b.constructor_.call(this,n.x,n.y),this._m=n._m}else if(arguments[0]instanceof b){var i=arguments[0];b.constructor_.call(this,i.x,i.y),this._m=this.getM()}}else if(arguments.length===3){var u=arguments[0],c=arguments[1],f=arguments[2];b.constructor_.call(this,u,c,b.NULL_ORDINATE),this._m=f}}}]),t}(b);hn.X=0,hn.Y=1,hn.Z=-1,hn.M=2;var lr=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"getM",value:function(){return this._m}},{key:"setOrdinate",value:function(n,i){switch(n){case b.X:this.x=i;break;case b.Y:this.y=i;break;case b.Z:this.z=i;break;case b.M:this._m=i;break;default:throw new O("Invalid ordinate index: "+n)}}},{key:"setM",value:function(n){this._m=n}},{key:"getOrdinate",value:function(n){switch(n){case b.X:return this.x;case b.Y:return this.y;case b.Z:return this.getZ();case b.M:return this.getM()}throw new O("Invalid ordinate index: "+n)}},{key:"copy",value:function(){return new t(this)}},{key:"toString",value:function(){return"("+this.x+", "+this.y+", "+this.getZ()+" m="+this.getM()+")"}},{key:"setCoordinate",value:function(n){this.x=n.x,this.y=n.y,this.z=n.getZ(),this._m=n.getM()}}],[{key:"constructor_",value:function(){if(this._m=null,arguments.length===0)b.constructor_.call(this),this._m=0;else if(arguments.length===1){if(arguments[0]instanceof t){var n=arguments[0];b.constructor_.call(this,n),this._m=n._m}else if(arguments[0]instanceof b){var i=arguments[0];b.constructor_.call(this,i),this._m=this.getM()}}else if(arguments.length===4){var u=arguments[0],c=arguments[1],f=arguments[2],d=arguments[3];b.constructor_.call(this,u,c,f),this._m=d}}}]),t}(b),Ci=function(){function r(){s(this,r)}return h(r,null,[{key:"measures",value:function(e){return e instanceof ln?0:e instanceof hn||e instanceof lr?1:0}},{key:"dimension",value:function(e){return e instanceof ln?2:e instanceof hn?3:e instanceof lr?4:3}},{key:"create",value:function(){if(arguments.length===1){var e=arguments[0];return r.create(e,0)}if(arguments.length===2){var t=arguments[0],n=arguments[1];return t===2?new ln:t===3&&n===0?new b:t===3&&n===1?new hn:t===4&&n===1?new lr:new b}}}]),r}(),$n=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"getCoordinate",value:function(n){return this.get(n)}},{key:"addAll",value:function(){if(arguments.length===2&&typeof arguments[1]=="boolean"&&ue(arguments[0],oe)){for(var n=arguments[0],i=arguments[1],u=!1,c=n.iterator();c.hasNext();)this.add(c.next(),i),u=!0;return u}return I(v(t.prototype),"addAll",this).apply(this,arguments)}},{key:"clone",value:function(){for(var n=I(v(t.prototype),"clone",this).call(this),i=0;i<this.size();i++)n.add(i,this.get(i).clone());return n}},{key:"toCoordinateArray",value:function(){if(arguments.length===0)return this.toArray(t.coordArrayType);if(arguments.length===1){var n=arguments[0];if(n)return this.toArray(t.coordArrayType);for(var i=this.size(),u=new Array(i).fill(null),c=0;c<i;c++)u[c]=this.get(i-c-1);return u}}},{key:"add",value:function(){if(arguments.length===1){var n=arguments[0];return I(v(t.prototype),"add",this).call(this,n)}if(arguments.length===2){if(arguments[0]instanceof Array&&typeof arguments[1]=="boolean"){var i=arguments[0],u=arguments[1];return this.add(i,u,!0),!0}if(arguments[0]instanceof b&&typeof arguments[1]=="boolean"){var c=arguments[0],f=arguments[1];if(!f&&this.size()>=1){var d=this.get(this.size()-1);if(d.equals2D(c))return null}I(v(t.prototype),"add",this).call(this,c)}else if(arguments[0]instanceof Object&&typeof arguments[1]=="boolean"){var p=arguments[0],S=arguments[1];return this.add(p,S),!0}}else if(arguments.length===3){if(typeof arguments[2]=="boolean"&&arguments[0]instanceof Array&&typeof arguments[1]=="boolean"){var L=arguments[0],P=arguments[1],V=arguments[2];if(V)for(var W=0;W<L.length;W++)this.add(L[W],P);else for(var $=L.length-1;$>=0;$--)this.add(L[$],P);return!0}if(typeof arguments[2]=="boolean"&&Number.isInteger(arguments[0])&&arguments[1]instanceof b){var ie=arguments[0],le=arguments[1],_e=arguments[2];if(!_e){var De=this.size();if(De>0){if(ie>0){var He=this.get(ie-1);if(He.equals2D(le))return null}if(ie<De){var lt=this.get(ie);if(lt.equals2D(le))return null}}}I(v(t.prototype),"add",this).call(this,ie,le)}}else if(arguments.length===4){var St=arguments[0],Yt=arguments[1],gn=arguments[2],ri=arguments[3],si=1;gn>ri&&(si=-1);for(var An=gn;An!==ri;An+=si)this.add(St[An],Yt);return!0}}},{key:"closeRing",value:function(){if(this.size()>0){var n=this.get(0).copy();this.add(n,!1)}}}],[{key:"constructor_",value:function(){if(arguments.length!==0){if(arguments.length===1){var n=arguments[0];this.ensureCapacity(n.length),this.add(n,!0)}else if(arguments.length===2){var i=arguments[0],u=arguments[1];this.ensureCapacity(i.length),this.add(i,u)}}}}]),t}(ne);$n.coordArrayType=new Array(0).fill(null);var ze=function(){function r(){s(this,r)}return h(r,null,[{key:"isRing",value:function(e){return!(e.length<4)&&!!e[0].equals2D(e[e.length-1])}},{key:"ptNotInList",value:function(e,t){for(var n=0;n<e.length;n++){var i=e[n];if(r.indexOf(i,t)<0)return i}return null}},{key:"scroll",value:function(e,t){var n=r.indexOf(t,e);if(n<0)return null;var i=new Array(e.length).fill(null);nt.arraycopy(e,n,i,0,e.length-n),nt.arraycopy(e,0,i,e.length-n,n),nt.arraycopy(i,0,e,0,e.length)}},{key:"equals",value:function(){if(arguments.length===2){var e=arguments[0],t=arguments[1];if(e===t)return!0;if(e===null||t===null||e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!e[n].equals(t[n]))return!1;return!0}if(arguments.length===3){var i=arguments[0],u=arguments[1],c=arguments[2];if(i===u)return!0;if(i===null||u===null||i.length!==u.length)return!1;for(var f=0;f<i.length;f++)if(c.compare(i[f],u[f])!==0)return!1;return!0}}},{key:"intersection",value:function(e,t){for(var n=new $n,i=0;i<e.length;i++)t.intersects(e[i])&&n.add(e[i],!0);return n.toCoordinateArray()}},{key:"measures",value:function(e){if(e===null||e.length===0)return 0;var t,n=0,i=F(e);try{for(i.s();!(t=i.n()).done;){var u=t.value;n=Math.max(n,Ci.measures(u))}}catch(c){i.e(c)}finally{i.f()}return n}},{key:"hasRepeatedPoints",value:function(e){for(var t=1;t<e.length;t++)if(e[t-1].equals(e[t]))return!0;return!1}},{key:"removeRepeatedPoints",value:function(e){return r.hasRepeatedPoints(e)?new $n(e,!1).toCoordinateArray():e}},{key:"reverse",value:function(e){for(var t=e.length-1,n=Math.trunc(t/2),i=0;i<=n;i++){var u=e[i];e[i]=e[t-i],e[t-i]=u}}},{key:"removeNull",value:function(e){for(var t=0,n=0;n<e.length;n++)e[n]!==null&&t++;var i=new Array(t).fill(null);if(t===0)return i;for(var u=0,c=0;c<e.length;c++)e[c]!==null&&(i[u++]=e[c]);return i}},{key:"copyDeep",value:function(){if(arguments.length===1){for(var e=arguments[0],t=new Array(e.length).fill(null),n=0;n<e.length;n++)t[n]=e[n].copy();return t}if(arguments.length===5)for(var i=arguments[0],u=arguments[1],c=arguments[2],f=arguments[3],d=arguments[4],p=0;p<d;p++)c[f+p]=i[u+p].copy()}},{key:"isEqualReversed",value:function(e,t){for(var n=0;n<e.length;n++){var i=e[n],u=t[e.length-n-1];if(i.compareTo(u)!==0)return!1}return!0}},{key:"envelope",value:function(e){for(var t=new Ee,n=0;n<e.length;n++)t.expandToInclude(e[n]);return t}},{key:"toCoordinateArray",value:function(e){return e.toArray(r.coordArrayType)}},{key:"dimension",value:function(e){if(e===null||e.length===0)return 3;var t,n=0,i=F(e);try{for(i.s();!(t=i.n()).done;){var u=t.value;n=Math.max(n,Ci.dimension(u))}}catch(c){i.e(c)}finally{i.f()}return n}},{key:"atLeastNCoordinatesOrNothing",value:function(e,t){return t.length>=e?t:[]}},{key:"indexOf",value:function(e,t){for(var n=0;n<t.length;n++)if(e.equals(t[n]))return n;return-1}},{key:"increasingDirection",value:function(e){for(var t=0;t<Math.trunc(e.length/2);t++){var n=e.length-1-t,i=e[t].compareTo(e[n]);if(i!==0)return i}return 1}},{key:"compare",value:function(e,t){for(var n=0;n<e.length&&n<t.length;){var i=e[n].compareTo(t[n]);if(i!==0)return i;n++}return n<t.length?-1:n<e.length?1:0}},{key:"minCoordinate",value:function(e){for(var t=null,n=0;n<e.length;n++)(t===null||t.compareTo(e[n])>0)&&(t=e[n]);return t}},{key:"extract",value:function(e,t,n){t=on.clamp(t,0,e.length);var i=(n=on.clamp(n,-1,e.length))-t+1;n<0&&(i=0),t>=e.length&&(i=0),n<t&&(i=0);var u=new Array(i).fill(null);if(i===0)return u;for(var c=0,f=t;f<=n;f++)u[c++]=e[f];return u}}]),r}(),ll=function(){function r(){s(this,r)}return h(r,[{key:"compare",value:function(e,t){var n=e,i=t;return ze.compare(n,i)}},{key:"interfaces_",get:function(){return[Ge]}}]),r}(),hl=function(){function r(){s(this,r)}return h(r,[{key:"compare",value:function(e,t){var n=e,i=t;if(n.length<i.length)return-1;if(n.length>i.length)return 1;if(n.length===0)return 0;var u=ze.compare(n,i);return ze.isEqualReversed(n,i)?0:u}},{key:"OLDcompare",value:function(e,t){var n=e,i=t;if(n.length<i.length)return-1;if(n.length>i.length)return 1;if(n.length===0)return 0;for(var u=ze.increasingDirection(n),c=ze.increasingDirection(i),f=u>0?0:n.length-1,d=c>0?0:n.length-1,p=0;p<n.length;p++){var S=n[f].compareTo(i[d]);if(S!==0)return S;f+=u,d+=c}return 0}},{key:"interfaces_",get:function(){return[Ge]}}]),r}();ze.ForwardComparator=ll,ze.BidirectionalComparator=hl,ze.coordArrayType=new Array(0).fill(null);var Ri=function(){function r(e){s(this,r),this.str=e}return h(r,[{key:"append",value:function(e){this.str+=e}},{key:"setCharAt",value:function(e,t){this.str=this.str.substr(0,e)+t+this.str.substr(e+1)}},{key:"toString",value:function(){return this.str}}]),r}(),ei=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getM",value:function(e){return this.hasM()?this._coordinates[e].getM():Q.NaN}},{key:"setOrdinate",value:function(e,t,n){switch(t){case ge.X:this._coordinates[e].x=n;break;case ge.Y:this._coordinates[e].y=n;break;default:this._coordinates[e].setOrdinate(t,n)}}},{key:"getZ",value:function(e){return this.hasZ()?this._coordinates[e].getZ():Q.NaN}},{key:"size",value:function(){return this._coordinates.length}},{key:"getOrdinate",value:function(e,t){switch(t){case ge.X:return this._coordinates[e].x;case ge.Y:return this._coordinates[e].y;default:return this._coordinates[e].getOrdinate(t)}}},{key:"getCoordinate",value:function(){if(arguments.length===1){var e=arguments[0];return this._coordinates[e]}if(arguments.length===2){var t=arguments[0],n=arguments[1];n.setCoordinate(this._coordinates[t])}}},{key:"getCoordinateCopy",value:function(e){var t=this.createCoordinate();return t.setCoordinate(this._coordinates[e]),t}},{key:"createCoordinate",value:function(){return Ci.create(this.getDimension(),this.getMeasures())}},{key:"getDimension",value:function(){return this._dimension}},{key:"getX",value:function(e){return this._coordinates[e].x}},{key:"getMeasures",value:function(){return this._measures}},{key:"expandEnvelope",value:function(e){for(var t=0;t<this._coordinates.length;t++)e.expandToInclude(this._coordinates[t]);return e}},{key:"copy",value:function(){for(var e=new Array(this.size()).fill(null),t=0;t<this._coordinates.length;t++){var n=this.createCoordinate();n.setCoordinate(this._coordinates[t]),e[t]=n}return new r(e,this._dimension,this._measures)}},{key:"toString",value:function(){if(this._coordinates.length>0){var e=new Ri(17*this._coordinates.length);e.append("("),e.append(this._coordinates[0]);for(var t=1;t<this._coordinates.length;t++)e.append(", "),e.append(this._coordinates[t]);return e.append(")"),e.toString()}return"()"}},{key:"getY",value:function(e){return this._coordinates[e].y}},{key:"toCoordinateArray",value:function(){return this._coordinates}},{key:"interfaces_",get:function(){return[ge,G]}}],[{key:"constructor_",value:function(){if(this._dimension=3,this._measures=0,this._coordinates=null,arguments.length===1){if(arguments[0]instanceof Array){var e=arguments[0];r.constructor_.call(this,e,ze.dimension(e),ze.measures(e))}else if(Number.isInteger(arguments[0])){var t=arguments[0];this._coordinates=new Array(t).fill(null);for(var n=0;n<t;n++)this._coordinates[n]=new b}else if(ue(arguments[0],ge)){var i=arguments[0];if(i===null)return this._coordinates=new Array(0).fill(null),null;this._dimension=i.getDimension(),this._measures=i.getMeasures(),this._coordinates=new Array(i.size()).fill(null);for(var u=0;u<this._coordinates.length;u++)this._coordinates[u]=i.getCoordinateCopy(u)}}else if(arguments.length===2){if(arguments[0]instanceof Array&&Number.isInteger(arguments[1])){var c=arguments[0],f=arguments[1];r.constructor_.call(this,c,f,ze.measures(c))}else if(Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var d=arguments[0],p=arguments[1];this._coordinates=new Array(d).fill(null),this._dimension=p;for(var S=0;S<d;S++)this._coordinates[S]=Ci.create(p)}}else if(arguments.length===3){if(Number.isInteger(arguments[2])&&arguments[0]instanceof Array&&Number.isInteger(arguments[1])){var L=arguments[0],P=arguments[1],V=arguments[2];this._dimension=P,this._measures=V,this._coordinates=L===null?new Array(0).fill(null):L}else if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var W=arguments[0],$=arguments[1],ie=arguments[2];this._coordinates=new Array(W).fill(null),this._dimension=$,this._measures=ie;for(var le=0;le<W;le++)this._coordinates[le]=this.createCoordinate()}}}}]),r}(),hr=function(){function r(){s(this,r)}return h(r,[{key:"readResolve",value:function(){return r.instance()}},{key:"create",value:function(){if(arguments.length===1){if(arguments[0]instanceof Array){var e=arguments[0];return new ei(e)}if(ue(arguments[0],ge)){var t=arguments[0];return new ei(t)}}else{if(arguments.length===2){var n=arguments[0],i=arguments[1];return i>3&&(i=3),i<2&&(i=2),new ei(n,i)}if(arguments.length===3){var u=arguments[0],c=arguments[1],f=arguments[2],d=c-f;return f>1&&(f=1),d>3&&(d=3),d<2&&(d=2),new ei(u,d+f,f)}}}},{key:"interfaces_",get:function(){return[bi,G]}}],[{key:"instance",value:function(){return r.instanceObject}}]),r}();hr.instanceObject=new hr;var cr=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"copyInternal",value:function(){for(var n=new Array(this._geometries.length).fill(null),i=0;i<n.length;i++)n[i]=this._geometries[i].copy();return new t(n,this._factory)}},{key:"equalsExact",value:function(){if(arguments.length===2&&typeof arguments[1]=="number"&&arguments[0]instanceof J){var n=arguments[0],i=arguments[1];return!!this.isEquivalentClass(n)&&I(v(t.prototype),"equalsExact",this).call(this,n,i)}return I(v(t.prototype),"equalsExact",this).apply(this,arguments)}},{key:"getBoundaryDimension",value:function(){return 1}},{key:"getTypeCode",value:function(){return J.TYPECODE_MULTIPOLYGON}},{key:"getDimension",value:function(){return 2}},{key:"getBoundary",value:function(){if(this.isEmpty())return this.getFactory().createMultiLineString();for(var n=new ne,i=0;i<this._geometries.length;i++)for(var u=this._geometries[i].getBoundary(),c=0;c<u.getNumGeometries();c++)n.add(u.getGeometryN(c));var f=new Array(n.size()).fill(null);return this.getFactory().createMultiLineString(n.toArray(f))}},{key:"getGeometryType",value:function(){return J.TYPENAME_MULTIPOLYGON}},{key:"interfaces_",get:function(){return[Sn]}}],[{key:"constructor_",value:function(){var n=arguments[0],i=arguments[1];at.constructor_.call(this,n,i)}}]),t}(at),ta=function(){function r(){s(this,r)}return h(r,[{key:"get",value:function(){}},{key:"put",value:function(){}},{key:"size",value:function(){}},{key:"values",value:function(){}},{key:"entrySet",value:function(){}}]),r}(),cl=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),(n=e.call(this)).map=new Map,n}return h(t,[{key:"get",value:function(n){return this.map.get(n)||null}},{key:"put",value:function(n,i){return this.map.set(n,i),i}},{key:"values",value:function(){for(var n=new ne,i=this.map.values(),u=i.next();!u.done;)n.add(u.value),u=i.next();return n}},{key:"entrySet",value:function(){var n=new et;return this.map.entries().forEach(function(i){return n.add(i)}),n}},{key:"size",value:function(){return this.map.size()}}]),t}(ta),It=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"equals",value:function(e){if(!(e instanceof r))return!1;var t=e;return this._modelType===t._modelType&&this._scale===t._scale}},{key:"compareTo",value:function(e){var t=e,n=this.getMaximumSignificantDigits(),i=t.getMaximumSignificantDigits();return rt.compare(n,i)}},{key:"getScale",value:function(){return this._scale}},{key:"isFloating",value:function(){return this._modelType===r.FLOATING||this._modelType===r.FLOATING_SINGLE}},{key:"getType",value:function(){return this._modelType}},{key:"toString",value:function(){var e="UNKNOWN";return this._modelType===r.FLOATING?e="Floating":this._modelType===r.FLOATING_SINGLE?e="Floating-Single":this._modelType===r.FIXED&&(e="Fixed (Scale="+this.getScale()+")"),e}},{key:"makePrecise",value:function(){if(typeof arguments[0]=="number"){var e=arguments[0];return Q.isNaN(e)||this._modelType===r.FLOATING_SINGLE?e:this._modelType===r.FIXED?Math.round(e*this._scale)/this._scale:e}if(arguments[0]instanceof b){var t=arguments[0];if(this._modelType===r.FLOATING)return null;t.x=this.makePrecise(t.x),t.y=this.makePrecise(t.y)}}},{key:"getMaximumSignificantDigits",value:function(){var e=16;return this._modelType===r.FLOATING?e=16:this._modelType===r.FLOATING_SINGLE?e=6:this._modelType===r.FIXED&&(e=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),e}},{key:"setScale",value:function(e){this._scale=Math.abs(e)}},{key:"interfaces_",get:function(){return[G,z]}}],[{key:"constructor_",value:function(){if(this._modelType=null,this._scale=null,arguments.length===0)this._modelType=r.FLOATING;else if(arguments.length===1){if(arguments[0]instanceof bn){var e=arguments[0];this._modelType=e,e===r.FIXED&&this.setScale(1)}else if(typeof arguments[0]=="number"){var t=arguments[0];this._modelType=r.FIXED,this.setScale(t)}else if(arguments[0]instanceof r){var n=arguments[0];this._modelType=n._modelType,this._scale=n._scale}}}},{key:"mostPrecise",value:function(e,t){return e.compareTo(t)>=0?e:t}}]),r}(),bn=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"readResolve",value:function(){return r.nameToTypeMap.get(this._name)}},{key:"toString",value:function(){return this._name}},{key:"interfaces_",get:function(){return[G]}}],[{key:"constructor_",value:function(){this._name=null;var e=arguments[0];this._name=e,r.nameToTypeMap.put(e,this)}}]),r}();bn.nameToTypeMap=new cl,It.Type=bn,It.FIXED=new bn("FIXED"),It.FLOATING=new bn("FLOATING"),It.FLOATING_SINGLE=new bn("FLOATING SINGLE"),It.maximumPreciseValue=9007199254740992;var fr=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"copyInternal",value:function(){for(var n=new Array(this._geometries.length).fill(null),i=0;i<n.length;i++)n[i]=this._geometries[i].copy();return new t(n,this._factory)}},{key:"equalsExact",value:function(){if(arguments.length===2&&typeof arguments[1]=="number"&&arguments[0]instanceof J){var n=arguments[0],i=arguments[1];return!!this.isEquivalentClass(n)&&I(v(t.prototype),"equalsExact",this).call(this,n,i)}return I(v(t.prototype),"equalsExact",this).apply(this,arguments)}},{key:"getBoundaryDimension",value:function(){return this.isClosed()?H.FALSE:0}},{key:"isClosed",value:function(){if(this.isEmpty())return!1;for(var n=0;n<this._geometries.length;n++)if(!this._geometries[n].isClosed())return!1;return!0}},{key:"getTypeCode",value:function(){return J.TYPECODE_MULTILINESTRING}},{key:"getDimension",value:function(){return 1}},{key:"getBoundary",value:function(){throw new ae}},{key:"getGeometryType",value:function(){return J.TYPENAME_MULTILINESTRING}},{key:"interfaces_",get:function(){return[Ti]}}],[{key:"constructor_",value:function(){var n=arguments[0],i=arguments[1];at.constructor_.call(this,n,i)}}]),t}(at),Tn=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"createEmpty",value:function(e){switch(e){case-1:return this.createGeometryCollection();case 0:return this.createPoint();case 1:return this.createLineString();case 2:return this.createPolygon();default:throw new O("Invalid dimension: "+e)}}},{key:"toGeometry",value:function(e){return e.isNull()?this.createPoint():e.getMinX()===e.getMaxX()&&e.getMinY()===e.getMaxY()?this.createPoint(new b(e.getMinX(),e.getMinY())):e.getMinX()===e.getMaxX()||e.getMinY()===e.getMaxY()?this.createLineString([new b(e.getMinX(),e.getMinY()),new b(e.getMaxX(),e.getMaxY())]):this.createPolygon(this.createLinearRing([new b(e.getMinX(),e.getMinY()),new b(e.getMinX(),e.getMaxY()),new b(e.getMaxX(),e.getMaxY()),new b(e.getMaxX(),e.getMinY()),new b(e.getMinX(),e.getMinY())]),null)}},{key:"createLineString",value:function(){if(arguments.length===0)return this.createLineString(this.getCoordinateSequenceFactory().create([]));if(arguments.length===1){if(arguments[0]instanceof Array){var e=arguments[0];return this.createLineString(e!==null?this.getCoordinateSequenceFactory().create(e):null)}if(ue(arguments[0],ge)){var t=arguments[0];return new qe(t,this)}}}},{key:"createMultiLineString",value:function(){if(arguments.length===0)return new fr(null,this);if(arguments.length===1){var e=arguments[0];return new fr(e,this)}}},{key:"buildGeometry",value:function(e){for(var t=null,n=!1,i=!1,u=e.iterator();u.hasNext();){var c=u.next(),f=c.getTypeCode();t===null&&(t=f),f!==t&&(n=!0),c instanceof at&&(i=!0)}if(t===null)return this.createGeometryCollection();if(n||i)return this.createGeometryCollection(r.toGeometryArray(e));var d=e.iterator().next();if(e.size()>1){if(d instanceof $t)return this.createMultiPolygon(r.toPolygonArray(e));if(d instanceof qe)return this.createMultiLineString(r.toLineStringArray(e));if(d instanceof fe)return this.createMultiPoint(r.toPointArray(e));he.shouldNeverReachHere("Unhandled geometry type: "+d.getGeometryType())}return d}},{key:"createMultiPointFromCoords",value:function(e){return this.createMultiPoint(e!==null?this.getCoordinateSequenceFactory().create(e):null)}},{key:"createPoint",value:function(){if(arguments.length===0)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(arguments.length===1){if(arguments[0]instanceof b){var e=arguments[0];return this.createPoint(e!==null?this.getCoordinateSequenceFactory().create([e]):null)}if(ue(arguments[0],ge)){var t=arguments[0];return new fe(t,this)}}}},{key:"getCoordinateSequenceFactory",value:function(){return this._coordinateSequenceFactory}},{key:"createPolygon",value:function(){if(arguments.length===0)return this.createPolygon(null,null);if(arguments.length===1){if(ue(arguments[0],ge)){var e=arguments[0];return this.createPolygon(this.createLinearRing(e))}if(arguments[0]instanceof Array){var t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Jn){var n=arguments[0];return this.createPolygon(n,null)}}else if(arguments.length===2){var i=arguments[0],u=arguments[1];return new $t(i,u,this)}}},{key:"getSRID",value:function(){return this._SRID}},{key:"createGeometryCollection",value:function(){if(arguments.length===0)return new at(null,this);if(arguments.length===1){var e=arguments[0];return new at(e,this)}}},{key:"getPrecisionModel",value:function(){return this._precisionModel}},{key:"createLinearRing",value:function(){if(arguments.length===0)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(arguments.length===1){if(arguments[0]instanceof Array){var e=arguments[0];return this.createLinearRing(e!==null?this.getCoordinateSequenceFactory().create(e):null)}if(ue(arguments[0],ge)){var t=arguments[0];return new Jn(t,this)}}}},{key:"createMultiPolygon",value:function(){if(arguments.length===0)return new cr(null,this);if(arguments.length===1){var e=arguments[0];return new cr(e,this)}}},{key:"createMultiPoint",value:function(){if(arguments.length===0)return new or(null,this);if(arguments.length===1){if(arguments[0]instanceof Array){var e=arguments[0];return new or(e,this)}if(ue(arguments[0],ge)){var t=arguments[0];if(t===null)return this.createMultiPoint(new Array(0).fill(null));for(var n=new Array(t.size()).fill(null),i=0;i<t.size();i++){var u=this.getCoordinateSequenceFactory().create(1,t.getDimension(),t.getMeasures());Gt.copy(t,i,u,0,1),n[i]=this.createPoint(u)}return this.createMultiPoint(n)}}}},{key:"interfaces_",get:function(){return[G]}}],[{key:"constructor_",value:function(){if(this._precisionModel=null,this._coordinateSequenceFactory=null,this._SRID=null,arguments.length===0)r.constructor_.call(this,new It,0);else if(arguments.length===1){if(ue(arguments[0],bi)){var e=arguments[0];r.constructor_.call(this,new It,0,e)}else if(arguments[0]instanceof It){var t=arguments[0];r.constructor_.call(this,t,0,r.getDefaultCoordinateSequenceFactory())}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];r.constructor_.call(this,n,i,r.getDefaultCoordinateSequenceFactory())}else if(arguments.length===3){var u=arguments[0],c=arguments[1],f=arguments[2];this._precisionModel=u,this._coordinateSequenceFactory=f,this._SRID=c}}},{key:"toMultiPolygonArray",value:function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)}},{key:"toGeometryArray",value:function(e){if(e===null)return null;var t=new Array(e.size()).fill(null);return e.toArray(t)}},{key:"getDefaultCoordinateSequenceFactory",value:function(){return hr.instance()}},{key:"toMultiLineStringArray",value:function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)}},{key:"toLineStringArray",value:function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)}},{key:"toMultiPointArray",value:function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)}},{key:"toLinearRingArray",value:function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)}},{key:"toPointArray",value:function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)}},{key:"toPolygonArray",value:function(e){var t=new Array(e.size()).fill(null);return e.toArray(t)}},{key:"createPointFromInternalCoord",value:function(e,t){return t.getPrecisionModel().makePrecise(e),t.getFactory().createPoint(e)}}]),r}(),gr="XY",fl="XYZ",gl="XYM",dl="XYZM",na={POINT:"Point",LINE_STRING:"LineString",LINEAR_RING:"LinearRing",POLYGON:"Polygon",MULTI_POINT:"MultiPoint",MULTI_LINE_STRING:"MultiLineString",MULTI_POLYGON:"MultiPolygon",GEOMETRY_COLLECTION:"GeometryCollection",CIRCLE:"Circle"},ia="EMPTY",Oi=1,qt=2,en=3,ra=4,Cn=5,ml=6;for(var vl in na)na[vl].toUpperCase();var yl=function(){function r(e){s(this,r),this.wkt=e,this.index_=-1}return h(r,[{key:"isAlpha_",value:function(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}},{key:"isNumeric_",value:function(e,t){return e>="0"&&e<="9"||e=="."&&!(t!==void 0&&t)}},{key:"isWhiteSpace_",value:function(e){return e==" "||e==" "||e=="\r"||e==`
26
- `}},{key:"nextChar_",value:function(){return this.wkt.charAt(++this.index_)}},{key:"nextToken",value:function(){var e,t=this.nextChar_(),n=this.index_,i=t;if(t=="(")e=qt;else if(t==",")e=Cn;else if(t==")")e=en;else if(this.isNumeric_(t)||t=="-")e=ra,i=this.readNumber_();else if(this.isAlpha_(t))e=Oi,i=this.readText_();else{if(this.isWhiteSpace_(t))return this.nextToken();if(t!=="")throw new Error("Unexpected character: "+t);e=ml}return{position:n,value:i,type:e}}},{key:"readNumber_",value:function(){var e,t=this.index_,n=!1,i=!1;do e=="."?n=!0:e!="e"&&e!="E"||(i=!0),e=this.nextChar_();while(this.isNumeric_(e,n)||!i&&(e=="e"||e=="E")||i&&(e=="-"||e=="+"));return parseFloat(this.wkt.substring(t,this.index_--))}},{key:"readText_",value:function(){var e,t=this.index_;do e=this.nextChar_();while(this.isAlpha_(e));return this.wkt.substring(t,this.index_--).toUpperCase()}}]),r}(),pl=function(){function r(e,t){s(this,r),this.lexer_=e,this.token_,this.layout_=gr,this.factory=t}return h(r,[{key:"consume_",value:function(){this.token_=this.lexer_.nextToken()}},{key:"isTokenType",value:function(e){return this.token_.type==e}},{key:"match",value:function(e){var t=this.isTokenType(e);return t&&this.consume_(),t}},{key:"parse",value:function(){return this.consume_(),this.parseGeometry_()}},{key:"parseGeometryLayout_",value:function(){var e=gr,t=this.token_;if(this.isTokenType(Oi)){var n=t.value;n==="Z"?e=fl:n==="M"?e=gl:n==="ZM"&&(e=dl),e!==gr&&this.consume_()}return e}},{key:"parseGeometryCollectionText_",value:function(){if(this.match(qt)){var e=[];do e.push(this.parseGeometry_());while(this.match(Cn));if(this.match(en))return e}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:"parsePointText_",value:function(){if(this.match(qt)){var e=this.parsePoint_();if(this.match(en))return e}else if(this.isEmptyGeometry_())return null;throw new Error(this.formatErrorMessage_())}},{key:"parseLineStringText_",value:function(){if(this.match(qt)){var e=this.parsePointList_();if(this.match(en))return e}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:"parsePolygonText_",value:function(){if(this.match(qt)){var e=this.parseLineStringTextList_();if(this.match(en))return e}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:"parseMultiPointText_",value:function(){var e;if(this.match(qt)){if(e=this.token_.type==qt?this.parsePointTextList_():this.parsePointList_(),this.match(en))return e}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:"parseMultiLineStringText_",value:function(){if(this.match(qt)){var e=this.parseLineStringTextList_();if(this.match(en))return e}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:"parseMultiPolygonText_",value:function(){if(this.match(qt)){var e=this.parsePolygonTextList_();if(this.match(en))return e}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:"parsePoint_",value:function(){for(var e=[],t=this.layout_.length,n=0;n<t;++n){var i=this.token_;if(!this.match(ra))break;e.push(i.value)}if(e.length==t)return e;throw new Error(this.formatErrorMessage_())}},{key:"parsePointList_",value:function(){for(var e=[this.parsePoint_()];this.match(Cn);)e.push(this.parsePoint_());return e}},{key:"parsePointTextList_",value:function(){for(var e=[this.parsePointText_()];this.match(Cn);)e.push(this.parsePointText_());return e}},{key:"parseLineStringTextList_",value:function(){for(var e=[this.parseLineStringText_()];this.match(Cn);)e.push(this.parseLineStringText_());return e}},{key:"parsePolygonTextList_",value:function(){for(var e=[this.parsePolygonText_()];this.match(Cn);)e.push(this.parsePolygonText_());return e}},{key:"isEmptyGeometry_",value:function(){var e=this.isTokenType(Oi)&&this.token_.value==ia;return e&&this.consume_(),e}},{key:"formatErrorMessage_",value:function(){return"Unexpected `"+this.token_.value+"` at position "+this.token_.position+" in `"+this.lexer_.wkt+"`"}},{key:"parseGeometry_",value:function(){var e=this.factory,t=function(ie){return _(b,R(ie))},n=function(ie){var le=ie.map(function(_e){return e.createLinearRing(_e.map(t))});return le.length>1?e.createPolygon(le[0],le.slice(1)):e.createPolygon(le[0])},i=this.token_;if(this.match(Oi)){var u=i.value;if(this.layout_=this.parseGeometryLayout_(),u=="GEOMETRYCOLLECTION"){var c=this.parseGeometryCollectionText_();return e.createGeometryCollection(c)}switch(u){case"POINT":var f=this.parsePointText_();return f?e.createPoint(_(b,R(f))):e.createPoint();case"LINESTRING":var d=this.parseLineStringText_().map(t);return e.createLineString(d);case"LINEARRING":var p=this.parseLineStringText_().map(t);return e.createLinearRing(p);case"POLYGON":var S=this.parsePolygonText_();return S&&S.length!==0?n(S):e.createPolygon();case"MULTIPOINT":var L=this.parseMultiPointText_();if(!L||L.length===0)return e.createMultiPoint();var P=L.map(t).map(function(ie){return e.createPoint(ie)});return e.createMultiPoint(P);case"MULTILINESTRING":var V=this.parseMultiLineStringText_().map(function(ie){return e.createLineString(ie.map(t))});return e.createMultiLineString(V);case"MULTIPOLYGON":var W=this.parseMultiPolygonText_();if(!W||W.length===0)return e.createMultiPolygon();var $=W.map(n);return e.createMultiPolygon($);default:throw new Error("Invalid geometry type: "+u)}}throw new Error(this.formatErrorMessage_())}}]),r}();function sa(r){if(r.isEmpty())return"";var e=r.getCoordinate(),t=[e.x,e.y];return e.z===void 0||Number.isNaN(e.z)||t.push(e.z),e.m===void 0||Number.isNaN(e.m)||t.push(e.m),t.join(" ")}function ti(r){for(var e=r.getCoordinates().map(function(u){var c=[u.x,u.y];return u.z===void 0||Number.isNaN(u.z)||c.push(u.z),u.m===void 0||Number.isNaN(u.m)||c.push(u.m),c}),t=[],n=0,i=e.length;n<i;++n)t.push(e[n].join(" "));return t.join(", ")}function aa(r){var e=[];e.push("("+ti(r.getExteriorRing())+")");for(var t=0,n=r.getNumInteriorRing();t<n;++t)e.push("("+ti(r.getInteriorRingN(t))+")");return e.join(", ")}var _l={Point:sa,LineString:ti,LinearRing:ti,Polygon:aa,MultiPoint:function(r){for(var e=[],t=0,n=r.getNumGeometries();t<n;++t)e.push("("+sa(r.getGeometryN(t))+")");return e.join(", ")},MultiLineString:function(r){for(var e=[],t=0,n=r.getNumGeometries();t<n;++t)e.push("("+ti(r.getGeometryN(t))+")");return e.join(", ")},MultiPolygon:function(r){for(var e=[],t=0,n=r.getNumGeometries();t<n;++t)e.push("("+aa(r.getGeometryN(t))+")");return e.join(", ")},GeometryCollection:function(r){for(var e=[],t=0,n=r.getNumGeometries();t<n;++t)e.push(ua(r.getGeometryN(t)));return e.join(", ")}};function ua(r){var e=r.getGeometryType(),t=_l[e];e=e.toUpperCase();var n=function(i){var u="";if(i.isEmpty())return u;var c=i.getCoordinate();return c.z===void 0||Number.isNaN(c.z)||(u+="Z"),c.m===void 0||Number.isNaN(c.m)||(u+="M"),u}(r);return n.length>0&&(e+=" "+n),r.isEmpty()?e+" "+ia:e+" ("+t(r)+")"}var kl=function(){function r(e){s(this,r),this.geometryFactory=e||new Tn,this.precisionModel=this.geometryFactory.getPrecisionModel()}return h(r,[{key:"read",value:function(e){var t=new yl(e);return new pl(t,this.geometryFactory).parse()}},{key:"write",value:function(e){return ua(e)}}]),r}(),dr=function(){function r(e){s(this,r),this.parser=new kl(e)}return h(r,[{key:"write",value:function(e){return this.parser.write(e)}}],[{key:"toLineString",value:function(e,t){if(arguments.length!==2)throw new Error("Not implemented");return"LINESTRING ( "+e.x+" "+e.y+", "+t.x+" "+t.y+" )"}}]),r}(),Oe=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getIndexAlongSegment",value:function(e,t){return this.computeIntLineIndex(),this._intLineIndex[e][t]}},{key:"getTopologySummary",value:function(){var e=new Ri;return this.isEndPoint()&&e.append(" endpoint"),this._isProper&&e.append(" proper"),this.isCollinear()&&e.append(" collinear"),e.toString()}},{key:"computeIntersection",value:function(e,t,n,i){this._inputLines[0][0]=e,this._inputLines[0][1]=t,this._inputLines[1][0]=n,this._inputLines[1][1]=i,this._result=this.computeIntersect(e,t,n,i)}},{key:"getIntersectionNum",value:function(){return this._result}},{key:"computeIntLineIndex",value:function(){if(arguments.length===0)this._intLineIndex===null&&(this._intLineIndex=Array(2).fill().map(function(){return Array(2)}),this.computeIntLineIndex(0),this.computeIntLineIndex(1));else if(arguments.length===1){var e=arguments[0],t=this.getEdgeDistance(e,0),n=this.getEdgeDistance(e,1);t>n?(this._intLineIndex[e][0]=0,this._intLineIndex[e][1]=1):(this._intLineIndex[e][0]=1,this._intLineIndex[e][1]=0)}}},{key:"isProper",value:function(){return this.hasIntersection()&&this._isProper}},{key:"setPrecisionModel",value:function(e){this._precisionModel=e}},{key:"isInteriorIntersection",value:function(){if(arguments.length===0)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(arguments.length===1){for(var e=arguments[0],t=0;t<this._result;t++)if(!this._intPt[t].equals2D(this._inputLines[e][0])&&!this._intPt[t].equals2D(this._inputLines[e][1]))return!0;return!1}}},{key:"getIntersection",value:function(e){return this._intPt[e]}},{key:"isEndPoint",value:function(){return this.hasIntersection()&&!this._isProper}},{key:"hasIntersection",value:function(){return this._result!==r.NO_INTERSECTION}},{key:"getEdgeDistance",value:function(e,t){return r.computeEdgeDistance(this._intPt[t],this._inputLines[e][0],this._inputLines[e][1])}},{key:"isCollinear",value:function(){return this._result===r.COLLINEAR_INTERSECTION}},{key:"toString",value:function(){return dr.toLineString(this._inputLines[0][0],this._inputLines[0][1])+" - "+dr.toLineString(this._inputLines[1][0],this._inputLines[1][1])+this.getTopologySummary()}},{key:"getEndpoint",value:function(e,t){return this._inputLines[e][t]}},{key:"isIntersection",value:function(e){for(var t=0;t<this._result;t++)if(this._intPt[t].equals2D(e))return!0;return!1}},{key:"getIntersectionAlongSegment",value:function(e,t){return this.computeIntLineIndex(),this._intPt[this._intLineIndex[e][t]]}}],[{key:"constructor_",value:function(){this._result=null,this._inputLines=Array(2).fill().map(function(){return Array(2)}),this._intPt=new Array(2).fill(null),this._intLineIndex=null,this._isProper=null,this._pa=null,this._pb=null,this._precisionModel=null,this._intPt[0]=new b,this._intPt[1]=new b,this._pa=this._intPt[0],this._pb=this._intPt[1],this._result=0}},{key:"computeEdgeDistance",value:function(e,t,n){var i=Math.abs(n.x-t.x),u=Math.abs(n.y-t.y),c=-1;if(e.equals(t))c=0;else if(e.equals(n))c=i>u?i:u;else{var f=Math.abs(e.x-t.x),d=Math.abs(e.y-t.y);(c=i>u?f:d)!==0||e.equals(t)||(c=Math.max(f,d))}return he.isTrue(!(c===0&&!e.equals(t)),"Bad distance calculation"),c}},{key:"nonRobustComputeEdgeDistance",value:function(e,t,n){var i=e.x-t.x,u=e.y-t.y,c=Math.sqrt(i*i+u*u);return he.isTrue(!(c===0&&!e.equals(t)),"Invalid distance calculation"),c}}]),r}();Oe.DONT_INTERSECT=0,Oe.DO_INTERSECT=1,Oe.COLLINEAR=2,Oe.NO_INTERSECTION=0,Oe.POINT_INTERSECTION=1,Oe.COLLINEAR_INTERSECTION=2;var cn=function(r){g(t,r);var e=E(t);function t(){return s(this,t),e.call(this)}return h(t,[{key:"isInSegmentEnvelopes",value:function(n){var i=new Ee(this._inputLines[0][0],this._inputLines[0][1]),u=new Ee(this._inputLines[1][0],this._inputLines[1][1]);return i.contains(n)&&u.contains(n)}},{key:"computeIntersection",value:function(){if(arguments.length!==3)return I(v(t.prototype),"computeIntersection",this).apply(this,arguments);var n=arguments[0],i=arguments[1],u=arguments[2];if(this._isProper=!1,Ee.intersects(i,u,n)&&re.index(i,u,n)===0&&re.index(u,i,n)===0)return this._isProper=!0,(n.equals(i)||n.equals(u))&&(this._isProper=!1),this._result=Oe.POINT_INTERSECTION,null;this._result=Oe.NO_INTERSECTION}},{key:"intersection",value:function(n,i,u,c){var f=this.intersectionSafe(n,i,u,c);return this.isInSegmentEnvelopes(f)||(f=new b(t.nearestEndpoint(n,i,u,c))),this._precisionModel!==null&&this._precisionModel.makePrecise(f),f}},{key:"checkDD",value:function(n,i,u,c,f){var d=un.intersection(n,i,u,c),p=this.isInSegmentEnvelopes(d);nt.out.println("DD in env = "+p+" --------------------- "+d),f.distance(d)>1e-4&&nt.out.println("Distance = "+f.distance(d))}},{key:"intersectionSafe",value:function(n,i,u,c){var f=Kn.intersection(n,i,u,c);return f===null&&(f=t.nearestEndpoint(n,i,u,c)),f}},{key:"computeCollinearIntersection",value:function(n,i,u,c){var f=Ee.intersects(n,i,u),d=Ee.intersects(n,i,c),p=Ee.intersects(u,c,n),S=Ee.intersects(u,c,i);return f&&d?(this._intPt[0]=u,this._intPt[1]=c,Oe.COLLINEAR_INTERSECTION):p&&S?(this._intPt[0]=n,this._intPt[1]=i,Oe.COLLINEAR_INTERSECTION):f&&p?(this._intPt[0]=u,this._intPt[1]=n,!u.equals(n)||d||S?Oe.COLLINEAR_INTERSECTION:Oe.POINT_INTERSECTION):f&&S?(this._intPt[0]=u,this._intPt[1]=i,!u.equals(i)||d||p?Oe.COLLINEAR_INTERSECTION:Oe.POINT_INTERSECTION):d&&p?(this._intPt[0]=c,this._intPt[1]=n,!c.equals(n)||f||S?Oe.COLLINEAR_INTERSECTION:Oe.POINT_INTERSECTION):d&&S?(this._intPt[0]=c,this._intPt[1]=i,!c.equals(i)||f||p?Oe.COLLINEAR_INTERSECTION:Oe.POINT_INTERSECTION):Oe.NO_INTERSECTION}},{key:"computeIntersect",value:function(n,i,u,c){if(this._isProper=!1,!Ee.intersects(n,i,u,c))return Oe.NO_INTERSECTION;var f=re.index(n,i,u),d=re.index(n,i,c);if(f>0&&d>0||f<0&&d<0)return Oe.NO_INTERSECTION;var p=re.index(u,c,n),S=re.index(u,c,i);return p>0&&S>0||p<0&&S<0?Oe.NO_INTERSECTION:f===0&&d===0&&p===0&&S===0?this.computeCollinearIntersection(n,i,u,c):(f===0||d===0||p===0||S===0?(this._isProper=!1,n.equals2D(u)||n.equals2D(c)?this._intPt[0]=n:i.equals2D(u)||i.equals2D(c)?this._intPt[0]=i:f===0?this._intPt[0]=new b(u):d===0?this._intPt[0]=new b(c):p===0?this._intPt[0]=new b(n):S===0&&(this._intPt[0]=new b(i))):(this._isProper=!0,this._intPt[0]=this.intersection(n,i,u,c)),Oe.POINT_INTERSECTION)}}],[{key:"nearestEndpoint",value:function(n,i,u,c){var f=n,d=vt.pointToSegment(n,u,c),p=vt.pointToSegment(i,u,c);return p<d&&(d=p,f=i),(p=vt.pointToSegment(u,n,i))<d&&(d=p,f=u),(p=vt.pointToSegment(c,n,i))<d&&(d=p,f=c),f}}]),t}(Oe),El=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"countSegment",value:function(e,t){if(e.x<this._p.x&&t.x<this._p.x)return null;if(this._p.x===t.x&&this._p.y===t.y)return this._isPointOnSegment=!0,null;if(e.y===this._p.y&&t.y===this._p.y){var n=e.x,i=t.x;return n>i&&(n=t.x,i=e.x),this._p.x>=n&&this._p.x<=i&&(this._isPointOnSegment=!0),null}if(e.y>this._p.y&&t.y<=this._p.y||t.y>this._p.y&&e.y<=this._p.y){var u=re.index(e,t,this._p);if(u===re.COLLINEAR)return this._isPointOnSegment=!0,null;t.y<e.y&&(u=-u),u===re.LEFT&&this._crossingCount++}}},{key:"isPointInPolygon",value:function(){return this.getLocation()!==w.EXTERIOR}},{key:"getLocation",value:function(){return this._isPointOnSegment?w.BOUNDARY:this._crossingCount%2==1?w.INTERIOR:w.EXTERIOR}},{key:"isOnSegment",value:function(){return this._isPointOnSegment}}],[{key:"constructor_",value:function(){this._p=null,this._crossingCount=0,this._isPointOnSegment=!1;var e=arguments[0];this._p=e}},{key:"locatePointInRing",value:function(){if(arguments[0]instanceof b&&ue(arguments[1],ge)){for(var e=arguments[0],t=arguments[1],n=new r(e),i=new b,u=new b,c=1;c<t.size();c++)if(t.getCoordinate(c,i),t.getCoordinate(c-1,u),n.countSegment(i,u),n.isOnSegment())return n.getLocation();return n.getLocation()}if(arguments[0]instanceof b&&arguments[1]instanceof Array){for(var f=arguments[0],d=arguments[1],p=new r(f),S=1;S<d.length;S++){var L=d[S],P=d[S-1];if(p.countSegment(L,P),p.isOnSegment())return p.getLocation()}return p.getLocation()}}}]),r}(),mr=function(){function r(){s(this,r)}return h(r,null,[{key:"isOnLine",value:function(){if(arguments[0]instanceof b&&ue(arguments[1],ge)){for(var e=arguments[0],t=arguments[1],n=new cn,i=new b,u=new b,c=t.size(),f=1;f<c;f++)if(t.getCoordinate(f-1,i),t.getCoordinate(f,u),n.computeIntersection(e,i,u),n.hasIntersection())return!0;return!1}if(arguments[0]instanceof b&&arguments[1]instanceof Array){for(var d=arguments[0],p=arguments[1],S=new cn,L=1;L<p.length;L++){var P=p[L-1],V=p[L];if(S.computeIntersection(d,P,V),S.hasIntersection())return!0}return!1}}},{key:"locateInRing",value:function(e,t){return El.locatePointInRing(e,t)}},{key:"isInRing",value:function(e,t){return r.locateInRing(e,t)!==w.EXTERIOR}}]),r}(),pt=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"setAllLocations",value:function(e){for(var t=0;t<this.location.length;t++)this.location[t]=e}},{key:"isNull",value:function(){for(var e=0;e<this.location.length;e++)if(this.location[e]!==w.NONE)return!1;return!0}},{key:"setAllLocationsIfNull",value:function(e){for(var t=0;t<this.location.length;t++)this.location[t]===w.NONE&&(this.location[t]=e)}},{key:"isLine",value:function(){return this.location.length===1}},{key:"merge",value:function(e){if(e.location.length>this.location.length){var t=new Array(3).fill(null);t[U.ON]=this.location[U.ON],t[U.LEFT]=w.NONE,t[U.RIGHT]=w.NONE,this.location=t}for(var n=0;n<this.location.length;n++)this.location[n]===w.NONE&&n<e.location.length&&(this.location[n]=e.location[n])}},{key:"getLocations",value:function(){return this.location}},{key:"flip",value:function(){if(this.location.length<=1)return null;var e=this.location[U.LEFT];this.location[U.LEFT]=this.location[U.RIGHT],this.location[U.RIGHT]=e}},{key:"toString",value:function(){var e=new an;return this.location.length>1&&e.append(w.toLocationSymbol(this.location[U.LEFT])),e.append(w.toLocationSymbol(this.location[U.ON])),this.location.length>1&&e.append(w.toLocationSymbol(this.location[U.RIGHT])),e.toString()}},{key:"setLocations",value:function(e,t,n){this.location[U.ON]=e,this.location[U.LEFT]=t,this.location[U.RIGHT]=n}},{key:"get",value:function(e){return e<this.location.length?this.location[e]:w.NONE}},{key:"isArea",value:function(){return this.location.length>1}},{key:"isAnyNull",value:function(){for(var e=0;e<this.location.length;e++)if(this.location[e]===w.NONE)return!0;return!1}},{key:"setLocation",value:function(){if(arguments.length===1){var e=arguments[0];this.setLocation(U.ON,e)}else if(arguments.length===2){var t=arguments[0],n=arguments[1];this.location[t]=n}}},{key:"init",value:function(e){this.location=new Array(e).fill(null),this.setAllLocations(w.NONE)}},{key:"isEqualOnSide",value:function(e,t){return this.location[t]===e.location[t]}},{key:"allPositionsEqual",value:function(e){for(var t=0;t<this.location.length;t++)if(this.location[t]!==e)return!1;return!0}}],[{key:"constructor_",value:function(){if(this.location=null,arguments.length===1){if(arguments[0]instanceof Array){var e=arguments[0];this.init(e.length)}else if(Number.isInteger(arguments[0])){var t=arguments[0];this.init(1),this.location[U.ON]=t}else if(arguments[0]instanceof r){var n=arguments[0];if(this.init(n.location.length),n!==null)for(var i=0;i<this.location.length;i++)this.location[i]=n.location[i]}}else if(arguments.length===3){var u=arguments[0],c=arguments[1],f=arguments[2];this.init(3),this.location[U.ON]=u,this.location[U.LEFT]=c,this.location[U.RIGHT]=f}}}]),r}(),_t=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getGeometryCount",value:function(){var e=0;return this.elt[0].isNull()||e++,this.elt[1].isNull()||e++,e}},{key:"setAllLocations",value:function(e,t){this.elt[e].setAllLocations(t)}},{key:"isNull",value:function(e){return this.elt[e].isNull()}},{key:"setAllLocationsIfNull",value:function(){if(arguments.length===1){var e=arguments[0];this.setAllLocationsIfNull(0,e),this.setAllLocationsIfNull(1,e)}else if(arguments.length===2){var t=arguments[0],n=arguments[1];this.elt[t].setAllLocationsIfNull(n)}}},{key:"isLine",value:function(e){return this.elt[e].isLine()}},{key:"merge",value:function(e){for(var t=0;t<2;t++)this.elt[t]===null&&e.elt[t]!==null?this.elt[t]=new pt(e.elt[t]):this.elt[t].merge(e.elt[t])}},{key:"flip",value:function(){this.elt[0].flip(),this.elt[1].flip()}},{key:"getLocation",value:function(){if(arguments.length===1){var e=arguments[0];return this.elt[e].get(U.ON)}if(arguments.length===2){var t=arguments[0],n=arguments[1];return this.elt[t].get(n)}}},{key:"toString",value:function(){var e=new an;return this.elt[0]!==null&&(e.append("A:"),e.append(this.elt[0].toString())),this.elt[1]!==null&&(e.append(" B:"),e.append(this.elt[1].toString())),e.toString()}},{key:"isArea",value:function(){if(arguments.length===0)return this.elt[0].isArea()||this.elt[1].isArea();if(arguments.length===1){var e=arguments[0];return this.elt[e].isArea()}}},{key:"isAnyNull",value:function(e){return this.elt[e].isAnyNull()}},{key:"setLocation",value:function(){if(arguments.length===2){var e=arguments[0],t=arguments[1];this.elt[e].setLocation(U.ON,t)}else if(arguments.length===3){var n=arguments[0],i=arguments[1],u=arguments[2];this.elt[n].setLocation(i,u)}}},{key:"isEqualOnSide",value:function(e,t){return this.elt[0].isEqualOnSide(e.elt[0],t)&&this.elt[1].isEqualOnSide(e.elt[1],t)}},{key:"allPositionsEqual",value:function(e,t){return this.elt[e].allPositionsEqual(t)}},{key:"toLine",value:function(e){this.elt[e].isArea()&&(this.elt[e]=new pt(this.elt[e].location[0]))}}],[{key:"constructor_",value:function(){if(this.elt=new Array(2).fill(null),arguments.length===1){if(Number.isInteger(arguments[0])){var e=arguments[0];this.elt[0]=new pt(e),this.elt[1]=new pt(e)}else if(arguments[0]instanceof r){var t=arguments[0];this.elt[0]=new pt(t.elt[0]),this.elt[1]=new pt(t.elt[1])}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];this.elt[0]=new pt(w.NONE),this.elt[1]=new pt(w.NONE),this.elt[n].setLocation(i)}else if(arguments.length===3){var u=arguments[0],c=arguments[1],f=arguments[2];this.elt[0]=new pt(u,c,f),this.elt[1]=new pt(u,c,f)}else if(arguments.length===4){var d=arguments[0],p=arguments[1],S=arguments[2],L=arguments[3];this.elt[0]=new pt(w.NONE,w.NONE,w.NONE),this.elt[1]=new pt(w.NONE,w.NONE,w.NONE),this.elt[d].setLocations(p,S,L)}}},{key:"toLineLabel",value:function(e){for(var t=new r(w.NONE),n=0;n<2;n++)t.setLocation(n,e.getLocation(n));return t}}]),r}(),Mi=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"computeRing",value:function(){if(this._ring!==null)return null;for(var e=new Array(this._pts.size()).fill(null),t=0;t<this._pts.size();t++)e[t]=this._pts.get(t);this._ring=this._geometryFactory.createLinearRing(e),this._isHole=re.isCCW(this._ring.getCoordinates())}},{key:"isIsolated",value:function(){return this._label.getGeometryCount()===1}},{key:"computePoints",value:function(e){this._startDe=e;var t=e,n=!0;do{if(t===null)throw new st("Found null DirectedEdge");if(t.getEdgeRing()===this)throw new st("Directed Edge visited twice during ring-building at "+t.getCoordinate());this._edges.add(t);var i=t.getLabel();he.isTrue(i.isArea()),this.mergeLabel(i),this.addPoints(t.getEdge(),t.isForward(),n),n=!1,this.setEdgeRing(t,this),t=this.getNext(t)}while(t!==this._startDe)}},{key:"getLinearRing",value:function(){return this._ring}},{key:"getCoordinate",value:function(e){return this._pts.get(e)}},{key:"computeMaxNodeDegree",value:function(){this._maxNodeDegree=0;var e=this._startDe;do{var t=e.getNode().getEdges().getOutgoingDegree(this);t>this._maxNodeDegree&&(this._maxNodeDegree=t),e=this.getNext(e)}while(e!==this._startDe);this._maxNodeDegree*=2}},{key:"addPoints",value:function(e,t,n){var i=e.getCoordinates();if(t){var u=1;n&&(u=0);for(var c=u;c<i.length;c++)this._pts.add(i[c])}else{var f=i.length-2;n&&(f=i.length-1);for(var d=f;d>=0;d--)this._pts.add(i[d])}}},{key:"isHole",value:function(){return this._isHole}},{key:"setInResult",value:function(){var e=this._startDe;do e.getEdge().setInResult(!0),e=e.getNext();while(e!==this._startDe)}},{key:"containsPoint",value:function(e){var t=this.getLinearRing();if(!t.getEnvelopeInternal().contains(e)||!mr.isInRing(e,t.getCoordinates()))return!1;for(var n=this._holes.iterator();n.hasNext();)if(n.next().containsPoint(e))return!1;return!0}},{key:"addHole",value:function(e){this._holes.add(e)}},{key:"isShell",value:function(){return this._shell===null}},{key:"getLabel",value:function(){return this._label}},{key:"getEdges",value:function(){return this._edges}},{key:"getMaxNodeDegree",value:function(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree}},{key:"getShell",value:function(){return this._shell}},{key:"mergeLabel",value:function(){if(arguments.length===1){var e=arguments[0];this.mergeLabel(e,0),this.mergeLabel(e,1)}else if(arguments.length===2){var t=arguments[0],n=arguments[1],i=t.getLocation(n,U.RIGHT);if(i===w.NONE)return null;if(this._label.getLocation(n)===w.NONE)return this._label.setLocation(n,i),null}}},{key:"setShell",value:function(e){this._shell=e,e!==null&&e.addHole(this)}},{key:"toPolygon",value:function(e){for(var t=new Array(this._holes.size()).fill(null),n=0;n<this._holes.size();n++)t[n]=this._holes.get(n).getLinearRing();return e.createPolygon(this.getLinearRing(),t)}}],[{key:"constructor_",value:function(){if(this._startDe=null,this._maxNodeDegree=-1,this._edges=new ne,this._pts=new ne,this._label=new _t(w.NONE),this._ring=null,this._isHole=null,this._shell=null,this._holes=new ne,this._geometryFactory=null,arguments.length!==0){if(arguments.length===2){var e=arguments[0],t=arguments[1];this._geometryFactory=t,this.computePoints(e),this.computeRing()}}}}]),r}(),xl=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"setEdgeRing",value:function(n,i){n.setMinEdgeRing(i)}},{key:"getNext",value:function(n){return n.getNextMin()}}],[{key:"constructor_",value:function(){var n=arguments[0],i=arguments[1];Mi.constructor_.call(this,n,i)}}]),t}(Mi),Nl=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"buildMinimalRings",value:function(){var n=new ne,i=this._startDe;do{if(i.getMinEdgeRing()===null){var u=new xl(i,this._geometryFactory);n.add(u)}i=i.getNext()}while(i!==this._startDe);return n}},{key:"setEdgeRing",value:function(n,i){n.setEdgeRing(i)}},{key:"linkDirectedEdgesForMinimalEdgeRings",value:function(){var n=this._startDe;do n.getNode().getEdges().linkMinimalDirectedEdges(this),n=n.getNext();while(n!==this._startDe)}},{key:"getNext",value:function(n){return n.getNext()}}],[{key:"constructor_",value:function(){var n=arguments[0],i=arguments[1];Mi.constructor_.call(this,n,i)}}]),t}(Mi),oa=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"setVisited",value:function(e){this._isVisited=e}},{key:"setInResult",value:function(e){this._isInResult=e}},{key:"isCovered",value:function(){return this._isCovered}},{key:"isCoveredSet",value:function(){return this._isCoveredSet}},{key:"setLabel",value:function(e){this._label=e}},{key:"getLabel",value:function(){return this._label}},{key:"setCovered",value:function(e){this._isCovered=e,this._isCoveredSet=!0}},{key:"updateIM",value:function(e){he.isTrue(this._label.getGeometryCount()>=2,"found partial label"),this.computeIM(e)}},{key:"isInResult",value:function(){return this._isInResult}},{key:"isVisited",value:function(){return this._isVisited}}],[{key:"constructor_",value:function(){if(this._label=null,this._isInResult=!1,this._isCovered=!1,this._isCoveredSet=!1,this._isVisited=!1,arguments.length!==0){if(arguments.length===1){var e=arguments[0];this._label=e}}}}]),r}(),Pi=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"isIncidentEdgeInResult",value:function(){for(var n=this.getEdges().getEdges().iterator();n.hasNext();)if(n.next().getEdge().isInResult())return!0;return!1}},{key:"isIsolated",value:function(){return this._label.getGeometryCount()===1}},{key:"getCoordinate",value:function(){return this._coord}},{key:"print",value:function(n){n.println("node "+this._coord+" lbl: "+this._label)}},{key:"computeIM",value:function(n){}},{key:"computeMergedLocation",value:function(n,i){var u=w.NONE;if(u=this._label.getLocation(i),!n.isNull(i)){var c=n.getLocation(i);u!==w.BOUNDARY&&(u=c)}return u}},{key:"setLabel",value:function(){if(arguments.length!==2||!Number.isInteger(arguments[1])||!Number.isInteger(arguments[0]))return I(v(t.prototype),"setLabel",this).apply(this,arguments);var n=arguments[0],i=arguments[1];this._label===null?this._label=new _t(n,i):this._label.setLocation(n,i)}},{key:"getEdges",value:function(){return this._edges}},{key:"mergeLabel",value:function(){if(arguments[0]instanceof t){var n=arguments[0];this.mergeLabel(n._label)}else if(arguments[0]instanceof _t)for(var i=arguments[0],u=0;u<2;u++){var c=this.computeMergedLocation(i,u),f=this._label.getLocation(u);f===w.NONE&&this._label.setLocation(u,c)}}},{key:"add",value:function(n){this._edges.insert(n),n.setNode(this)}},{key:"setLabelBoundary",value:function(n){if(this._label===null)return null;var i=w.NONE;this._label!==null&&(i=this._label.getLocation(n));var u=null;switch(i){case w.BOUNDARY:u=w.INTERIOR;break;case w.INTERIOR:default:u=w.BOUNDARY}this._label.setLocation(n,u)}}],[{key:"constructor_",value:function(){this._coord=null,this._edges=null;var n=arguments[0],i=arguments[1];this._coord=n,this._edges=i,this._label=new _t(0,w.NONE)}}]),t}(oa),Il=function(r){g(t,r);var e=E(t);function t(){return s(this,t),e.apply(this,arguments)}return t}(ta);function la(r){return r==null?0:r.color}function ye(r){return r==null?null:r.parent}function Rt(r,e){r!==null&&(r.color=e)}function vr(r){return r==null?null:r.left}function ha(r){return r==null?null:r.right}var ni=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),(n=e.call(this)).root_=null,n.size_=0,n}return h(t,[{key:"get",value:function(n){for(var i=this.root_;i!==null;){var u=n.compareTo(i.key);if(u<0)i=i.left;else{if(!(u>0))return i.value;i=i.right}}return null}},{key:"put",value:function(n,i){if(this.root_===null)return this.root_={key:n,value:i,left:null,right:null,parent:null,color:0,getValue:function(){return this.value},getKey:function(){return this.key}},this.size_=1,null;var u,c,f=this.root_;do if(u=f,(c=n.compareTo(f.key))<0)f=f.left;else{if(!(c>0)){var d=f.value;return f.value=i,d}f=f.right}while(f!==null);var p={key:n,left:null,right:null,value:i,parent:u,color:0,getValue:function(){return this.value},getKey:function(){return this.key}};return c<0?u.left=p:u.right=p,this.fixAfterInsertion(p),this.size_++,null}},{key:"fixAfterInsertion",value:function(n){var i;for(n.color=1;n!=null&&n!==this.root_&&n.parent.color===1;)ye(n)===vr(ye(ye(n)))?la(i=ha(ye(ye(n))))===1?(Rt(ye(n),0),Rt(i,0),Rt(ye(ye(n)),1),n=ye(ye(n))):(n===ha(ye(n))&&(n=ye(n),this.rotateLeft(n)),Rt(ye(n),0),Rt(ye(ye(n)),1),this.rotateRight(ye(ye(n)))):la(i=vr(ye(ye(n))))===1?(Rt(ye(n),0),Rt(i,0),Rt(ye(ye(n)),1),n=ye(ye(n))):(n===vr(ye(n))&&(n=ye(n),this.rotateRight(n)),Rt(ye(n),0),Rt(ye(ye(n)),1),this.rotateLeft(ye(ye(n))));this.root_.color=0}},{key:"values",value:function(){var n=new ne,i=this.getFirstEntry();if(i!==null)for(n.add(i.value);(i=t.successor(i))!==null;)n.add(i.value);return n}},{key:"entrySet",value:function(){var n=new et,i=this.getFirstEntry();if(i!==null)for(n.add(i);(i=t.successor(i))!==null;)n.add(i);return n}},{key:"rotateLeft",value:function(n){if(n!=null){var i=n.right;n.right=i.left,i.left!=null&&(i.left.parent=n),i.parent=n.parent,n.parent==null?this.root_=i:n.parent.left===n?n.parent.left=i:n.parent.right=i,i.left=n,n.parent=i}}},{key:"rotateRight",value:function(n){if(n!=null){var i=n.left;n.left=i.right,i.right!=null&&(i.right.parent=n),i.parent=n.parent,n.parent==null?this.root_=i:n.parent.right===n?n.parent.right=i:n.parent.left=i,i.right=n,n.parent=i}}},{key:"getFirstEntry",value:function(){var n=this.root_;if(n!=null)for(;n.left!=null;)n=n.left;return n}},{key:"size",value:function(){return this.size_}},{key:"containsKey",value:function(n){for(var i=this.root_;i!==null;){var u=n.compareTo(i.key);if(u<0)i=i.left;else{if(!(u>0))return!0;i=i.right}}return!1}}],[{key:"successor",value:function(n){var i;if(n===null)return null;if(n.right!==null){for(i=n.right;i.left!==null;)i=i.left;return i}i=n.parent;for(var u=n;i!==null&&u===i.right;)u=i,i=i.parent;return i}}]),t}(Il),ca=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"find",value:function(e){return this.nodeMap.get(e)}},{key:"addNode",value:function(){if(arguments[0]instanceof b){var e=arguments[0],t=this.nodeMap.get(e);return t===null&&(t=this.nodeFact.createNode(e),this.nodeMap.put(e,t)),t}if(arguments[0]instanceof Pi){var n=arguments[0],i=this.nodeMap.get(n.getCoordinate());return i===null?(this.nodeMap.put(n.getCoordinate(),n),n):(i.mergeLabel(n),i)}}},{key:"print",value:function(e){for(var t=this.iterator();t.hasNext();)t.next().print(e)}},{key:"iterator",value:function(){return this.nodeMap.values().iterator()}},{key:"values",value:function(){return this.nodeMap.values()}},{key:"getBoundaryNodes",value:function(e){for(var t=new ne,n=this.iterator();n.hasNext();){var i=n.next();i.getLabel().getLocation(e)===w.BOUNDARY&&t.add(i)}return t}},{key:"add",value:function(e){var t=e.getCoordinate();this.addNode(t).add(e)}}],[{key:"constructor_",value:function(){this.nodeMap=new ni,this.nodeFact=null;var e=arguments[0];this.nodeFact=e}}]),r}(),Je=function(){function r(){s(this,r)}return h(r,null,[{key:"isNorthern",value:function(e){return e===r.NE||e===r.NW}},{key:"isOpposite",value:function(e,t){return e!==t&&(e-t+4)%4===2}},{key:"commonHalfPlane",value:function(e,t){if(e===t)return e;if((e-t+4)%4===2)return-1;var n=e<t?e:t;return n===0&&(e>t?e:t)===3?3:n}},{key:"isInHalfPlane",value:function(e,t){return t===r.SE?e===r.SE||e===r.SW:e===t||e===t+1}},{key:"quadrant",value:function(){if(typeof arguments[0]=="number"&&typeof arguments[1]=="number"){var e=arguments[0],t=arguments[1];if(e===0&&t===0)throw new O("Cannot compute the quadrant for point ( "+e+", "+t+" )");return e>=0?t>=0?r.NE:r.SE:t>=0?r.NW:r.SW}if(arguments[0]instanceof b&&arguments[1]instanceof b){var n=arguments[0],i=arguments[1];if(i.x===n.x&&i.y===n.y)throw new O("Cannot compute the quadrant for two identical points "+n);return i.x>=n.x?i.y>=n.y?r.NE:r.SE:i.y>=n.y?r.NW:r.SW}}}]),r}();Je.NE=0,Je.NW=1,Je.SW=2,Je.SE=3;var fa=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"compareDirection",value:function(e){return this._dx===e._dx&&this._dy===e._dy?0:this._quadrant>e._quadrant?1:this._quadrant<e._quadrant?-1:re.index(e._p0,e._p1,this._p1)}},{key:"getDy",value:function(){return this._dy}},{key:"getCoordinate",value:function(){return this._p0}},{key:"setNode",value:function(e){this._node=e}},{key:"print",value:function(e){var t=Math.atan2(this._dy,this._dx),n=this.getClass().getName(),i=n.lastIndexOf("."),u=n.substring(i+1);e.print(" "+u+": "+this._p0+" - "+this._p1+" "+this._quadrant+":"+t+" "+this._label)}},{key:"compareTo",value:function(e){var t=e;return this.compareDirection(t)}},{key:"getDirectedCoordinate",value:function(){return this._p1}},{key:"getDx",value:function(){return this._dx}},{key:"getLabel",value:function(){return this._label}},{key:"getEdge",value:function(){return this._edge}},{key:"getQuadrant",value:function(){return this._quadrant}},{key:"getNode",value:function(){return this._node}},{key:"toString",value:function(){var e=Math.atan2(this._dy,this._dx),t=this.getClass().getName(),n=t.lastIndexOf(".");return" "+t.substring(n+1)+": "+this._p0+" - "+this._p1+" "+this._quadrant+":"+e+" "+this._label}},{key:"computeLabel",value:function(e){}},{key:"init",value:function(e,t){this._p0=e,this._p1=t,this._dx=t.x-e.x,this._dy=t.y-e.y,this._quadrant=Je.quadrant(this._dx,this._dy),he.isTrue(!(this._dx===0&&this._dy===0),"EdgeEnd with identical endpoints found")}},{key:"interfaces_",get:function(){return[z]}}],[{key:"constructor_",value:function(){if(this._edge=null,this._label=null,this._node=null,this._p0=null,this._p1=null,this._dx=null,this._dy=null,this._quadrant=null,arguments.length===1){var e=arguments[0];this._edge=e}else if(arguments.length===3){var t=arguments[0],n=arguments[1],i=arguments[2];r.constructor_.call(this,t,n,i,null)}else if(arguments.length===4){var u=arguments[0],c=arguments[1],f=arguments[2],d=arguments[3];r.constructor_.call(this,u),this.init(c,f),this._label=d}}}]),r}(),yr=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"getNextMin",value:function(){return this._nextMin}},{key:"getDepth",value:function(n){return this._depth[n]}},{key:"setVisited",value:function(n){this._isVisited=n}},{key:"computeDirectedLabel",value:function(){this._label=new _t(this._edge.getLabel()),this._isForward||this._label.flip()}},{key:"getNext",value:function(){return this._next}},{key:"setDepth",value:function(n,i){if(this._depth[n]!==-999&&this._depth[n]!==i)throw new st("assigned depths do not match",this.getCoordinate());this._depth[n]=i}},{key:"isInteriorAreaEdge",value:function(){for(var n=!0,i=0;i<2;i++)this._label.isArea(i)&&this._label.getLocation(i,U.LEFT)===w.INTERIOR&&this._label.getLocation(i,U.RIGHT)===w.INTERIOR||(n=!1);return n}},{key:"setNextMin",value:function(n){this._nextMin=n}},{key:"print",value:function(n){I(v(t.prototype),"print",this).call(this,n),n.print(" "+this._depth[U.LEFT]+"/"+this._depth[U.RIGHT]),n.print(" ("+this.getDepthDelta()+")"),this._isInResult&&n.print(" inResult")}},{key:"setMinEdgeRing",value:function(n){this._minEdgeRing=n}},{key:"isLineEdge",value:function(){var n=this._label.isLine(0)||this._label.isLine(1),i=!this._label.isArea(0)||this._label.allPositionsEqual(0,w.EXTERIOR),u=!this._label.isArea(1)||this._label.allPositionsEqual(1,w.EXTERIOR);return n&&i&&u}},{key:"setEdgeRing",value:function(n){this._edgeRing=n}},{key:"getMinEdgeRing",value:function(){return this._minEdgeRing}},{key:"getDepthDelta",value:function(){var n=this._edge.getDepthDelta();return this._isForward||(n=-n),n}},{key:"setInResult",value:function(n){this._isInResult=n}},{key:"getSym",value:function(){return this._sym}},{key:"isForward",value:function(){return this._isForward}},{key:"getEdge",value:function(){return this._edge}},{key:"printEdge",value:function(n){this.print(n),n.print(" "),this._isForward?this._edge.print(n):this._edge.printReverse(n)}},{key:"setSym",value:function(n){this._sym=n}},{key:"setVisitedEdge",value:function(n){this.setVisited(n),this._sym.setVisited(n)}},{key:"setEdgeDepths",value:function(n,i){var u=this.getEdge().getDepthDelta();this._isForward||(u=-u);var c=1;n===U.LEFT&&(c=-1);var f=U.opposite(n),d=i+u*c;this.setDepth(n,i),this.setDepth(f,d)}},{key:"getEdgeRing",value:function(){return this._edgeRing}},{key:"isInResult",value:function(){return this._isInResult}},{key:"setNext",value:function(n){this._next=n}},{key:"isVisited",value:function(){return this._isVisited}}],[{key:"constructor_",value:function(){this._isForward=null,this._isInResult=!1,this._isVisited=!1,this._sym=null,this._next=null,this._nextMin=null,this._edgeRing=null,this._minEdgeRing=null,this._depth=[0,-999,-999];var n=arguments[0],i=arguments[1];if(fa.constructor_.call(this,n),this._isForward=i,i)this.init(n.getCoordinate(0),n.getCoordinate(1));else{var u=n.getNumPoints()-1;this.init(n.getCoordinate(u),n.getCoordinate(u-1))}this.computeDirectedLabel()}},{key:"depthFactor",value:function(n,i){return n===w.EXTERIOR&&i===w.INTERIOR?1:n===w.INTERIOR&&i===w.EXTERIOR?-1:0}}]),t}(fa),ga=function(){function r(){s(this,r)}return h(r,[{key:"createNode",value:function(e){return new Pi(e,null)}}]),r}(),da=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"printEdges",value:function(e){e.println("Edges:");for(var t=0;t<this._edges.size();t++){e.println("edge "+t+":");var n=this._edges.get(t);n.print(e),n.eiList.print(e)}}},{key:"find",value:function(e){return this._nodes.find(e)}},{key:"addNode",value:function(){if(arguments[0]instanceof Pi){var e=arguments[0];return this._nodes.addNode(e)}if(arguments[0]instanceof b){var t=arguments[0];return this._nodes.addNode(t)}}},{key:"getNodeIterator",value:function(){return this._nodes.iterator()}},{key:"linkResultDirectedEdges",value:function(){for(var e=this._nodes.iterator();e.hasNext();)e.next().getEdges().linkResultDirectedEdges()}},{key:"debugPrintln",value:function(e){nt.out.println(e)}},{key:"isBoundaryNode",value:function(e,t){var n=this._nodes.find(t);if(n===null)return!1;var i=n.getLabel();return i!==null&&i.getLocation(e)===w.BOUNDARY}},{key:"linkAllDirectedEdges",value:function(){for(var e=this._nodes.iterator();e.hasNext();)e.next().getEdges().linkAllDirectedEdges()}},{key:"matchInSameDirection",value:function(e,t,n,i){return!!e.equals(n)&&re.index(e,t,i)===re.COLLINEAR&&Je.quadrant(e,t)===Je.quadrant(n,i)}},{key:"getEdgeEnds",value:function(){return this._edgeEndList}},{key:"debugPrint",value:function(e){nt.out.print(e)}},{key:"getEdgeIterator",value:function(){return this._edges.iterator()}},{key:"findEdgeInSameDirection",value:function(e,t){for(var n=0;n<this._edges.size();n++){var i=this._edges.get(n),u=i.getCoordinates();if(this.matchInSameDirection(e,t,u[0],u[1])||this.matchInSameDirection(e,t,u[u.length-1],u[u.length-2]))return i}return null}},{key:"insertEdge",value:function(e){this._edges.add(e)}},{key:"findEdgeEnd",value:function(e){for(var t=this.getEdgeEnds().iterator();t.hasNext();){var n=t.next();if(n.getEdge()===e)return n}return null}},{key:"addEdges",value:function(e){for(var t=e.iterator();t.hasNext();){var n=t.next();this._edges.add(n);var i=new yr(n,!0),u=new yr(n,!1);i.setSym(u),u.setSym(i),this.add(i),this.add(u)}}},{key:"add",value:function(e){this._nodes.add(e),this._edgeEndList.add(e)}},{key:"getNodes",value:function(){return this._nodes.values()}},{key:"findEdge",value:function(e,t){for(var n=0;n<this._edges.size();n++){var i=this._edges.get(n),u=i.getCoordinates();if(e.equals(u[0])&&t.equals(u[1]))return i}return null}}],[{key:"constructor_",value:function(){if(this._edges=new ne,this._nodes=null,this._edgeEndList=new ne,arguments.length===0)this._nodes=new ca(new ga);else if(arguments.length===1){var e=arguments[0];this._nodes=new ca(e)}}},{key:"linkResultDirectedEdges",value:function(e){for(var t=e.iterator();t.hasNext();)t.next().getEdges().linkResultDirectedEdges()}}]),r}(),wl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"sortShellsAndHoles",value:function(e,t,n){for(var i=e.iterator();i.hasNext();){var u=i.next();u.isHole()?n.add(u):t.add(u)}}},{key:"computePolygons",value:function(e){for(var t=new ne,n=e.iterator();n.hasNext();){var i=n.next().toPolygon(this._geometryFactory);t.add(i)}return t}},{key:"placeFreeHoles",value:function(e,t){for(var n=t.iterator();n.hasNext();){var i=n.next();if(i.getShell()===null){var u=r.findEdgeRingContaining(i,e);if(u===null)throw new st("unable to assign hole to a shell",i.getCoordinate(0));i.setShell(u)}}}},{key:"buildMinimalEdgeRings",value:function(e,t,n){for(var i=new ne,u=e.iterator();u.hasNext();){var c=u.next();if(c.getMaxNodeDegree()>2){c.linkDirectedEdgesForMinimalEdgeRings();var f=c.buildMinimalRings(),d=this.findShell(f);d!==null?(this.placePolygonHoles(d,f),t.add(d)):n.addAll(f)}else i.add(c)}return i}},{key:"buildMaximalEdgeRings",value:function(e){for(var t=new ne,n=e.iterator();n.hasNext();){var i=n.next();if(i.isInResult()&&i.getLabel().isArea()&&i.getEdgeRing()===null){var u=new Nl(i,this._geometryFactory);t.add(u),u.setInResult()}}return t}},{key:"placePolygonHoles",value:function(e,t){for(var n=t.iterator();n.hasNext();){var i=n.next();i.isHole()&&i.setShell(e)}}},{key:"getPolygons",value:function(){return this.computePolygons(this._shellList)}},{key:"findShell",value:function(e){for(var t=0,n=null,i=e.iterator();i.hasNext();){var u=i.next();u.isHole()||(n=u,t++)}return he.isTrue(t<=1,"found two shells in MinimalEdgeRing list"),n}},{key:"add",value:function(){if(arguments.length===1){var e=arguments[0];this.add(e.getEdgeEnds(),e.getNodes())}else if(arguments.length===2){var t=arguments[0],n=arguments[1];da.linkResultDirectedEdges(n);var i=this.buildMaximalEdgeRings(t),u=new ne,c=this.buildMinimalEdgeRings(i,this._shellList,u);this.sortShellsAndHoles(c,this._shellList,u),this.placeFreeHoles(this._shellList,u)}}}],[{key:"constructor_",value:function(){this._geometryFactory=null,this._shellList=new ne;var e=arguments[0];this._geometryFactory=e}},{key:"findEdgeRingContaining",value:function(e,t){for(var n=e.getLinearRing(),i=n.getEnvelopeInternal(),u=n.getCoordinateN(0),c=null,f=null,d=t.iterator();d.hasNext();){var p=d.next(),S=p.getLinearRing(),L=S.getEnvelopeInternal();if(!L.equals(i)&&L.contains(i)){u=ze.ptNotInList(n.getCoordinates(),S.getCoordinates());var P=!1;mr.isInRing(u,S.getCoordinates())&&(P=!0),P&&(c===null||f.contains(L))&&(f=(c=p).getLinearRing().getEnvelopeInternal())}}return c}}]),r}(),ma=function(){function r(){s(this,r)}return h(r,[{key:"getBounds",value:function(){}}]),r}(),zt=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getItem",value:function(){return this._item}},{key:"getBounds",value:function(){return this._bounds}},{key:"interfaces_",get:function(){return[ma,G]}}],[{key:"constructor_",value:function(){this._bounds=null,this._item=null;var e=arguments[0],t=arguments[1];this._bounds=e,this._item=t}}]),r}(),Ai=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"poll",value:function(){if(this.isEmpty())return null;var e=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),e}},{key:"size",value:function(){return this._size}},{key:"reorder",value:function(e){for(var t=null,n=this._items.get(e);2*e<=this._size&&((t=2*e)!==this._size&&this._items.get(t+1).compareTo(this._items.get(t))<0&&t++,this._items.get(t).compareTo(n)<0);e=t)this._items.set(e,this._items.get(t));this._items.set(e,n)}},{key:"clear",value:function(){this._size=0,this._items.clear()}},{key:"peek",value:function(){return this.isEmpty()?null:this._items.get(1)}},{key:"isEmpty",value:function(){return this._size===0}},{key:"add",value:function(e){this._items.add(null),this._size+=1;var t=this._size;for(this._items.set(0,e);e.compareTo(this._items.get(Math.trunc(t/2)))<0;t/=2)this._items.set(t,this._items.get(Math.trunc(t/2)));this._items.set(t,e)}}],[{key:"constructor_",value:function(){this._size=null,this._items=null,this._size=0,this._items=new ne,this._items.add(null)}}]),r}(),Sl=function(){function r(){s(this,r)}return h(r,[{key:"insert",value:function(e,t){}},{key:"remove",value:function(e,t){}},{key:"query",value:function(){}}]),r}(),kt=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getLevel",value:function(){return this._level}},{key:"size",value:function(){return this._childBoundables.size()}},{key:"getChildBoundables",value:function(){return this._childBoundables}},{key:"addChildBoundable",value:function(e){he.isTrue(this._bounds===null),this._childBoundables.add(e)}},{key:"isEmpty",value:function(){return this._childBoundables.isEmpty()}},{key:"getBounds",value:function(){return this._bounds===null&&(this._bounds=this.computeBounds()),this._bounds}},{key:"interfaces_",get:function(){return[ma,G]}}],[{key:"constructor_",value:function(){if(this._childBoundables=new ne,this._bounds=null,this._level=null,arguments.length!==0){if(arguments.length===1){var e=arguments[0];this._level=e}}}}]),r}(),Rn={reverseOrder:function(){return{compare:function(r,e){return e.compareTo(r)}}},min:function(r){return Rn.sort(r),r.get(0)},sort:function(r,e){var t=r.toArray();e?yt.sort(t,e):yt.sort(t);for(var n=r.iterator(),i=0,u=t.length;i<u;i++)n.next(),n.set(t[i])},singletonList:function(r){var e=new ne;return e.add(r),e}},Ll=function(){function r(){s(this,r)}return h(r,null,[{key:"maxDistance",value:function(e,t,n,i,u,c,f,d){var p=r.distance(e,t,u,c);return p=Math.max(p,r.distance(e,t,f,d)),p=Math.max(p,r.distance(n,i,u,c)),p=Math.max(p,r.distance(n,i,f,d))}},{key:"distance",value:function(e,t,n,i){var u=n-e,c=i-t;return Math.sqrt(u*u+c*c)}},{key:"maximumDistance",value:function(e,t){var n=Math.min(e.getMinX(),t.getMinX()),i=Math.min(e.getMinY(),t.getMinY()),u=Math.max(e.getMaxX(),t.getMaxX()),c=Math.max(e.getMaxY(),t.getMaxY());return r.distance(n,i,u,c)}},{key:"minMaxDistance",value:function(e,t){var n=e.getMinX(),i=e.getMinY(),u=e.getMaxX(),c=e.getMaxY(),f=t.getMinX(),d=t.getMinY(),p=t.getMaxX(),S=t.getMaxY(),L=r.maxDistance(n,i,n,c,f,d,f,S);return L=Math.min(L,r.maxDistance(n,i,n,c,f,d,p,d)),L=Math.min(L,r.maxDistance(n,i,n,c,p,S,f,S)),L=Math.min(L,r.maxDistance(n,i,n,c,p,S,p,d)),L=Math.min(L,r.maxDistance(n,i,u,i,f,d,f,S)),L=Math.min(L,r.maxDistance(n,i,u,i,f,d,p,d)),L=Math.min(L,r.maxDistance(n,i,u,i,p,S,f,S)),L=Math.min(L,r.maxDistance(n,i,u,i,p,S,p,d)),L=Math.min(L,r.maxDistance(u,c,n,c,f,d,f,S)),L=Math.min(L,r.maxDistance(u,c,n,c,f,d,p,d)),L=Math.min(L,r.maxDistance(u,c,n,c,p,S,f,S)),L=Math.min(L,r.maxDistance(u,c,n,c,p,S,p,d)),L=Math.min(L,r.maxDistance(u,c,u,i,f,d,f,S)),L=Math.min(L,r.maxDistance(u,c,u,i,f,d,p,d)),L=Math.min(L,r.maxDistance(u,c,u,i,p,S,f,S)),L=Math.min(L,r.maxDistance(u,c,u,i,p,S,p,d))}}]),r}(),On=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"maximumDistance",value:function(){return Ll.maximumDistance(this._boundable1.getBounds(),this._boundable2.getBounds())}},{key:"expandToQueue",value:function(e,t){var n=r.isComposite(this._boundable1),i=r.isComposite(this._boundable2);if(n&&i)return r.area(this._boundable1)>r.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,!1,e,t),null):(this.expand(this._boundable2,this._boundable1,!0,e,t),null);if(n)return this.expand(this._boundable1,this._boundable2,!1,e,t),null;if(i)return this.expand(this._boundable2,this._boundable1,!0,e,t),null;throw new O("neither boundable is composite")}},{key:"isLeaves",value:function(){return!(r.isComposite(this._boundable1)||r.isComposite(this._boundable2))}},{key:"compareTo",value:function(e){var t=e;return this._distance<t._distance?-1:this._distance>t._distance?1:0}},{key:"expand",value:function(e,t,n,i,u){for(var c=e.getChildBoundables().iterator();c.hasNext();){var f=c.next(),d=null;(d=n?new r(t,f,this._itemDistance):new r(f,t,this._itemDistance)).getDistance()<u&&i.add(d)}}},{key:"getBoundable",value:function(e){return e===0?this._boundable1:this._boundable2}},{key:"getDistance",value:function(){return this._distance}},{key:"distance",value:function(){return this.isLeaves()?this._itemDistance.distance(this._boundable1,this._boundable2):this._boundable1.getBounds().distance(this._boundable2.getBounds())}},{key:"interfaces_",get:function(){return[z]}}],[{key:"constructor_",value:function(){this._boundable1=null,this._boundable2=null,this._distance=null,this._itemDistance=null;var e=arguments[0],t=arguments[1],n=arguments[2];this._boundable1=e,this._boundable2=t,this._itemDistance=n,this._distance=this.distance()}},{key:"area",value:function(e){return e.getBounds().getArea()}},{key:"isComposite",value:function(e){return e instanceof kt}}]),r}(),va=function(){function r(){s(this,r)}return h(r,[{key:"visitItem",value:function(e){}}]),r}(),Mn=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"queryInternal",value:function(){if(ue(arguments[2],va)&&arguments[0]instanceof Object&&arguments[1]instanceof kt)for(var e=arguments[0],t=arguments[1],n=arguments[2],i=t.getChildBoundables(),u=0;u<i.size();u++){var c=i.get(u);this.getIntersectsOp().intersects(c.getBounds(),e)&&(c instanceof kt?this.queryInternal(e,c,n):c instanceof zt?n.visitItem(c.getItem()):he.shouldNeverReachHere())}else if(ue(arguments[2],tt)&&arguments[0]instanceof Object&&arguments[1]instanceof kt)for(var f=arguments[0],d=arguments[1],p=arguments[2],S=d.getChildBoundables(),L=0;L<S.size();L++){var P=S.get(L);this.getIntersectsOp().intersects(P.getBounds(),f)&&(P instanceof kt?this.queryInternal(f,P,p):P instanceof zt?p.add(P.getItem()):he.shouldNeverReachHere())}}},{key:"getNodeCapacity",value:function(){return this._nodeCapacity}},{key:"lastNode",value:function(e){return e.get(e.size()-1)}},{key:"size",value:function(){if(arguments.length===0)return this.isEmpty()?0:(this.build(),this.size(this._root));if(arguments.length===1){for(var e=arguments[0],t=0,n=e.getChildBoundables().iterator();n.hasNext();){var i=n.next();i instanceof kt?t+=this.size(i):i instanceof zt&&(t+=1)}return t}}},{key:"removeItem",value:function(e,t){for(var n=null,i=e.getChildBoundables().iterator();i.hasNext();){var u=i.next();u instanceof zt&&u.getItem()===t&&(n=u)}return n!==null&&(e.getChildBoundables().remove(n),!0)}},{key:"itemsTree",value:function(){if(arguments.length===0){this.build();var e=this.itemsTree(this._root);return e===null?new ne:e}if(arguments.length===1){for(var t=arguments[0],n=new ne,i=t.getChildBoundables().iterator();i.hasNext();){var u=i.next();if(u instanceof kt){var c=this.itemsTree(u);c!==null&&n.add(c)}else u instanceof zt?n.add(u.getItem()):he.shouldNeverReachHere()}return n.size()<=0?null:n}}},{key:"insert",value:function(e,t){he.isTrue(!this._built,"Cannot insert items into an STR packed R-tree after it has been built."),this._itemBoundables.add(new zt(e,t))}},{key:"boundablesAtLevel",value:function(){if(arguments.length===1){var e=arguments[0],t=new ne;return this.boundablesAtLevel(e,this._root,t),t}if(arguments.length===3){var n=arguments[0],i=arguments[1],u=arguments[2];if(he.isTrue(n>-2),i.getLevel()===n)return u.add(i),null;for(var c=i.getChildBoundables().iterator();c.hasNext();){var f=c.next();f instanceof kt?this.boundablesAtLevel(n,f,u):(he.isTrue(f instanceof zt),n===-1&&u.add(f))}return null}}},{key:"query",value:function(){if(arguments.length===1){var e=arguments[0];this.build();var t=new ne;return this.isEmpty()||this.getIntersectsOp().intersects(this._root.getBounds(),e)&&this.queryInternal(e,this._root,t),t}if(arguments.length===2){var n=arguments[0],i=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),n)&&this.queryInternal(n,this._root,i)}}},{key:"build",value:function(){if(this._built)return null;this._root=this._itemBoundables.isEmpty()?this.createNode(0):this.createHigherLevels(this._itemBoundables,-1),this._itemBoundables=null,this._built=!0}},{key:"getRoot",value:function(){return this.build(),this._root}},{key:"remove",value:function(){if(arguments.length===2){var e=arguments[0],t=arguments[1];return this.build(),!!this.getIntersectsOp().intersects(this._root.getBounds(),e)&&this.remove(e,this._root,t)}if(arguments.length===3){var n=arguments[0],i=arguments[1],u=arguments[2],c=this.removeItem(i,u);if(c)return!0;for(var f=null,d=i.getChildBoundables().iterator();d.hasNext();){var p=d.next();if(this.getIntersectsOp().intersects(p.getBounds(),n)&&p instanceof kt&&(c=this.remove(n,p,u))){f=p;break}}return f!==null&&f.getChildBoundables().isEmpty()&&i.getChildBoundables().remove(f),c}}},{key:"createHigherLevels",value:function(e,t){he.isTrue(!e.isEmpty());var n=this.createParentBoundables(e,t+1);return n.size()===1?n.get(0):this.createHigherLevels(n,t+1)}},{key:"depth",value:function(){if(arguments.length===0)return this.isEmpty()?0:(this.build(),this.depth(this._root));if(arguments.length===1){for(var e=arguments[0],t=0,n=e.getChildBoundables().iterator();n.hasNext();){var i=n.next();if(i instanceof kt){var u=this.depth(i);u>t&&(t=u)}}return t+1}}},{key:"createParentBoundables",value:function(e,t){he.isTrue(!e.isEmpty());var n=new ne;n.add(this.createNode(t));var i=new ne(e);Rn.sort(i,this.getComparator());for(var u=i.iterator();u.hasNext();){var c=u.next();this.lastNode(n).getChildBoundables().size()===this.getNodeCapacity()&&n.add(this.createNode(t)),this.lastNode(n).addChildBoundable(c)}return n}},{key:"isEmpty",value:function(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()}},{key:"interfaces_",get:function(){return[G]}}],[{key:"constructor_",value:function(){if(this._root=null,this._built=!1,this._itemBoundables=new ne,this._nodeCapacity=null,arguments.length===0)r.constructor_.call(this,r.DEFAULT_NODE_CAPACITY);else if(arguments.length===1){var e=arguments[0];he.isTrue(e>1,"Node capacity must be greater than 1"),this._nodeCapacity=e}}},{key:"compareDoubles",value:function(e,t){return e>t?1:e<t?-1:0}}]),r}();Mn.IntersectsOp=function(){},Mn.DEFAULT_NODE_CAPACITY=10;var bl=function(){function r(){s(this,r)}return h(r,[{key:"distance",value:function(e,t){}}]),r}(),Ot=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"createParentBoundablesFromVerticalSlices",value:function(n,i){he.isTrue(n.length>0);for(var u=new ne,c=0;c<n.length;c++)u.addAll(this.createParentBoundablesFromVerticalSlice(n[c],i));return u}},{key:"nearestNeighbourK",value:function(){if(arguments.length===2){var n=arguments[0],i=arguments[1];return this.nearestNeighbourK(n,Q.POSITIVE_INFINITY,i)}if(arguments.length===3){var u=arguments[0],c=arguments[1],f=arguments[2],d=c,p=new Ai;p.add(u);for(var S=new Ai;!p.isEmpty()&&d>=0;){var L=p.poll(),P=L.getDistance();if(P>=d)break;if(L.isLeaves())if(S.size()<f)S.add(L);else{var V=S.peek();V.getDistance()>P&&(S.poll(),S.add(L));var W=S.peek();d=W.getDistance()}else L.expandToQueue(p,d)}return t.getItems(S)}}},{key:"createNode",value:function(n){return new ya(n)}},{key:"size",value:function(){return arguments.length===0?I(v(t.prototype),"size",this).call(this):I(v(t.prototype),"size",this).apply(this,arguments)}},{key:"insert",value:function(){if(!(arguments.length===2&&arguments[1]instanceof Object&&arguments[0]instanceof Ee))return I(v(t.prototype),"insert",this).apply(this,arguments);var n=arguments[0],i=arguments[1];if(n.isNull())return null;I(v(t.prototype),"insert",this).call(this,n,i)}},{key:"getIntersectsOp",value:function(){return t.intersectsOp}},{key:"verticalSlices",value:function(n,i){for(var u=Math.trunc(Math.ceil(n.size()/i)),c=new Array(i).fill(null),f=n.iterator(),d=0;d<i;d++){c[d]=new ne;for(var p=0;f.hasNext()&&p<u;){var S=f.next();c[d].add(S),p++}}return c}},{key:"query",value:function(){if(arguments.length===1){var n=arguments[0];return I(v(t.prototype),"query",this).call(this,n)}if(arguments.length===2){var i=arguments[0],u=arguments[1];I(v(t.prototype),"query",this).call(this,i,u)}}},{key:"getComparator",value:function(){return t.yComparator}},{key:"createParentBoundablesFromVerticalSlice",value:function(n,i){return I(v(t.prototype),"createParentBoundables",this).call(this,n,i)}},{key:"remove",value:function(){if(arguments.length===2&&arguments[1]instanceof Object&&arguments[0]instanceof Ee){var n=arguments[0],i=arguments[1];return I(v(t.prototype),"remove",this).call(this,n,i)}return I(v(t.prototype),"remove",this).apply(this,arguments)}},{key:"depth",value:function(){return arguments.length===0?I(v(t.prototype),"depth",this).call(this):I(v(t.prototype),"depth",this).apply(this,arguments)}},{key:"createParentBoundables",value:function(n,i){he.isTrue(!n.isEmpty());var u=Math.trunc(Math.ceil(n.size()/this.getNodeCapacity())),c=new ne(n);Rn.sort(c,t.xComparator);var f=this.verticalSlices(c,Math.trunc(Math.ceil(Math.sqrt(u))));return this.createParentBoundablesFromVerticalSlices(f,i)}},{key:"nearestNeighbour",value:function(){if(arguments.length===1){if(ue(arguments[0],bl)){var n=arguments[0];if(this.isEmpty())return null;var i=new On(this.getRoot(),this.getRoot(),n);return this.nearestNeighbour(i)}if(arguments[0]instanceof On){var u=arguments[0],c=Q.POSITIVE_INFINITY,f=null,d=new Ai;for(d.add(u);!d.isEmpty()&&c>0;){var p=d.poll(),S=p.getDistance();if(S>=c)break;p.isLeaves()?(c=S,f=p):p.expandToQueue(d,c)}return f===null?null:[f.getBoundable(0).getItem(),f.getBoundable(1).getItem()]}}else{if(arguments.length===2){var L=arguments[0],P=arguments[1];if(this.isEmpty()||L.isEmpty())return null;var V=new On(this.getRoot(),L.getRoot(),P);return this.nearestNeighbour(V)}if(arguments.length===3){var W=arguments[0],$=arguments[1],ie=arguments[2],le=new zt(W,$),_e=new On(this.getRoot(),le,ie);return this.nearestNeighbour(_e)[0]}if(arguments.length===4){var De=arguments[0],He=arguments[1],lt=arguments[2],St=arguments[3],Yt=new zt(De,He),gn=new On(this.getRoot(),Yt,lt);return this.nearestNeighbourK(gn,St)}}}},{key:"isWithinDistance",value:function(){if(arguments.length===2){var n=arguments[0],i=arguments[1],u=Q.POSITIVE_INFINITY,c=new Ai;for(c.add(n);!c.isEmpty();){var f=c.poll(),d=f.getDistance();if(d>i)return!1;if(f.maximumDistance()<=i)return!0;if(f.isLeaves()){if((u=d)<=i)return!0}else f.expandToQueue(c,u)}return!1}if(arguments.length===3){var p=arguments[0],S=arguments[1],L=arguments[2],P=new On(this.getRoot(),p.getRoot(),S);return this.isWithinDistance(P,L)}}},{key:"interfaces_",get:function(){return[Sl,G]}}],[{key:"constructor_",value:function(){if(arguments.length===0)t.constructor_.call(this,t.DEFAULT_NODE_CAPACITY);else if(arguments.length===1){var n=arguments[0];Mn.constructor_.call(this,n)}}},{key:"centreX",value:function(n){return t.avg(n.getMinX(),n.getMaxX())}},{key:"avg",value:function(n,i){return(n+i)/2}},{key:"getItems",value:function(n){for(var i=new Array(n.size()).fill(null),u=0;!n.isEmpty();){var c=n.poll();i[u]=c.getBoundable(0).getItem(),u++}return i}},{key:"centreY",value:function(n){return t.avg(n.getMinY(),n.getMaxY())}}]),t}(Mn),ya=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"computeBounds",value:function(){for(var n=null,i=this.getChildBoundables().iterator();i.hasNext();){var u=i.next();n===null?n=new Ee(u.getBounds()):n.expandToInclude(u.getBounds())}return n}}],[{key:"constructor_",value:function(){var n=arguments[0];kt.constructor_.call(this,n)}}]),t}(kt);Ot.STRtreeNode=ya,Ot.xComparator=new(function(){function r(){s(this,r)}return h(r,[{key:"interfaces_",get:function(){return[Ge]}},{key:"compare",value:function(e,t){return Mn.compareDoubles(Ot.centreX(e.getBounds()),Ot.centreX(t.getBounds()))}}]),r}()),Ot.yComparator=new(function(){function r(){s(this,r)}return h(r,[{key:"interfaces_",get:function(){return[Ge]}},{key:"compare",value:function(e,t){return Mn.compareDoubles(Ot.centreY(e.getBounds()),Ot.centreY(t.getBounds()))}}]),r}()),Ot.intersectsOp=new(function(){function r(){s(this,r)}return h(r,[{key:"interfaces_",get:function(){return[IntersectsOp]}},{key:"intersects",value:function(e,t){return e.intersects(t)}}]),r}()),Ot.DEFAULT_NODE_CAPACITY=10;var Tl=function(){function r(){s(this,r)}return h(r,null,[{key:"relativeSign",value:function(e,t){return e<t?-1:e>t?1:0}},{key:"compare",value:function(e,t,n){if(t.equals2D(n))return 0;var i=r.relativeSign(t.x,n.x),u=r.relativeSign(t.y,n.y);switch(e){case 0:return r.compareValue(i,u);case 1:return r.compareValue(u,i);case 2:return r.compareValue(u,-i);case 3:return r.compareValue(-i,u);case 4:return r.compareValue(-i,-u);case 5:return r.compareValue(-u,-i);case 6:return r.compareValue(-u,i);case 7:return r.compareValue(i,-u)}return he.shouldNeverReachHere("invalid octant value"),0}},{key:"compareValue",value:function(e,t){return e<0?-1:e>0?1:t<0?-1:t>0?1:0}}]),r}(),Cl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getCoordinate",value:function(){return this.coord}},{key:"print",value:function(e){e.print(this.coord),e.print(" seg # = "+this.segmentIndex)}},{key:"compareTo",value:function(e){var t=e;return this.segmentIndex<t.segmentIndex?-1:this.segmentIndex>t.segmentIndex?1:this.coord.equals2D(t.coord)?0:this._isInterior?t._isInterior?Tl.compare(this._segmentOctant,this.coord,t.coord):1:-1}},{key:"isEndPoint",value:function(e){return this.segmentIndex===0&&!this._isInterior||this.segmentIndex===e}},{key:"toString",value:function(){return this.segmentIndex+":"+this.coord.toString()}},{key:"isInterior",value:function(){return this._isInterior}},{key:"interfaces_",get:function(){return[z]}}],[{key:"constructor_",value:function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;var e=arguments[0],t=arguments[1],n=arguments[2],i=arguments[3];this._segString=e,this.coord=new b(t),this.segmentIndex=n,this._segmentOctant=i,this._isInterior=!t.equals2D(e.getCoordinate(n))}}]),r}(),Rl=function(){function r(){s(this,r)}return h(r,[{key:"hasNext",value:function(){}},{key:"next",value:function(){}},{key:"remove",value:function(){}}]),r}(),Ol=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getSplitCoordinates",value:function(){var e=new $n;this.addEndpoints();for(var t=this.iterator(),n=t.next();t.hasNext();){var i=t.next();this.addEdgeCoordinates(n,i,e),n=i}return e.toCoordinateArray()}},{key:"addCollapsedNodes",value:function(){var e=new ne;this.findCollapsesFromInsertedNodes(e),this.findCollapsesFromExistingVertices(e);for(var t=e.iterator();t.hasNext();){var n=t.next().intValue();this.add(this._edge.getCoordinate(n),n)}}},{key:"createSplitEdgePts",value:function(e,t){var n=t.segmentIndex-e.segmentIndex+2;if(n===2)return[new b(e.coord),new b(t.coord)];var i=this._edge.getCoordinate(t.segmentIndex),u=t.isInterior()||!t.coord.equals2D(i);u||n--;var c=new Array(n).fill(null),f=0;c[f++]=new b(e.coord);for(var d=e.segmentIndex+1;d<=t.segmentIndex;d++)c[f++]=this._edge.getCoordinate(d);return u&&(c[f]=new b(t.coord)),c}},{key:"print",value:function(e){e.println("Intersections:");for(var t=this.iterator();t.hasNext();)t.next().print(e)}},{key:"findCollapsesFromExistingVertices",value:function(e){for(var t=0;t<this._edge.size()-2;t++){var n=this._edge.getCoordinate(t);this._edge.getCoordinate(t+1);var i=this._edge.getCoordinate(t+2);n.equals2D(i)&&e.add(rt.valueOf(t+1))}}},{key:"addEdgeCoordinates",value:function(e,t,n){var i=this.createSplitEdgePts(e,t);n.add(i,!1)}},{key:"iterator",value:function(){return this._nodeMap.values().iterator()}},{key:"addSplitEdges",value:function(e){this.addEndpoints(),this.addCollapsedNodes();for(var t=this.iterator(),n=t.next();t.hasNext();){var i=t.next(),u=this.createSplitEdge(n,i);e.add(u),n=i}}},{key:"findCollapseIndex",value:function(e,t,n){if(!e.coord.equals2D(t.coord))return!1;var i=t.segmentIndex-e.segmentIndex;return t.isInterior()||i--,i===1&&(n[0]=e.segmentIndex+1,!0)}},{key:"findCollapsesFromInsertedNodes",value:function(e){for(var t=new Array(1).fill(null),n=this.iterator(),i=n.next();n.hasNext();){var u=n.next();this.findCollapseIndex(i,u,t)&&e.add(rt.valueOf(t[0])),i=u}}},{key:"getEdge",value:function(){return this._edge}},{key:"addEndpoints",value:function(){var e=this._edge.size()-1;this.add(this._edge.getCoordinate(0),0),this.add(this._edge.getCoordinate(e),e)}},{key:"createSplitEdge",value:function(e,t){var n=this.createSplitEdgePts(e,t);return new fn(n,this._edge.getData())}},{key:"add",value:function(e,t){var n=new Cl(this._edge,e,t,this._edge.getSegmentOctant(t)),i=this._nodeMap.get(n);return i!==null?(he.isTrue(i.coord.equals2D(e),"Found equal nodes with different coordinates"),i):(this._nodeMap.put(n,n),n)}},{key:"checkSplitEdgesCorrectness",value:function(e){var t=this._edge.getCoordinates(),n=e.get(0).getCoordinate(0);if(!n.equals2D(t[0]))throw new be("bad split edge start point at "+n);var i=e.get(e.size()-1).getCoordinates(),u=i[i.length-1];if(!u.equals2D(t[t.length-1]))throw new be("bad split edge end point at "+u)}}],[{key:"constructor_",value:function(){this._nodeMap=new ni,this._edge=null;var e=arguments[0];this._edge=e}}]),r}(),Ml=function(){function r(){s(this,r)}return h(r,null,[{key:"octant",value:function(){if(typeof arguments[0]=="number"&&typeof arguments[1]=="number"){var e=arguments[0],t=arguments[1];if(e===0&&t===0)throw new O("Cannot compute the octant for point ( "+e+", "+t+" )");var n=Math.abs(e),i=Math.abs(t);return e>=0?t>=0?n>=i?0:1:n>=i?7:6:t>=0?n>=i?3:2:n>=i?4:5}if(arguments[0]instanceof b&&arguments[1]instanceof b){var u=arguments[0],c=arguments[1],f=c.x-u.x,d=c.y-u.y;if(f===0&&d===0)throw new O("Cannot compute the octant for two identical points "+u);return r.octant(f,d)}}}]),r}(),Pl=function(){function r(){s(this,r)}return h(r,[{key:"getCoordinates",value:function(){}},{key:"size",value:function(){}},{key:"getCoordinate",value:function(e){}},{key:"isClosed",value:function(){}},{key:"setData",value:function(e){}},{key:"getData",value:function(){}}]),r}(),Al=function(){function r(){s(this,r)}return h(r,[{key:"addIntersection",value:function(e,t){}},{key:"interfaces_",get:function(){return[Pl]}}]),r}(),fn=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getCoordinates",value:function(){return this._pts}},{key:"size",value:function(){return this._pts.length}},{key:"getCoordinate",value:function(e){return this._pts[e]}},{key:"isClosed",value:function(){return this._pts[0].equals(this._pts[this._pts.length-1])}},{key:"getSegmentOctant",value:function(e){return e===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(e),this.getCoordinate(e+1))}},{key:"setData",value:function(e){this._data=e}},{key:"safeOctant",value:function(e,t){return e.equals2D(t)?0:Ml.octant(e,t)}},{key:"getData",value:function(){return this._data}},{key:"addIntersection",value:function(){if(arguments.length===2){var e=arguments[0],t=arguments[1];this.addIntersectionNode(e,t)}else if(arguments.length===4){var n=arguments[0],i=arguments[1],u=arguments[3],c=new b(n.getIntersection(u));this.addIntersection(c,i)}}},{key:"toString",value:function(){return dr.toLineString(new ei(this._pts))}},{key:"getNodeList",value:function(){return this._nodeList}},{key:"addIntersectionNode",value:function(e,t){var n=t,i=n+1;if(i<this._pts.length){var u=this._pts[i];e.equals2D(u)&&(n=i)}return this._nodeList.add(e,n)}},{key:"addIntersections",value:function(e,t,n){for(var i=0;i<e.getIntersectionNum();i++)this.addIntersection(e,t,n,i)}},{key:"interfaces_",get:function(){return[Al]}}],[{key:"constructor_",value:function(){this._nodeList=new Ol(this),this._pts=null,this._data=null;var e=arguments[0],t=arguments[1];this._pts=e,this._data=t}},{key:"getNodedSubstrings",value:function(){if(arguments.length===1){var e=arguments[0],t=new ne;return r.getNodedSubstrings(e,t),t}if(arguments.length===2)for(var n=arguments[0],i=arguments[1],u=n.iterator();u.hasNext();){var c=u.next();c.getNodeList().addSplitEdges(i)}}}]),r}(),ut=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"minX",value:function(){return Math.min(this.p0.x,this.p1.x)}},{key:"orientationIndex",value:function(){if(arguments[0]instanceof r){var e=arguments[0],t=re.index(this.p0,this.p1,e.p0),n=re.index(this.p0,this.p1,e.p1);return t>=0&&n>=0||t<=0&&n<=0?Math.max(t,n):0}if(arguments[0]instanceof b){var i=arguments[0];return re.index(this.p0,this.p1,i)}}},{key:"toGeometry",value:function(e){return e.createLineString([this.p0,this.p1])}},{key:"isVertical",value:function(){return this.p0.x===this.p1.x}},{key:"equals",value:function(e){if(!(e instanceof r))return!1;var t=e;return this.p0.equals(t.p0)&&this.p1.equals(t.p1)}},{key:"intersection",value:function(e){var t=new cn;return t.computeIntersection(this.p0,this.p1,e.p0,e.p1),t.hasIntersection()?t.getIntersection(0):null}},{key:"project",value:function(){if(arguments[0]instanceof b){var e=arguments[0];if(e.equals(this.p0)||e.equals(this.p1))return new b(e);var t=this.projectionFactor(e),n=new b;return n.x=this.p0.x+t*(this.p1.x-this.p0.x),n.y=this.p0.y+t*(this.p1.y-this.p0.y),n}if(arguments[0]instanceof r){var i=arguments[0],u=this.projectionFactor(i.p0),c=this.projectionFactor(i.p1);if(u>=1&&c>=1||u<=0&&c<=0)return null;var f=this.project(i.p0);u<0&&(f=this.p0),u>1&&(f=this.p1);var d=this.project(i.p1);return c<0&&(d=this.p0),c>1&&(d=this.p1),new r(f,d)}}},{key:"normalize",value:function(){this.p1.compareTo(this.p0)<0&&this.reverse()}},{key:"angle",value:function(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)}},{key:"getCoordinate",value:function(e){return e===0?this.p0:this.p1}},{key:"distancePerpendicular",value:function(e){return vt.pointToLinePerpendicular(e,this.p0,this.p1)}},{key:"minY",value:function(){return Math.min(this.p0.y,this.p1.y)}},{key:"midPoint",value:function(){return r.midPoint(this.p0,this.p1)}},{key:"projectionFactor",value:function(e){if(e.equals(this.p0))return 0;if(e.equals(this.p1))return 1;var t=this.p1.x-this.p0.x,n=this.p1.y-this.p0.y,i=t*t+n*n;return i<=0?Q.NaN:((e.x-this.p0.x)*t+(e.y-this.p0.y)*n)/i}},{key:"closestPoints",value:function(e){var t=this.intersection(e);if(t!==null)return[t,t];var n=new Array(2).fill(null),i=Q.MAX_VALUE,u=null,c=this.closestPoint(e.p0);i=c.distance(e.p0),n[0]=c,n[1]=e.p0;var f=this.closestPoint(e.p1);(u=f.distance(e.p1))<i&&(i=u,n[0]=f,n[1]=e.p1);var d=e.closestPoint(this.p0);(u=d.distance(this.p0))<i&&(i=u,n[0]=this.p0,n[1]=d);var p=e.closestPoint(this.p1);return(u=p.distance(this.p1))<i&&(i=u,n[0]=this.p1,n[1]=p),n}},{key:"closestPoint",value:function(e){var t=this.projectionFactor(e);return t>0&&t<1?this.project(e):this.p0.distance(e)<this.p1.distance(e)?this.p0:this.p1}},{key:"maxX",value:function(){return Math.max(this.p0.x,this.p1.x)}},{key:"getLength",value:function(){return this.p0.distance(this.p1)}},{key:"compareTo",value:function(e){var t=e,n=this.p0.compareTo(t.p0);return n!==0?n:this.p1.compareTo(t.p1)}},{key:"reverse",value:function(){var e=this.p0;this.p0=this.p1,this.p1=e}},{key:"equalsTopo",value:function(e){return this.p0.equals(e.p0)&&this.p1.equals(e.p1)||this.p0.equals(e.p1)&&this.p1.equals(e.p0)}},{key:"lineIntersection",value:function(e){return Kn.intersection(this.p0,this.p1,e.p0,e.p1)}},{key:"maxY",value:function(){return Math.max(this.p0.y,this.p1.y)}},{key:"pointAlongOffset",value:function(e,t){var n=this.p0.x+e*(this.p1.x-this.p0.x),i=this.p0.y+e*(this.p1.y-this.p0.y),u=this.p1.x-this.p0.x,c=this.p1.y-this.p0.y,f=Math.sqrt(u*u+c*c),d=0,p=0;if(t!==0){if(f<=0)throw new IllegalStateException("Cannot compute offset from zero-length line segment");d=t*u/f,p=t*c/f}return new b(n-p,i+d)}},{key:"setCoordinates",value:function(){if(arguments.length===1){var e=arguments[0];this.setCoordinates(e.p0,e.p1)}else if(arguments.length===2){var t=arguments[0],n=arguments[1];this.p0.x=t.x,this.p0.y=t.y,this.p1.x=n.x,this.p1.y=n.y}}},{key:"segmentFraction",value:function(e){var t=this.projectionFactor(e);return t<0?t=0:(t>1||Q.isNaN(t))&&(t=1),t}},{key:"toString",value:function(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"}},{key:"isHorizontal",value:function(){return this.p0.y===this.p1.y}},{key:"reflect",value:function(e){var t=this.p1.getY()-this.p0.getY(),n=this.p0.getX()-this.p1.getX(),i=this.p0.getY()*(this.p1.getX()-this.p0.getX())-this.p0.getX()*(this.p1.getY()-this.p0.getY()),u=t*t+n*n,c=t*t-n*n,f=e.getX(),d=e.getY();return new b((-c*f-2*t*n*d-2*t*i)/u,(c*d-2*t*n*f-2*n*i)/u)}},{key:"distance",value:function(){if(arguments[0]instanceof r){var e=arguments[0];return vt.segmentToSegment(this.p0,this.p1,e.p0,e.p1)}if(arguments[0]instanceof b){var t=arguments[0];return vt.pointToSegment(t,this.p0,this.p1)}}},{key:"pointAlong",value:function(e){var t=new b;return t.x=this.p0.x+e*(this.p1.x-this.p0.x),t.y=this.p0.y+e*(this.p1.y-this.p0.y),t}},{key:"hashCode",value:function(){var e=Q.doubleToLongBits(this.p0.x);e^=31*Q.doubleToLongBits(this.p0.y);var t=Math.trunc(e)^Math.trunc(e>>32),n=Q.doubleToLongBits(this.p1.x);return n^=31*Q.doubleToLongBits(this.p1.y),t^(Math.trunc(n)^Math.trunc(n>>32))}},{key:"interfaces_",get:function(){return[z,G]}}],[{key:"constructor_",value:function(){if(this.p0=null,this.p1=null,arguments.length===0)r.constructor_.call(this,new b,new b);else if(arguments.length===1){var e=arguments[0];r.constructor_.call(this,e.p0,e.p1)}else if(arguments.length===2){var t=arguments[0],n=arguments[1];this.p0=t,this.p1=n}else if(arguments.length===4){var i=arguments[0],u=arguments[1],c=arguments[2],f=arguments[3];r.constructor_.call(this,new b(i,u),new b(c,f))}}},{key:"midPoint",value:function(e,t){return new b((e.x+t.x)/2,(e.y+t.y)/2)}}]),r}(),Dl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"overlap",value:function(){if(arguments.length!==2){if(arguments.length===4){var e=arguments[0],t=arguments[1],n=arguments[2],i=arguments[3];e.getLineSegment(t,this._overlapSeg1),n.getLineSegment(i,this._overlapSeg2),this.overlap(this._overlapSeg1,this._overlapSeg2)}}}}],[{key:"constructor_",value:function(){this._overlapSeg1=new ut,this._overlapSeg2=new ut}}]),r}(),pa=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getLineSegment",value:function(e,t){t.p0=this._pts[e],t.p1=this._pts[e+1]}},{key:"computeSelect",value:function(e,t,n,i){var u=this._pts[t],c=this._pts[n];if(n-t==1)return i.select(this,t),null;if(!e.intersects(u,c))return null;var f=Math.trunc((t+n)/2);t<f&&this.computeSelect(e,t,f,i),f<n&&this.computeSelect(e,f,n,i)}},{key:"getCoordinates",value:function(){for(var e=new Array(this._end-this._start+1).fill(null),t=0,n=this._start;n<=this._end;n++)e[t++]=this._pts[n];return e}},{key:"computeOverlaps",value:function(){if(arguments.length===2){var e=arguments[0],t=arguments[1];this.computeOverlaps(this._start,this._end,e,e._start,e._end,t)}else if(arguments.length===6){var n=arguments[0],i=arguments[1],u=arguments[2],c=arguments[3],f=arguments[4],d=arguments[5];if(i-n==1&&f-c==1)return d.overlap(this,n,u,c),null;if(!this.overlaps(n,i,u,c,f))return null;var p=Math.trunc((n+i)/2),S=Math.trunc((c+f)/2);n<p&&(c<S&&this.computeOverlaps(n,p,u,c,S,d),S<f&&this.computeOverlaps(n,p,u,S,f,d)),p<i&&(c<S&&this.computeOverlaps(p,i,u,c,S,d),S<f&&this.computeOverlaps(p,i,u,S,f,d))}}},{key:"setId",value:function(e){this._id=e}},{key:"select",value:function(e,t){this.computeSelect(e,this._start,this._end,t)}},{key:"getEnvelope",value:function(){if(this._env===null){var e=this._pts[this._start],t=this._pts[this._end];this._env=new Ee(e,t)}return this._env}},{key:"overlaps",value:function(e,t,n,i,u){return Ee.intersects(this._pts[e],this._pts[t],n._pts[i],n._pts[u])}},{key:"getEndIndex",value:function(){return this._end}},{key:"getStartIndex",value:function(){return this._start}},{key:"getContext",value:function(){return this._context}},{key:"getId",value:function(){return this._id}}],[{key:"constructor_",value:function(){this._pts=null,this._start=null,this._end=null,this._env=null,this._context=null,this._id=null;var e=arguments[0],t=arguments[1],n=arguments[2],i=arguments[3];this._pts=e,this._start=t,this._end=n,this._context=i}}]),r}(),Fl=function(){function r(){s(this,r)}return h(r,null,[{key:"findChainEnd",value:function(e,t){for(var n=t;n<e.length-1&&e[n].equals2D(e[n+1]);)n++;if(n>=e.length-1)return e.length-1;for(var i=Je.quadrant(e[n],e[n+1]),u=t+1;u<e.length&&!(!e[u-1].equals2D(e[u])&&Je.quadrant(e[u-1],e[u])!==i);)u++;return u-1}},{key:"getChains",value:function(){if(arguments.length===1){var e=arguments[0];return r.getChains(e,null)}if(arguments.length===2){var t=arguments[0],n=arguments[1],i=new ne,u=0;do{var c=r.findChainEnd(t,u),f=new pa(t,u,c,n);i.add(f),u=c}while(u<t.length-1);return i}}}]),r}(),pr=function(){function r(){s(this,r)}return h(r,[{key:"computeNodes",value:function(e){}},{key:"getNodedSubstrings",value:function(){}}]),r}(),_a=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"setSegmentIntersector",value:function(e){this._segInt=e}},{key:"interfaces_",get:function(){return[pr]}}],[{key:"constructor_",value:function(){if(this._segInt=null,arguments.length!==0){if(arguments.length===1){var e=arguments[0];this.setSegmentIntersector(e)}}}}]),r}(),_r=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"getMonotoneChains",value:function(){return this._monoChains}},{key:"getNodedSubstrings",value:function(){return fn.getNodedSubstrings(this._nodedSegStrings)}},{key:"getIndex",value:function(){return this._index}},{key:"add",value:function(n){for(var i=Fl.getChains(n.getCoordinates(),n).iterator();i.hasNext();){var u=i.next();u.setId(this._idCounter++),this._index.insert(u.getEnvelope(),u),this._monoChains.add(u)}}},{key:"computeNodes",value:function(n){this._nodedSegStrings=n;for(var i=n.iterator();i.hasNext();)this.add(i.next());this.intersectChains()}},{key:"intersectChains",value:function(){for(var n=new ka(this._segInt),i=this._monoChains.iterator();i.hasNext();)for(var u=i.next(),c=this._index.query(u.getEnvelope()).iterator();c.hasNext();){var f=c.next();if(f.getId()>u.getId()&&(u.computeOverlaps(f,n),this._nOverlaps++),this._segInt.isDone())return null}}}],[{key:"constructor_",value:function(){if(this._monoChains=new ne,this._index=new Ot,this._idCounter=0,this._nodedSegStrings=null,this._nOverlaps=0,arguments.length!==0){if(arguments.length===1){var n=arguments[0];_a.constructor_.call(this,n)}}}}]),t}(_a),ka=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"overlap",value:function(){if(arguments.length!==4)return I(v(t.prototype),"overlap",this).apply(this,arguments);var n=arguments[0],i=arguments[1],u=arguments[2],c=arguments[3],f=n.getContext(),d=u.getContext();this._si.processIntersections(f,i,d,c)}}],[{key:"constructor_",value:function(){this._si=null;var n=arguments[0];this._si=n}}]),t}(Dl);_r.SegmentOverlapAction=ka;var wt=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"isDeletable",value:function(e,t,n,i){var u=this._inputLine[e],c=this._inputLine[t],f=this._inputLine[n];return!!this.isConcave(u,c,f)&&!!this.isShallow(u,c,f,i)&&this.isShallowSampled(u,c,e,n,i)}},{key:"deleteShallowConcavities",value:function(){for(var e=1,t=this.findNextNonDeletedIndex(e),n=this.findNextNonDeletedIndex(t),i=!1;n<this._inputLine.length;){var u=!1;this.isDeletable(e,t,n,this._distanceTol)&&(this._isDeleted[t]=r.DELETE,u=!0,i=!0),e=u?n:t,t=this.findNextNonDeletedIndex(e),n=this.findNextNonDeletedIndex(t)}return i}},{key:"isShallowConcavity",value:function(e,t,n,i){return re.index(e,t,n)===this._angleOrientation&&vt.pointToSegment(t,e,n)<i}},{key:"isShallowSampled",value:function(e,t,n,i,u){var c=Math.trunc((i-n)/r.NUM_PTS_TO_CHECK);c<=0&&(c=1);for(var f=n;f<i;f+=c)if(!this.isShallow(e,t,this._inputLine[f],u))return!1;return!0}},{key:"isConcave",value:function(e,t,n){var i=re.index(e,t,n)===this._angleOrientation;return i}},{key:"simplify",value:function(e){this._distanceTol=Math.abs(e),e<0&&(this._angleOrientation=re.CLOCKWISE),this._isDeleted=new Array(this._inputLine.length).fill(null);var t=!1;do t=this.deleteShallowConcavities();while(t);return this.collapseLine()}},{key:"findNextNonDeletedIndex",value:function(e){for(var t=e+1;t<this._inputLine.length&&this._isDeleted[t]===r.DELETE;)t++;return t}},{key:"isShallow",value:function(e,t,n,i){return vt.pointToSegment(t,e,n)<i}},{key:"collapseLine",value:function(){for(var e=new $n,t=0;t<this._inputLine.length;t++)this._isDeleted[t]!==r.DELETE&&e.add(this._inputLine[t]);return e.toCoordinateArray()}}],[{key:"constructor_",value:function(){this._inputLine=null,this._distanceTol=null,this._isDeleted=null,this._angleOrientation=re.COUNTERCLOCKWISE;var e=arguments[0];this._inputLine=e}},{key:"simplify",value:function(e,t){return new r(e).simplify(t)}}]),r}();wt.INIT=0,wt.DELETE=1,wt.KEEP=1,wt.NUM_PTS_TO_CHECK=10;var Ea=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getCoordinates",value:function(){return this._ptList.toArray(r.COORDINATE_ARRAY_TYPE)}},{key:"setPrecisionModel",value:function(e){this._precisionModel=e}},{key:"addPt",value:function(e){var t=new b(e);if(this._precisionModel.makePrecise(t),this.isRedundant(t))return null;this._ptList.add(t)}},{key:"reverse",value:function(){}},{key:"addPts",value:function(e,t){if(t)for(var n=0;n<e.length;n++)this.addPt(e[n]);else for(var i=e.length-1;i>=0;i--)this.addPt(e[i])}},{key:"isRedundant",value:function(e){if(this._ptList.size()<1)return!1;var t=this._ptList.get(this._ptList.size()-1);return e.distance(t)<this._minimimVertexDistance}},{key:"toString",value:function(){return new Tn().createLineString(this.getCoordinates()).toString()}},{key:"closeRing",value:function(){if(this._ptList.size()<1)return null;var e=new b(this._ptList.get(0)),t=this._ptList.get(this._ptList.size()-1);if(e.equals(t))return null;this._ptList.add(e)}},{key:"setMinimumVertexDistance",value:function(e){this._minimimVertexDistance=e}}],[{key:"constructor_",value:function(){this._ptList=null,this._precisionModel=null,this._minimimVertexDistance=0,this._ptList=new ne}}]),r}();Ea.COORDINATE_ARRAY_TYPE=new Array(0).fill(null);var ot=function(){function r(){s(this,r)}return h(r,null,[{key:"toDegrees",value:function(e){return 180*e/Math.PI}},{key:"normalize",value:function(e){for(;e>Math.PI;)e-=r.PI_TIMES_2;for(;e<=-Math.PI;)e+=r.PI_TIMES_2;return e}},{key:"angle",value:function(){if(arguments.length===1){var e=arguments[0];return Math.atan2(e.y,e.x)}if(arguments.length===2){var t=arguments[0],n=arguments[1],i=n.x-t.x,u=n.y-t.y;return Math.atan2(u,i)}}},{key:"isAcute",value:function(e,t,n){var i=e.x-t.x,u=e.y-t.y;return i*(n.x-t.x)+u*(n.y-t.y)>0}},{key:"isObtuse",value:function(e,t,n){var i=e.x-t.x,u=e.y-t.y;return i*(n.x-t.x)+u*(n.y-t.y)<0}},{key:"interiorAngle",value:function(e,t,n){var i=r.angle(t,e),u=r.angle(t,n);return Math.abs(u-i)}},{key:"normalizePositive",value:function(e){if(e<0){for(;e<0;)e+=r.PI_TIMES_2;e>=r.PI_TIMES_2&&(e=0)}else{for(;e>=r.PI_TIMES_2;)e-=r.PI_TIMES_2;e<0&&(e=0)}return e}},{key:"angleBetween",value:function(e,t,n){var i=r.angle(t,e),u=r.angle(t,n);return r.diff(i,u)}},{key:"diff",value:function(e,t){var n=null;return(n=e<t?t-e:e-t)>Math.PI&&(n=2*Math.PI-n),n}},{key:"toRadians",value:function(e){return e*Math.PI/180}},{key:"getTurn",value:function(e,t){var n=Math.sin(t-e);return n>0?r.COUNTERCLOCKWISE:n<0?r.CLOCKWISE:r.NONE}},{key:"angleBetweenOriented",value:function(e,t,n){var i=r.angle(t,e),u=r.angle(t,n)-i;return u<=-Math.PI?u+r.PI_TIMES_2:u>Math.PI?u-r.PI_TIMES_2:u}}]),r}();ot.PI_TIMES_2=2*Math.PI,ot.PI_OVER_2=Math.PI/2,ot.PI_OVER_4=Math.PI/4,ot.COUNTERCLOCKWISE=re.COUNTERCLOCKWISE,ot.CLOCKWISE=re.CLOCKWISE,ot.NONE=re.COLLINEAR;var ii=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"addNextSegment",value:function(e,t){if(this._s0=this._s1,this._s1=this._s2,this._s2=e,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var n=re.index(this._s0,this._s1,this._s2),i=n===re.CLOCKWISE&&this._side===U.LEFT||n===re.COUNTERCLOCKWISE&&this._side===U.RIGHT;n===0?this.addCollinear(t):i?this.addOutsideTurn(n,t):this.addInsideTurn(n,t)}},{key:"addLineEndCap",value:function(e,t){var n=new ut(e,t),i=new ut;this.computeOffsetSegment(n,U.LEFT,this._distance,i);var u=new ut;this.computeOffsetSegment(n,U.RIGHT,this._distance,u);var c=t.x-e.x,f=t.y-e.y,d=Math.atan2(f,c);switch(this._bufParams.getEndCapStyle()){case C.CAP_ROUND:this._segList.addPt(i.p1),this.addDirectedFillet(t,d+Math.PI/2,d-Math.PI/2,re.CLOCKWISE,this._distance),this._segList.addPt(u.p1);break;case C.CAP_FLAT:this._segList.addPt(i.p1),this._segList.addPt(u.p1);break;case C.CAP_SQUARE:var p=new b;p.x=Math.abs(this._distance)*Math.cos(d),p.y=Math.abs(this._distance)*Math.sin(d);var S=new b(i.p1.x+p.x,i.p1.y+p.y),L=new b(u.p1.x+p.x,u.p1.y+p.y);this._segList.addPt(S),this._segList.addPt(L)}}},{key:"getCoordinates",value:function(){return this._segList.getCoordinates()}},{key:"addMitreJoin",value:function(e,t,n,i){var u=Kn.intersection(t.p0,t.p1,n.p0,n.p1);if(u!==null&&(i<=0?1:u.distance(e)/Math.abs(i))<=this._bufParams.getMitreLimit())return this._segList.addPt(u),null;this.addLimitedMitreJoin(t,n,i,this._bufParams.getMitreLimit())}},{key:"addOutsideTurn",value:function(e,t){if(this._offset0.p1.distance(this._offset1.p0)<this._distance*r.OFFSET_SEGMENT_SEPARATION_FACTOR)return this._segList.addPt(this._offset0.p1),null;this._bufParams.getJoinStyle()===C.JOIN_MITRE?this.addMitreJoin(this._s1,this._offset0,this._offset1,this._distance):this._bufParams.getJoinStyle()===C.JOIN_BEVEL?this.addBevelJoin(this._offset0,this._offset1):(t&&this._segList.addPt(this._offset0.p1),this.addCornerFillet(this._s1,this._offset0.p1,this._offset1.p0,e,this._distance),this._segList.addPt(this._offset1.p0))}},{key:"createSquare",value:function(e){this._segList.addPt(new b(e.x+this._distance,e.y+this._distance)),this._segList.addPt(new b(e.x+this._distance,e.y-this._distance)),this._segList.addPt(new b(e.x-this._distance,e.y-this._distance)),this._segList.addPt(new b(e.x-this._distance,e.y+this._distance)),this._segList.closeRing()}},{key:"addSegments",value:function(e,t){this._segList.addPts(e,t)}},{key:"addFirstSegment",value:function(){this._segList.addPt(this._offset1.p0)}},{key:"addCornerFillet",value:function(e,t,n,i,u){var c=t.x-e.x,f=t.y-e.y,d=Math.atan2(f,c),p=n.x-e.x,S=n.y-e.y,L=Math.atan2(S,p);i===re.CLOCKWISE?d<=L&&(d+=2*Math.PI):d>=L&&(d-=2*Math.PI),this._segList.addPt(t),this.addDirectedFillet(e,d,L,i,u),this._segList.addPt(n)}},{key:"addLastSegment",value:function(){this._segList.addPt(this._offset1.p1)}},{key:"initSideSegments",value:function(e,t,n){this._s1=e,this._s2=t,this._side=n,this._seg1.setCoordinates(e,t),this.computeOffsetSegment(this._seg1,n,this._distance,this._offset1)}},{key:"addLimitedMitreJoin",value:function(e,t,n,i){var u=this._seg0.p1,c=ot.angle(u,this._seg0.p0),f=ot.angleBetweenOriented(this._seg0.p0,u,this._seg1.p1)/2,d=ot.normalize(c+f),p=ot.normalize(d+Math.PI),S=i*n,L=n-S*Math.abs(Math.sin(f)),P=u.x+S*Math.cos(p),V=u.y+S*Math.sin(p),W=new b(P,V),$=new ut(u,W),ie=$.pointAlongOffset(1,L),le=$.pointAlongOffset(1,-L);this._side===U.LEFT?(this._segList.addPt(ie),this._segList.addPt(le)):(this._segList.addPt(le),this._segList.addPt(ie))}},{key:"addDirectedFillet",value:function(e,t,n,i,u){var c=i===re.CLOCKWISE?-1:1,f=Math.abs(t-n),d=Math.trunc(f/this._filletAngleQuantum+.5);if(d<1)return null;for(var p=f/d,S=new b,L=0;L<d;L++){var P=t+c*L*p;S.x=e.x+u*Math.cos(P),S.y=e.y+u*Math.sin(P),this._segList.addPt(S)}}},{key:"computeOffsetSegment",value:function(e,t,n,i){var u=t===U.LEFT?1:-1,c=e.p1.x-e.p0.x,f=e.p1.y-e.p0.y,d=Math.sqrt(c*c+f*f),p=u*n*c/d,S=u*n*f/d;i.p0.x=e.p0.x-S,i.p0.y=e.p0.y+p,i.p1.x=e.p1.x-S,i.p1.y=e.p1.y+p}},{key:"addInsideTurn",value:function(e,t){if(this._li.computeIntersection(this._offset0.p0,this._offset0.p1,this._offset1.p0,this._offset1.p1),this._li.hasIntersection())this._segList.addPt(this._li.getIntersection(0));else if(this._hasNarrowConcaveAngle=!0,this._offset0.p1.distance(this._offset1.p0)<this._distance*r.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR)this._segList.addPt(this._offset0.p1);else{if(this._segList.addPt(this._offset0.p1),this._closingSegLengthFactor>0){var n=new b((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(n);var i=new b((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(i)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}}},{key:"createCircle",value:function(e){var t=new b(e.x+this._distance,e.y);this._segList.addPt(t),this.addDirectedFillet(e,0,2*Math.PI,-1,this._distance),this._segList.closeRing()}},{key:"addBevelJoin",value:function(e,t){this._segList.addPt(e.p1),this._segList.addPt(t.p0)}},{key:"init",value:function(e){this._distance=e,this._maxCurveSegmentError=e*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new Ea,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(e*r.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)}},{key:"addCollinear",value:function(e){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2),this._li.getIntersectionNum()>=2&&(this._bufParams.getJoinStyle()===C.JOIN_BEVEL||this._bufParams.getJoinStyle()===C.JOIN_MITRE?(e&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addCornerFillet(this._s1,this._offset0.p1,this._offset1.p0,re.CLOCKWISE,this._distance))}},{key:"closeRing",value:function(){this._segList.closeRing()}},{key:"hasNarrowConcaveAngle",value:function(){return this._hasNarrowConcaveAngle}}],[{key:"constructor_",value:function(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new ut,this._seg1=new ut,this._offset0=new ut,this._offset1=new ut,this._side=0,this._hasNarrowConcaveAngle=!1;var e=arguments[0],t=arguments[1],n=arguments[2];this._precisionModel=e,this._bufParams=t,this._li=new cn,this._filletAngleQuantum=Math.PI/2/t.getQuadrantSegments(),t.getQuadrantSegments()>=8&&t.getJoinStyle()===C.JOIN_ROUND&&(this._closingSegLengthFactor=r.MAX_CLOSING_SEG_LEN_FACTOR),this.init(n)}}]),r}();ii.OFFSET_SEGMENT_SEPARATION_FACTOR=.001,ii.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR=.001,ii.CURVE_VERTEX_SNAP_DISTANCE_FACTOR=1e-6,ii.MAX_CLOSING_SEG_LEN_FACTOR=80;var Gl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getOffsetCurve",value:function(e,t){if(this._distance=t,t===0)return null;var n=t<0,i=Math.abs(t),u=this.getSegGen(i);e.length<=1?this.computePointCurve(e[0],u):this.computeOffsetCurve(e,n,u);var c=u.getCoordinates();return n&&ze.reverse(c),c}},{key:"computeSingleSidedBufferCurve",value:function(e,t,n){var i=this.simplifyTolerance(this._distance);if(t){n.addSegments(e,!0);var u=wt.simplify(e,-i),c=u.length-1;n.initSideSegments(u[c],u[c-1],U.LEFT),n.addFirstSegment();for(var f=c-2;f>=0;f--)n.addNextSegment(u[f],!0)}else{n.addSegments(e,!1);var d=wt.simplify(e,i),p=d.length-1;n.initSideSegments(d[0],d[1],U.LEFT),n.addFirstSegment();for(var S=2;S<=p;S++)n.addNextSegment(d[S],!0)}n.addLastSegment(),n.closeRing()}},{key:"computeRingBufferCurve",value:function(e,t,n){var i=this.simplifyTolerance(this._distance);t===U.RIGHT&&(i=-i);var u=wt.simplify(e,i),c=u.length-1;n.initSideSegments(u[c-1],u[0],t);for(var f=1;f<=c;f++){var d=f!==1;n.addNextSegment(u[f],d)}n.closeRing()}},{key:"computeLineBufferCurve",value:function(e,t){var n=this.simplifyTolerance(this._distance),i=wt.simplify(e,n),u=i.length-1;t.initSideSegments(i[0],i[1],U.LEFT);for(var c=2;c<=u;c++)t.addNextSegment(i[c],!0);t.addLastSegment(),t.addLineEndCap(i[u-1],i[u]);var f=wt.simplify(e,-n),d=f.length-1;t.initSideSegments(f[d],f[d-1],U.LEFT);for(var p=d-2;p>=0;p--)t.addNextSegment(f[p],!0);t.addLastSegment(),t.addLineEndCap(f[1],f[0]),t.closeRing()}},{key:"computePointCurve",value:function(e,t){switch(this._bufParams.getEndCapStyle()){case C.CAP_ROUND:t.createCircle(e);break;case C.CAP_SQUARE:t.createSquare(e)}}},{key:"getLineCurve",value:function(e,t){if(this._distance=t,this.isLineOffsetEmpty(t))return null;var n=Math.abs(t),i=this.getSegGen(n);if(e.length<=1)this.computePointCurve(e[0],i);else if(this._bufParams.isSingleSided()){var u=t<0;this.computeSingleSidedBufferCurve(e,u,i)}else this.computeLineBufferCurve(e,i);return i.getCoordinates()}},{key:"getBufferParameters",value:function(){return this._bufParams}},{key:"simplifyTolerance",value:function(e){return e*this._bufParams.getSimplifyFactor()}},{key:"getRingCurve",value:function(e,t,n){if(this._distance=n,e.length<=2)return this.getLineCurve(e,n);if(n===0)return r.copyCoordinates(e);var i=this.getSegGen(n);return this.computeRingBufferCurve(e,t,i),i.getCoordinates()}},{key:"computeOffsetCurve",value:function(e,t,n){var i=this.simplifyTolerance(this._distance);if(t){var u=wt.simplify(e,-i),c=u.length-1;n.initSideSegments(u[c],u[c-1],U.LEFT),n.addFirstSegment();for(var f=c-2;f>=0;f--)n.addNextSegment(u[f],!0)}else{var d=wt.simplify(e,i),p=d.length-1;n.initSideSegments(d[0],d[1],U.LEFT),n.addFirstSegment();for(var S=2;S<=p;S++)n.addNextSegment(d[S],!0)}n.addLastSegment()}},{key:"isLineOffsetEmpty",value:function(e){return e===0||e<0&&!this._bufParams.isSingleSided()}},{key:"getSegGen",value:function(e){return new ii(this._precisionModel,this._bufParams,e)}}],[{key:"constructor_",value:function(){this._distance=0,this._precisionModel=null,this._bufParams=null;var e=arguments[0],t=arguments[1];this._precisionModel=e,this._bufParams=t}},{key:"copyCoordinates",value:function(e){for(var t=new Array(e.length).fill(null),n=0;n<t.length;n++)t[n]=new b(e[n]);return t}}]),r}(),xa=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"findStabbedSegments",value:function(){if(arguments.length===1){for(var e=arguments[0],t=new ne,n=this._subgraphs.iterator();n.hasNext();){var i=n.next(),u=i.getEnvelope();e.y<u.getMinY()||e.y>u.getMaxY()||this.findStabbedSegments(e,i.getDirectedEdges(),t)}return t}if(arguments.length===3){if(ue(arguments[2],tt)&&arguments[0]instanceof b&&arguments[1]instanceof yr)for(var c=arguments[0],f=arguments[1],d=arguments[2],p=f.getEdge().getCoordinates(),S=0;S<p.length-1;S++){this._seg.p0=p[S],this._seg.p1=p[S+1],this._seg.p0.y>this._seg.p1.y&&this._seg.reverse();var L=Math.max(this._seg.p0.x,this._seg.p1.x);if(!(L<c.x)&&!(this._seg.isHorizontal()||c.y<this._seg.p0.y||c.y>this._seg.p1.y||re.index(this._seg.p0,this._seg.p1,c)===re.RIGHT)){var P=f.getDepth(U.LEFT);this._seg.p0.equals(p[S])||(P=f.getDepth(U.RIGHT));var V=new Na(this._seg,P);d.add(V)}}else if(ue(arguments[2],tt)&&arguments[0]instanceof b&&ue(arguments[1],tt))for(var W=arguments[0],$=arguments[1],ie=arguments[2],le=$.iterator();le.hasNext();){var _e=le.next();_e.isForward()&&this.findStabbedSegments(W,_e,ie)}}}},{key:"getDepth",value:function(e){var t=this.findStabbedSegments(e);return t.size()===0?0:Rn.min(t)._leftDepth}}],[{key:"constructor_",value:function(){this._subgraphs=null,this._seg=new ut;var e=arguments[0];this._subgraphs=e}}]),r}(),Na=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"compareTo",value:function(e){var t=e;if(this._upwardSeg.minX()>=t._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=t._upwardSeg.minX())return-1;var n=this._upwardSeg.orientationIndex(t._upwardSeg);return n!==0||(n=-1*t._upwardSeg.orientationIndex(this._upwardSeg))!==0?n:this._upwardSeg.compareTo(t._upwardSeg)}},{key:"compareX",value:function(e,t){var n=e.p0.compareTo(t.p0);return n!==0?n:e.p1.compareTo(t.p1)}},{key:"toString",value:function(){return this._upwardSeg.toString()}},{key:"interfaces_",get:function(){return[z]}}],[{key:"constructor_",value:function(){this._upwardSeg=null,this._leftDepth=null;var e=arguments[0],t=arguments[1];this._upwardSeg=new ut(e),this._leftDepth=t}}]),r}();xa.DepthSegment=Na;var Ia=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,null,[{key:"constructor_",value:function(){q.constructor_.call(this,"Projective point not representable on the Cartesian plane.")}}]),t}(q),kr=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getY",value:function(){var e=this.y/this.w;if(Q.isNaN(e)||Q.isInfinite(e))throw new Ia;return e}},{key:"getX",value:function(){var e=this.x/this.w;if(Q.isNaN(e)||Q.isInfinite(e))throw new Ia;return e}},{key:"getCoordinate",value:function(){var e=new b;return e.x=this.getX(),e.y=this.getY(),e}}],[{key:"constructor_",value:function(){if(this.x=null,this.y=null,this.w=null,arguments.length===0)this.x=0,this.y=0,this.w=1;else if(arguments.length===1){var e=arguments[0];this.x=e.x,this.y=e.y,this.w=1}else if(arguments.length===2){if(typeof arguments[0]=="number"&&typeof arguments[1]=="number"){var t=arguments[0],n=arguments[1];this.x=t,this.y=n,this.w=1}else if(arguments[0]instanceof r&&arguments[1]instanceof r){var i=arguments[0],u=arguments[1];this.x=i.y*u.w-u.y*i.w,this.y=u.x*i.w-i.x*u.w,this.w=i.x*u.y-u.x*i.y}else if(arguments[0]instanceof b&&arguments[1]instanceof b){var c=arguments[0],f=arguments[1];this.x=c.y-f.y,this.y=f.x-c.x,this.w=c.x*f.y-f.x*c.y}}else if(arguments.length===3){var d=arguments[0],p=arguments[1],S=arguments[2];this.x=d,this.y=p,this.w=S}else if(arguments.length===4){var L=arguments[0],P=arguments[1],V=arguments[2],W=arguments[3],$=L.y-P.y,ie=P.x-L.x,le=L.x*P.y-P.x*L.y,_e=V.y-W.y,De=W.x-V.x,He=V.x*W.y-W.x*V.y;this.x=ie*He-De*le,this.y=_e*le-$*He,this.w=$*De-_e*ie}}}]),r}(),ql=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"area",value:function(){return r.area(this.p0,this.p1,this.p2)}},{key:"signedArea",value:function(){return r.signedArea(this.p0,this.p1,this.p2)}},{key:"interpolateZ",value:function(e){if(e===null)throw new O("Supplied point is null.");return r.interpolateZ(e,this.p0,this.p1,this.p2)}},{key:"longestSideLength",value:function(){return r.longestSideLength(this.p0,this.p1,this.p2)}},{key:"isAcute",value:function(){return r.isAcute(this.p0,this.p1,this.p2)}},{key:"circumcentre",value:function(){return r.circumcentre(this.p0,this.p1,this.p2)}},{key:"area3D",value:function(){return r.area3D(this.p0,this.p1,this.p2)}},{key:"centroid",value:function(){return r.centroid(this.p0,this.p1,this.p2)}},{key:"inCentre",value:function(){return r.inCentre(this.p0,this.p1,this.p2)}}],[{key:"constructor_",value:function(){this.p0=null,this.p1=null,this.p2=null;var e=arguments[0],t=arguments[1],n=arguments[2];this.p0=e,this.p1=t,this.p2=n}},{key:"area",value:function(e,t,n){return Math.abs(((n.x-e.x)*(t.y-e.y)-(t.x-e.x)*(n.y-e.y))/2)}},{key:"signedArea",value:function(e,t,n){return((n.x-e.x)*(t.y-e.y)-(t.x-e.x)*(n.y-e.y))/2}},{key:"det",value:function(e,t,n,i){return e*i-t*n}},{key:"interpolateZ",value:function(e,t,n,i){var u=t.x,c=t.y,f=n.x-u,d=i.x-u,p=n.y-c,S=i.y-c,L=f*S-d*p,P=e.x-u,V=e.y-c,W=(S*P-d*V)/L,$=(-p*P+f*V)/L;return t.getZ()+W*(n.getZ()-t.getZ())+$*(i.getZ()-t.getZ())}},{key:"longestSideLength",value:function(e,t,n){var i=e.distance(t),u=t.distance(n),c=n.distance(e),f=i;return u>f&&(f=u),c>f&&(f=c),f}},{key:"circumcentreDD",value:function(e,t,n){var i=te.valueOf(e.x).subtract(n.x),u=te.valueOf(e.y).subtract(n.y),c=te.valueOf(t.x).subtract(n.x),f=te.valueOf(t.y).subtract(n.y),d=te.determinant(i,u,c,f).multiply(2),p=i.sqr().add(u.sqr()),S=c.sqr().add(f.sqr()),L=te.determinant(u,p,f,S),P=te.determinant(i,p,c,S),V=te.valueOf(n.x).subtract(L.divide(d)).doubleValue(),W=te.valueOf(n.y).add(P.divide(d)).doubleValue();return new b(V,W)}},{key:"isAcute",value:function(e,t,n){return!!ot.isAcute(e,t,n)&&!!ot.isAcute(t,n,e)&&!!ot.isAcute(n,e,t)}},{key:"circumcentre",value:function(e,t,n){var i=n.x,u=n.y,c=e.x-i,f=e.y-u,d=t.x-i,p=t.y-u,S=2*r.det(c,f,d,p),L=r.det(f,c*c+f*f,p,d*d+p*p),P=r.det(c,c*c+f*f,d,d*d+p*p);return new b(i-L/S,u+P/S)}},{key:"perpendicularBisector",value:function(e,t){var n=t.x-e.x,i=t.y-e.y,u=new kr(e.x+n/2,e.y+i/2,1),c=new kr(e.x-i+n/2,e.y+n+i/2,1);return new kr(u,c)}},{key:"angleBisector",value:function(e,t,n){var i=t.distance(e),u=i/(i+t.distance(n)),c=n.x-e.x,f=n.y-e.y;return new b(e.x+u*c,e.y+u*f)}},{key:"area3D",value:function(e,t,n){var i=t.x-e.x,u=t.y-e.y,c=t.getZ()-e.getZ(),f=n.x-e.x,d=n.y-e.y,p=n.getZ()-e.getZ(),S=u*p-c*d,L=c*f-i*p,P=i*d-u*f,V=S*S+L*L+P*P,W=Math.sqrt(V)/2;return W}},{key:"centroid",value:function(e,t,n){var i=(e.x+t.x+n.x)/3,u=(e.y+t.y+n.y)/3;return new b(i,u)}},{key:"inCentre",value:function(e,t,n){var i=t.distance(n),u=e.distance(n),c=e.distance(t),f=i+u+c,d=(i*e.x+u*t.x+c*n.x)/f,p=(i*e.y+u*t.y+c*n.y)/f;return new b(d,p)}}]),r}(),zl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"addRingSide",value:function(e,t,n,i,u){if(t===0&&e.length<Jn.MINIMUM_VALID_SIZE)return null;var c=i,f=u;e.length>=Jn.MINIMUM_VALID_SIZE&&re.isCCW(e)&&(c=u,f=i,n=U.opposite(n));var d=this._curveBuilder.getRingCurve(e,n,t);this.addCurve(d,c,f)}},{key:"addRingBothSides",value:function(e,t){this.addRingSide(e,t,U.LEFT,w.EXTERIOR,w.INTERIOR),this.addRingSide(e,t,U.RIGHT,w.INTERIOR,w.EXTERIOR)}},{key:"addPoint",value:function(e){if(this._distance<=0)return null;var t=e.getCoordinates(),n=this._curveBuilder.getLineCurve(t,this._distance);this.addCurve(n,w.EXTERIOR,w.INTERIOR)}},{key:"addPolygon",value:function(e){var t=this._distance,n=U.LEFT;this._distance<0&&(t=-this._distance,n=U.RIGHT);var i=e.getExteriorRing(),u=ze.removeRepeatedPoints(i.getCoordinates());if(this._distance<0&&this.isErodedCompletely(i,this._distance)||this._distance<=0&&u.length<3)return null;this.addRingSide(u,t,n,w.EXTERIOR,w.INTERIOR);for(var c=0;c<e.getNumInteriorRing();c++){var f=e.getInteriorRingN(c),d=ze.removeRepeatedPoints(f.getCoordinates());this._distance>0&&this.isErodedCompletely(f,-this._distance)||this.addRingSide(d,t,U.opposite(n),w.INTERIOR,w.EXTERIOR)}}},{key:"isTriangleErodedCompletely",value:function(e,t){var n=new ql(e[0],e[1],e[2]),i=n.inCentre();return vt.pointToSegment(i,n.p0,n.p1)<Math.abs(t)}},{key:"addLineString",value:function(e){if(this._curveBuilder.isLineOffsetEmpty(this._distance))return null;var t=ze.removeRepeatedPoints(e.getCoordinates());if(ze.isRing(t)&&!this._curveBuilder.getBufferParameters().isSingleSided())this.addRingBothSides(t,this._distance);else{var n=this._curveBuilder.getLineCurve(t,this._distance);this.addCurve(n,w.EXTERIOR,w.INTERIOR)}}},{key:"addCurve",value:function(e,t,n){if(e===null||e.length<2)return null;var i=new fn(e,new _t(0,w.BOUNDARY,t,n));this._curveList.add(i)}},{key:"getCurves",value:function(){return this.add(this._inputGeom),this._curveList}},{key:"add",value:function(e){if(e.isEmpty())return null;if(e instanceof $t)this.addPolygon(e);else if(e instanceof qe)this.addLineString(e);else if(e instanceof fe)this.addPoint(e);else if(e instanceof or)this.addCollection(e);else if(e instanceof fr)this.addCollection(e);else if(e instanceof cr)this.addCollection(e);else{if(!(e instanceof at))throw new ae(e.getGeometryType());this.addCollection(e)}}},{key:"isErodedCompletely",value:function(e,t){var n=e.getCoordinates();if(n.length<4)return t<0;if(n.length===4)return this.isTriangleErodedCompletely(n,t);var i=e.getEnvelopeInternal(),u=Math.min(i.getHeight(),i.getWidth());return t<0&&2*Math.abs(t)>u}},{key:"addCollection",value:function(e){for(var t=0;t<e.getNumGeometries();t++){var n=e.getGeometryN(t);this.add(n)}}}],[{key:"constructor_",value:function(){this._inputGeom=null,this._distance=null,this._curveBuilder=null,this._curveList=new ne;var e=arguments[0],t=arguments[1],n=arguments[2];this._inputGeom=e,this._distance=t,this._curveBuilder=n}}]),r}(),Yl=function(){function r(){s(this,r)}return h(r,[{key:"locate",value:function(e){}}]),r}(),Bl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"next",value:function(){if(this._atStart)return this._atStart=!1,r.isAtomic(this._parent)&&this._index++,this._parent;if(this._subcollectionIterator!==null){if(this._subcollectionIterator.hasNext())return this._subcollectionIterator.next();this._subcollectionIterator=null}if(this._index>=this._max)throw new Te;var e=this._parent.getGeometryN(this._index++);return e instanceof at?(this._subcollectionIterator=new r(e),this._subcollectionIterator.next()):e}},{key:"remove",value:function(){throw new ae(this.getClass().getName())}},{key:"hasNext",value:function(){if(this._atStart)return!0;if(this._subcollectionIterator!==null){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)}},{key:"interfaces_",get:function(){return[Rl]}}],[{key:"constructor_",value:function(){this._parent=null,this._atStart=null,this._max=null,this._index=null,this._subcollectionIterator=null;var e=arguments[0];this._parent=e,this._atStart=!0,this._index=0,this._max=e.getNumGeometries()}},{key:"isAtomic",value:function(e){return!(e instanceof at)}}]),r}(),Ul=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"locate",value:function(e){return r.locate(e,this._geom)}},{key:"interfaces_",get:function(){return[Yl]}}],[{key:"constructor_",value:function(){this._geom=null;var e=arguments[0];this._geom=e}},{key:"locatePointInPolygon",value:function(e,t){if(t.isEmpty())return w.EXTERIOR;var n=t.getExteriorRing(),i=r.locatePointInRing(e,n);if(i!==w.INTERIOR)return i;for(var u=0;u<t.getNumInteriorRing();u++){var c=t.getInteriorRingN(u),f=r.locatePointInRing(e,c);if(f===w.BOUNDARY)return w.BOUNDARY;if(f===w.INTERIOR)return w.EXTERIOR}return w.INTERIOR}},{key:"locatePointInRing",value:function(e,t){return t.getEnvelopeInternal().intersects(e)?mr.locateInRing(e,t.getCoordinates()):w.EXTERIOR}},{key:"containsPointInPolygon",value:function(e,t){return w.EXTERIOR!==r.locatePointInPolygon(e,t)}},{key:"locateInGeometry",value:function(e,t){if(t instanceof $t)return r.locatePointInPolygon(e,t);if(t instanceof at)for(var n=new Bl(t);n.hasNext();){var i=n.next();if(i!==t){var u=r.locateInGeometry(e,i);if(u!==w.EXTERIOR)return u}}return w.EXTERIOR}},{key:"isContained",value:function(e,t){return w.EXTERIOR!==r.locate(e,t)}},{key:"locate",value:function(e,t){return t.isEmpty()?w.EXTERIOR:t.getEnvelopeInternal().intersects(e)?r.locateInGeometry(e,t):w.EXTERIOR}}]),r}(),Xl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getNextCW",value:function(e){this.getEdges();var t=this._edgeList.indexOf(e),n=t-1;return t===0&&(n=this._edgeList.size()-1),this._edgeList.get(n)}},{key:"propagateSideLabels",value:function(e){for(var t=w.NONE,n=this.iterator();n.hasNext();){var i=n.next().getLabel();i.isArea(e)&&i.getLocation(e,U.LEFT)!==w.NONE&&(t=i.getLocation(e,U.LEFT))}if(t===w.NONE)return null;for(var u=t,c=this.iterator();c.hasNext();){var f=c.next(),d=f.getLabel();if(d.getLocation(e,U.ON)===w.NONE&&d.setLocation(e,U.ON,u),d.isArea(e)){var p=d.getLocation(e,U.LEFT),S=d.getLocation(e,U.RIGHT);if(S!==w.NONE){if(S!==u)throw new st("side location conflict",f.getCoordinate());p===w.NONE&&he.shouldNeverReachHere("found single null side (at "+f.getCoordinate()+")"),u=p}else he.isTrue(d.getLocation(e,U.LEFT)===w.NONE,"found single null side"),d.setLocation(e,U.RIGHT,u),d.setLocation(e,U.LEFT,u)}}}},{key:"getCoordinate",value:function(){var e=this.iterator();return e.hasNext()?e.next().getCoordinate():null}},{key:"print",value:function(e){nt.out.println("EdgeEndStar: "+this.getCoordinate());for(var t=this.iterator();t.hasNext();)t.next().print(e)}},{key:"isAreaLabelsConsistent",value:function(e){return this.computeEdgeEndLabels(e.getBoundaryNodeRule()),this.checkAreaLabelsConsistent(0)}},{key:"checkAreaLabelsConsistent",value:function(e){var t=this.getEdges();if(t.size()<=0)return!0;var n=t.size()-1,i=t.get(n).getLabel().getLocation(e,U.LEFT);he.isTrue(i!==w.NONE,"Found unlabelled area edge");for(var u=i,c=this.iterator();c.hasNext();){var f=c.next().getLabel();he.isTrue(f.isArea(e),"Found non-area edge");var d=f.getLocation(e,U.LEFT),p=f.getLocation(e,U.RIGHT);if(d===p||p!==u)return!1;u=d}return!0}},{key:"findIndex",value:function(e){this.iterator();for(var t=0;t<this._edgeList.size();t++)if(this._edgeList.get(t)===e)return t;return-1}},{key:"iterator",value:function(){return this.getEdges().iterator()}},{key:"getEdges",value:function(){return this._edgeList===null&&(this._edgeList=new ne(this._edgeMap.values())),this._edgeList}},{key:"getLocation",value:function(e,t,n){return this._ptInAreaLocation[e]===w.NONE&&(this._ptInAreaLocation[e]=Ul.locate(t,n[e].getGeometry())),this._ptInAreaLocation[e]}},{key:"toString",value:function(){var e=new an;e.append("EdgeEndStar: "+this.getCoordinate()),e.append(`
27
- `);for(var t=this.iterator();t.hasNext();){var n=t.next();e.append(n),e.append(`
28
- `)}return e.toString()}},{key:"computeEdgeEndLabels",value:function(e){for(var t=this.iterator();t.hasNext();)t.next().computeLabel(e)}},{key:"computeLabelling",value:function(e){this.computeEdgeEndLabels(e[0].getBoundaryNodeRule()),this.propagateSideLabels(0),this.propagateSideLabels(1);for(var t=[!1,!1],n=this.iterator();n.hasNext();)for(var i=n.next().getLabel(),u=0;u<2;u++)i.isLine(u)&&i.getLocation(u)===w.BOUNDARY&&(t[u]=!0);for(var c=this.iterator();c.hasNext();)for(var f=c.next(),d=f.getLabel(),p=0;p<2;p++)if(d.isAnyNull(p)){var S=w.NONE;if(t[p])S=w.EXTERIOR;else{var L=f.getCoordinate();S=this.getLocation(p,L,e)}d.setAllLocationsIfNull(p,S)}}},{key:"getDegree",value:function(){return this._edgeMap.size()}},{key:"insertEdgeEnd",value:function(e,t){this._edgeMap.put(e,t),this._edgeList=null}}],[{key:"constructor_",value:function(){this._edgeMap=new ni,this._edgeList=null,this._ptInAreaLocation=[w.NONE,w.NONE]}}]),r}(),Wl=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"linkResultDirectedEdges",value:function(){this.getResultAreaEdges();for(var n=null,i=null,u=this._SCANNING_FOR_INCOMING,c=0;c<this._resultAreaEdgeList.size();c++){var f=this._resultAreaEdgeList.get(c),d=f.getSym();if(f.getLabel().isArea())switch(n===null&&f.isInResult()&&(n=f),u){case this._SCANNING_FOR_INCOMING:if(!d.isInResult())continue;i=d,u=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(!f.isInResult())continue;i.setNext(f),u=this._SCANNING_FOR_INCOMING}}if(u===this._LINKING_TO_OUTGOING){if(n===null)throw new st("no outgoing dirEdge found",this.getCoordinate());he.isTrue(n.isInResult(),"unable to link last incoming dirEdge"),i.setNext(n)}}},{key:"insert",value:function(n){var i=n;this.insertEdgeEnd(i,i)}},{key:"getRightmostEdge",value:function(){var n=this.getEdges(),i=n.size();if(i<1)return null;var u=n.get(0);if(i===1)return u;var c=n.get(i-1),f=u.getQuadrant(),d=c.getQuadrant();return Je.isNorthern(f)&&Je.isNorthern(d)?u:Je.isNorthern(f)||Je.isNorthern(d)?u.getDy()!==0?u:c.getDy()!==0?c:(he.shouldNeverReachHere("found two horizontal edges incident on node"),null):c}},{key:"print",value:function(n){nt.out.println("DirectedEdgeStar: "+this.getCoordinate());for(var i=this.iterator();i.hasNext();){var u=i.next();n.print("out "),u.print(n),n.println(),n.print("in "),u.getSym().print(n),n.println()}}},{key:"getResultAreaEdges",value:function(){if(this._resultAreaEdgeList!==null)return this._resultAreaEdgeList;this._resultAreaEdgeList=new ne;for(var n=this.iterator();n.hasNext();){var i=n.next();(i.isInResult()||i.getSym().isInResult())&&this._resultAreaEdgeList.add(i)}return this._resultAreaEdgeList}},{key:"updateLabelling",value:function(n){for(var i=this.iterator();i.hasNext();){var u=i.next().getLabel();u.setAllLocationsIfNull(0,n.getLocation(0)),u.setAllLocationsIfNull(1,n.getLocation(1))}}},{key:"linkAllDirectedEdges",value:function(){this.getEdges();for(var n=null,i=null,u=this._edgeList.size()-1;u>=0;u--){var c=this._edgeList.get(u),f=c.getSym();i===null&&(i=f),n!==null&&f.setNext(n),n=c}i.setNext(n)}},{key:"computeDepths",value:function(){if(arguments.length===1){var n=arguments[0],i=this.findIndex(n),u=n.getDepth(U.LEFT),c=n.getDepth(U.RIGHT),f=this.computeDepths(i+1,this._edgeList.size(),u),d=this.computeDepths(0,i,f);if(d!==c)throw new st("depth mismatch at "+n.getCoordinate())}else if(arguments.length===3){for(var p=arguments[0],S=arguments[1],L=arguments[2],P=L,V=p;V<S;V++){var W=this._edgeList.get(V);W.setEdgeDepths(U.RIGHT,P),P=W.getDepth(U.LEFT)}return P}}},{key:"mergeSymLabels",value:function(){for(var n=this.iterator();n.hasNext();){var i=n.next();i.getLabel().merge(i.getSym().getLabel())}}},{key:"linkMinimalDirectedEdges",value:function(n){for(var i=null,u=null,c=this._SCANNING_FOR_INCOMING,f=this._resultAreaEdgeList.size()-1;f>=0;f--){var d=this._resultAreaEdgeList.get(f),p=d.getSym();switch(i===null&&d.getEdgeRing()===n&&(i=d),c){case this._SCANNING_FOR_INCOMING:if(p.getEdgeRing()!==n)continue;u=p,c=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(d.getEdgeRing()!==n)continue;u.setNextMin(d),c=this._SCANNING_FOR_INCOMING}}c===this._LINKING_TO_OUTGOING&&(he.isTrue(i!==null,"found null for first outgoing dirEdge"),he.isTrue(i.getEdgeRing()===n,"unable to link last incoming dirEdge"),u.setNextMin(i))}},{key:"getOutgoingDegree",value:function(){if(arguments.length===0){for(var n=0,i=this.iterator();i.hasNext();){var u=i.next();u.isInResult()&&n++}return n}if(arguments.length===1){for(var c=arguments[0],f=0,d=this.iterator();d.hasNext();){var p=d.next();p.getEdgeRing()===c&&f++}return f}}},{key:"getLabel",value:function(){return this._label}},{key:"findCoveredLineEdges",value:function(){for(var n=w.NONE,i=this.iterator();i.hasNext();){var u=i.next(),c=u.getSym();if(!u.isLineEdge()){if(u.isInResult()){n=w.INTERIOR;break}if(c.isInResult()){n=w.EXTERIOR;break}}}if(n===w.NONE)return null;for(var f=n,d=this.iterator();d.hasNext();){var p=d.next(),S=p.getSym();p.isLineEdge()?p.getEdge().setCovered(f===w.INTERIOR):(p.isInResult()&&(f=w.EXTERIOR),S.isInResult()&&(f=w.INTERIOR))}}},{key:"computeLabelling",value:function(n){I(v(t.prototype),"computeLabelling",this).call(this,n),this._label=new _t(w.NONE);for(var i=this.iterator();i.hasNext();)for(var u=i.next().getEdge().getLabel(),c=0;c<2;c++){var f=u.getLocation(c);f!==w.INTERIOR&&f!==w.BOUNDARY||this._label.setLocation(c,w.INTERIOR)}}}],[{key:"constructor_",value:function(){this._resultAreaEdgeList=null,this._label=null,this._SCANNING_FOR_INCOMING=1,this._LINKING_TO_OUTGOING=2}}]),t}(Xl),Vl=function(r){g(t,r);var e=E(t);function t(){return s(this,t),e.call(this)}return h(t,[{key:"createNode",value:function(n){return new Pi(n,new Wl)}}]),t}(ga),wa=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"compareTo",value:function(e){var t=e;return r.compareOriented(this._pts,this._orientation,t._pts,t._orientation)}},{key:"interfaces_",get:function(){return[z]}}],[{key:"constructor_",value:function(){this._pts=null,this._orientation=null;var e=arguments[0];this._pts=e,this._orientation=r.orientation(e)}},{key:"orientation",value:function(e){return ze.increasingDirection(e)===1}},{key:"compareOriented",value:function(e,t,n,i){for(var u=t?1:-1,c=i?1:-1,f=t?e.length:-1,d=i?n.length:-1,p=t?0:e.length-1,S=i?0:n.length-1;;){var L=e[p].compareTo(n[S]);if(L!==0)return L;var P=(p+=u)===f,V=(S+=c)===d;if(P&&!V)return-1;if(!P&&V)return 1;if(P&&V)return 0}}}]),r}(),Hl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"print",value:function(e){e.print("MULTILINESTRING ( ");for(var t=0;t<this._edges.size();t++){var n=this._edges.get(t);t>0&&e.print(","),e.print("(");for(var i=n.getCoordinates(),u=0;u<i.length;u++)u>0&&e.print(","),e.print(i[u].x+" "+i[u].y);e.println(")")}e.print(") ")}},{key:"addAll",value:function(e){for(var t=e.iterator();t.hasNext();)this.add(t.next())}},{key:"findEdgeIndex",value:function(e){for(var t=0;t<this._edges.size();t++)if(this._edges.get(t).equals(e))return t;return-1}},{key:"iterator",value:function(){return this._edges.iterator()}},{key:"getEdges",value:function(){return this._edges}},{key:"get",value:function(e){return this._edges.get(e)}},{key:"findEqualEdge",value:function(e){var t=new wa(e.getCoordinates());return this._ocaMap.get(t)}},{key:"add",value:function(e){this._edges.add(e);var t=new wa(e.getCoordinates());this._ocaMap.put(t,e)}}],[{key:"constructor_",value:function(){this._edges=new ne,this._ocaMap=new ni}}]),r}(),Sa=function(){function r(){s(this,r)}return h(r,[{key:"processIntersections",value:function(e,t,n,i){}},{key:"isDone",value:function(){}}]),r}(),Zl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"isTrivialIntersection",value:function(e,t,n,i){if(e===n&&this._li.getIntersectionNum()===1){if(r.isAdjacentSegments(t,i))return!0;if(e.isClosed()){var u=e.size()-1;if(t===0&&i===u||i===0&&t===u)return!0}}return!1}},{key:"getProperIntersectionPoint",value:function(){return this._properIntersectionPoint}},{key:"hasProperInteriorIntersection",value:function(){return this._hasProperInterior}},{key:"getLineIntersector",value:function(){return this._li}},{key:"hasProperIntersection",value:function(){return this._hasProper}},{key:"processIntersections",value:function(e,t,n,i){if(e===n&&t===i)return null;this.numTests++;var u=e.getCoordinates()[t],c=e.getCoordinates()[t+1],f=n.getCoordinates()[i],d=n.getCoordinates()[i+1];this._li.computeIntersection(u,c,f,d),this._li.hasIntersection()&&(this.numIntersections++,this._li.isInteriorIntersection()&&(this.numInteriorIntersections++,this._hasInterior=!0),this.isTrivialIntersection(e,t,n,i)||(this._hasIntersection=!0,e.addIntersections(this._li,t,0),n.addIntersections(this._li,i,1),this._li.isProper()&&(this.numProperIntersections++,this._hasProper=!0,this._hasProperInterior=!0)))}},{key:"hasIntersection",value:function(){return this._hasIntersection}},{key:"isDone",value:function(){return!1}},{key:"hasInteriorIntersection",value:function(){return this._hasInterior}},{key:"interfaces_",get:function(){return[Sa]}}],[{key:"constructor_",value:function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._hasInterior=!1,this._properIntersectionPoint=null,this._li=null,this._isSelfIntersection=null,this.numIntersections=0,this.numInteriorIntersections=0,this.numProperIntersections=0,this.numTests=0;var e=arguments[0];this._li=e}},{key:"isAdjacentSegments",value:function(e,t){return Math.abs(e-t)===1}}]),r}(),jl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getSegmentIndex",value:function(){return this.segmentIndex}},{key:"getCoordinate",value:function(){return this.coord}},{key:"print",value:function(e){e.print(this.coord),e.print(" seg # = "+this.segmentIndex),e.println(" dist = "+this.dist)}},{key:"compareTo",value:function(e){var t=e;return this.compare(t.segmentIndex,t.dist)}},{key:"isEndPoint",value:function(e){return this.segmentIndex===0&&this.dist===0||this.segmentIndex===e}},{key:"toString",value:function(){return this.coord+" seg # = "+this.segmentIndex+" dist = "+this.dist}},{key:"getDistance",value:function(){return this.dist}},{key:"compare",value:function(e,t){return this.segmentIndex<e?-1:this.segmentIndex>e?1:this.dist<t?-1:this.dist>t?1:0}},{key:"interfaces_",get:function(){return[z]}}],[{key:"constructor_",value:function(){this.coord=null,this.segmentIndex=null,this.dist=null;var e=arguments[0],t=arguments[1],n=arguments[2];this.coord=new b(e),this.segmentIndex=t,this.dist=n}}]),r}(),Ql=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"print",value:function(e){e.println("Intersections:");for(var t=this.iterator();t.hasNext();)t.next().print(e)}},{key:"iterator",value:function(){return this._nodeMap.values().iterator()}},{key:"addSplitEdges",value:function(e){this.addEndpoints();for(var t=this.iterator(),n=t.next();t.hasNext();){var i=t.next(),u=this.createSplitEdge(n,i);e.add(u),n=i}}},{key:"addEndpoints",value:function(){var e=this.edge.pts.length-1;this.add(this.edge.pts[0],0,0),this.add(this.edge.pts[e],e,0)}},{key:"createSplitEdge",value:function(e,t){var n=t.segmentIndex-e.segmentIndex+2,i=this.edge.pts[t.segmentIndex],u=t.dist>0||!t.coord.equals2D(i);u||n--;var c=new Array(n).fill(null),f=0;c[f++]=new b(e.coord);for(var d=e.segmentIndex+1;d<=t.segmentIndex;d++)c[f++]=this.edge.pts[d];return u&&(c[f]=t.coord),new ba(c,new _t(this.edge._label))}},{key:"add",value:function(e,t,n){var i=new jl(e,t,n),u=this._nodeMap.get(i);return u!==null?u:(this._nodeMap.put(i,i),i)}},{key:"isIntersection",value:function(e){for(var t=this.iterator();t.hasNext();)if(t.next().coord.equals(e))return!0;return!1}}],[{key:"constructor_",value:function(){this._nodeMap=new ni,this.edge=null;var e=arguments[0];this.edge=e}}]),r}(),Kl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"isIntersects",value:function(){return!this.isDisjoint()}},{key:"isCovers",value:function(){return(r.isTrue(this._matrix[w.INTERIOR][w.INTERIOR])||r.isTrue(this._matrix[w.INTERIOR][w.BOUNDARY])||r.isTrue(this._matrix[w.BOUNDARY][w.INTERIOR])||r.isTrue(this._matrix[w.BOUNDARY][w.BOUNDARY]))&&this._matrix[w.EXTERIOR][w.INTERIOR]===H.FALSE&&this._matrix[w.EXTERIOR][w.BOUNDARY]===H.FALSE}},{key:"isCoveredBy",value:function(){return(r.isTrue(this._matrix[w.INTERIOR][w.INTERIOR])||r.isTrue(this._matrix[w.INTERIOR][w.BOUNDARY])||r.isTrue(this._matrix[w.BOUNDARY][w.INTERIOR])||r.isTrue(this._matrix[w.BOUNDARY][w.BOUNDARY]))&&this._matrix[w.INTERIOR][w.EXTERIOR]===H.FALSE&&this._matrix[w.BOUNDARY][w.EXTERIOR]===H.FALSE}},{key:"set",value:function(){if(arguments.length===1)for(var e=arguments[0],t=0;t<e.length;t++){var n=Math.trunc(t/3),i=t%3;this._matrix[n][i]=H.toDimensionValue(e.charAt(t))}else if(arguments.length===3){var u=arguments[0],c=arguments[1],f=arguments[2];this._matrix[u][c]=f}}},{key:"isContains",value:function(){return r.isTrue(this._matrix[w.INTERIOR][w.INTERIOR])&&this._matrix[w.EXTERIOR][w.INTERIOR]===H.FALSE&&this._matrix[w.EXTERIOR][w.BOUNDARY]===H.FALSE}},{key:"setAtLeast",value:function(){if(arguments.length===1)for(var e=arguments[0],t=0;t<e.length;t++){var n=Math.trunc(t/3),i=t%3;this.setAtLeast(n,i,H.toDimensionValue(e.charAt(t)))}else if(arguments.length===3){var u=arguments[0],c=arguments[1],f=arguments[2];this._matrix[u][c]<f&&(this._matrix[u][c]=f)}}},{key:"setAtLeastIfValid",value:function(e,t,n){e>=0&&t>=0&&this.setAtLeast(e,t,n)}},{key:"isWithin",value:function(){return r.isTrue(this._matrix[w.INTERIOR][w.INTERIOR])&&this._matrix[w.INTERIOR][w.EXTERIOR]===H.FALSE&&this._matrix[w.BOUNDARY][w.EXTERIOR]===H.FALSE}},{key:"isTouches",value:function(e,t){return e>t?this.isTouches(t,e):(e===H.A&&t===H.A||e===H.L&&t===H.L||e===H.L&&t===H.A||e===H.P&&t===H.A||e===H.P&&t===H.L)&&this._matrix[w.INTERIOR][w.INTERIOR]===H.FALSE&&(r.isTrue(this._matrix[w.INTERIOR][w.BOUNDARY])||r.isTrue(this._matrix[w.BOUNDARY][w.INTERIOR])||r.isTrue(this._matrix[w.BOUNDARY][w.BOUNDARY]))}},{key:"isOverlaps",value:function(e,t){return e===H.P&&t===H.P||e===H.A&&t===H.A?r.isTrue(this._matrix[w.INTERIOR][w.INTERIOR])&&r.isTrue(this._matrix[w.INTERIOR][w.EXTERIOR])&&r.isTrue(this._matrix[w.EXTERIOR][w.INTERIOR]):e===H.L&&t===H.L&&this._matrix[w.INTERIOR][w.INTERIOR]===1&&r.isTrue(this._matrix[w.INTERIOR][w.EXTERIOR])&&r.isTrue(this._matrix[w.EXTERIOR][w.INTERIOR])}},{key:"isEquals",value:function(e,t){return e===t&&r.isTrue(this._matrix[w.INTERIOR][w.INTERIOR])&&this._matrix[w.INTERIOR][w.EXTERIOR]===H.FALSE&&this._matrix[w.BOUNDARY][w.EXTERIOR]===H.FALSE&&this._matrix[w.EXTERIOR][w.INTERIOR]===H.FALSE&&this._matrix[w.EXTERIOR][w.BOUNDARY]===H.FALSE}},{key:"toString",value:function(){for(var e=new Ri("123456789"),t=0;t<3;t++)for(var n=0;n<3;n++)e.setCharAt(3*t+n,H.toDimensionSymbol(this._matrix[t][n]));return e.toString()}},{key:"setAll",value:function(e){for(var t=0;t<3;t++)for(var n=0;n<3;n++)this._matrix[t][n]=e}},{key:"get",value:function(e,t){return this._matrix[e][t]}},{key:"transpose",value:function(){var e=this._matrix[1][0];return this._matrix[1][0]=this._matrix[0][1],this._matrix[0][1]=e,e=this._matrix[2][0],this._matrix[2][0]=this._matrix[0][2],this._matrix[0][2]=e,e=this._matrix[2][1],this._matrix[2][1]=this._matrix[1][2],this._matrix[1][2]=e,this}},{key:"matches",value:function(e){if(e.length!==9)throw new O("Should be length 9: "+e);for(var t=0;t<3;t++)for(var n=0;n<3;n++)if(!r.matches(this._matrix[t][n],e.charAt(3*t+n)))return!1;return!0}},{key:"add",value:function(e){for(var t=0;t<3;t++)for(var n=0;n<3;n++)this.setAtLeast(t,n,e.get(t,n))}},{key:"isDisjoint",value:function(){return this._matrix[w.INTERIOR][w.INTERIOR]===H.FALSE&&this._matrix[w.INTERIOR][w.BOUNDARY]===H.FALSE&&this._matrix[w.BOUNDARY][w.INTERIOR]===H.FALSE&&this._matrix[w.BOUNDARY][w.BOUNDARY]===H.FALSE}},{key:"isCrosses",value:function(e,t){return e===H.P&&t===H.L||e===H.P&&t===H.A||e===H.L&&t===H.A?r.isTrue(this._matrix[w.INTERIOR][w.INTERIOR])&&r.isTrue(this._matrix[w.INTERIOR][w.EXTERIOR]):e===H.L&&t===H.P||e===H.A&&t===H.P||e===H.A&&t===H.L?r.isTrue(this._matrix[w.INTERIOR][w.INTERIOR])&&r.isTrue(this._matrix[w.EXTERIOR][w.INTERIOR]):e===H.L&&t===H.L&&this._matrix[w.INTERIOR][w.INTERIOR]===0}},{key:"interfaces_",get:function(){return[X]}}],[{key:"constructor_",value:function(){if(this._matrix=null,arguments.length===0)this._matrix=Array(3).fill().map(function(){return Array(3)}),this.setAll(H.FALSE);else if(arguments.length===1){if(typeof arguments[0]=="string"){var e=arguments[0];r.constructor_.call(this),this.set(e)}else if(arguments[0]instanceof r){var t=arguments[0];r.constructor_.call(this),this._matrix[w.INTERIOR][w.INTERIOR]=t._matrix[w.INTERIOR][w.INTERIOR],this._matrix[w.INTERIOR][w.BOUNDARY]=t._matrix[w.INTERIOR][w.BOUNDARY],this._matrix[w.INTERIOR][w.EXTERIOR]=t._matrix[w.INTERIOR][w.EXTERIOR],this._matrix[w.BOUNDARY][w.INTERIOR]=t._matrix[w.BOUNDARY][w.INTERIOR],this._matrix[w.BOUNDARY][w.BOUNDARY]=t._matrix[w.BOUNDARY][w.BOUNDARY],this._matrix[w.BOUNDARY][w.EXTERIOR]=t._matrix[w.BOUNDARY][w.EXTERIOR],this._matrix[w.EXTERIOR][w.INTERIOR]=t._matrix[w.EXTERIOR][w.INTERIOR],this._matrix[w.EXTERIOR][w.BOUNDARY]=t._matrix[w.EXTERIOR][w.BOUNDARY],this._matrix[w.EXTERIOR][w.EXTERIOR]=t._matrix[w.EXTERIOR][w.EXTERIOR]}}}},{key:"matches",value:function(){if(Number.isInteger(arguments[0])&&typeof arguments[1]=="string"){var e=arguments[0],t=arguments[1];return t===H.SYM_DONTCARE||t===H.SYM_TRUE&&(e>=0||e===H.TRUE)||t===H.SYM_FALSE&&e===H.FALSE||t===H.SYM_P&&e===H.P||t===H.SYM_L&&e===H.L||t===H.SYM_A&&e===H.A}if(typeof arguments[0]=="string"&&typeof arguments[1]=="string"){var n=arguments[0],i=arguments[1],u=new r(n);return u.matches(i)}}},{key:"isTrue",value:function(e){return e>=0||e===H.TRUE}}]),r}(),Jl=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"size",value:function(){return this._size}},{key:"addAll",value:function(e){return e===null||e.length===0?null:(this.ensureCapacity(this._size+e.length),nt.arraycopy(e,0,this._data,this._size,e.length),void(this._size+=e.length))}},{key:"ensureCapacity",value:function(e){if(e<=this._data.length)return null;var t=Math.max(e,2*this._data.length);this._data=yt.copyOf(this._data,t)}},{key:"toArray",value:function(){var e=new Array(this._size).fill(null);return nt.arraycopy(this._data,0,e,0,this._size),e}},{key:"add",value:function(e){this.ensureCapacity(this._size+1),this._data[this._size]=e,++this._size}}],[{key:"constructor_",value:function(){if(this._data=null,this._size=0,arguments.length===0)r.constructor_.call(this,10);else if(arguments.length===1){var e=arguments[0];this._data=new Array(e).fill(null)}}}]),r}(),$l=function(){function r(){s(this,r)}return h(r,[{key:"getChainStartIndices",value:function(e){var t=0,n=new Jl(Math.trunc(e.length/2));n.add(t);do{var i=this.findChainEnd(e,t);n.add(i),t=i}while(t<e.length-1);return n.toArray()}},{key:"findChainEnd",value:function(e,t){for(var n=Je.quadrant(e[t],e[t+1]),i=t+1;i<e.length&&Je.quadrant(e[i-1],e[i])===n;)i++;return i-1}},{key:"OLDgetChainStartIndices",value:function(e){var t=0,n=new ne;n.add(t);do{var i=this.findChainEnd(e,t);n.add(i),t=i}while(t<e.length-1);return r.toIntArray(n)}}],[{key:"toIntArray",value:function(e){for(var t=new Array(e.size()).fill(null),n=0;n<t.length;n++)t[n]=e.get(n).intValue();return t}}]),r}(),eh=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getCoordinates",value:function(){return this.pts}},{key:"getMaxX",value:function(e){var t=this.pts[this.startIndex[e]].x,n=this.pts[this.startIndex[e+1]].x;return t>n?t:n}},{key:"getMinX",value:function(e){var t=this.pts[this.startIndex[e]].x,n=this.pts[this.startIndex[e+1]].x;return t<n?t:n}},{key:"computeIntersectsForChain",value:function(){if(arguments.length===4){var e=arguments[0],t=arguments[1],n=arguments[2],i=arguments[3];this.computeIntersectsForChain(this.startIndex[e],this.startIndex[e+1],t,t.startIndex[n],t.startIndex[n+1],i)}else if(arguments.length===6){var u=arguments[0],c=arguments[1],f=arguments[2],d=arguments[3],p=arguments[4],S=arguments[5];if(c-u==1&&p-d==1)return S.addIntersections(this.e,u,f.e,d),null;if(!this.overlaps(u,c,f,d,p))return null;var L=Math.trunc((u+c)/2),P=Math.trunc((d+p)/2);u<L&&(d<P&&this.computeIntersectsForChain(u,L,f,d,P,S),P<p&&this.computeIntersectsForChain(u,L,f,P,p,S)),L<c&&(d<P&&this.computeIntersectsForChain(L,c,f,d,P,S),P<p&&this.computeIntersectsForChain(L,c,f,P,p,S))}}},{key:"overlaps",value:function(e,t,n,i,u){return Ee.intersects(this.pts[e],this.pts[t],n.pts[i],n.pts[u])}},{key:"getStartIndexes",value:function(){return this.startIndex}},{key:"computeIntersects",value:function(e,t){for(var n=0;n<this.startIndex.length-1;n++)for(var i=0;i<e.startIndex.length-1;i++)this.computeIntersectsForChain(n,e,i,t)}}],[{key:"constructor_",value:function(){this.e=null,this.pts=null,this.startIndex=null;var e=arguments[0];this.e=e,this.pts=e.getCoordinates();var t=new $l;this.startIndex=t.getChainStartIndices(this.pts)}}]),r}(),La=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"getDepth",value:function(e,t){return this._depth[e][t]}},{key:"setDepth",value:function(e,t,n){this._depth[e][t]=n}},{key:"isNull",value:function(){if(arguments.length===0){for(var e=0;e<2;e++)for(var t=0;t<3;t++)if(this._depth[e][t]!==r.NULL_VALUE)return!1;return!0}if(arguments.length===1){var n=arguments[0];return this._depth[n][1]===r.NULL_VALUE}if(arguments.length===2){var i=arguments[0],u=arguments[1];return this._depth[i][u]===r.NULL_VALUE}}},{key:"normalize",value:function(){for(var e=0;e<2;e++)if(!this.isNull(e)){var t=this._depth[e][1];this._depth[e][2]<t&&(t=this._depth[e][2]),t<0&&(t=0);for(var n=1;n<3;n++){var i=0;this._depth[e][n]>t&&(i=1),this._depth[e][n]=i}}}},{key:"getDelta",value:function(e){return this._depth[e][U.RIGHT]-this._depth[e][U.LEFT]}},{key:"getLocation",value:function(e,t){return this._depth[e][t]<=0?w.EXTERIOR:w.INTERIOR}},{key:"toString",value:function(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]}},{key:"add",value:function(){if(arguments.length===1)for(var e=arguments[0],t=0;t<2;t++)for(var n=1;n<3;n++){var i=e.getLocation(t,n);i!==w.EXTERIOR&&i!==w.INTERIOR||(this.isNull(t,n)?this._depth[t][n]=r.depthAtLocation(i):this._depth[t][n]+=r.depthAtLocation(i))}else if(arguments.length===3){var u=arguments[0],c=arguments[1],f=arguments[2];f===w.INTERIOR&&this._depth[u][c]++}}}],[{key:"constructor_",value:function(){this._depth=Array(2).fill().map(function(){return Array(3)});for(var e=0;e<2;e++)for(var t=0;t<3;t++)this._depth[e][t]=r.NULL_VALUE}},{key:"depthAtLocation",value:function(e){return e===w.EXTERIOR?0:e===w.INTERIOR?1:r.NULL_VALUE}}]),r}();La.NULL_VALUE=-1;var ba=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"getDepth",value:function(){return this._depth}},{key:"getCollapsedEdge",value:function(){var n=new Array(2).fill(null);return n[0]=this.pts[0],n[1]=this.pts[1],new t(n,_t.toLineLabel(this._label))}},{key:"isIsolated",value:function(){return this._isIsolated}},{key:"getCoordinates",value:function(){return this.pts}},{key:"setIsolated",value:function(n){this._isIsolated=n}},{key:"setName",value:function(n){this._name=n}},{key:"equals",value:function(n){if(!(n instanceof t))return!1;var i=n;if(this.pts.length!==i.pts.length)return!1;for(var u=!0,c=!0,f=this.pts.length,d=0;d<this.pts.length;d++)if(this.pts[d].equals2D(i.pts[d])||(u=!1),this.pts[d].equals2D(i.pts[--f])||(c=!1),!u&&!c)return!1;return!0}},{key:"getCoordinate",value:function(){if(arguments.length===0)return this.pts.length>0?this.pts[0]:null;if(arguments.length===1){var n=arguments[0];return this.pts[n]}}},{key:"print",value:function(n){n.print("edge "+this._name+": "),n.print("LINESTRING (");for(var i=0;i<this.pts.length;i++)i>0&&n.print(","),n.print(this.pts[i].x+" "+this.pts[i].y);n.print(") "+this._label+" "+this._depthDelta)}},{key:"computeIM",value:function(n){t.updateIM(this._label,n)}},{key:"isCollapsed",value:function(){return!!this._label.isArea()&&this.pts.length===3&&!!this.pts[0].equals(this.pts[2])}},{key:"isClosed",value:function(){return this.pts[0].equals(this.pts[this.pts.length-1])}},{key:"getMaximumSegmentIndex",value:function(){return this.pts.length-1}},{key:"getDepthDelta",value:function(){return this._depthDelta}},{key:"getNumPoints",value:function(){return this.pts.length}},{key:"printReverse",value:function(n){n.print("edge "+this._name+": ");for(var i=this.pts.length-1;i>=0;i--)n.print(this.pts[i]+" ");n.println("")}},{key:"getMonotoneChainEdge",value:function(){return this._mce===null&&(this._mce=new eh(this)),this._mce}},{key:"getEnvelope",value:function(){if(this._env===null){this._env=new Ee;for(var n=0;n<this.pts.length;n++)this._env.expandToInclude(this.pts[n])}return this._env}},{key:"addIntersection",value:function(n,i,u,c){var f=new b(n.getIntersection(c)),d=i,p=n.getEdgeDistance(u,c),S=d+1;if(S<this.pts.length){var L=this.pts[S];f.equals2D(L)&&(d=S,p=0)}this.eiList.add(f,d,p)}},{key:"toString",value:function(){var n=new Ri;n.append("edge "+this._name+": "),n.append("LINESTRING (");for(var i=0;i<this.pts.length;i++)i>0&&n.append(","),n.append(this.pts[i].x+" "+this.pts[i].y);return n.append(") "+this._label+" "+this._depthDelta),n.toString()}},{key:"isPointwiseEqual",value:function(n){if(this.pts.length!==n.pts.length)return!1;for(var i=0;i<this.pts.length;i++)if(!this.pts[i].equals2D(n.pts[i]))return!1;return!0}},{key:"setDepthDelta",value:function(n){this._depthDelta=n}},{key:"getEdgeIntersectionList",value:function(){return this.eiList}},{key:"addIntersections",value:function(n,i,u){for(var c=0;c<n.getIntersectionNum();c++)this.addIntersection(n,i,u,c)}}],[{key:"constructor_",value:function(){if(this.pts=null,this._env=null,this.eiList=new Ql(this),this._name=null,this._mce=null,this._isIsolated=!0,this._depth=new La,this._depthDelta=0,arguments.length===1){var n=arguments[0];t.constructor_.call(this,n,null)}else if(arguments.length===2){var i=arguments[0],u=arguments[1];this.pts=i,this._label=u}}},{key:"updateIM",value:function(){if(!(arguments.length===2&&arguments[1]instanceof Kl&&arguments[0]instanceof _t))return I(v(t),"updateIM",this).apply(this,arguments);var n=arguments[0],i=arguments[1];i.setAtLeastIfValid(n.getLocation(0,U.ON),n.getLocation(1,U.ON),1),n.isArea()&&(i.setAtLeastIfValid(n.getLocation(0,U.LEFT),n.getLocation(1,U.LEFT),2),i.setAtLeastIfValid(n.getLocation(0,U.RIGHT),n.getLocation(1,U.RIGHT),2))}}]),t}(oa),Ta=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"setWorkingPrecisionModel",value:function(e){this._workingPrecisionModel=e}},{key:"insertUniqueEdge",value:function(e){var t=this._edgeList.findEqualEdge(e);if(t!==null){var n=t.getLabel(),i=e.getLabel();t.isPointwiseEqual(e)||(i=new _t(e.getLabel())).flip(),n.merge(i);var u=r.depthDelta(i),c=t.getDepthDelta()+u;t.setDepthDelta(c)}else this._edgeList.add(e),e.setDepthDelta(r.depthDelta(e.getLabel()))}},{key:"buildSubgraphs",value:function(e,t){for(var n=new ne,i=e.iterator();i.hasNext();){var u=i.next(),c=u.getRightmostCoordinate(),f=new xa(n).getDepth(c);u.computeDepth(f),u.findResultEdges(),n.add(u),t.add(u.getDirectedEdges(),u.getNodes())}}},{key:"createSubgraphs",value:function(e){for(var t=new ne,n=e.getNodes().iterator();n.hasNext();){var i=n.next();if(!i.isVisited()){var u=new ar;u.create(i),t.add(u)}}return Rn.sort(t,Rn.reverseOrder()),t}},{key:"createEmptyResultGeometry",value:function(){return this._geomFact.createPolygon()}},{key:"getNoder",value:function(e){if(this._workingNoder!==null)return this._workingNoder;var t=new _r,n=new cn;return n.setPrecisionModel(e),t.setSegmentIntersector(new Zl(n)),t}},{key:"buffer",value:function(e,t){var n=this._workingPrecisionModel;n===null&&(n=e.getPrecisionModel()),this._geomFact=e.getFactory();var i=new Gl(n,this._bufParams),u=new zl(e,t,i).getCurves();if(u.size()<=0)return this.createEmptyResultGeometry();this.computeNodedEdges(u,n),this._graph=new da(new Vl),this._graph.addEdges(this._edgeList.getEdges());var c=this.createSubgraphs(this._graph),f=new wl(this._geomFact);this.buildSubgraphs(c,f);var d=f.getPolygons();return d.size()<=0?this.createEmptyResultGeometry():this._geomFact.buildGeometry(d)}},{key:"computeNodedEdges",value:function(e,t){var n=this.getNoder(t);n.computeNodes(e);for(var i=n.getNodedSubstrings().iterator();i.hasNext();){var u=i.next(),c=u.getCoordinates();if(c.length!==2||!c[0].equals2D(c[1])){var f=u.getData(),d=new ba(u.getCoordinates(),new _t(f));this.insertUniqueEdge(d)}}}},{key:"setNoder",value:function(e){this._workingNoder=e}}],[{key:"constructor_",value:function(){this._bufParams=null,this._workingPrecisionModel=null,this._workingNoder=null,this._geomFact=null,this._graph=null,this._edgeList=new Hl;var e=arguments[0];this._bufParams=e}},{key:"depthDelta",value:function(e){var t=e.getLocation(0,U.LEFT),n=e.getLocation(0,U.RIGHT);return t===w.INTERIOR&&n===w.EXTERIOR?1:t===w.EXTERIOR&&n===w.INTERIOR?-1:0}},{key:"convertSegStrings",value:function(e){for(var t=new Tn,n=new ne;e.hasNext();){var i=e.next(),u=t.createLineString(i.getCoordinates());n.add(u)}return t.buildGeometry(n)}}]),r}(),th=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"rescale",value:function(){if(ue(arguments[0],oe))for(var e=arguments[0],t=e.iterator();t.hasNext();){var n=t.next();this.rescale(n.getCoordinates())}else if(arguments[0]instanceof Array){for(var i=arguments[0],u=0;u<i.length;u++)i[u].x=i[u].x/this._scaleFactor+this._offsetX,i[u].y=i[u].y/this._scaleFactor+this._offsetY;i.length===2&&i[0].equals2D(i[1])&&nt.out.println(i)}}},{key:"scale",value:function(){if(ue(arguments[0],oe)){for(var e=arguments[0],t=new ne(e.size()),n=e.iterator();n.hasNext();){var i=n.next();t.add(new fn(this.scale(i.getCoordinates()),i.getData()))}return t}if(arguments[0]instanceof Array){for(var u=arguments[0],c=new Array(u.length).fill(null),f=0;f<u.length;f++)c[f]=new b(Math.round((u[f].x-this._offsetX)*this._scaleFactor),Math.round((u[f].y-this._offsetY)*this._scaleFactor),u[f].getZ());var d=ze.removeRepeatedPoints(c);return d}}},{key:"isIntegerPrecision",value:function(){return this._scaleFactor===1}},{key:"getNodedSubstrings",value:function(){var e=this._noder.getNodedSubstrings();return this._isScaled&&this.rescale(e),e}},{key:"computeNodes",value:function(e){var t=e;this._isScaled&&(t=this.scale(e)),this._noder.computeNodes(t)}},{key:"interfaces_",get:function(){return[pr]}}],[{key:"constructor_",value:function(){if(this._noder=null,this._scaleFactor=null,this._offsetX=null,this._offsetY=null,this._isScaled=!1,arguments.length===2){var e=arguments[0],t=arguments[1];r.constructor_.call(this,e,t,0,0)}else if(arguments.length===4){var n=arguments[0],i=arguments[1];this._noder=n,this._scaleFactor=i,this._isScaled=!this.isIntegerPrecision()}}}]),r}(),Ca=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"checkEndPtVertexIntersections",value:function(){if(arguments.length===0)for(var e=this._segStrings.iterator();e.hasNext();){var t=e.next(),n=t.getCoordinates();this.checkEndPtVertexIntersections(n[0],this._segStrings),this.checkEndPtVertexIntersections(n[n.length-1],this._segStrings)}else if(arguments.length===2){for(var i=arguments[0],u=arguments[1],c=u.iterator();c.hasNext();)for(var f=c.next(),d=f.getCoordinates(),p=1;p<d.length-1;p++)if(d[p].equals(i))throw new be("found endpt/interior pt intersection at index "+p+" :pt "+i)}}},{key:"checkInteriorIntersections",value:function(){if(arguments.length===0)for(var e=this._segStrings.iterator();e.hasNext();)for(var t=e.next(),n=this._segStrings.iterator();n.hasNext();){var i=n.next();this.checkInteriorIntersections(t,i)}else if(arguments.length===2)for(var u=arguments[0],c=arguments[1],f=u.getCoordinates(),d=c.getCoordinates(),p=0;p<f.length-1;p++)for(var S=0;S<d.length-1;S++)this.checkInteriorIntersections(u,p,c,S);else if(arguments.length===4){var L=arguments[0],P=arguments[1],V=arguments[2],W=arguments[3];if(L===V&&P===W)return null;var $=L.getCoordinates()[P],ie=L.getCoordinates()[P+1],le=V.getCoordinates()[W],_e=V.getCoordinates()[W+1];if(this._li.computeIntersection($,ie,le,_e),this._li.hasIntersection()&&(this._li.isProper()||this.hasInteriorIntersection(this._li,$,ie)||this.hasInteriorIntersection(this._li,le,_e)))throw new be("found non-noded intersection at "+$+"-"+ie+" and "+le+"-"+_e)}}},{key:"checkValid",value:function(){this.checkEndPtVertexIntersections(),this.checkInteriorIntersections(),this.checkCollapses()}},{key:"checkCollapses",value:function(){if(arguments.length===0)for(var e=this._segStrings.iterator();e.hasNext();){var t=e.next();this.checkCollapses(t)}else if(arguments.length===1)for(var n=arguments[0],i=n.getCoordinates(),u=0;u<i.length-2;u++)this.checkCollapse(i[u],i[u+1],i[u+2])}},{key:"hasInteriorIntersection",value:function(e,t,n){for(var i=0;i<e.getIntersectionNum();i++){var u=e.getIntersection(i);if(!u.equals(t)&&!u.equals(n))return!0}return!1}},{key:"checkCollapse",value:function(e,t,n){if(e.equals(n))throw new be("found non-noded collapse at "+r.fact.createLineString([e,t,n]))}}],[{key:"constructor_",value:function(){this._li=new cn,this._segStrings=null;var e=arguments[0];this._segStrings=e}}]),r}();Ca.fact=new Tn;var Er=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"intersectsScaled",value:function(e,t){var n=Math.min(e.x,t.x),i=Math.max(e.x,t.x),u=Math.min(e.y,t.y),c=Math.max(e.y,t.y),f=this._maxx<n||this._minx>i||this._maxy<u||this._miny>c;if(f)return!1;var d=this.intersectsToleranceSquare(e,t);return he.isTrue(!(f&&d),"Found bad envelope test"),d}},{key:"initCorners",value:function(e){var t=.5;this._minx=e.x-t,this._maxx=e.x+t,this._miny=e.y-t,this._maxy=e.y+t,this._corner[0]=new b(this._maxx,this._maxy),this._corner[1]=new b(this._minx,this._maxy),this._corner[2]=new b(this._minx,this._miny),this._corner[3]=new b(this._maxx,this._miny)}},{key:"intersects",value:function(e,t){return this._scaleFactor===1?this.intersectsScaled(e,t):(this.copyScaled(e,this._p0Scaled),this.copyScaled(t,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))}},{key:"scale",value:function(e){return Math.round(e*this._scaleFactor)}},{key:"getCoordinate",value:function(){return this._originalPt}},{key:"copyScaled",value:function(e,t){t.x=this.scale(e.x),t.y=this.scale(e.y)}},{key:"getSafeEnvelope",value:function(){if(this._safeEnv===null){var e=r.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new Ee(this._originalPt.x-e,this._originalPt.x+e,this._originalPt.y-e,this._originalPt.y+e)}return this._safeEnv}},{key:"intersectsPixelClosure",value:function(e,t){return this._li.computeIntersection(e,t,this._corner[0],this._corner[1]),!!this._li.hasIntersection()||(this._li.computeIntersection(e,t,this._corner[1],this._corner[2]),!!this._li.hasIntersection()||(this._li.computeIntersection(e,t,this._corner[2],this._corner[3]),!!this._li.hasIntersection()||(this._li.computeIntersection(e,t,this._corner[3],this._corner[0]),!!this._li.hasIntersection())))}},{key:"intersectsToleranceSquare",value:function(e,t){var n=!1,i=!1;return this._li.computeIntersection(e,t,this._corner[0],this._corner[1]),!!this._li.isProper()||(this._li.computeIntersection(e,t,this._corner[1],this._corner[2]),!!this._li.isProper()||(this._li.hasIntersection()&&(n=!0),this._li.computeIntersection(e,t,this._corner[2],this._corner[3]),!!this._li.isProper()||(this._li.hasIntersection()&&(i=!0),this._li.computeIntersection(e,t,this._corner[3],this._corner[0]),!!this._li.isProper()||!(!n||!i)||!!e.equals(this._pt)||!!t.equals(this._pt))))}},{key:"addSnappedNode",value:function(e,t){var n=e.getCoordinate(t),i=e.getCoordinate(t+1);return!!this.intersects(n,i)&&(e.addIntersection(this.getCoordinate(),t),!0)}}],[{key:"constructor_",value:function(){this._li=null,this._pt=null,this._originalPt=null,this._ptScaled=null,this._p0Scaled=null,this._p1Scaled=null,this._scaleFactor=null,this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,this._corner=new Array(4).fill(null),this._safeEnv=null;var e=arguments[0],t=arguments[1],n=arguments[2];if(this._originalPt=e,this._pt=e,this._scaleFactor=t,this._li=n,t<=0)throw new O("Scale factor must be non-zero");t!==1&&(this._pt=new b(this.scale(e.x),this.scale(e.y)),this._p0Scaled=new b,this._p1Scaled=new b),this.initCorners(this._pt)}}]),r}();Er.SAFE_ENV_EXPANSION_FACTOR=.75;var nh=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"select",value:function(){if(arguments.length!==1){if(arguments.length===2){var e=arguments[0],t=arguments[1];e.getLineSegment(t,this.selectedSegment),this.select(this.selectedSegment)}}}}],[{key:"constructor_",value:function(){this.selectedSegment=new ut}}]),r}(),Ra=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"snap",value:function(){if(arguments.length===1){var e=arguments[0];return this.snap(e,null,-1)}if(arguments.length===3){var t=arguments[0],n=arguments[1],i=arguments[2],u=t.getSafeEnvelope(),c=new Oa(t,n,i);return this._index.query(u,new(function(){function f(){s(this,f)}return h(f,[{key:"interfaces_",get:function(){return[va]}},{key:"visitItem",value:function(d){d.select(u,c)}}]),f}())),c.isNodeAdded()}}}],[{key:"constructor_",value:function(){this._index=null;var e=arguments[0];this._index=e}}]),r}(),Oa=function(r){g(t,r);var e=E(t);function t(){var n;return s(this,t),n=e.call(this),t.constructor_.apply(y(n),arguments),n}return h(t,[{key:"isNodeAdded",value:function(){return this._isNodeAdded}},{key:"select",value:function(){if(!(arguments.length===2&&Number.isInteger(arguments[1])&&arguments[0]instanceof pa))return I(v(t.prototype),"select",this).apply(this,arguments);var n=arguments[0],i=arguments[1],u=n.getContext();if(this._parentEdge===u&&(i===this._hotPixelVertexIndex||i+1===this._hotPixelVertexIndex))return null;this._isNodeAdded|=this._hotPixel.addSnappedNode(u,i)}}],[{key:"constructor_",value:function(){this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;var n=arguments[0],i=arguments[1],u=arguments[2];this._hotPixel=n,this._parentEdge=i,this._hotPixelVertexIndex=u}}]),t}(nh);Ra.HotPixelSnapAction=Oa;var ih=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"processIntersections",value:function(e,t,n,i){if(e===n&&t===i)return null;var u=e.getCoordinates()[t],c=e.getCoordinates()[t+1],f=n.getCoordinates()[i],d=n.getCoordinates()[i+1];if(this._li.computeIntersection(u,c,f,d),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var p=0;p<this._li.getIntersectionNum();p++)this._interiorIntersections.add(this._li.getIntersection(p));e.addIntersections(this._li,t,0),n.addIntersections(this._li,i,1)}}},{key:"isDone",value:function(){return!1}},{key:"getInteriorIntersections",value:function(){return this._interiorIntersections}},{key:"interfaces_",get:function(){return[Sa]}}],[{key:"constructor_",value:function(){this._li=null,this._interiorIntersections=null;var e=arguments[0];this._li=e,this._interiorIntersections=new ne}}]),r}(),rh=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"checkCorrectness",value:function(e){var t=fn.getNodedSubstrings(e),n=new Ca(t);try{n.checkValid()}catch(i){if(!(i instanceof q))throw i;i.printStackTrace()}}},{key:"getNodedSubstrings",value:function(){return fn.getNodedSubstrings(this._nodedSegStrings)}},{key:"snapRound",value:function(e,t){var n=this.findInteriorIntersections(e,t);this.computeIntersectionSnaps(n),this.computeVertexSnaps(e)}},{key:"findInteriorIntersections",value:function(e,t){var n=new ih(t);return this._noder.setSegmentIntersector(n),this._noder.computeNodes(e),n.getInteriorIntersections()}},{key:"computeVertexSnaps",value:function(){if(ue(arguments[0],oe))for(var e=arguments[0],t=e.iterator();t.hasNext();){var n=t.next();this.computeVertexSnaps(n)}else if(arguments[0]instanceof fn)for(var i=arguments[0],u=i.getCoordinates(),c=0;c<u.length;c++){var f=new Er(u[c],this._scaleFactor,this._li),d=this._pointSnapper.snap(f,i,c);d&&i.addIntersection(u[c],c)}}},{key:"computeNodes",value:function(e){this._nodedSegStrings=e,this._noder=new _r,this._pointSnapper=new Ra(this._noder.getIndex()),this.snapRound(e,this._li)}},{key:"computeIntersectionSnaps",value:function(e){for(var t=e.iterator();t.hasNext();){var n=t.next(),i=new Er(n,this._scaleFactor,this._li);this._pointSnapper.snap(i)}}},{key:"interfaces_",get:function(){return[pr]}}],[{key:"constructor_",value:function(){this._pm=null,this._li=null,this._scaleFactor=null,this._noder=null,this._pointSnapper=null,this._nodedSegStrings=null;var e=arguments[0];this._pm=e,this._li=new cn,this._li.setPrecisionModel(e),this._scaleFactor=e.getScale()}}]),r}(),Pn=function(){function r(){s(this,r),r.constructor_.apply(this,arguments)}return h(r,[{key:"bufferFixedPrecision",value:function(e){var t=new th(new rh(new It(1)),e.getScale()),n=new Ta(this._bufParams);n.setWorkingPrecisionModel(e),n.setNoder(t),this._resultGeometry=n.buffer(this._argGeom,this._distance)}},{key:"bufferReducedPrecision",value:function(){if(arguments.length===0){for(var e=r.MAX_PRECISION_DIGITS;e>=0;e--){try{this.bufferReducedPrecision(e)}catch(u){if(!(u instanceof st))throw u;this._saveException=u}if(this._resultGeometry!==null)return null}throw this._saveException}if(arguments.length===1){var t=arguments[0],n=r.precisionScaleFactor(this._argGeom,this._distance,t),i=new It(n);this.bufferFixedPrecision(i)}}},{key:"computeGeometry",value:function(){if(this.bufferOriginalPrecision(),this._resultGeometry!==null)return null;var e=this._argGeom.getFactory().getPrecisionModel();e.getType()===It.FIXED?this.bufferFixedPrecision(e):this.bufferReducedPrecision()}},{key:"setQuadrantSegments",value:function(e){this._bufParams.setQuadrantSegments(e)}},{key:"bufferOriginalPrecision",value:function(){try{var e=new Ta(this._bufParams);this._resultGeometry=e.buffer(this._argGeom,this._distance)}catch(t){if(!(t instanceof be))throw t;this._saveException=t}}},{key:"getResultGeometry",value:function(e){return this._distance=e,this.computeGeometry(),this._resultGeometry}},{key:"setEndCapStyle",value:function(e){this._bufParams.setEndCapStyle(e)}}],[{key:"constructor_",value:function(){if(this._argGeom=null,this._distance=null,this._bufParams=new C,this._resultGeometry=null,this._saveException=null,arguments.length===1){var e=arguments[0];this._argGeom=e}else if(arguments.length===2){var t=arguments[0],n=arguments[1];this._argGeom=t,this._bufParams=n}}},{key:"bufferOp",value:function(){if(arguments.length===2){var e=arguments[0],t=arguments[1],n=new r(e),i=n.getResultGeometry(t);return i}if(arguments.length===3){if(Number.isInteger(arguments[2])&&arguments[0]instanceof J&&typeof arguments[1]=="number"){var u=arguments[0],c=arguments[1],f=arguments[2],d=new r(u);d.setQuadrantSegments(f);var p=d.getResultGeometry(c);return p}if(arguments[2]instanceof C&&arguments[0]instanceof J&&typeof arguments[1]=="number"){var S=arguments[0],L=arguments[1],P=arguments[2],V=new r(S,P),W=V.getResultGeometry(L);return W}}else if(arguments.length===4){var $=arguments[0],ie=arguments[1],le=arguments[2],_e=arguments[3],De=new r($);De.setQuadrantSegments(le),De.setEndCapStyle(_e);var He=De.getResultGeometry(ie);return He}}},{key:"precisionScaleFactor",value:function(e,t,n){var i=e.getEnvelopeInternal(),u=on.max(Math.abs(i.getMaxX()),Math.abs(i.getMaxY()),Math.abs(i.getMinX()),Math.abs(i.getMinY()))+2*(t>0?t:0),c=n-Math.trunc(Math.log(u)/Math.log(10)+1);return Math.pow(10,c)}}]),r}();Pn.CAP_ROUND=C.CAP_ROUND,Pn.CAP_BUTT=C.CAP_FLAT,Pn.CAP_FLAT=C.CAP_FLAT,Pn.CAP_SQUARE=C.CAP_SQUARE,Pn.MAX_PRECISION_DIGITS=12;var sh=["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"],Ma=function(){function r(e){s(this,r),this.geometryFactory=e||new Tn}return h(r,[{key:"read",value:function(e){var t,n=(t=typeof e=="string"?JSON.parse(e):e).type;if(!Et[n])throw new Error("Unknown GeoJSON type: "+t.type);return sh.indexOf(n)!==-1?Et[n].call(this,t.coordinates):n==="GeometryCollection"?Et[n].call(this,t.geometries):Et[n].call(this,t)}},{key:"write",value:function(e){var t=e.getGeometryType();if(!Mt[t])throw new Error("Geometry is not supported");return Mt[t].call(this,e)}}]),r}(),Et={Feature:function(r){var e={};for(var t in r)e[t]=r[t];if(r.geometry){var n=r.geometry.type;if(!Et[n])throw new Error("Unknown GeoJSON type: "+r.type);e.geometry=this.read(r.geometry)}return r.bbox&&(e.bbox=Et.bbox.call(this,r.bbox)),e},FeatureCollection:function(r){var e={};if(r.features){e.features=[];for(var t=0;t<r.features.length;++t)e.features.push(this.read(r.features[t]))}return r.bbox&&(e.bbox=this.parse.bbox.call(this,r.bbox)),e},coordinates:function(r){for(var e=[],t=0;t<r.length;++t){var n=r[t];e.push(_(b,R(n)))}return e},bbox:function(r){return this.geometryFactory.createLinearRing([new b(r[0],r[1]),new b(r[2],r[1]),new b(r[2],r[3]),new b(r[0],r[3]),new b(r[0],r[1])])},Point:function(r){var e=_(b,R(r));return this.geometryFactory.createPoint(e)},MultiPoint:function(r){for(var e=[],t=0;t<r.length;++t)e.push(Et.Point.call(this,r[t]));return this.geometryFactory.createMultiPoint(e)},LineString:function(r){var e=Et.coordinates.call(this,r);return this.geometryFactory.createLineString(e)},MultiLineString:function(r){for(var e=[],t=0;t<r.length;++t)e.push(Et.LineString.call(this,r[t]));return this.geometryFactory.createMultiLineString(e)},Polygon:function(r){for(var e=Et.coordinates.call(this,r[0]),t=this.geometryFactory.createLinearRing(e),n=[],i=1;i<r.length;++i){var u=r[i],c=Et.coordinates.call(this,u),f=this.geometryFactory.createLinearRing(c);n.push(f)}return this.geometryFactory.createPolygon(t,n)},MultiPolygon:function(r){for(var e=[],t=0;t<r.length;++t){var n=r[t];e.push(Et.Polygon.call(this,n))}return this.geometryFactory.createMultiPolygon(e)},GeometryCollection:function(r){for(var e=[],t=0;t<r.length;++t){var n=r[t];e.push(this.read(n))}return this.geometryFactory.createGeometryCollection(e)}},Mt={coordinate:function(r){var e=[r.x,r.y];return r.z&&e.push(r.z),r.m&&e.push(r.m),e},Point:function(r){return{type:"Point",coordinates:Mt.coordinate.call(this,r.getCoordinate())}},MultiPoint:function(r){for(var e=[],t=0;t<r._geometries.length;++t){var n=r._geometries[t],i=Mt.Point.call(this,n);e.push(i.coordinates)}return{type:"MultiPoint",coordinates:e}},LineString:function(r){for(var e=[],t=r.getCoordinates(),n=0;n<t.length;++n){var i=t[n];e.push(Mt.coordinate.call(this,i))}return{type:"LineString",coordinates:e}},MultiLineString:function(r){for(var e=[],t=0;t<r._geometries.length;++t){var n=r._geometries[t],i=Mt.LineString.call(this,n);e.push(i.coordinates)}return{type:"MultiLineString",coordinates:e}},Polygon:function(r){var e=[],t=Mt.LineString.call(this,r._shell);e.push(t.coordinates);for(var n=0;n<r._holes.length;++n){var i=r._holes[n],u=Mt.LineString.call(this,i);e.push(u.coordinates)}return{type:"Polygon",coordinates:e}},MultiPolygon:function(r){for(var e=[],t=0;t<r._geometries.length;++t){var n=r._geometries[t],i=Mt.Polygon.call(this,n);e.push(i.coordinates)}return{type:"MultiPolygon",coordinates:e}},GeometryCollection:function(r){for(var e=[],t=0;t<r._geometries.length;++t){var n=r._geometries[t],i=n.getGeometryType();e.push(Mt[i].call(this,n))}return{type:"GeometryCollection",geometries:e}}};return{BufferOp:Pn,GeoJSONReader:function(){function r(e){s(this,r),this.parser=new Ma(e||new Tn)}return h(r,[{key:"read",value:function(e){return this.parser.read(e)}}]),r}(),GeoJSONWriter:function(){function r(){s(this,r),this.parser=new Ma(this.geometryFactory)}return h(r,[{key:"write",value:function(e){return this.parser.write(e)}}]),r}()}})})(ps);var So=ps.exports;const Lo=wo(So);function Kt(){return new di}function di(){this.reset()}di.prototype={constructor:di,reset:function(){this.s=this.t=0},add:function(o){_s(mi,o,this.t),_s(this,mi.s,this.s),this.s?this.t+=mi.t:this.s=mi.t},valueOf:function(){return this.s}};var mi=new di;function _s(o,a,s){var l=o.s=a+s,h=l-a,g=l-h;o.t=a-g+(s-h)}var Ne=1e-6,ve=Math.PI,bt=ve/2,ks=ve/4,Tt=ve*2,Jt=180/ve,gt=ve/180,Be=Math.abs,bo=Math.atan,_n=Math.atan2,Me=Math.cos,Pe=Math.sin,kn=Math.sqrt;function Es(o){return o>1?0:o<-1?ve:Math.acos(o)}function nn(o){return o>1?bt:o<-1?-bt:Math.asin(o)}function Wn(){}function vi(o,a){o&&Ns.hasOwnProperty(o.type)&&Ns[o.type](o,a)}var xs={Feature:function(o,a){vi(o.geometry,a)},FeatureCollection:function(o,a){for(var s=o.features,l=-1,h=s.length;++l<h;)vi(s[l].geometry,a)}},Ns={Sphere:function(o,a){a.sphere()},Point:function(o,a){o=o.coordinates,a.point(o[0],o[1],o[2])},MultiPoint:function(o,a){for(var s=o.coordinates,l=-1,h=s.length;++l<h;)o=s[l],a.point(o[0],o[1],o[2])},LineString:function(o,a){Ki(o.coordinates,a,0)},MultiLineString:function(o,a){for(var s=o.coordinates,l=-1,h=s.length;++l<h;)Ki(s[l],a,0)},Polygon:function(o,a){Is(o.coordinates,a)},MultiPolygon:function(o,a){for(var s=o.coordinates,l=-1,h=s.length;++l<h;)Is(s[l],a)},GeometryCollection:function(o,a){for(var s=o.geometries,l=-1,h=s.length;++l<h;)vi(s[l],a)}};function Ki(o,a,s){var l=-1,h=o.length-s,g;for(a.lineStart();++l<h;)g=o[l],a.point(g[0],g[1],g[2]);a.lineEnd()}function Is(o,a){var s=-1,l=o.length;for(a.polygonStart();++s<l;)Ki(o[s],a,1);a.polygonEnd()}function To(o,a){o&&xs.hasOwnProperty(o.type)?xs[o.type](o,a):vi(o,a)}Kt(),Kt();function Ji(o){return[_n(o[1],o[0]),nn(o[2])]}function En(o){var a=o[0],s=o[1],l=Me(s);return[l*Me(a),l*Pe(a),Pe(s)]}function yi(o,a){return o[0]*a[0]+o[1]*a[1]+o[2]*a[2]}function pi(o,a){return[o[1]*a[2]-o[2]*a[1],o[2]*a[0]-o[0]*a[2],o[0]*a[1]-o[1]*a[0]]}function $i(o,a){o[0]+=a[0],o[1]+=a[1],o[2]+=a[2]}function _i(o,a){return[o[0]*a,o[1]*a,o[2]*a]}function er(o){var a=kn(o[0]*o[0]+o[1]*o[1]+o[2]*o[2]);o[0]/=a,o[1]/=a,o[2]/=a}Kt();function ws(o,a){function s(l,h){return l=o(l,h),a(l[0],l[1])}return o.invert&&a.invert&&(s.invert=function(l,h){return l=a.invert(l,h),l&&o.invert(l[0],l[1])}),s}function tr(o,a){return[o>ve?o-Tt:o<-ve?o+Tt:o,a]}tr.invert=tr;function Co(o,a,s){return(o%=Tt)?a||s?ws(Ls(o),bs(a,s)):Ls(o):a||s?bs(a,s):tr}function Ss(o){return function(a,s){return a+=o,[a>ve?a-Tt:a<-ve?a+Tt:a,s]}}function Ls(o){var a=Ss(o);return a.invert=Ss(-o),a}function bs(o,a){var s=Me(o),l=Pe(o),h=Me(a),g=Pe(a);function v(m,N){var _=Me(N),k=Me(m)*_,y=Pe(m)*_,x=Pe(N),E=x*s+k*l;return[_n(y*h-E*g,k*s-x*l),nn(E*h+y*g)]}return v.invert=function(m,N){var _=Me(N),k=Me(m)*_,y=Pe(m)*_,x=Pe(N),E=x*h-y*g;return[_n(y*h+x*g,k*s+E*l),nn(E*s-k*l)]},v}function Ro(o,a,s,l,h,g){if(s){var v=Me(a),m=Pe(a),N=l*s;h==null?(h=a+l*Tt,g=a-N/2):(h=Ts(v,h),g=Ts(v,g),(l>0?h<g:h>g)&&(h+=l*Tt));for(var _,k=h;l>0?k>g:k<g;k-=N)_=Ji([v,-m*Me(k),-m*Pe(k)]),o.point(_[0],_[1])}}function Ts(o,a){a=En(a),a[0]-=o,er(a);var s=Es(-a[1]);return((-a[2]<0?-s:s)+Tt-Ne)%Tt}function Cs(){var o=[],a;return{point:function(s,l){a.push([s,l])},lineStart:function(){o.push(a=[])},lineEnd:Wn,rejoin:function(){o.length>1&&o.push(o.pop().concat(o.shift()))},result:function(){var s=o;return o=[],a=null,s}}}function Oo(o,a,s,l,h,g){var v=o[0],m=o[1],N=a[0],_=a[1],k=0,y=1,x=N-v,E=_-m,I;if(I=s-v,!(!x&&I>0)){if(I/=x,x<0){if(I<k)return;I<y&&(y=I)}else if(x>0){if(I>y)return;I>k&&(k=I)}if(I=h-v,!(!x&&I<0)){if(I/=x,x<0){if(I>y)return;I>k&&(k=I)}else if(x>0){if(I<k)return;I<y&&(y=I)}if(I=l-m,!(!E&&I>0)){if(I/=E,E<0){if(I<k)return;I<y&&(y=I)}else if(E>0){if(I>y)return;I>k&&(k=I)}if(I=g-m,!(!E&&I<0)){if(I/=E,E<0){if(I>y)return;I>k&&(k=I)}else if(E>0){if(I<k)return;I<y&&(y=I)}return k>0&&(o[0]=v+k*x,o[1]=m+k*E),y<1&&(a[0]=v+y*x,a[1]=m+y*E),!0}}}}}function ki(o,a){return Be(o[0]-a[0])<Ne&&Be(o[1]-a[1])<Ne}function Ei(o,a,s,l){this.x=o,this.z=a,this.o=s,this.e=l,this.v=!1,this.n=this.p=null}function Rs(o,a,s,l,h){var g=[],v=[],m,N;if(o.forEach(function(I){if(!((R=I.length-1)<=0)){var R,T=I[0],M=I[R],F;if(ki(T,M)){for(h.lineStart(),m=0;m<R;++m)h.point((T=I[m])[0],T[1]);h.lineEnd();return}g.push(F=new Ei(T,I,null,!0)),v.push(F.o=new Ei(T,null,F,!1)),g.push(F=new Ei(M,I,null,!1)),v.push(F.o=new Ei(M,null,F,!0))}}),!!g.length){for(v.sort(a),Os(g),Os(v),m=0,N=v.length;m<N;++m)v[m].e=s=!s;for(var _=g[0],k,y;;){for(var x=_,E=!0;x.v;)if((x=x.n)===_)return;k=x.z,h.lineStart();do{if(x.v=x.o.v=!0,x.e){if(E)for(m=0,N=k.length;m<N;++m)h.point((y=k[m])[0],y[1]);else l(x.x,x.n.x,1,h);x=x.n}else{if(E)for(k=x.p.z,m=k.length-1;m>=0;--m)h.point((y=k[m])[0],y[1]);else l(x.x,x.p.x,-1,h);x=x.p}x=x.o,k=x.z,E=!E}while(!x.v);h.lineEnd()}}}function Os(o){if(a=o.length){for(var a,s=0,l=o[0],h;++s<a;)l.n=h=o[s],h.p=l,l=h;l.n=h=o[0],h.p=l}}function Ms(o,a){return o<a?-1:o>a?1:o>=a?0:NaN}function Mo(o){return o.length===1&&(o=Po(o)),{left:function(a,s,l,h){for(l==null&&(l=0),h==null&&(h=a.length);l<h;){var g=l+h>>>1;o(a[g],s)<0?l=g+1:h=g}return l},right:function(a,s,l,h){for(l==null&&(l=0),h==null&&(h=a.length);l<h;){var g=l+h>>>1;o(a[g],s)>0?h=g:l=g+1}return l}}}function Po(o){return function(a,s){return Ms(o(a),s)}}Mo(Ms);function Ps(o){for(var a=o.length,s,l=-1,h=0,g,v;++l<a;)h+=o[l].length;for(g=new Array(h);--a>=0;)for(v=o[a],s=v.length;--s>=0;)g[--h]=v[s];return g}var Vn=1e9,xi=-Vn;function Ao(o,a,s,l){function h(_,k){return o<=_&&_<=s&&a<=k&&k<=l}function g(_,k,y,x){var E=0,I=0;if(_==null||(E=v(_,y))!==(I=v(k,y))||N(_,k)<0^y>0)do x.point(E===0||E===3?o:s,E>1?l:a);while((E=(E+y+4)%4)!==I);else x.point(k[0],k[1])}function v(_,k){return Be(_[0]-o)<Ne?k>0?0:3:Be(_[0]-s)<Ne?k>0?2:1:Be(_[1]-a)<Ne?k>0?1:0:k>0?3:2}function m(_,k){return N(_.x,k.x)}function N(_,k){var y=v(_,1),x=v(k,1);return y!==x?y-x:y===0?k[1]-_[1]:y===1?_[0]-k[0]:y===2?_[1]-k[1]:k[0]-_[0]}return function(_){var k=_,y=Cs(),x,E,I,R,T,M,F,C,q,O,B,z={point:X,lineStart:j,lineEnd:ce,polygonStart:Z,polygonEnd:ee};function X(K,se){h(K,se)&&k.point(K,se)}function G(){for(var K=0,se=0,me=E.length;se<me;++se)for(var Ae=E[se],Ie=1,Q=Ae.length,Ge=Ae[0],be,Ue,he=Ge[0],mt=Ge[1];Ie<Q;++Ie)be=he,Ue=mt,Ge=Ae[Ie],he=Ge[0],mt=Ge[1],Ue<=l?mt>l&&(he-be)*(l-Ue)>(mt-Ue)*(o-be)&&++K:mt<=l&&(he-be)*(l-Ue)<(mt-Ue)*(o-be)&&--K;return K}function Z(){k=y,x=[],E=[],B=!0}function ee(){var K=G(),se=B&&K,me=(x=Ps(x)).length;(se||me)&&(_.polygonStart(),se&&(_.lineStart(),g(null,null,1,_),_.lineEnd()),me&&Rs(x,m,K,g,_),_.polygonEnd()),k=_,x=E=I=null}function j(){z.point=D,E&&E.push(I=[]),O=!0,q=!1,F=C=NaN}function ce(){x&&(D(R,T),M&&q&&y.rejoin(),x.push(y.result())),z.point=X,q&&k.lineEnd()}function D(K,se){var me=h(K,se);if(E&&I.push([K,se]),O)R=K,T=se,M=me,O=!1,me&&(k.lineStart(),k.point(K,se));else if(me&&q)k.point(K,se);else{var Ae=[F=Math.max(xi,Math.min(Vn,F)),C=Math.max(xi,Math.min(Vn,C))],Ie=[K=Math.max(xi,Math.min(Vn,K)),se=Math.max(xi,Math.min(Vn,se))];Oo(Ae,Ie,o,a,s,l)?(q||(k.lineStart(),k.point(Ae[0],Ae[1])),k.point(Ie[0],Ie[1]),me||k.lineEnd(),B=!1):me&&(k.lineStart(),k.point(K,se),B=!1)}F=K,C=se,q=me}return z}}var nr=Kt();function Do(o,a){var s=a[0],l=a[1],h=[Pe(s),-Me(s),0],g=0,v=0;nr.reset();for(var m=0,N=o.length;m<N;++m)if(k=(_=o[m]).length)for(var _,k,y=_[k-1],x=y[0],E=y[1]/2+ks,I=Pe(E),R=Me(E),T=0;T<k;++T,x=F,I=q,R=O,y=M){var M=_[T],F=M[0],C=M[1]/2+ks,q=Pe(C),O=Me(C),B=F-x,z=B>=0?1:-1,X=z*B,G=X>ve,Z=I*q;if(nr.add(_n(Z*z*Pe(X),R*O+Z*Me(X))),g+=G?B+z*Tt:B,G^x>=s^F>=s){var ee=pi(En(y),En(M));er(ee);var j=pi(h,ee);er(j);var ce=(G^B>=0?-1:1)*nn(j[2]);(l>ce||l===ce&&(ee[0]||ee[1]))&&(v+=G^B>=0?1:-1)}}return(g<-Ne||g<Ne&&nr<-Ne)^v&1}Kt();function As(o){return o}Kt(),Kt();var xn=1/0,Ni=xn,Hn=-xn,Ii=Hn,Ds={point:Fo,lineStart:Wn,lineEnd:Wn,polygonStart:Wn,polygonEnd:Wn,result:function(){var o=[[xn,Ni],[Hn,Ii]];return Hn=Ii=-(Ni=xn=1/0),o}};function Fo(o,a){o<xn&&(xn=o),o>Hn&&(Hn=o),a<Ni&&(Ni=a),a>Ii&&(Ii=a)}Kt();function Fs(o,a,s,l){return function(h,g){var v=a(g),m=h.invert(l[0],l[1]),N=Cs(),_=a(N),k=!1,y,x,E,I={point:R,lineStart:M,lineEnd:F,polygonStart:function(){I.point=C,I.lineStart=q,I.lineEnd=O,x=[],y=[]},polygonEnd:function(){I.point=R,I.lineStart=M,I.lineEnd=F,x=Ps(x);var B=Do(y,m);x.length?(k||(g.polygonStart(),k=!0),Rs(x,qo,B,s,g)):B&&(k||(g.polygonStart(),k=!0),g.lineStart(),s(null,null,1,g),g.lineEnd()),k&&(g.polygonEnd(),k=!1),x=y=null},sphere:function(){g.polygonStart(),g.lineStart(),s(null,null,1,g),g.lineEnd(),g.polygonEnd()}};function R(B,z){var X=h(B,z);o(B=X[0],z=X[1])&&g.point(B,z)}function T(B,z){var X=h(B,z);v.point(X[0],X[1])}function M(){I.point=T,v.lineStart()}function F(){I.point=R,v.lineEnd()}function C(B,z){E.push([B,z]);var X=h(B,z);_.point(X[0],X[1])}function q(){_.lineStart(),E=[]}function O(){C(E[0][0],E[0][1]),_.lineEnd();var B=_.clean(),z=N.result(),X,G=z.length,Z,ee,j;if(E.pop(),y.push(E),E=null,!!G){if(B&1){if(ee=z[0],(Z=ee.length-1)>0){for(k||(g.polygonStart(),k=!0),g.lineStart(),X=0;X<Z;++X)g.point((j=ee[X])[0],j[1]);g.lineEnd()}return}G>1&&B&2&&z.push(z.pop().concat(z.shift())),x.push(z.filter(Go))}}return I}}function Go(o){return o.length>1}function qo(o,a){return((o=o.x)[0]<0?o[1]-bt-Ne:bt-o[1])-((a=a.x)[0]<0?a[1]-bt-Ne:bt-a[1])}const Gs=Fs(function(){return!0},zo,Bo,[-ve,-bt]);function zo(o){var a=NaN,s=NaN,l=NaN,h;return{lineStart:function(){o.lineStart(),h=1},point:function(g,v){var m=g>0?ve:-ve,N=Be(g-a);Be(N-ve)<Ne?(o.point(a,s=(s+v)/2>0?bt:-bt),o.point(l,s),o.lineEnd(),o.lineStart(),o.point(m,s),o.point(g,s),h=0):l!==m&&N>=ve&&(Be(a-l)<Ne&&(a-=l*Ne),Be(g-m)<Ne&&(g-=m*Ne),s=Yo(a,s,g,v),o.point(l,s),o.lineEnd(),o.lineStart(),o.point(m,s),h=0),o.point(a=g,s=v),l=m},lineEnd:function(){o.lineEnd(),a=s=NaN},clean:function(){return 2-h}}}function Yo(o,a,s,l){var h,g,v=Pe(o-s);return Be(v)>Ne?bo((Pe(a)*(g=Me(l))*Pe(s)-Pe(l)*(h=Me(a))*Pe(o))/(h*g*v)):(a+l)/2}function Bo(o,a,s,l){var h;if(o==null)h=s*bt,l.point(-ve,h),l.point(0,h),l.point(ve,h),l.point(ve,0),l.point(ve,-h),l.point(0,-h),l.point(-ve,-h),l.point(-ve,0),l.point(-ve,h);else if(Be(o[0]-a[0])>Ne){var g=o[0]<a[0]?ve:-ve;h=s*g/2,l.point(-g,h),l.point(0,h),l.point(g,h)}else l.point(a[0],a[1])}function Uo(o,a){var s=Me(o),l=s>0,h=Be(s)>Ne;function g(k,y,x,E){Ro(E,o,a,x,k,y)}function v(k,y){return Me(k)*Me(y)>s}function m(k){var y,x,E,I,R;return{lineStart:function(){I=E=!1,R=1},point:function(T,M){var F=[T,M],C,q=v(T,M),O=l?q?0:_(T,M):q?_(T+(T<0?ve:-ve),M):0;if(!y&&(I=E=q)&&k.lineStart(),q!==E&&(C=N(y,F),(!C||ki(y,C)||ki(F,C))&&(F[0]+=Ne,F[1]+=Ne,q=v(F[0],F[1]))),q!==E)R=0,q?(k.lineStart(),C=N(F,y),k.point(C[0],C[1])):(C=N(y,F),k.point(C[0],C[1]),k.lineEnd()),y=C;else if(h&&y&&l^q){var B;!(O&x)&&(B=N(F,y,!0))&&(R=0,l?(k.lineStart(),k.point(B[0][0],B[0][1]),k.point(B[1][0],B[1][1]),k.lineEnd()):(k.point(B[1][0],B[1][1]),k.lineEnd(),k.lineStart(),k.point(B[0][0],B[0][1])))}q&&(!y||!ki(y,F))&&k.point(F[0],F[1]),y=F,E=q,x=O},lineEnd:function(){E&&k.lineEnd(),y=null},clean:function(){return R|(I&&E)<<1}}}function N(k,y,x){var E=En(k),I=En(y),R=[1,0,0],T=pi(E,I),M=yi(T,T),F=T[0],C=M-F*F;if(!C)return!x&&k;var q=s*M/C,O=-s*F/C,B=pi(R,T),z=_i(R,q),X=_i(T,O);$i(z,X);var G=B,Z=yi(z,G),ee=yi(G,G),j=Z*Z-ee*(yi(z,z)-1);if(!(j<0)){var ce=kn(j),D=_i(G,(-Z-ce)/ee);if($i(D,z),D=Ji(D),!x)return D;var K=k[0],se=y[0],me=k[1],Ae=y[1],Ie;se<K&&(Ie=K,K=se,se=Ie);var Q=se-K,Ge=Be(Q-ve)<Ne,be=Ge||Q<Ne;if(!Ge&&Ae<me&&(Ie=me,me=Ae,Ae=Ie),be?Ge?me+Ae>0^D[1]<(Be(D[0]-K)<Ne?me:Ae):me<=D[1]&&D[1]<=Ae:Q>ve^(K<=D[0]&&D[0]<=se)){var Ue=_i(G,(-Z+ce)/ee);return $i(Ue,z),[D,Ji(Ue)]}}}function _(k,y){var x=l?o:ve-o,E=0;return k<-x?E|=1:k>x&&(E|=2),y<-x?E|=4:y>x&&(E|=8),E}return Fs(v,m,g,l?[0,-o]:[-ve,o-ve])}function qs(o){return function(a){var s=new ir;for(var l in o)s[l]=o[l];return s.stream=a,s}}function ir(){}ir.prototype={constructor:ir,point:function(o,a){this.stream.point(o,a)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function zs(o,a,s){var l=a[1][0]-a[0][0],h=a[1][1]-a[0][1],g=o.clipExtent&&o.clipExtent();o.scale(150).translate([0,0]),g!=null&&o.clipExtent(null),To(s,o.stream(Ds));var v=Ds.result(),m=Math.min(l/(v[1][0]-v[0][0]),h/(v[1][1]-v[0][1])),N=+a[0][0]+(l-m*(v[1][0]+v[0][0]))/2,_=+a[0][1]+(h-m*(v[1][1]+v[0][1]))/2;return g!=null&&o.clipExtent(g),o.scale(m*150).translate([N,_])}function Xo(o,a,s){return zs(o,[[0,0],a],s)}var Ys=16,Wo=Me(30*gt);function Bs(o,a){return+a?Ho(o,a):Vo(o)}function Vo(o){return qs({point:function(a,s){a=o(a,s),this.stream.point(a[0],a[1])}})}function Ho(o,a){function s(l,h,g,v,m,N,_,k,y,x,E,I,R,T){var M=_-l,F=k-h,C=M*M+F*F;if(C>4*a&&R--){var q=v+x,O=m+E,B=N+I,z=kn(q*q+O*O+B*B),X=nn(B/=z),G=Be(Be(B)-1)<Ne||Be(g-y)<Ne?(g+y)/2:_n(O,q),Z=o(G,X),ee=Z[0],j=Z[1],ce=ee-l,D=j-h,K=F*ce-M*D;(K*K/C>a||Be((M*ce+F*D)/C-.5)>.3||v*x+m*E+N*I<Wo)&&(s(l,h,g,v,m,N,ee,j,G,q/=z,O/=z,B,R,T),T.point(ee,j),s(ee,j,G,q,O,B,_,k,y,x,E,I,R,T))}}return function(l){var h,g,v,m,N,_,k,y,x,E,I,R,T={point:M,lineStart:F,lineEnd:q,polygonStart:function(){l.polygonStart(),T.lineStart=O},polygonEnd:function(){l.polygonEnd(),T.lineStart=F}};function M(X,G){X=o(X,G),l.point(X[0],X[1])}function F(){y=NaN,T.point=C,l.lineStart()}function C(X,G){var Z=En([X,G]),ee=o(X,G);s(y,x,k,E,I,R,y=ee[0],x=ee[1],k=X,E=Z[0],I=Z[1],R=Z[2],Ys,l),l.point(y,x)}function q(){T.point=M,l.lineEnd()}function O(){F(),T.point=B,T.lineEnd=z}function B(X,G){C(h=X,G),g=y,v=x,m=E,N=I,_=R,T.point=C}function z(){s(y,x,k,E,I,R,g,v,h,m,N,_,Ys,l),T.lineEnd=q,q()}return T}}var Zo=qs({point:function(o,a){this.stream.point(o*gt,a*gt)}});function jo(o){return Qo(function(){return o})()}function Qo(o){var a,s=150,l=480,h=250,g,v,m=0,N=0,_=0,k=0,y=0,x,E,I=null,R=Gs,T=null,M,F,C,q=As,O=.5,B=Bs(ee,O),z,X;function G(D){return D=E(D[0]*gt,D[1]*gt),[D[0]*s+g,v-D[1]*s]}function Z(D){return D=E.invert((D[0]-g)/s,(v-D[1])/s),D&&[D[0]*Jt,D[1]*Jt]}function ee(D,K){return D=a(D,K),[D[0]*s+g,v-D[1]*s]}G.stream=function(D){return z&&X===D?z:z=Zo(R(x,B(q(X=D))))},G.clipAngle=function(D){return arguments.length?(R=+D?Uo(I=D*gt,6*gt):(I=null,Gs),ce()):I*Jt},G.clipExtent=function(D){return arguments.length?(q=D==null?(T=M=F=C=null,As):Ao(T=+D[0][0],M=+D[0][1],F=+D[1][0],C=+D[1][1]),ce()):T==null?null:[[T,M],[F,C]]},G.scale=function(D){return arguments.length?(s=+D,j()):s},G.translate=function(D){return arguments.length?(l=+D[0],h=+D[1],j()):[l,h]},G.center=function(D){return arguments.length?(m=D[0]%360*gt,N=D[1]%360*gt,j()):[m*Jt,N*Jt]},G.rotate=function(D){return arguments.length?(_=D[0]%360*gt,k=D[1]%360*gt,y=D.length>2?D[2]%360*gt:0,j()):[_*Jt,k*Jt,y*Jt]},G.precision=function(D){return arguments.length?(B=Bs(ee,O=D*D),ce()):kn(O)},G.fitExtent=function(D,K){return zs(G,D,K)},G.fitSize=function(D,K){return Xo(G,D,K)};function j(){E=ws(x=Co(_,k,y),a);var D=a(m,N);return g=l-D[0]*s,v=h+D[1]*s,ce()}function ce(){return z=X=null,G}return function(){return a=o.apply(this,arguments),G.invert=a.invert&&Z,j()}}function Us(o){return function(a,s){var l=Me(a),h=Me(s),g=o(l*h);return[g*h*Pe(a),g*Pe(s)]}}function Xs(o){return function(a,s){var l=kn(a*a+s*s),h=o(l),g=Pe(h),v=Me(h);return[_n(a*g,l*v),nn(l&&s*g/l)]}}var Ko=Us(function(o){return kn(2/(1+o))});Ko.invert=Xs(function(o){return 2*nn(o/2)});var Ws=Us(function(o){return(o=Es(o))&&o/Pe(o)});Ws.invert=Xs(function(o){return o});function Jo(){return jo(Ws).scale(79.4188).clipAngle(180-.001)}function Vs(o,a){return[o,a]}Vs.invert=Vs;var{BufferOp:$o,GeoJSONReader:el,GeoJSONWriter:tl}=Lo;function nl(o,a,s){s=s||{};var l=s.units||"kilometers",h=s.steps||8;if(!o)throw new Error("geojson is required");if(typeof s!="object")throw new Error("options must be an object");if(typeof h!="number")throw new Error("steps must be an number");if(a===void 0)throw new Error("radius is required");if(h<=0)throw new Error("steps must be greater than 0");var g=[];switch(o.type){case"GeometryCollection":return gi(o,function(v){var m=wi(v,a,l,h);m&&g.push(m)}),yn(g);case"FeatureCollection":return ys(o,function(v){var m=wi(v,a,l,h);m&&ys(m,function(N){N&&g.push(N)})}),yn(g)}return wi(o,a,l,h)}function wi(o,a,s,l){var h=o.properties||{},g=o.type==="Feature"?o.geometry:o;if(g.type==="GeometryCollection"){var v=[];return gi(o,function(R){var T=wi(R,a,s,l);T&&v.push(T)}),yn(v)}var m=il(g),N={type:g.type,coordinates:Zs(g.coordinates,m)},_=new el,k=_.read(N),y=Hu(Zu(a,s),"meters"),x=$o.bufferOp(k,y,l),E=new tl;if(x=E.write(x),!Hs(x.coordinates)){var I={type:x.type,coordinates:js(x.coordinates,m)};return Yn(I,h)}}function Hs(o){return Array.isArray(o[0])?Hs(o[0]):isNaN(o[0])}function Zs(o,a){return typeof o[0]!="object"?a(o):o.map(function(s){return Zs(s,a)})}function js(o,a){return typeof o[0]!="object"?a.invert(o):o.map(function(s){return js(s,a)})}function il(o){var a=No(o).geometry.coordinates,s=[-a[0],-a[1]];return Jo().rotate(s).scale($e)}var rl=nl;function sl(o){const a=[];if(gi(o,h=>{a.push(h.coordinates)}),a.length<2)throw new Error("Must have at least two features");const s=o.features[0].properties||{},l=ms.difference(a[0],...a.slice(1));return l.length===0?null:l.length===1?Bi(l[0],s):$r(l,s)}var al=sl;function Qs(o){let a;for(const s of o)a&&s[0]-a[0]>=180?s[0]-=360:a&&s[0]-a[0]<-180&&(s[0]+=360),a=s}function Ks(o,a){const s=al(yn([Bi([[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]]),o]));if(!s)return;s.properties={isMask:"y"};const l=rl(o,0);if(l){if(l.geometry.type==="Polygon")for(const h of l.geometry.coordinates)Qs(h);else for(const h of l.geometry.coordinates)for(const g of h)Qs(g);a(yn([l,s]))}}function Js(o,a=!0,s=!0,l={},h={},g=v=>{var _,k,y;const m=(_=v==null?void 0:v.geometry)==null?void 0:_.type,N=(k=v==null?void 0:v.properties)!=null&&k.isMask?0:m==="LineString"||m==="MultiLineString"?3:2;return{color:"#3170fe",fillColor:"#000",fillOpacity:(y=v==null?void 0:v.properties)!=null&&y.isMask?.1:0,weight:N,dashArray:[N,N],lineCap:"butt"}}){let v;const m=[];let N,_;const k=ht.geoJSON(void 0,{style:g,interactive:!1}).addTo(o),y=E=>{v==null||v({type:"mapClick",coordinates:[E.latlng.lng,E.latlng.lat]})};function x(E,I=!1){const R=document.createElement("div");return new Eu({props:{displayIn:"leaflet"},target:R}),new ht.Marker(E,{interactive:I,icon:new ht.DivIcon({html:R,className:"",iconAnchor:[12,26],iconSize:[25,30],tooltipAnchor:[1,-24]})})}return{setEventHandler(E){E?(v=E,o.on("click",y)):(v=void 0,o.off("click",y))},flyTo(E,I){o.flyTo([E[1],E[0]],I,{duration:2,...l})},fitBounds(E,I,R){o.flyToBounds([[E[1],E[0]],[E[3],E[2]]],{padding:[I,I],duration:2,maxZoom:R,...h})},indicateReverse(E){o.getContainer().style.cursor=E?"crosshair":""},setReverseMarker(E){var R;if(!a)return;const I=E&&[E[1],E[0]];_?I?_.setLatLng(I):(_.remove(),_=void 0):I&&(_=(typeof a=="object"?new ht.Marker(I,a):x(I)).addTo(o),(R=_.getElement())==null||R.classList.add("marker-reverse"))},setMarkers(E,I){if(!a)return;function R(T){k.clearLayers(),T&&k.addData(T)}for(const T of m)T.remove();if(m.length=0,R(),I){let T=!1;if(I.geometry.type==="GeometryCollection"){const F=I.geometry.geometries.filter(C=>C.type==="Polygon"||C.type==="MultiPolygon");e:if(F.length>0){const C=Eo(yn(F.map(q=>Yn(q))));if(!C)break e;Ks({...I,geometry:C.geometry},R),T=!0}else{const C=I.geometry.geometries.filter(q=>q.type==="LineString"||q.type==="MultiLineString");C.length>0&&(R({...I,geometry:{type:"GeometryCollection",geometries:C}}),T=!0)}}if(!T){if(I.geometry.type==="Polygon"||I.geometry.type==="MultiPolygon")Ks(I,R);else if(I.geometry.type==="LineString"||I.geometry.type==="MultiLineString"){R(I);return}}const M=[I.center[1],I.center[0]];m.push((typeof a=="object"?new ht.Marker(M,a):x(M)).addTo(o))}if(s)for(const T of E??[]){if(T===I)continue;const M=[T.center[1],T.center[0]],F=typeof s=="object"?new ht.Marker(M,s):x(M,!0);F.addTo(o).bindTooltip(T.place_type[0]==="reverse"?T.place_name:T.place_name.replace(/,.*/,""),{direction:"top"});const C=F.getElement();C&&(C.addEventListener("click",q=>{q.stopPropagation(),v==null||v({type:"markerClick",id:T.id})}),C.addEventListener("mouseenter",()=>{v==null||v({type:"markerMouseEnter",id:T.id})}),C.addEventListener("mouseleave",()=>{v==null||v({type:"markerMouseLeave",id:T.id})}),C.classList.toggle("marker-fuzzy",!!T.matching_text)),m.push(F)}},setSelectedMarker(E){var I,R;N&&((I=N.getElement())==null||I.classList.toggle("marker-selected",!1)),N=E>-1?m[E]:void 0,(R=N==null?void 0:N.getElement())==null||R.classList.toggle("marker-selected",!0)},getCenterAndZoom(){const E=o.getCenter();return[o.getZoom(),E.lng,E.lat]}}}class $s extends ht.Control{constructor(s){super();wr(this,dt);wr(this,rn);Di(this,rn,s)}onAdd(s){const l=document.createElement("div");l.className="leaflet-ctrl-geocoder",ht.DomEvent.disableClickPropagation(l),ht.DomEvent.disableScrollPropagation(l);const{marker:h,showResultMarkers:g,flyTo:v,fullGeometryStyle:m,...N}=Lt(this,rn),_=typeof v=="boolean"?{}:v,k=Js(s,h,g,_,_,m);Di(this,dt,new Wu({target:l,props:{mapController:k,flyTo:v===void 0?!0:!!v,...N}}));for(const y of["select","pick","featuresListed","featuresMarked","response","optionsVisibilityChange","reverseToggle","queryChange"])Lt(this,dt).$on(y,x=>s.fire(y.toLowerCase(),x.detail));return l}setOptions(s){var N;Di(this,rn,s);const{marker:l,showResultMarkers:h,flyTo:g,fullGeometryStyle:v,...m}=Lt(this,rn);(N=Lt(this,dt))==null||N.$set(m)}setQuery(s,l=!0){var h;(h=Lt(this,dt))==null||h.setQuery(s,l)}clearMap(){var s;(s=Lt(this,dt))==null||s.clearMap()}clearList(){var s;(s=Lt(this,dt))==null||s.clearList()}focus(){var s;(s=Lt(this,dt))==null||s.focus()}blur(){var s;(s=Lt(this,dt))==null||s.blur()}onRemove(){var s;(s=Lt(this,dt))==null||s.$destroy()}}dt=new WeakMap,rn=new WeakMap;function ul(...o){return new $s(...o)}window.L&&typeof window.L=="object"&&typeof window.L.control=="function"&&(window.L.control.maptilerGeocoding=ul),pe.GeocodingControl=$s,pe.createLeafletMapController=Js,Object.defineProperty(pe,Symbol.toStringTag,{value:"Module"})});
21
+ ***************************************************************************** */function sr(n,e){var t={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},i,r,o,l;return l={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function s(u){return function(h){return c([u,h])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;t;)try{if(i=1,r&&(o=u[0]&2?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[u[0]&2,o.value]),u[0]){case 0:case 1:o=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(o=t.trys,!(o=o.length>0&&o[o.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!o||u[1]>o[0]&&u[1]<o[3])){t.label=u[1];break}if(u[0]===6&&t.label<o[1]){t.label=o[1],o=u;break}if(o&&t.label<o[2]){t.label=o[2],t.ops.push(u);break}o[2]&&t.ops.pop(),t.trys.pop();continue}u=e.call(n,t)}catch(h){u=[6,h],r=0}finally{i=o=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}var xe=function(){function n(e,t){this.next=null,this.key=e,this.data=t,this.left=null,this.right=null}return n}();function lr(n,e){return n>e?1:n<e?-1:0}function Me(n,e,t){for(var i=new xe(null,null),r=i,o=i;;){var l=t(n,e.key);if(l<0){if(e.left===null)break;if(t(n,e.left.key)<0){var s=e.left;if(e.left=s.right,s.right=e,e=s,e.left===null)break}o.left=e,o=e,e=e.left}else if(l>0){if(e.right===null)break;if(t(n,e.right.key)>0){var s=e.right;if(e.right=s.left,s.left=e,e=s,e.right===null)break}r.right=e,r=e,e=e.right}else break}return r.right=e.left,o.left=e.right,e.left=i.right,e.right=i.left,e}function Et(n,e,t,i){var r=new xe(n,e);if(t===null)return r.left=r.right=null,r;t=Me(n,t,i);var o=i(n,t.key);return o<0?(r.left=t.left,r.right=t,t.left=null):o>=0&&(r.right=t.right,r.left=t,t.right=null),r}function vi(n,e,t){var i=null,r=null;if(e){e=Me(n,e,t);var o=t(e.key,n);o===0?(i=e.left,r=e.right):o<0?(r=e.right,e.right=null,i=e):(i=e.left,e.left=null,r=e)}return{left:i,right:r}}function ur(n,e,t){return e===null?n:(n===null||(e=Me(n.key,e,t),e.left=n),e)}function Lt(n,e,t,i,r){if(n){i(""+e+(t?"└── ":"├── ")+r(n)+`
22
+ `);var o=e+(t?" ":"│ ");n.left&&Lt(n.left,o,!1,i,r),n.right&&Lt(n.right,o,!0,i,r)}}var St=function(){function n(e){e===void 0&&(e=lr),this._root=null,this._size=0,this._comparator=e}return n.prototype.insert=function(e,t){return this._size++,this._root=Et(e,t,this._root,this._comparator)},n.prototype.add=function(e,t){var i=new xe(e,t);this._root===null&&(i.left=i.right=null,this._size++,this._root=i);var r=this._comparator,o=Me(e,this._root,r),l=r(e,o.key);return l===0?this._root=o:(l<0?(i.left=o.left,i.right=o,o.left=null):l>0&&(i.right=o.right,i.left=o,o.right=null),this._size++,this._root=i),this._root},n.prototype.remove=function(e){this._root=this._remove(e,this._root,this._comparator)},n.prototype._remove=function(e,t,i){var r;if(t===null)return null;t=Me(e,t,i);var o=i(e,t.key);return o===0?(t.left===null?r=t.right:(r=Me(e,t.left,i),r.right=t.right),this._size--,r):t},n.prototype.pop=function(){var e=this._root;if(e){for(;e.left;)e=e.left;return this._root=Me(e.key,this._root,this._comparator),this._root=this._remove(e.key,this._root,this._comparator),{key:e.key,data:e.data}}return null},n.prototype.findStatic=function(e){for(var t=this._root,i=this._comparator;t;){var r=i(e,t.key);if(r===0)return t;r<0?t=t.left:t=t.right}return null},n.prototype.find=function(e){return this._root&&(this._root=Me(e,this._root,this._comparator),this._comparator(e,this._root.key)!==0)?null:this._root},n.prototype.contains=function(e){for(var t=this._root,i=this._comparator;t;){var r=i(e,t.key);if(r===0)return!0;r<0?t=t.left:t=t.right}return!1},n.prototype.forEach=function(e,t){for(var i=this._root,r=[],o=!1;!o;)i!==null?(r.push(i),i=i.left):r.length!==0?(i=r.pop(),e.call(t,i),i=i.right):o=!0;return this},n.prototype.range=function(e,t,i,r){for(var o=[],l=this._comparator,s=this._root,c;o.length!==0||s;)if(s)o.push(s),s=s.left;else{if(s=o.pop(),c=l(s.key,t),c>0)break;if(l(s.key,e)>=0&&i.call(r,s))return this;s=s.right}return this},n.prototype.keys=function(){var e=[];return this.forEach(function(t){var i=t.key;return e.push(i)}),e},n.prototype.values=function(){var e=[];return this.forEach(function(t){var i=t.data;return e.push(i)}),e},n.prototype.min=function(){return this._root?this.minNode(this._root).key:null},n.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},n.prototype.minNode=function(e){if(e===void 0&&(e=this._root),e)for(;e.left;)e=e.left;return e},n.prototype.maxNode=function(e){if(e===void 0&&(e=this._root),e)for(;e.right;)e=e.right;return e},n.prototype.at=function(e){for(var t=this._root,i=!1,r=0,o=[];!i;)if(t)o.push(t),t=t.left;else if(o.length>0){if(t=o.pop(),r===e)return t;r++,t=t.right}else i=!0;return null},n.prototype.next=function(e){var t=this._root,i=null;if(e.right){for(i=e.right;i.left;)i=i.left;return i}for(var r=this._comparator;t;){var o=r(e.key,t.key);if(o===0)break;o<0?(i=t,t=t.left):t=t.right}return i},n.prototype.prev=function(e){var t=this._root,i=null;if(e.left!==null){for(i=e.left;i.right;)i=i.right;return i}for(var r=this._comparator;t;){var o=r(e.key,t.key);if(o===0)break;o<0?t=t.left:(i=t,t=t.right)}return i},n.prototype.clear=function(){return this._root=null,this._size=0,this},n.prototype.toList=function(){return cr(this._root)},n.prototype.load=function(e,t,i){t===void 0&&(t=[]),i===void 0&&(i=!1);var r=e.length,o=this._comparator;if(i&&Ct(e,t,0,r-1,o),this._root===null)this._root=xt(e,t,0,r),this._size=r;else{var l=fr(this.toList(),ar(e,t),o);r=this._size+r,this._root=Mt({head:l},0,r)}return this},n.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(n.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),n.prototype.toString=function(e){e===void 0&&(e=function(i){return String(i.key)});var t=[];return Lt(this._root,"",!0,function(i){return t.push(i)},e),t.join("")},n.prototype.update=function(e,t,i){var r=this._comparator,o=vi(e,this._root,r),l=o.left,s=o.right;r(e,t)<0?s=Et(t,i,s,r):l=Et(t,i,l,r),this._root=ur(l,s,r)},n.prototype.split=function(e){return vi(e,this._root,this._comparator)},n.prototype[Symbol.iterator]=function(){var e,t,i;return sr(this,function(r){switch(r.label){case 0:e=this._root,t=[],i=!1,r.label=1;case 1:return i?[3,6]:e===null?[3,2]:(t.push(e),e=e.left,[3,5]);case 2:return t.length===0?[3,4]:(e=t.pop(),[4,e]);case 3:return r.sent(),e=e.right,[3,5];case 4:i=!0,r.label=5;case 5:return[3,1];case 6:return[2]}})},n}();function xt(n,e,t,i){var r=i-t;if(r>0){var o=t+Math.floor(r/2),l=n[o],s=e[o],c=new xe(l,s);return c.left=xt(n,e,t,o),c.right=xt(n,e,o+1,i),c}return null}function ar(n,e){for(var t=new xe(null,null),i=t,r=0;r<n.length;r++)i=i.next=new xe(n[r],e[r]);return i.next=null,t.next}function cr(n){for(var e=n,t=[],i=!1,r=new xe(null,null),o=r;!i;)e?(t.push(e),e=e.left):t.length>0?(e=o=o.next=t.pop(),e=e.right):i=!0;return o.next=null,r.next}function Mt(n,e,t){var i=t-e;if(i>0){var r=e+Math.floor(i/2),o=Mt(n,e,r),l=n.head;return l.left=o,n.head=n.head.next,l.right=Mt(n,r+1,t),l}return null}function fr(n,e,t){for(var i=new xe(null,null),r=i,o=n,l=e;o!==null&&l!==null;)t(o.key,l.key)<0?(r.next=o,o=o.next):(r.next=l,l=l.next),r=r.next;return o!==null?r.next=o:l!==null&&(r.next=l),i.next}function Ct(n,e,t,i,r){if(!(t>=i)){for(var o=n[t+i>>1],l=t-1,s=i+1;;){do l++;while(r(n[l],o)<0);do s--;while(r(n[s],o)>0);if(l>=s)break;var c=n[l];n[l]=n[s],n[s]=c,c=e[l],e[l]=e[s],e[s]=c}Ct(n,e,t,s,r),Ct(n,e,s+1,i,r)}}const ve=11102230246251565e-32,$=134217729,dr=(3+8*ve)*ve;function kt(n,e,t,i,r){let o,l,s,c,u=e[0],h=i[0],a=0,f=0;h>u==h>-u?(o=u,u=e[++a]):(o=h,h=i[++f]);let d=0;if(a<n&&f<t)for(h>u==h>-u?(l=u+o,s=o-(l-u),u=e[++a]):(l=h+o,s=o-(l-h),h=i[++f]),o=l,s!==0&&(r[d++]=s);a<n&&f<t;)h>u==h>-u?(l=o+u,c=l-o,s=o-(l-c)+(u-c),u=e[++a]):(l=o+h,c=l-o,s=o-(l-c)+(h-c),h=i[++f]),o=l,s!==0&&(r[d++]=s);for(;a<n;)l=o+u,c=l-o,s=o-(l-c)+(u-c),u=e[++a],o=l,s!==0&&(r[d++]=s);for(;f<t;)l=o+h,c=l-o,s=o-(l-c)+(h-c),h=i[++f],o=l,s!==0&&(r[d++]=s);return(o!==0||d===0)&&(r[d++]=o),d}function hr(n,e){let t=e[0];for(let i=1;i<n;i++)t+=e[i];return t}function Ye(n){return new Float64Array(n)}const mr=(3+16*ve)*ve,gr=(2+12*ve)*ve,yr=(9+64*ve)*ve*ve,Be=Ye(4),wi=Ye(8),_i=Ye(12),Ei=Ye(16),te=Ye(4);function pr(n,e,t,i,r,o,l){let s,c,u,h,a,f,d,g,p,b,v,S,E,_,C,x,L,w;const k=n-r,I=t-r,F=e-o,q=i-o;_=k*q,f=$*k,d=f-(f-k),g=k-d,f=$*q,p=f-(f-q),b=q-p,C=g*b-(_-d*p-g*p-d*b),x=F*I,f=$*F,d=f-(f-F),g=F-d,f=$*I,p=f-(f-I),b=I-p,L=g*b-(x-d*p-g*p-d*b),v=C-L,a=C-v,Be[0]=C-(v+a)+(a-L),S=_+v,a=S-_,E=_-(S-a)+(v-a),v=E-x,a=E-v,Be[1]=E-(v+a)+(a-x),w=S+v,a=w-S,Be[2]=S-(w-a)+(v-a),Be[3]=w;let W=hr(4,Be),M=gr*l;if(W>=M||-W>=M||(a=n-k,s=n-(k+a)+(a-r),a=t-I,u=t-(I+a)+(a-r),a=e-F,c=e-(F+a)+(a-o),a=i-q,h=i-(q+a)+(a-o),s===0&&c===0&&u===0&&h===0)||(M=yr*l+dr*Math.abs(W),W+=k*h+q*s-(F*u+I*c),W>=M||-W>=M))return W;_=s*q,f=$*s,d=f-(f-s),g=s-d,f=$*q,p=f-(f-q),b=q-p,C=g*b-(_-d*p-g*p-d*b),x=c*I,f=$*c,d=f-(f-c),g=c-d,f=$*I,p=f-(f-I),b=I-p,L=g*b-(x-d*p-g*p-d*b),v=C-L,a=C-v,te[0]=C-(v+a)+(a-L),S=_+v,a=S-_,E=_-(S-a)+(v-a),v=E-x,a=E-v,te[1]=E-(v+a)+(a-x),w=S+v,a=w-S,te[2]=S-(w-a)+(v-a),te[3]=w;const j=kt(4,Be,4,te,wi);_=k*h,f=$*k,d=f-(f-k),g=k-d,f=$*h,p=f-(f-h),b=h-p,C=g*b-(_-d*p-g*p-d*b),x=F*u,f=$*F,d=f-(f-F),g=F-d,f=$*u,p=f-(f-u),b=u-p,L=g*b-(x-d*p-g*p-d*b),v=C-L,a=C-v,te[0]=C-(v+a)+(a-L),S=_+v,a=S-_,E=_-(S-a)+(v-a),v=E-x,a=E-v,te[1]=E-(v+a)+(a-x),w=S+v,a=w-S,te[2]=S-(w-a)+(v-a),te[3]=w;const ne=kt(j,wi,4,te,_i);_=s*h,f=$*s,d=f-(f-s),g=s-d,f=$*h,p=f-(f-h),b=h-p,C=g*b-(_-d*p-g*p-d*b),x=c*u,f=$*c,d=f-(f-c),g=c-d,f=$*u,p=f-(f-u),b=u-p,L=g*b-(x-d*p-g*p-d*b),v=C-L,a=C-v,te[0]=C-(v+a)+(a-L),S=_+v,a=S-_,E=_-(S-a)+(v-a),v=E-x,a=E-v,te[1]=E-(v+a)+(a-x),w=S+v,a=w-S,te[2]=S-(w-a)+(v-a),te[3]=w;const ae=kt(ne,_i,4,te,Ei);return Ei[ae-1]}function br(n,e,t,i,r,o){const l=(e-o)*(t-r),s=(n-r)*(i-o),c=l-s,u=Math.abs(l+s);return Math.abs(c)>=mr*u?c:-pr(n,e,t,i,r,o,u)}const Xe=(n,e)=>n.ll.x<=e.x&&e.x<=n.ur.x&&n.ll.y<=e.y&&e.y<=n.ur.y,Nt=(n,e)=>{if(e.ur.x<n.ll.x||n.ur.x<e.ll.x||e.ur.y<n.ll.y||n.ur.y<e.ll.y)return null;const t=n.ll.x<e.ll.x?e.ll.x:n.ll.x,i=n.ur.x<e.ur.x?n.ur.x:e.ur.x,r=n.ll.y<e.ll.y?e.ll.y:n.ll.y,o=n.ur.y<e.ur.y?n.ur.y:e.ur.y;return{ll:{x:t,y:r},ur:{x:i,y:o}}};let Ce=Number.EPSILON;Ce===void 0&&(Ce=Math.pow(2,-52));const vr=Ce*Ce,Li=(n,e)=>{if(-Ce<n&&n<Ce&&-Ce<e&&e<Ce)return 0;const t=n-e;return t*t<vr*n*e?0:n<e?-1:1};class wr{constructor(){this.reset()}reset(){this.xRounder=new Si,this.yRounder=new Si}round(e,t){return{x:this.xRounder.round(e),y:this.yRounder.round(t)}}}class Si{constructor(){this.tree=new St,this.round(0)}round(e){const t=this.tree.add(e),i=this.tree.prev(t);if(i!==null&&Li(t.key,i.key)===0)return this.tree.remove(e),i.key;const r=this.tree.next(t);return r!==null&&Li(t.key,r.key)===0?(this.tree.remove(e),r.key):e}}const Ke=new wr,nt=(n,e)=>n.x*e.y-n.y*e.x,xi=(n,e)=>n.x*e.x+n.y*e.y,Mi=(n,e,t)=>{const i=br(n.x,n.y,e.x,e.y,t.x,t.y);return i>0?-1:i<0?1:0},rt=n=>Math.sqrt(xi(n,n)),_r=(n,e,t)=>{const i={x:e.x-n.x,y:e.y-n.y},r={x:t.x-n.x,y:t.y-n.y};return nt(r,i)/rt(r)/rt(i)},Er=(n,e,t)=>{const i={x:e.x-n.x,y:e.y-n.y},r={x:t.x-n.x,y:t.y-n.y};return xi(r,i)/rt(r)/rt(i)},Ci=(n,e,t)=>e.y===0?null:{x:n.x+e.x/e.y*(t-n.y),y:t},ki=(n,e,t)=>e.x===0?null:{x:t,y:n.y+e.y/e.x*(t-n.x)},Lr=(n,e,t,i)=>{if(e.x===0)return ki(t,i,n.x);if(i.x===0)return ki(n,e,t.x);if(e.y===0)return Ci(t,i,n.y);if(i.y===0)return Ci(n,e,t.y);const r=nt(e,i);if(r==0)return null;const o={x:t.x-n.x,y:t.y-n.y},l=nt(o,e)/r,s=nt(o,i)/r,c=n.x+s*e.x,u=t.x+l*i.x,h=n.y+s*e.y,a=t.y+l*i.y,f=(c+u)/2,d=(h+a)/2;return{x:f,y:d}};class le{static compare(e,t){const i=le.comparePoints(e.point,t.point);return i!==0?i:(e.point!==t.point&&e.link(t),e.isLeft!==t.isLeft?e.isLeft?1:-1:ke.compare(e.segment,t.segment))}static comparePoints(e,t){return e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0}constructor(e,t){e.events===void 0?e.events=[this]:e.events.push(this),this.point=e,this.isLeft=t}link(e){if(e.point===this.point)throw new Error("Tried to link already linked events");const t=e.point.events;for(let i=0,r=t.length;i<r;i++){const o=t[i];this.point.events.push(o),o.point=this.point}this.checkForConsuming()}checkForConsuming(){const e=this.point.events.length;for(let t=0;t<e;t++){const i=this.point.events[t];if(i.segment.consumedBy===void 0)for(let r=t+1;r<e;r++){const o=this.point.events[r];o.consumedBy===void 0&&i.otherSE.point.events===o.otherSE.point.events&&i.segment.consume(o.segment)}}}getAvailableLinkedEvents(){const e=[];for(let t=0,i=this.point.events.length;t<i;t++){const r=this.point.events[t];r!==this&&!r.segment.ringOut&&r.segment.isInResult()&&e.push(r)}return e}getLeftmostComparator(e){const t=new Map,i=r=>{const o=r.otherSE;t.set(r,{sine:_r(this.point,e.point,o.point),cosine:Er(this.point,e.point,o.point)})};return(r,o)=>{t.has(r)||i(r),t.has(o)||i(o);const{sine:l,cosine:s}=t.get(r),{sine:c,cosine:u}=t.get(o);return l>=0&&c>=0?s<u?1:s>u?-1:0:l<0&&c<0?s<u?-1:s>u?1:0:c<l?-1:c>l?1:0}}}let Sr=0;class ke{static compare(e,t){const i=e.leftSE.point.x,r=t.leftSE.point.x,o=e.rightSE.point.x,l=t.rightSE.point.x;if(l<i)return 1;if(o<r)return-1;const s=e.leftSE.point.y,c=t.leftSE.point.y,u=e.rightSE.point.y,h=t.rightSE.point.y;if(i<r){if(c<s&&c<u)return 1;if(c>s&&c>u)return-1;const a=e.comparePoint(t.leftSE.point);if(a<0)return 1;if(a>0)return-1;const f=t.comparePoint(e.rightSE.point);return f!==0?f:-1}if(i>r){if(s<c&&s<h)return-1;if(s>c&&s>h)return 1;const a=t.comparePoint(e.leftSE.point);if(a!==0)return a;const f=e.comparePoint(t.rightSE.point);return f<0?1:f>0?-1:1}if(s<c)return-1;if(s>c)return 1;if(o<l){const a=t.comparePoint(e.rightSE.point);if(a!==0)return a}if(o>l){const a=e.comparePoint(t.rightSE.point);if(a<0)return 1;if(a>0)return-1}if(o!==l){const a=u-s,f=o-i,d=h-c,g=l-r;if(a>f&&d<g)return 1;if(a<f&&d>g)return-1}return o>l?1:o<l||u<h?-1:u>h?1:e.id<t.id?-1:e.id>t.id?1:0}constructor(e,t,i,r){this.id=++Sr,this.leftSE=e,e.segment=this,e.otherSE=t,this.rightSE=t,t.segment=this,t.otherSE=e,this.rings=i,this.windings=r}static fromRing(e,t,i){let r,o,l;const s=le.comparePoints(e,t);if(s<0)r=e,o=t,l=1;else if(s>0)r=t,o=e,l=-1;else throw new Error(`Tried to create degenerate segment at [${e.x}, ${e.y}]`);const c=new le(r,!0),u=new le(o,!1);return new ke(c,u,[i],[l])}replaceRightSE(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const e=this.leftSE.point.y,t=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:e<t?e:t},ur:{x:this.rightSE.point.x,y:e>t?e:t}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(e){return e.x===this.leftSE.point.x&&e.y===this.leftSE.point.y||e.x===this.rightSE.point.x&&e.y===this.rightSE.point.y}comparePoint(e){if(this.isAnEndpoint(e))return 0;const t=this.leftSE.point,i=this.rightSE.point,r=this.vector();if(t.x===i.x)return e.x===t.x?0:e.x<t.x?1:-1;const o=(e.y-t.y)/r.y,l=t.x+o*r.x;if(e.x===l)return 0;const s=(e.x-t.x)/r.x,c=t.y+s*r.y;return e.y===c?0:e.y<c?-1:1}getIntersection(e){const t=this.bbox(),i=e.bbox(),r=Nt(t,i);if(r===null)return null;const o=this.leftSE.point,l=this.rightSE.point,s=e.leftSE.point,c=e.rightSE.point,u=Xe(t,s)&&this.comparePoint(s)===0,h=Xe(i,o)&&e.comparePoint(o)===0,a=Xe(t,c)&&this.comparePoint(c)===0,f=Xe(i,l)&&e.comparePoint(l)===0;if(h&&u)return f&&!a?l:!f&&a?c:null;if(h)return a&&o.x===c.x&&o.y===c.y?null:o;if(u)return f&&l.x===s.x&&l.y===s.y?null:s;if(f&&a)return null;if(f)return l;if(a)return c;const d=Lr(o,this.vector(),s,e.vector());return d===null||!Xe(r,d)?null:Ke.round(d.x,d.y)}split(e){const t=[],i=e.events!==void 0,r=new le(e,!0),o=new le(e,!1),l=this.rightSE;this.replaceRightSE(o),t.push(o),t.push(r);const s=new ke(r,l,this.rings.slice(),this.windings.slice());return le.comparePoints(s.leftSE.point,s.rightSE.point)>0&&s.swapEvents(),le.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),i&&(r.checkForConsuming(),o.checkForConsuming()),t}swapEvents(){const e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let t=0,i=this.windings.length;t<i;t++)this.windings[t]*=-1}consume(e){let t=this,i=e;for(;t.consumedBy;)t=t.consumedBy;for(;i.consumedBy;)i=i.consumedBy;const r=ke.compare(t,i);if(r!==0){if(r>0){const o=t;t=i,i=o}if(t.prev===i){const o=t;t=i,i=o}for(let o=0,l=i.rings.length;o<l;o++){const s=i.rings[o],c=i.windings[o],u=t.rings.indexOf(s);u===-1?(t.rings.push(s),t.windings.push(c)):t.windings[u]+=c}i.rings=null,i.windings=null,i.consumedBy=t,i.leftSE.consumedBy=t.leftSE,i.rightSE.consumedBy=t.rightSE}}prevInResult(){return this._prevInResult!==void 0?this._prevInResult:(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null,this._prevInResult)}beforeState(){if(this._beforeState!==void 0)return this._beforeState;if(!this.prev)this._beforeState={rings:[],windings:[],multiPolys:[]};else{const e=this.prev.consumedBy||this.prev;this._beforeState=e.afterState()}return this._beforeState}afterState(){if(this._afterState!==void 0)return this._afterState;const e=this.beforeState();this._afterState={rings:e.rings.slice(0),windings:e.windings.slice(0),multiPolys:[]};const t=this._afterState.rings,i=this._afterState.windings,r=this._afterState.multiPolys;for(let s=0,c=this.rings.length;s<c;s++){const u=this.rings[s],h=this.windings[s],a=t.indexOf(u);a===-1?(t.push(u),i.push(h)):i[a]+=h}const o=[],l=[];for(let s=0,c=t.length;s<c;s++){if(i[s]===0)continue;const u=t[s],h=u.poly;if(l.indexOf(h)===-1)if(u.isExterior)o.push(h);else{l.indexOf(h)===-1&&l.push(h);const a=o.indexOf(u.poly);a!==-1&&o.splice(a,1)}}for(let s=0,c=o.length;s<c;s++){const u=o[s].multiPoly;r.indexOf(u)===-1&&r.push(u)}return this._afterState}isInResult(){if(this.consumedBy)return!1;if(this._isInResult!==void 0)return this._isInResult;const e=this.beforeState().multiPolys,t=this.afterState().multiPolys;switch(fe.type){case"union":{const i=e.length===0,r=t.length===0;this._isInResult=i!==r;break}case"intersection":{let i,r;e.length<t.length?(i=e.length,r=t.length):(i=t.length,r=e.length),this._isInResult=r===fe.numMultiPolys&&i<r;break}case"xor":{const i=Math.abs(e.length-t.length);this._isInResult=i%2===1;break}case"difference":{const i=r=>r.length===1&&r[0].isSubject;this._isInResult=i(e)!==i(t);break}default:throw new Error(`Unrecognized operation type found ${fe.type}`)}return this._isInResult}}class Ni{constructor(e,t,i){if(!Array.isArray(e)||e.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=t,this.isExterior=i,this.segments=[],typeof e[0][0]!="number"||typeof e[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const r=Ke.round(e[0][0],e[0][1]);this.bbox={ll:{x:r.x,y:r.y},ur:{x:r.x,y:r.y}};let o=r;for(let l=1,s=e.length;l<s;l++){if(typeof e[l][0]!="number"||typeof e[l][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");let c=Ke.round(e[l][0],e[l][1]);c.x===o.x&&c.y===o.y||(this.segments.push(ke.fromRing(o,c,this)),c.x<this.bbox.ll.x&&(this.bbox.ll.x=c.x),c.y<this.bbox.ll.y&&(this.bbox.ll.y=c.y),c.x>this.bbox.ur.x&&(this.bbox.ur.x=c.x),c.y>this.bbox.ur.y&&(this.bbox.ur.y=c.y),o=c)}(r.x!==o.x||r.y!==o.y)&&this.segments.push(ke.fromRing(o,r,this))}getSweepEvents(){const e=[];for(let t=0,i=this.segments.length;t<i;t++){const r=this.segments[t];e.push(r.leftSE),e.push(r.rightSE)}return e}}class xr{constructor(e,t){if(!Array.isArray(e))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new Ni(e[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(let i=1,r=e.length;i<r;i++){const o=new Ni(e[i],this,!1);o.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=o.bbox.ll.x),o.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=o.bbox.ll.y),o.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=o.bbox.ur.x),o.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=o.bbox.ur.y),this.interiorRings.push(o)}this.multiPoly=t}getSweepEvents(){const e=this.exteriorRing.getSweepEvents();for(let t=0,i=this.interiorRings.length;t<i;t++){const r=this.interiorRings[t].getSweepEvents();for(let o=0,l=r.length;o<l;o++)e.push(r[o])}return e}}class Pi{constructor(e,t){if(!Array.isArray(e))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{typeof e[0][0][0]=="number"&&(e=[e])}catch{}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(let i=0,r=e.length;i<r;i++){const o=new xr(e[i],this);o.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=o.bbox.ll.x),o.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=o.bbox.ll.y),o.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=o.bbox.ur.x),o.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=o.bbox.ur.y),this.polys.push(o)}this.isSubject=t}getSweepEvents(){const e=[];for(let t=0,i=this.polys.length;t<i;t++){const r=this.polys[t].getSweepEvents();for(let o=0,l=r.length;o<l;o++)e.push(r[o])}return e}}class ot{static factory(e){const t=[];for(let i=0,r=e.length;i<r;i++){const o=e[i];if(!o.isInResult()||o.ringOut)continue;let l=null,s=o.leftSE,c=o.rightSE;const u=[s],h=s.point,a=[];for(;l=s,s=c,u.push(s),s.point!==h;)for(;;){const f=s.getAvailableLinkedEvents();if(f.length===0){const p=u[0].point,b=u[u.length-1].point;throw new Error(`Unable to complete output ring starting at [${p.x}, ${p.y}]. Last matching segment found ends at [${b.x}, ${b.y}].`)}if(f.length===1){c=f[0].otherSE;break}let d=null;for(let p=0,b=a.length;p<b;p++)if(a[p].point===s.point){d=p;break}if(d!==null){const p=a.splice(d)[0],b=u.splice(p.index);b.unshift(b[0].otherSE),t.push(new ot(b.reverse()));continue}a.push({index:u.length,point:s.point});const g=s.getLeftmostComparator(l);c=f.sort(g)[0].otherSE;break}t.push(new ot(u))}return t}constructor(e){this.events=e;for(let t=0,i=e.length;t<i;t++)e[t].segment.ringOut=this;this.poly=null}getGeom(){let e=this.events[0].point;const t=[e];for(let u=1,h=this.events.length-1;u<h;u++){const a=this.events[u].point,f=this.events[u+1].point;Mi(a,e,f)!==0&&(t.push(a),e=a)}if(t.length===1)return null;const i=t[0],r=t[1];Mi(i,e,r)===0&&t.shift(),t.push(t[0]);const o=this.isExteriorRing()?1:-1,l=this.isExteriorRing()?0:t.length-1,s=this.isExteriorRing()?t.length:-1,c=[];for(let u=l;u!=s;u+=o)c.push([t[u].x,t[u].y]);return c}isExteriorRing(){if(this._isExteriorRing===void 0){const e=this.enclosingRing();this._isExteriorRing=e?!e.isExteriorRing():!0}return this._isExteriorRing}enclosingRing(){return this._enclosingRing===void 0&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}_calcEnclosingRing(){let e=this.events[0];for(let r=1,o=this.events.length;r<o;r++){const l=this.events[r];le.compare(e,l)>0&&(e=l)}let t=e.segment.prevInResult(),i=t?t.prevInResult():null;for(;;){if(!t)return null;if(!i)return t.ringOut;if(i.ringOut!==t.ringOut)return i.ringOut.enclosingRing()!==t.ringOut?t.ringOut:t.ringOut.enclosingRing();t=i.prevInResult(),i=t?t.prevInResult():null}}}class Ti{constructor(e){this.exteriorRing=e,e.poly=this,this.interiorRings=[]}addInterior(e){this.interiorRings.push(e),e.poly=this}getGeom(){const e=[this.exteriorRing.getGeom()];if(e[0]===null)return null;for(let t=0,i=this.interiorRings.length;t<i;t++){const r=this.interiorRings[t].getGeom();r!==null&&e.push(r)}return e}}class Mr{constructor(e){this.rings=e,this.polys=this._composePolys(e)}getGeom(){const e=[];for(let t=0,i=this.polys.length;t<i;t++){const r=this.polys[t].getGeom();r!==null&&e.push(r)}return e}_composePolys(e){const t=[];for(let i=0,r=e.length;i<r;i++){const o=e[i];if(!o.poly)if(o.isExteriorRing())t.push(new Ti(o));else{const l=o.enclosingRing();l.poly||t.push(new Ti(l)),l.poly.addInterior(o)}}return t}}class Cr{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ke.compare;this.queue=e,this.tree=new St(t),this.segments=[]}process(e){const t=e.segment,i=[];if(e.consumedBy)return e.isLeft?this.queue.remove(e.otherSE):this.tree.remove(t),i;const r=e.isLeft?this.tree.add(t):this.tree.find(t);if(!r)throw new Error(`Unable to find segment #${t.id} [${t.leftSE.point.x}, ${t.leftSE.point.y}] -> [${t.rightSE.point.x}, ${t.rightSE.point.y}] in SweepLine tree.`);let o=r,l=r,s,c;for(;s===void 0;)o=this.tree.prev(o),o===null?s=null:o.key.consumedBy===void 0&&(s=o.key);for(;c===void 0;)l=this.tree.next(l),l===null?c=null:l.key.consumedBy===void 0&&(c=l.key);if(e.isLeft){let u=null;if(s){const a=s.getIntersection(t);if(a!==null&&(t.isAnEndpoint(a)||(u=a),!s.isAnEndpoint(a))){const f=this._splitSafely(s,a);for(let d=0,g=f.length;d<g;d++)i.push(f[d])}}let h=null;if(c){const a=c.getIntersection(t);if(a!==null&&(t.isAnEndpoint(a)||(h=a),!c.isAnEndpoint(a))){const f=this._splitSafely(c,a);for(let d=0,g=f.length;d<g;d++)i.push(f[d])}}if(u!==null||h!==null){let a=null;u===null?a=h:h===null?a=u:a=le.comparePoints(u,h)<=0?u:h,this.queue.remove(t.rightSE),i.push(t.rightSE);const f=t.split(a);for(let d=0,g=f.length;d<g;d++)i.push(f[d])}i.length>0?(this.tree.remove(t),i.push(e)):(this.segments.push(t),t.prev=s)}else{if(s&&c){const u=s.getIntersection(c);if(u!==null){if(!s.isAnEndpoint(u)){const h=this._splitSafely(s,u);for(let a=0,f=h.length;a<f;a++)i.push(h[a])}if(!c.isAnEndpoint(u)){const h=this._splitSafely(c,u);for(let a=0,f=h.length;a<f;a++)i.push(h[a])}}}this.tree.remove(t)}return i}_splitSafely(e,t){this.tree.remove(e);const i=e.rightSE;this.queue.remove(i);const r=e.split(t);return r.push(i),e.consumedBy===void 0&&this.tree.add(e),r}}const Ri=typeof process<"u"&&process.env.POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,kr=typeof process<"u"&&process.env.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6;class Nr{run(e,t,i){fe.type=e,Ke.reset();const r=[new Pi(t,!0)];for(let a=0,f=i.length;a<f;a++)r.push(new Pi(i[a],!1));if(fe.numMultiPolys=r.length,fe.type==="difference"){const a=r[0];let f=1;for(;f<r.length;)Nt(r[f].bbox,a.bbox)!==null?f++:r.splice(f,1)}if(fe.type==="intersection")for(let a=0,f=r.length;a<f;a++){const d=r[a];for(let g=a+1,p=r.length;g<p;g++)if(Nt(d.bbox,r[g].bbox)===null)return[]}const o=new St(le.compare);for(let a=0,f=r.length;a<f;a++){const d=r[a].getSweepEvents();for(let g=0,p=d.length;g<p;g++)if(o.insert(d[g]),o.size>Ri)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const l=new Cr(o);let s=o.size,c=o.pop();for(;c;){const a=c.key;if(o.size===s){const d=a.segment;throw new Error(`Unable to pop() ${a.isLeft?"left":"right"} SweepEvent [${a.point.x}, ${a.point.y}] from segment #${d.id} [${d.leftSE.point.x}, ${d.leftSE.point.y}] -> [${d.rightSE.point.x}, ${d.rightSE.point.y}] from queue.`)}if(o.size>Ri)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(l.segments.length>kr)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const f=l.process(a);for(let d=0,g=f.length;d<g;d++){const p=f[d];p.consumedBy===void 0&&o.insert(p)}s=o.size,c=o.pop()}Ke.reset();const u=ot.factory(l.segments);return new Mr(u).getGeom()}}const fe=new Nr;var Ii={union:function(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i<e;i++)t[i-1]=arguments[i];return fe.run("union",n,t)},intersection:function(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i<e;i++)t[i-1]=arguments[i];return fe.run("intersection",n,t)},xor:function(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i<e;i++)t[i-1]=arguments[i];return fe.run("xor",n,t)},difference:function(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i<e;i++)t[i-1]=arguments[i];return fe.run("difference",n,t)}};function Pr(n,e={}){const t=[];if(vt(n,r=>{t.push(r.coordinates)}),t.length<2)throw new Error("Must have at least 2 geometries");const i=Ii.union(t[0],...t.slice(1));return i.length===0?null:i.length===1?bt(i[0],e.properties):mi(i,e.properties)}var Oi=Pr;function Tr(n){const e=[];if(vt(n,r=>{e.push(r.coordinates)}),e.length<2)throw new Error("Must have at least two features");const t=n.features[0].properties||{},i=Ii.difference(e[0],...e.slice(1));return i.length===0?null:i.length===1?bt(i[0],t):mi(i,t)}var Rr=Tr;function Ir(n){if(!n)throw new Error("geojson is required");var e=[];return tr(n,function(t){e.push(t)}),Ve(e)}var Or=Ir;function Wi(n,e){const t=Rr(Ve([bt([[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]]),n]));if(!t)return;t.properties={isMask:!0};const i=je(wt(n)),r=(i[2]-i[0])/360/1e3,o=i[0]<-180,l=i[2]>180,s=Or(n);if(s.features.length>1&&(o||l))for(const c of s.features){const u=je(wt(c));if(l&&u[0]<-180+r)for(const h of c.geometry.coordinates)for(const a of h)a[0]+=360-r;if(o&&u[2]>180-r)for(const h of c.geometry.coordinates)for(const a of h)a[0]-=360-r}e(Ve([s.features.length<2?n:Oi(s)??n,t]))}function Ai(n,e=!0,t=!0,i={},r={},o=l=>{var u,h,a;const s=(u=l==null?void 0:l.geometry)==null?void 0:u.type,c=(h=l==null?void 0:l.properties)!=null&&h.isMask?0:s==="LineString"||s==="MultiLineString"?3:2;return{color:"#3170fe",fillColor:"#000",fillOpacity:(a=l==null?void 0:l.properties)!=null&&a.isMask?.1:0,weight:c,dashArray:[c,c],lineCap:"butt"}}){let l;const s=[];let c,u;const h=oe.geoJSON(void 0,{style:o,interactive:!1}).addTo(n),a=d=>{l==null||l({type:"mapClick",coordinates:[d.latlng.lng,d.latlng.lat]})};function f(d,g=!1){const p=document.createElement("div");return new Pn({props:{displayIn:"leaflet"},target:p}),new oe.Marker(d,{interactive:g,icon:new oe.DivIcon({html:p,className:"",iconAnchor:[12,26],iconSize:[25,30],tooltipAnchor:[1,-24]})})}return{setEventHandler(d){d?(l=d,n.on("click",a)):(l=void 0,n.off("click",a))},flyTo(d,g){n.flyTo([d[1],d[0]],g,{duration:2,...i})},fitBounds(d,g,p){n.flyToBounds([[d[1],d[0]],[d[3],d[2]]],{padding:[g,g],duration:2,...p?{maxZoom:p}:{},...r})},indicateReverse(d){n.getContainer().style.cursor=d?"crosshair":""},setReverseMarker(d){var p;if(!e)return;const g=d&&[d[1],d[0]];u?g?u.setLatLng(g):(u.remove(),u=void 0):g&&(u=(typeof e=="object"?new oe.Marker(g,e):f(g)).addTo(n),(p=u.getElement())==null||p.classList.add("marker-reverse"))},setMarkers(d,g){if(!e)return;function p(b){h.clearLayers(),b&&h.addData(b)}for(const b of s)b.remove();if(s.length=0,p(),g){let b=!1;if(g.geometry.type==="GeometryCollection"){const S=g.geometry.geometries.filter(E=>E.type==="Polygon"||E.type==="MultiPolygon");e:if(S.length>0){const E=Oi(Ve(S.map(_=>He(_))));if(!E)break e;Wi({...g,geometry:E.geometry},p),b=!0}else{const E=g.geometry.geometries.filter(_=>_.type==="LineString"||_.type==="MultiLineString");E.length>0&&(p({...g,geometry:{type:"GeometryCollection",geometries:E}}),b=!0)}}if(!b){if(g.geometry.type==="Polygon"||g.geometry.type==="MultiPolygon")Wi(g,S=>{if(!S)return;const E=[...S.features],_=je(wt(g)),C=_[2]-_[0];_[0]-C/4<-180&&E.push(...Bi(S,-360).features),_[2]+C/4>180&&E.push(...Bi(S,360).features),p(Ve(E))});else if(g.geometry.type==="LineString"||g.geometry.type==="MultiLineString"){p(g);return}}const v=[g.center[1],g.center[0]];s.push((typeof e=="object"?new oe.Marker(v,e):f(v)).addTo(n))}if(t)for(const b of d??[]){if(b===g)continue;const v=[b.center[1],b.center[0]],S=typeof t=="object"?new oe.Marker(v,t):f(v,!0);S.addTo(n).bindTooltip(b.place_type[0]==="reverse"?b.place_name:b.place_name.replace(/,.*/,""),{direction:"top"});const E=S.getElement();E&&(E.addEventListener("click",_=>{_.stopPropagation(),l==null||l({type:"markerClick",id:b.id})}),E.addEventListener("mouseenter",()=>{l==null||l({type:"markerMouseEnter",id:b.id})}),E.addEventListener("mouseleave",()=>{l==null||l({type:"markerMouseLeave",id:b.id})}),E.classList.toggle("marker-fuzzy",!!b.matching_text)),s.push(S)}},setSelectedMarker(d){var g,p;c&&((g=c.getElement())==null||g.classList.toggle("marker-selected",!1)),c=d>-1?s[d]:void 0,(p=c==null?void 0:c.getElement())==null||p.classList.toggle("marker-selected",!0)},getCenterAndZoom(){const d=n.getCenter();return[n.getZoom(),d.lng,d.lat]}}}function Bi(n,e){const t=or(n);for(const i of t.features)if(i.geometry.type=="MultiPolygon")for(const r of i.geometry.coordinates)Di(r,e);else Di(i.geometry.coordinates,e);return t}function Di(n,e){for(const t of n)for(const i of t)i[0]+=e}class Ui extends oe.Control{constructor(t){super();Gt(this,ue);Gt(this,Te);dt(this,Te,t)}onAdd(t){const i=document.createElement("div");i.className="leaflet-ctrl-geocoder",oe.DomEvent.disableClickPropagation(i),oe.DomEvent.disableScrollPropagation(i);const{marker:r,showResultMarkers:o,flyTo:l,fullGeometryStyle:s,...c}=de(this,Te),u=typeof l=="boolean"?{}:l,h=Ai(t,r,o,u,u,s);dt(this,ue,new er({target:i,props:{mapController:h,flyTo:l===void 0?!0:!!l,...c}}));for(const a of["select","pick","featuresListed","featuresMarked","response","optionsVisibilityChange","reverseToggle","queryChange"])de(this,ue).$on(a,f=>t.fire(a.toLowerCase(),f.detail));return i}setOptions(t){var c;dt(this,Te,t);const{marker:i,showResultMarkers:r,flyTo:o,fullGeometryStyle:l,...s}=de(this,Te);(c=de(this,ue))==null||c.$set(s)}setQuery(t,i=!0){var r;(r=de(this,ue))==null||r.setQuery(t,i)}clearMap(){var t;(t=de(this,ue))==null||t.clearMap()}clearList(){var t;(t=de(this,ue))==null||t.clearList()}focus(){var t;(t=de(this,ue))==null||t.focus()}blur(){var t;(t=de(this,ue))==null||t.blur()}onRemove(){var t;(t=de(this,ue))==null||t.$destroy()}}ue=new WeakMap,Te=new WeakMap;function Wr(...n){return new Ui(...n)}window.L&&typeof window.L=="object"&&typeof window.L.control=="function"&&(window.L.control.maptilerGeocoding=Wr),O.GeocodingControl=Ui,O.createLeafletMapController=Ai,Object.defineProperty(O,Symbol.toStringTag,{value:"Module"})});
29
23
  //# sourceMappingURL=leaflet.umd.js.map