@performant-software/geospatial 3.1.3-beta.0 → 3.1.3-beta.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.
- package/dist/index.cjs14.js +1 -1
- package/dist/index.cjs15.js +1 -1
- package/dist/index.cjs16.js +1 -1
- package/dist/index.cjs17.js +1 -1
- package/dist/index.cjs18.js +1 -1
- package/dist/index.cjs186.js +1 -1
- package/dist/index.cjs186.js.map +1 -1
- package/dist/index.cjs187.js +1 -1
- package/dist/index.cjs187.js.map +1 -1
- package/dist/index.cjs188.js +1 -1
- package/dist/index.cjs188.js.map +1 -1
- package/dist/index.cjs189.js +1 -1
- package/dist/index.cjs189.js.map +1 -1
- package/dist/index.cjs19.js +1 -1
- package/dist/index.cjs190.js +1 -1
- package/dist/index.cjs190.js.map +1 -1
- package/dist/index.cjs191.js +1 -1
- package/dist/index.cjs191.js.map +1 -1
- package/dist/index.cjs192.js +1 -1
- package/dist/index.cjs192.js.map +1 -1
- package/dist/index.cjs193.js +1 -1
- package/dist/index.cjs193.js.map +1 -1
- package/dist/index.cjs194.js +1 -1
- package/dist/index.cjs194.js.map +1 -1
- package/dist/index.cjs195.js +1 -1
- package/dist/index.cjs195.js.map +1 -1
- package/dist/index.cjs196.js +1 -1
- package/dist/index.cjs196.js.map +1 -1
- package/dist/index.cjs197.js +1 -1
- package/dist/index.cjs197.js.map +1 -1
- package/dist/index.cjs198.js +1 -1
- package/dist/index.cjs198.js.map +1 -1
- package/dist/index.cjs199.js +1 -1
- package/dist/index.cjs199.js.map +1 -1
- package/dist/index.cjs20.js +1 -1
- package/dist/index.cjs200.js +1 -1
- package/dist/index.cjs200.js.map +1 -1
- package/dist/index.cjs201.js +1 -1
- package/dist/index.cjs201.js.map +1 -1
- package/dist/index.cjs202.js +1 -1
- package/dist/index.cjs202.js.map +1 -1
- package/dist/index.cjs203.js +1 -1
- package/dist/index.cjs203.js.map +1 -1
- package/dist/index.cjs204.js +1 -1
- package/dist/index.cjs204.js.map +1 -1
- package/dist/index.cjs205.js +1 -1
- package/dist/index.cjs205.js.map +1 -1
- package/dist/index.cjs206.js +1 -1
- package/dist/index.cjs206.js.map +1 -1
- package/dist/index.cjs207.js +1 -1
- package/dist/index.cjs207.js.map +1 -1
- package/dist/index.cjs208.js +1 -1
- package/dist/index.cjs208.js.map +1 -1
- package/dist/index.cjs21.js +1 -1
- package/dist/index.cjs211.js +1 -1
- package/dist/index.cjs212.js +1 -1
- package/dist/index.cjs213.js +1 -1
- package/dist/index.cjs22.js +1 -1
- package/dist/index.cjs23.js +1 -1
- package/dist/index.cjs231.js +1 -1
- package/dist/index.cjs236.js +7 -1
- package/dist/index.cjs236.js.map +1 -1
- package/dist/index.cjs237.js +1 -1
- package/dist/index.cjs237.js.map +1 -1
- package/dist/index.cjs238.js +1 -7
- package/dist/index.cjs238.js.map +1 -1
- package/dist/index.cjs239.js +1 -1
- package/dist/index.cjs239.js.map +1 -1
- package/dist/index.cjs24.js +1 -1
- package/dist/index.cjs240.js +1 -1
- package/dist/index.cjs240.js.map +1 -1
- package/dist/index.cjs241.js +1 -1
- package/dist/index.cjs241.js.map +1 -1
- package/dist/index.cjs242.js +1 -1
- package/dist/index.cjs242.js.map +1 -1
- package/dist/index.cjs244.js +1 -1
- package/dist/index.cjs247.js +1 -1
- package/dist/index.cjs248.js +1 -1
- package/dist/index.cjs250.js +1 -1
- package/dist/index.cjs253.js +1 -1
- package/dist/index.cjs254.js +1 -1
- package/dist/index.cjs255.js +1 -1
- package/dist/index.cjs258.js +1 -1
- package/dist/index.cjs259.js +1 -1
- package/dist/index.cjs261.js +1 -1
- package/dist/index.cjs261.js.map +1 -1
- package/dist/index.cjs262.js +1 -1
- package/dist/index.cjs262.js.map +1 -1
- package/dist/index.cjs263.js +1 -1
- package/dist/index.cjs263.js.map +1 -1
- package/dist/index.cjs264.js +1 -1
- package/dist/index.cjs264.js.map +1 -1
- package/dist/index.cjs27.js +1 -1
- package/dist/index.cjs28.js +1 -1
- package/dist/index.cjs29.js +1 -1
- package/dist/index.cjs31.js +1 -1
- package/dist/index.cjs33.js +1 -1
- package/dist/index.cjs34.js +1 -1
- package/dist/index.cjs38.js +1 -1
- package/dist/index.cjs68.js +1 -1
- package/dist/index.cjs70.js +1 -1
- package/dist/index.cjs71.js +1 -1
- package/dist/index.cjs71.js.map +1 -1
- package/dist/index.cjs72.js +1 -1
- package/dist/index.cjs73.js +9 -1
- package/dist/index.cjs73.js.map +1 -1
- package/dist/index.cjs74.js +17 -1
- package/dist/index.cjs74.js.map +1 -1
- package/dist/index.cjs75.js +1 -1
- package/dist/index.cjs75.js.map +1 -1
- package/dist/index.cjs76.js +1 -9
- package/dist/index.cjs76.js.map +1 -1
- package/dist/index.cjs77.js +1 -17
- package/dist/index.cjs77.js.map +1 -1
- package/dist/index.cjs78.js +743 -1
- package/dist/index.cjs78.js.map +1 -1
- package/dist/index.cjs79.js +1 -1
- package/dist/index.cjs79.js.map +1 -1
- package/dist/index.cjs80.js +1 -743
- package/dist/index.cjs80.js.map +1 -1
- package/dist/index.cjs81.js +1 -1
- package/dist/index.cjs81.js.map +1 -1
- package/dist/index.es14.js +2 -2
- package/dist/index.es15.js +4 -4
- package/dist/index.es16.js +3 -3
- package/dist/index.es17.js +3 -3
- package/dist/index.es18.js +1 -1
- package/dist/index.es186.js +144 -239
- package/dist/index.es186.js.map +1 -1
- package/dist/index.es187.js +6 -42
- package/dist/index.es187.js.map +1 -1
- package/dist/index.es188.js +5 -3
- package/dist/index.es188.js.map +1 -1
- package/dist/index.es189.js +3 -13
- package/dist/index.es189.js.map +1 -1
- package/dist/index.es19.js +1 -1
- package/dist/index.es190.js +3 -13
- package/dist/index.es190.js.map +1 -1
- package/dist/index.es191.js +33 -28
- package/dist/index.es191.js.map +1 -1
- package/dist/index.es192.js +3 -16
- package/dist/index.es192.js.map +1 -1
- package/dist/index.es193.js +22 -4
- package/dist/index.es193.js.map +1 -1
- package/dist/index.es194.js +2 -150
- package/dist/index.es194.js.map +1 -1
- package/dist/index.es195.js +3 -9
- package/dist/index.es195.js.map +1 -1
- package/dist/index.es196.js +2 -7
- package/dist/index.es196.js.map +1 -1
- package/dist/index.es197.js +33 -3
- package/dist/index.es197.js.map +1 -1
- package/dist/index.es198.js +14 -2
- package/dist/index.es198.js.map +1 -1
- package/dist/index.es199.js +13 -35
- package/dist/index.es199.js.map +1 -1
- package/dist/index.es20.js +1 -1
- package/dist/index.es200.js +11 -3
- package/dist/index.es200.js.map +1 -1
- package/dist/index.es201.js +242 -22
- package/dist/index.es201.js.map +1 -1
- package/dist/index.es202.js +45 -2
- package/dist/index.es202.js.map +1 -1
- package/dist/index.es203.js +5 -3
- package/dist/index.es203.js.map +1 -1
- package/dist/index.es204.js +13 -2
- package/dist/index.es204.js.map +1 -1
- package/dist/index.es205.js +10 -30
- package/dist/index.es205.js.map +1 -1
- package/dist/index.es206.js +31 -13
- package/dist/index.es206.js.map +1 -1
- package/dist/index.es207.js +13 -13
- package/dist/index.es207.js.map +1 -1
- package/dist/index.es208.js +4 -8
- package/dist/index.es208.js.map +1 -1
- package/dist/index.es21.js +1 -1
- package/dist/index.es211.js +1 -1
- package/dist/index.es212.js +1 -1
- package/dist/index.es213.js +1 -1
- package/dist/index.es22.js +1 -1
- package/dist/index.es23.js +1 -1
- package/dist/index.es231.js +1 -1
- package/dist/index.es236.js +7506 -20
- package/dist/index.es236.js.map +1 -1
- package/dist/index.es237.js +2 -23
- package/dist/index.es237.js.map +1 -1
- package/dist/index.es238.js +5 -7506
- package/dist/index.es238.js.map +1 -1
- package/dist/index.es239.js +3 -2
- package/dist/index.es239.js.map +1 -1
- package/dist/index.es24.js +1 -1
- package/dist/index.es240.js +8 -3
- package/dist/index.es240.js.map +1 -1
- package/dist/index.es241.js +19 -6
- package/dist/index.es241.js.map +1 -1
- package/dist/index.es242.js +22 -5
- package/dist/index.es242.js.map +1 -1
- package/dist/index.es244.js +1 -1
- package/dist/index.es247.js +1 -1
- package/dist/index.es248.js +1 -1
- package/dist/index.es250.js +1 -1
- package/dist/index.es253.js +2 -2
- package/dist/index.es254.js +1 -1
- package/dist/index.es255.js +2 -2
- package/dist/index.es258.js +1 -1
- package/dist/index.es259.js +1 -1
- package/dist/index.es261.js +69 -2
- package/dist/index.es261.js.map +1 -1
- package/dist/index.es262.js +4 -15
- package/dist/index.es262.js.map +1 -1
- package/dist/index.es263.js +15 -4
- package/dist/index.es263.js.map +1 -1
- package/dist/index.es264.js +2 -69
- package/dist/index.es264.js.map +1 -1
- package/dist/index.es27.js +1 -1
- package/dist/index.es28.js +2 -2
- package/dist/index.es29.js +2 -2
- package/dist/index.es31.js +2 -2
- package/dist/index.es33.js +2 -2
- package/dist/index.es34.js +2 -2
- package/dist/index.es38.js +1 -1
- package/dist/index.es68.js +1 -1
- package/dist/index.es70.js +12 -12
- package/dist/index.es71.js +7 -1992
- package/dist/index.es71.js.map +1 -1
- package/dist/index.es72.js +2 -6
- package/dist/index.es72.js.map +1 -1
- package/dist/index.es73.js +26 -2
- package/dist/index.es73.js.map +1 -1
- package/dist/index.es74.js +588 -7
- package/dist/index.es74.js.map +1 -1
- package/dist/index.es75.js +1993 -2
- package/dist/index.es75.js.map +1 -1
- package/dist/index.es76.js +5 -25
- package/dist/index.es76.js.map +1 -1
- package/dist/index.es77.js +2 -589
- package/dist/index.es77.js.map +1 -1
- package/dist/index.es78.js +21350 -104
- package/dist/index.es78.js.map +1 -1
- package/dist/index.es79.js +2 -10
- package/dist/index.es79.js.map +1 -1
- package/dist/index.es80.js +104 -21350
- package/dist/index.es80.js.map +1 -1
- package/dist/index.es81.js +10 -2
- package/dist/index.es81.js.map +1 -1
- package/package.json +1 -1
package/dist/index.es238.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es238.js","sources":["../../../node_modules/@turf/jsts/dist/jsts.min.js"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).jsts=e()}(this,(function(){\"use strict\";function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n<e;n++)i[n]=t[n];return i}function e(t,e,n){return e=u(e),function(t,e){if(e&&(\"object\"==typeof e||\"function\"==typeof e))return e;if(void 0!==e)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t)}(t,h()?Reflect.construct(e,n||[],u(t).constructor):e.apply(t,n))}function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e,n){if(h())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,e);var r=new(t.bind.apply(t,i));return n&&c(r,n.prototype),r}function r(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(t,v(i.key),i)}}function s(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),Object.defineProperty(t,\"prototype\",{writable:!1}),t}function a(t,e){var n=\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(!n){if(Array.isArray(t)||(n=y(t))||e){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var s,a=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){o=!0,s=t},f:function(){try{a||null==n.return||n.return()}finally{if(o)throw s}}}}function o(){return o=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,n){var i=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t}(t,e);if(i){var r=Object.getOwnPropertyDescriptor(i,e);return r.get?r.get.call(arguments.length<3?t:n):r.value}},o.apply(null,arguments)}function u(t){return u=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},u(t)}function l(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,\"prototype\",{writable:!1}),e&&c(t,e)}function h(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(h=function(){return!!t})()}function c(t,e){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},c(t,e)}function f(t,e,n,i){var r=o(u(1&i?t.prototype:t),e,n);return 2&i&&\"function\"==typeof r?function(t){return r.apply(n,t)}:r}function g(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(e)||y(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function v(t){var e=function(t,e){if(\"object\"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e);if(\"object\"!=typeof i)return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(t)}(t,\"string\");return\"symbol\"==typeof e?e:e+\"\"}function y(e,n){if(e){if(\"string\"==typeof e)return t(e,n);var i={}.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?t(e,n):void 0}}function d(t){var e=\"function\"==typeof Map?new Map:void 0;return d=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf(\"[native code]\")}catch(e){return\"function\"==typeof t}}(t))return t;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return i(t,arguments,u(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),c(n,t)},d(t)}var _=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getEndCapStyle\",value:function(){return this._endCapStyle}},{key:\"isSingleSided\",value:function(){return this._isSingleSided}},{key:\"setQuadrantSegments\",value:function(e){this._quadrantSegments=e,0===this._quadrantSegments&&(this._joinStyle=t.JOIN_BEVEL),this._quadrantSegments<0&&(this._joinStyle=t.JOIN_MITRE,this._mitreLimit=Math.abs(this._quadrantSegments)),e<=0&&(this._quadrantSegments=1),this._joinStyle!==t.JOIN_ROUND&&(this._quadrantSegments=t.DEFAULT_QUADRANT_SEGMENTS)}},{key:\"getJoinStyle\",value:function(){return this._joinStyle}},{key:\"setJoinStyle\",value:function(t){this._joinStyle=t}},{key:\"setSimplifyFactor\",value:function(t){this._simplifyFactor=t<0?0:t}},{key:\"getSimplifyFactor\",value:function(){return this._simplifyFactor}},{key:\"getQuadrantSegments\",value:function(){return this._quadrantSegments}},{key:\"setEndCapStyle\",value:function(t){this._endCapStyle=t}},{key:\"getMitreLimit\",value:function(){return this._mitreLimit}},{key:\"setMitreLimit\",value:function(t){this._mitreLimit=t}},{key:\"setSingleSided\",value:function(t){this._isSingleSided=t}}],[{key:\"constructor_\",value:function(){if(this._quadrantSegments=t.DEFAULT_QUADRANT_SEGMENTS,this._endCapStyle=t.CAP_ROUND,this._joinStyle=t.JOIN_ROUND,this._mitreLimit=t.DEFAULT_MITRE_LIMIT,this._isSingleSided=!1,this._simplifyFactor=t.DEFAULT_SIMPLIFY_FACTOR,0===arguments.length);else if(1===arguments.length){var e=arguments[0];this.setQuadrantSegments(e)}else if(2===arguments.length){var n=arguments[0],i=arguments[1];this.setQuadrantSegments(n),this.setEndCapStyle(i)}else if(4===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2],o=arguments[3];this.setQuadrantSegments(r),this.setEndCapStyle(s),this.setJoinStyle(a),this.setMitreLimit(o)}}},{key:\"bufferDistanceError\",value:function(t){var e=Math.PI/2/t;return 1-Math.cos(e/2)}}])}();_.CAP_ROUND=1,_.CAP_FLAT=2,_.CAP_SQUARE=3,_.JOIN_ROUND=1,_.JOIN_MITRE=2,_.JOIN_BEVEL=3,_.DEFAULT_QUADRANT_SEGMENTS=8,_.DEFAULT_MITRE_LIMIT=5,_.DEFAULT_SIMPLIFY_FACTOR=.01;var p=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({Exception:i})[0],r}return l(i,t),s(i,[{key:\"toString\",value:function(){return this.message}}])}(d(Error)),m=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({IllegalArgumentException:i})[0],r}return l(i,t),s(i)}(p),k=function(){return s((function t(){n(this,t)}),[{key:\"filter\",value:function(t){}}])}();function x(){}function I(){}function E(){}var N,T,S,L,C,R,w,O,b=function(){return s((function t(){n(this,t)}),null,[{key:\"equalsWithTolerance\",value:function(t,e,n){return Math.abs(t-e)<=n}}])}(),M=function(){return s((function t(e,i){n(this,t),this.low=i||0,this.high=e||0}),null,[{key:\"toBinaryString\",value:function(t){var e,n=\"\";for(e=2147483648;e>0;e>>>=1)n+=(t.high&e)===e?\"1\":\"0\";for(e=2147483648;e>0;e>>>=1)n+=(t.low&e)===e?\"1\":\"0\";return n}}])}();function A(){}function P(){}A.NaN=NaN,A.isNaN=function(t){return Number.isNaN(t)},A.isInfinite=function(t){return!Number.isFinite(t)},A.MAX_VALUE=Number.MAX_VALUE,A.POSITIVE_INFINITY=Number.POSITIVE_INFINITY,A.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,\"function\"==typeof Float64Array&&\"function\"==typeof Int32Array?(R=2146435072,w=new Float64Array(1),O=new Int32Array(w.buffer),A.doubleToLongBits=function(t){w[0]=t;var e=0|O[0],n=0|O[1];return(n&R)===R&&1048575&n&&0!==e&&(e=0,n=2146959360),new M(n,e)},A.longBitsToDouble=function(t){return O[0]=t.low,O[1]=t.high,w[0]}):(N=1023,T=Math.log2,S=Math.floor,L=Math.pow,C=function(){for(var t=53;t>0;t--){var e=L(2,t)-1;if(S(T(e))+1===t)return e}return 0}(),A.doubleToLongBits=function(t){var e,n,i,r,s,a,o,u,l;if(t<0||1/t===Number.NEGATIVE_INFINITY?(a=1<<31,t=-t):a=0,0===t)return new M(u=a,l=0);if(t===1/0)return new M(u=2146435072|a,l=0);if(t!=t)return new M(u=2146959360,l=0);if(r=0,l=0,(e=S(t))>1)if(e<=C)(r=S(T(e)))<=20?(l=0,u=e<<20-r&1048575):(l=e%(n=L(2,i=r-20))<<32-i,u=e/n&1048575);else for(i=e,l=0;0!==(i=S(n=i/2));)r++,l>>>=1,l|=(1&u)<<31,u>>>=1,n!==i&&(u|=524288);if(o=r+N,s=0===e,e=t-e,r<52&&0!==e)for(i=0;;){if((n=2*e)>=1?(e=n-1,s?(o--,s=!1):(i<<=1,i|=1,r++)):(e=n,s?0==--o&&(r++,s=!1):(i<<=1,r++)),20===r)u|=i,i=0;else if(52===r){l|=i;break}if(1===n){r<20?u|=i<<20-r:r<52&&(l|=i<<52-r);break}}return u|=o<<20,new M(u|=a,l)},A.longBitsToDouble=function(t){var e,n,i,r,s=t.high,a=t.low,o=s&1<<31?-1:1;for(i=((2146435072&s)>>20)-N,r=0,n=1<<19,e=1;e<=20;e++)s&n&&(r+=L(2,-e)),n>>>=1;for(n=1<<31,e=21;e<=52;e++)a&n&&(r+=L(2,-e)),n>>>=1;if(-1023===i){if(0===r)return 0*o;i=-1022}else{if(1024===i)return 0===r?o/0:NaN;r+=1}return o*r*L(2,i)});var D=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({RuntimeException:i})[0],r}return l(i,t),s(i)}(p),F=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,null,[{key:\"constructor_\",value:function(){if(0===arguments.length)D.constructor_.call(this);else if(1===arguments.length){var t=arguments[0];D.constructor_.call(this,t)}}}])}(D),G=function(){function t(){n(this,t)}return s(t,null,[{key:\"shouldNeverReachHere\",value:function(){if(0===arguments.length)t.shouldNeverReachHere(null);else if(1===arguments.length){var e=arguments[0];throw new F(\"Should never reach here\"+(null!==e?\": \"+e:\"\"))}}},{key:\"isTrue\",value:function(){if(1===arguments.length){var e=arguments[0];t.isTrue(e,null)}else if(2===arguments.length){var n=arguments[1];if(!arguments[0])throw null===n?new F:new F(n)}}},{key:\"equals\",value:function(){if(2===arguments.length){var e=arguments[0],n=arguments[1];t.equals(e,n,null)}else if(3===arguments.length){var i=arguments[0],r=arguments[1],s=arguments[2];if(!r.equals(i))throw new F(\"Expected \"+i+\" but encountered \"+r+(null!==s?\": \"+s:\"\"))}}}])}(),q=new ArrayBuffer(8),Y=new Float64Array(q),z=new Int32Array(q),X=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getM\",value:function(){return A.NaN}},{key:\"setOrdinate\",value:function(e,n){switch(e){case t.X:this.x=n;break;case t.Y:this.y=n;break;case t.Z:this.setZ(n);break;default:throw new m(\"Invalid ordinate index: \"+e)}}},{key:\"equals2D\",value:function(){if(1===arguments.length){var t=arguments[0];return this.x===t.x&&this.y===t.y}if(2===arguments.length){var e=arguments[0],n=arguments[1];return!!b.equalsWithTolerance(this.x,e.x,n)&&!!b.equalsWithTolerance(this.y,e.y,n)}}},{key:\"setM\",value:function(e){throw new m(\"Invalid ordinate index: \"+t.M)}},{key:\"getZ\",value:function(){return this.z}},{key:\"getOrdinate\",value:function(e){switch(e){case t.X:return this.x;case t.Y:return this.y;case t.Z:return this.getZ()}throw new m(\"Invalid ordinate index: \"+e)}},{key:\"equals3D\",value:function(t){return this.x===t.x&&this.y===t.y&&(this.getZ()===t.getZ()||A.isNaN(this.getZ())&&A.isNaN(t.getZ()))}},{key:\"equals\",value:function(e){return e instanceof t&&this.equals2D(e)}},{key:\"equalInZ\",value:function(t,e){return b.equalsWithTolerance(this.getZ(),t.getZ(),e)}},{key:\"setX\",value:function(t){this.x=t}},{key:\"compareTo\",value:function(t){var e=t;return this.x<e.x?-1:this.x>e.x?1:this.y<e.y?-1:this.y>e.y?1:0}},{key:\"getX\",value:function(){return this.x}},{key:\"setZ\",value:function(t){this.z=t}},{key:\"clone\",value:function(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return G.shouldNeverReachHere(\"this shouldn't happen because this class is Cloneable\"),null;throw t}}},{key:\"copy\",value:function(){return new t(this)}},{key:\"toString\",value:function(){return\"(\"+this.x+\", \"+this.y+\", \"+this.getZ()+\")\"}},{key:\"distance3D\",value:function(t){var e=this.x-t.x,n=this.y-t.y,i=this.getZ()-t.getZ();return Math.sqrt(e*e+n*n+i*i)}},{key:\"getY\",value:function(){return this.y}},{key:\"setY\",value:function(t){this.y=t}},{key:\"distance\",value:function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)}},{key:\"hashCode\",value:function(){var e=17;return e=37*(e=37*e+t.hashCode(this.x))+t.hashCode(this.y)}},{key:\"setCoordinate\",value:function(t){this.x=t.x,this.y=t.y,this.z=t.getZ()}},{key:\"interfaces_\",get:function(){return[x,I,E]}}],[{key:\"constructor_\",value:function(){if(this.x=null,this.y=null,this.z=null,0===arguments.length)t.constructor_.call(this,0,0);else if(1===arguments.length){var e=arguments[0];t.constructor_.call(this,e.x,e.y,e.getZ())}else if(2===arguments.length){var n=arguments[0],i=arguments[1];t.constructor_.call(this,n,i,t.NULL_ORDINATE)}else if(3===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2];this.x=r,this.y=s,this.z=a}}},{key:\"hashCode\",value:function(t){return Y[0]=t,z[0]^z[1]}}])}(),B=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"compare\",value:function(e,n){var i=t.compare(e.x,n.x);if(0!==i)return i;var r=t.compare(e.y,n.y);return 0!==r?r:this._dimensionsToTest<=2?0:t.compare(e.getZ(),n.getZ())}},{key:\"interfaces_\",get:function(){return[P]}}],[{key:\"constructor_\",value:function(){if(this._dimensionsToTest=2,0===arguments.length)t.constructor_.call(this,2);else if(1===arguments.length){var e=arguments[0];if(2!==e&&3!==e)throw new m(\"only 2 or 3 dimensions may be specified\");this._dimensionsToTest=e}}},{key:\"compare\",value:function(t,e){return t<e?-1:t>e?1:A.isNaN(t)?A.isNaN(e)?0:-1:A.isNaN(e)?1:0}}])}();X.DimensionalComparator=B,X.NULL_ORDINATE=A.NaN,X.X=0,X.Y=1,X.Z=2,X.M=3;var U=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getArea\",value:function(){return this.getWidth()*this.getHeight()}},{key:\"equals\",value:function(e){if(!(e instanceof t))return!1;var n=e;return this.isNull()?n.isNull():this._maxx===n.getMaxX()&&this._maxy===n.getMaxY()&&this._minx===n.getMinX()&&this._miny===n.getMinY()}},{key:\"intersection\",value:function(e){if(this.isNull()||e.isNull()||!this.intersects(e))return new t;var n=this._minx>e._minx?this._minx:e._minx,i=this._miny>e._miny?this._miny:e._miny;return new t(n,this._maxx<e._maxx?this._maxx:e._maxx,i,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(1===arguments.length){if(arguments[0]instanceof X){var e=arguments[0];return this.covers(e.x,e.y)}if(arguments[0]instanceof t){var n=arguments[0];return!this.isNull()&&!n.isNull()&&(n.getMinX()>=this._minx&&n.getMaxX()<=this._maxx&&n.getMinY()>=this._miny&&n.getMaxY()<=this._maxy)}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];return!this.isNull()&&(i>=this._minx&&i<=this._maxx&&r>=this._miny&&r<=this._maxy)}}},{key:\"intersects\",value:function(){if(1===arguments.length){if(arguments[0]instanceof t){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 X){var n=arguments[0];return this.intersects(n.x,n.y)}}else if(2===arguments.length){if(arguments[0]instanceof X&&arguments[1]instanceof X){var i=arguments[0],r=arguments[1];return!this.isNull()&&(!((i.x<r.x?i.x:r.x)>this._maxx)&&(!((i.x>r.x?i.x:r.x)<this._minx)&&(!((i.y<r.y?i.y:r.y)>this._maxy)&&!((i.y>r.y?i.y:r.y)<this._miny))))}if(\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var s=arguments[0],a=arguments[1];return!this.isNull()&&!(s>this._maxx||s<this._minx||a>this._maxy||a<this._miny)}}}},{key:\"getMinY\",value:function(){return this._miny}},{key:\"getDiameter\",value:function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return Math.sqrt(t*t+e*e)}},{key:\"getMinX\",value:function(){return this._minx}},{key:\"expandToInclude\",value:function(){if(1===arguments.length){if(arguments[0]instanceof X){var e=arguments[0];this.expandToInclude(e.x,e.y)}else if(arguments[0]instanceof t){var n=arguments[0];if(n.isNull())return null;this.isNull()?(this._minx=n.getMinX(),this._maxx=n.getMaxX(),this._miny=n.getMinY(),this._maxy=n.getMaxY()):(n._minx<this._minx&&(this._minx=n._minx),n._maxx>this._maxx&&(this._maxx=n._maxx),n._miny<this._miny&&(this._miny=n._miny),n._maxy>this._maxy&&(this._maxy=n._maxy))}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];this.isNull()?(this._minx=i,this._maxx=i,this._miny=r,this._maxy=r):(i<this._minx&&(this._minx=i),i>this._maxx&&(this._maxx=i),r<this._miny&&(this._miny=r),r>this._maxy&&(this._maxy=r))}}},{key:\"minExtent\",value:function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t<e?t:e}},{key:\"getWidth\",value:function(){return this.isNull()?0:this._maxx-this._minx}},{key:\"compareTo\",value:function(t){var e=t;return this.isNull()?e.isNull()?0:-1:e.isNull()?1:this._minx<e._minx?-1:this._minx>e._minx?1:this._miny<e._miny?-1:this._miny>e._miny?1:this._maxx<e._maxx?-1:this._maxx>e._maxx?1:this._maxy<e._maxy?-1:this._maxy>e._maxy?1:0}},{key:\"translate\",value:function(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e)}},{key:\"copy\",value:function(){return new t(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(t){return!(!this.isNull()&&!t.isNull())||(t._minx>this._maxx||t._maxx<this._minx||t._miny>this._maxy||t._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 t=this.getWidth(),e=this.getHeight();return t>e?t:e}},{key:\"expandBy\",value:function(){if(1===arguments.length){var t=arguments[0];this.expandBy(t,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];if(this.isNull())return null;this._minx-=e,this._maxx+=e,this._miny-=n,this._maxy+=n,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}}},{key:\"contains\",value:function(){if(1===arguments.length){if(arguments[0]instanceof t){var e=arguments[0];return this.covers(e)}if(arguments[0]instanceof X){var n=arguments[0];return this.covers(n)}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];return this.covers(i,r)}}},{key:\"centre\",value:function(){return this.isNull()?null:new X((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)}},{key:\"init\",value:function(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof X){var e=arguments[0];this.init(e.x,e.x,e.y,e.y)}else if(arguments[0]instanceof t){var n=arguments[0];this._minx=n._minx,this._maxx=n._maxx,this._miny=n._miny,this._maxy=n._maxy}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];this.init(i.x,r.x,i.y,r.y)}else if(4===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2],u=arguments[3];s<a?(this._minx=s,this._maxx=a):(this._minx=a,this._maxx=s),o<u?(this._miny=o,this._maxy=u):(this._miny=u,this._maxy=o)}}},{key:\"getMaxY\",value:function(){return this._maxy}},{key:\"distance\",value:function(t){if(this.intersects(t))return 0;var e=0;this._maxx<t._minx?e=t._minx-this._maxx:this._minx>t._maxx&&(e=this._minx-t._maxx);var n=0;return this._maxy<t._miny?n=t._miny-this._maxy:this._miny>t._maxy&&(n=this._miny-t._maxy),0===e?n:0===n?e:Math.sqrt(e*e+n*n)}},{key:\"hashCode\",value:function(){var t=17;return t=37*(t=37*(t=37*(t=37*t+X.hashCode(this._minx))+X.hashCode(this._maxx))+X.hashCode(this._miny))+X.hashCode(this._maxy)}},{key:\"interfaces_\",get:function(){return[x,E]}}],[{key:\"constructor_\",value:function(){if(this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,0===arguments.length)this.init();else if(1===arguments.length){if(arguments[0]instanceof X){var e=arguments[0];this.init(e.x,e.x,e.y,e.y)}else if(arguments[0]instanceof t){var n=arguments[0];this.init(n)}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];this.init(i.x,r.x,i.y,r.y)}else if(4===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2],u=arguments[3];this.init(s,a,o,u)}}},{key:\"intersects\",value:function(){if(3===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2];return n.x>=(t.x<e.x?t.x:e.x)&&n.x<=(t.x>e.x?t.x:e.x)&&n.y>=(t.y<e.y?t.y:e.y)&&n.y<=(t.y>e.y?t.y:e.y)}if(4===arguments.length){var i=arguments[0],r=arguments[1],s=arguments[2],a=arguments[3],o=Math.min(s.x,a.x),u=Math.max(s.x,a.x),l=Math.min(i.x,r.x),h=Math.max(i.x,r.x);return!(l>u)&&(!(h<o)&&(o=Math.min(s.y,a.y),u=Math.max(s.y,a.y),l=Math.min(i.y,r.y),h=Math.max(i.y,r.y),!(l>u)&&!(h<o)))}}}])}(),V=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"isGeometryCollection\",value:function(){return this.getTypeCode()===t.TYPECODE_GEOMETRYCOLLECTION}},{key:\"getFactory\",value:function(){return this._factory}},{key:\"getGeometryN\",value:function(t){return this}},{key:\"getArea\",value:function(){return 0}},{key:\"isRectangle\",value:function(){return!1}},{key:\"equalsExact\",value:function(t){return this===t||this.equalsExact(t,0)}},{key:\"geometryChanged\",value:function(){this.apply(t.geometryChangedFilter)}},{key:\"geometryChangedAction\",value:function(){this._envelope=null}},{key:\"equalsNorm\",value:function(t){return null!==t&&this.norm().equalsExact(t.norm())}},{key:\"getLength\",value:function(){return 0}},{key:\"getNumGeometries\",value:function(){return 1}},{key:\"compareTo\",value:function(){var t;if(1===arguments.length){var e=arguments[0];return t=e,this.getTypeCode()!==t.getTypeCode()?this.getTypeCode()-t.getTypeCode():this.isEmpty()&&t.isEmpty()?0:this.isEmpty()?-1:t.isEmpty()?1:this.compareToSameClass(e)}if(2===arguments.length){var n=arguments[0],i=arguments[1];return t=n,this.getTypeCode()!==t.getTypeCode()?this.getTypeCode()-t.getTypeCode():this.isEmpty()&&t.isEmpty()?0:this.isEmpty()?-1:t.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()===t.TYPECODE_GEOMETRYCOLLECTION)throw new m(\"This method does not support GeometryCollection arguments\")}},{key:\"equal\",value:function(t,e,n){return 0===n?t.equals(e):t.distance(e)<=n}},{key:\"norm\",value:function(){var t=this.copy();return t.normalize(),t}},{key:\"reverse\",value:function(){var t=this.reverseInternal();return null!=this.envelope&&(t.envelope=this.envelope.copy()),t.setSRID(this.getSRID()),t}},{key:\"copy\",value:function(){var t=this.copyInternal();return t.envelope=null==this._envelope?null:this._envelope.copy(),t._SRID=this._SRID,t._userData=this._userData,t}},{key:\"getPrecisionModel\",value:function(){return this._factory.getPrecisionModel()}},{key:\"getEnvelopeInternal\",value:function(){return null===this._envelope&&(this._envelope=this.computeEnvelopeInternal()),new U(this._envelope)}},{key:\"setSRID\",value:function(t){this._SRID=t}},{key:\"setUserData\",value:function(t){this._userData=t}},{key:\"compare\",value:function(t,e){for(var n=t.iterator(),i=e.iterator();n.hasNext()&&i.hasNext();){var r=n.next(),s=i.next(),a=r.compareTo(s);if(0!==a)return a}return n.hasNext()?1:i.hasNext()?-1:0}},{key:\"hashCode\",value:function(){return this.getEnvelopeInternal().hashCode()}},{key:\"isEquivalentClass\",value:function(t){return this.getClass()===t.getClass()}},{key:\"isGeometryCollectionOrDerived\",value:function(){return this.getTypeCode()===t.TYPECODE_GEOMETRYCOLLECTION||this.getTypeCode()===t.TYPECODE_MULTIPOINT||this.getTypeCode()===t.TYPECODE_MULTILINESTRING||this.getTypeCode()===t.TYPECODE_MULTIPOLYGON}},{key:\"interfaces_\",get:function(){return[I,x,E]}},{key:\"getClass\",value:function(){return t}}],[{key:\"hasNonEmptyElements\",value:function(t){for(var e=0;e<t.length;e++)if(!t[e].isEmpty())return!0;return!1}},{key:\"hasNullElements\",value:function(t){for(var e=0;e<t.length;e++)if(null===t[e])return!0;return!1}}])}();V.constructor_=function(t){t&&(this._envelope=null,this._userData=null,this._factory=t,this._SRID=t.getSRID())},V.TYPECODE_POINT=0,V.TYPECODE_MULTIPOINT=1,V.TYPECODE_LINESTRING=2,V.TYPECODE_LINEARRING=3,V.TYPECODE_MULTILINESTRING=4,V.TYPECODE_POLYGON=5,V.TYPECODE_MULTIPOLYGON=6,V.TYPECODE_GEOMETRYCOLLECTION=7,V.TYPENAME_POINT=\"Point\",V.TYPENAME_MULTIPOINT=\"MultiPoint\",V.TYPENAME_LINESTRING=\"LineString\",V.TYPENAME_LINEARRING=\"LinearRing\",V.TYPENAME_MULTILINESTRING=\"MultiLineString\",V.TYPENAME_POLYGON=\"Polygon\",V.TYPENAME_MULTIPOLYGON=\"MultiPolygon\",V.TYPENAME_GEOMETRYCOLLECTION=\"GeometryCollection\",V.geometryChangedFilter={get interfaces_(){return[k]},filter:function(t){t.geometryChangedAction()}};var H=function(){function t(){n(this,t)}return s(t,null,[{key:\"toLocationSymbol\",value:function(e){switch(e){case t.EXTERIOR:return\"e\";case t.BOUNDARY:return\"b\";case t.INTERIOR:return\"i\";case t.NONE:return\"-\"}throw new m(\"Unknown location value: \"+e)}}])}();H.INTERIOR=0,H.BOUNDARY=1,H.EXTERIOR=2,H.NONE=-1;var Z=function(){return s((function t(){n(this,t)}),[{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(){}}])}(),j=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({NoSuchElementException:i})[0],r}return l(i,t),s(i)}(p),W=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({UnsupportedOperationException:i})[0],r}return l(i,t),s(i)}(p),K=function(t){function i(){return n(this,i),e(this,i,arguments)}return l(i,t),s(i,[{key:\"contains\",value:function(){}}])}(Z),J=function(t){function i(t){var r;return n(this,i),(r=e(this,i)).map=new Map,t instanceof Z&&r.addAll(t),r}return l(i,t),s(i,[{key:\"contains\",value:function(t){var e=t.hashCode?t.hashCode():t;return!!this.map.has(e)}},{key:\"add\",value:function(t){var e=t.hashCode?t.hashCode():t;return!this.map.has(e)&&!!this.map.set(e,t)}},{key:\"addAll\",value:function(t){var e,n=a(t);try{for(n.s();!(e=n.n()).done;){var i=e.value;this.add(i)}}catch(t){n.e(t)}finally{n.f()}return!0}},{key:\"remove\",value:function(){throw new W}},{key:\"size\",value:function(){return this.map.size}},{key:\"isEmpty\",value:function(){return 0===this.map.size}},{key:\"toArray\",value:function(){return Array.from(this.map.values())}},{key:\"iterator\",value:function(){return new Q(this.map)}},{key:Symbol.iterator,value:function(){return this.map}}])}(K),Q=function(){return s((function t(e){n(this,t),this.iterator=e.values();var i=this.iterator.next(),r=i.done,s=i.value;this.done=r,this.value=s}),[{key:\"next\",value:function(){if(this.done)throw new j;var t=this.value,e=this.iterator.next(),n=e.done,i=e.value;return this.done=n,this.value=i,t}},{key:\"hasNext\",value:function(){return!this.done}},{key:\"remove\",value:function(){throw new W}}])}(),$=function(){function t(){n(this,t)}return s(t,null,[{key:\"opposite\",value:function(e){return e===t.LEFT?t.RIGHT:e===t.RIGHT?t.LEFT:e}}])}();$.ON=0,$.LEFT=1,$.RIGHT=2;var tt=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({EmptyStackException:i})[0],r}return l(i,t),s(i)}(p),et=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({IndexOutOfBoundsException:i})[0],r}return l(i,t),s(i)}(p),nt=function(t){function i(){return n(this,i),e(this,i,arguments)}return l(i,t),s(i,[{key:\"get\",value:function(){}},{key:\"set\",value:function(){}},{key:\"isEmpty\",value:function(){}}])}(Z),it=function(t){function i(){var t;return n(this,i),(t=e(this,i)).array=[],t}return l(i,t),s(i,[{key:\"add\",value:function(t){return this.array.push(t),!0}},{key:\"get\",value:function(t){if(t<0||t>=this.size())throw new et;return this.array[t]}},{key:\"push\",value:function(t){return this.array.push(t),t}},{key:\"pop\",value:function(){if(0===this.array.length)throw new tt;return this.array.pop()}},{key:\"peek\",value:function(){if(0===this.array.length)throw new tt;return this.array[this.array.length-1]}},{key:\"empty\",value:function(){return 0===this.array.length}},{key:\"isEmpty\",value:function(){return this.empty()}},{key:\"search\",value:function(t){return this.array.indexOf(t)}},{key:\"size\",value:function(){return this.array.length}},{key:\"toArray\",value:function(){return this.array.slice()}}])}(nt);function rt(t,e){return t.interfaces_&&t.interfaces_.indexOf(e)>-1}var st=function(){return s((function t(e){n(this,t),this.str=e}),[{key:\"append\",value:function(t){this.str+=t}},{key:\"setCharAt\",value:function(t,e){this.str=this.str.substr(0,t)+e+this.str.substr(t+1)}},{key:\"toString\",value:function(){return this.str}}])}(),at=function(){function t(e){n(this,t),this.value=e}return s(t,[{key:\"intValue\",value:function(){return this.value}},{key:\"compareTo\",value:function(t){return this.value<t?-1:this.value>t?1:0}}],[{key:\"compare\",value:function(t,e){return t<e?-1:t>e?1:0}},{key:\"isNan\",value:function(t){return Number.isNaN(t)}},{key:\"valueOf\",value:function(e){return new t(e)}}])}(),ot=function(){return s((function t(){n(this,t)}),null,[{key:\"isWhitespace\",value:function(t){return t<=32&&t>=0||127===t}},{key:\"toUpperCase\",value:function(t){return t.toUpperCase()}}])}(),ut=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"le\",value:function(t){return this._hi<t._hi||this._hi===t._hi&&this._lo<=t._lo}},{key:\"extractSignificantDigits\",value:function(e,n){var i=this.abs(),r=t.magnitude(i._hi),s=t.TEN.pow(r);(i=i.divide(s)).gt(t.TEN)?(i=i.divide(t.TEN),r+=1):i.lt(t.ONE)&&(i=i.multiply(t.TEN),r-=1);for(var a=r+1,o=new st,u=t.MAX_PRINT_DIGITS-1,l=0;l<=u;l++){e&&l===a&&o.append(\".\");var h=Math.trunc(i._hi);if(h<0)break;var c=!1,f=0;h>9?(c=!0,f=\"9\"):f=\"0\"+h,o.append(f),i=i.subtract(t.valueOf(h)).multiply(t.TEN),c&&i.selfAdd(t.TEN);var g=!0,v=t.magnitude(i._hi);if(v<0&&Math.abs(v)>=u-l&&(g=!1),!g)break}return n[0]=r,o.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 t){var e=arguments[0];return this.add(e.negate())}if(\"number\"==typeof arguments[0]){var n=arguments[0];return this.add(-n)}}},{key:\"equals\",value:function(){if(1===arguments.length&&arguments[0]instanceof t){var e=arguments[0];return this._hi===e._hi&&this._lo===e._lo}}},{key:\"isZero\",value:function(){return 0===this._hi&&0===this._lo}},{key:\"selfSubtract\",value:function(){if(arguments[0]instanceof t){var e=arguments[0];return this.isNaN()?this:this.selfAdd(-e._hi,-e._lo)}if(\"number\"==typeof arguments[0]){var n=arguments[0];return this.isNaN()?this:this.selfAdd(-n,0)}}},{key:\"getSpecialNumberString\",value:function(){return this.isZero()?\"0.0\":this.isNaN()?\"NaN \":null}},{key:\"min\",value:function(t){return this.le(t)?this:t}},{key:\"selfDivide\",value:function(){if(1===arguments.length){if(arguments[0]instanceof t){var e=arguments[0];return this.selfDivide(e._hi,e._lo)}if(\"number\"==typeof arguments[0]){var n=arguments[0];return this.selfDivide(n,0)}}else if(2===arguments.length){var i,r,s,a,o=arguments[0],u=arguments[1],l=null,h=null,c=null,f=null;return s=this._hi/o,f=(l=(c=t.SPLIT*s)-(l=c-s))*(h=(f=t.SPLIT*o)-(h=f-o))-(a=s*o)+l*(r=o-h)+(i=s-l)*h+i*r,f=s+(c=(this._hi-a-f+this._lo-s*u)/o),this._hi=f,this._lo=s-f+c,this}}},{key:\"dump\",value:function(){return\"DD<\"+this._hi+\", \"+this._lo+\">\"}},{key:\"divide\",value:function(){if(arguments[0]instanceof t){var e,n,i,r,s=arguments[0],a=null,o=null,u=null,l=null;return e=(i=this._hi/s._hi)-(a=(u=t.SPLIT*i)-(a=u-i)),l=a*(o=(l=t.SPLIT*s._hi)-(o=l-s._hi))-(r=i*s._hi)+a*(n=s._hi-o)+e*o+e*n,new t(l=i+(u=(this._hi-r-l+this._lo-i*s._lo)/s._hi),i-l+u)}if(\"number\"==typeof arguments[0]){var h=arguments[0];return A.isNaN(h)?t.createNaN():t.copy(this).selfDivide(h,0)}}},{key:\"ge\",value:function(t){return this._hi>t._hi||this._hi===t._hi&&this._lo>=t._lo}},{key:\"pow\",value:function(e){if(0===e)return t.valueOf(1);var n=new t(this),i=t.valueOf(1),r=Math.abs(e);if(r>1)for(;r>0;)r%2==1&&i.selfMultiply(n),(r/=2)>0&&(n=n.sqr());else i=n;return e<0?i.reciprocal():i}},{key:\"ceil\",value:function(){if(this.isNaN())return t.NaN;var e=Math.ceil(this._hi),n=0;return e===this._hi&&(n=Math.ceil(this._lo)),new t(e,n)}},{key:\"compareTo\",value:function(t){var e=t;return this._hi<e._hi?-1:this._hi>e._hi?1:this._lo<e._lo?-1:this._lo>e._lo?1:0}},{key:\"rint\",value:function(){return this.isNaN()?this:this.add(.5).floor()}},{key:\"setValue\",value:function(){if(arguments[0]instanceof t){var e=arguments[0];return this.init(e),this}if(\"number\"==typeof arguments[0]){var n=arguments[0];return this.init(n),this}}},{key:\"max\",value:function(t){return this.ge(t)?this:t}},{key:\"sqrt\",value:function(){if(this.isZero())return t.valueOf(0);if(this.isNegative())return t.NaN;var e=1/Math.sqrt(this._hi),n=this._hi*e,i=t.valueOf(n),r=this.subtract(i.sqr())._hi*(.5*e);return i.add(r)}},{key:\"selfAdd\",value:function(){if(1===arguments.length){if(arguments[0]instanceof t){var e=arguments[0];return this.selfAdd(e._hi,e._lo)}if(\"number\"==typeof arguments[0]){var n,i,r,s,a,o=arguments[0],u=null;return u=(r=this._hi+o)-(s=r-this._hi),i=(a=(u=o-s+(this._hi-u))+this._lo)+(r-(n=r+a)),this._hi=n+i,this._lo=i+(n-this._hi),this}}else if(2===arguments.length){var l,h,c,f,g=arguments[0],v=arguments[1],y=null,d=null,_=null;c=this._hi+g,h=this._lo+v,d=c-(_=c-this._hi),y=h-(f=h-this._lo);var p=(l=c+(_=(d=g-_+(this._hi-d))+h))+(_=(y=v-f+(this._lo-y))+(_+(c-l))),m=_+(l-p);return this._hi=p,this._lo=m,this}}},{key:\"selfMultiply\",value:function(){if(1===arguments.length){if(arguments[0]instanceof t){var e=arguments[0];return this.selfMultiply(e._hi,e._lo)}if(\"number\"==typeof arguments[0]){var n=arguments[0];return this.selfMultiply(n,0)}}else if(2===arguments.length){var i,r,s=arguments[0],a=arguments[1],o=null,u=null,l=null,h=null;o=(l=t.SPLIT*this._hi)-this._hi,h=t.SPLIT*s,o=l-o,i=this._hi-o,u=h-s;var c=(l=this._hi*s)+(h=o*(u=h-u)-l+o*(r=s-u)+i*u+i*r+(this._hi*a+this._lo*s)),f=h+(o=l-c);return this._hi=c,this._lo=f,this}}},{key:\"selfSqr\",value:function(){return this.selfMultiply(this)}},{key:\"floor\",value:function(){if(this.isNaN())return t.NaN;var e=Math.floor(this._hi),n=0;return e===this._hi&&(n=Math.floor(this._lo)),new t(e,n)}},{key:\"negate\",value:function(){return this.isNaN()?this:new t(-this._hi,-this._lo)}},{key:\"clone\",value:function(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return null;throw t}}},{key:\"multiply\",value:function(){if(arguments[0]instanceof t){var e=arguments[0];return e.isNaN()?t.createNaN():t.copy(this).selfMultiply(e)}if(\"number\"==typeof arguments[0]){var n=arguments[0];return A.isNaN(n)?t.createNaN():t.copy(this).selfMultiply(n,0)}}},{key:\"isNaN\",value:function(){return A.isNaN(this._hi)}},{key:\"intValue\",value:function(){return Math.trunc(this._hi)}},{key:\"toString\",value:function(){var e=t.magnitude(this._hi);return e>=-3&&e<=20?this.toStandardNotation():this.toSciNotation()}},{key:\"toStandardNotation\",value:function(){var e=this.getSpecialNumberString();if(null!==e)return e;var n=new Array(1).fill(null),i=this.extractSignificantDigits(!0,n),r=n[0]+1,s=i;if(\".\"===i.charAt(0))s=\"0\"+i;else if(r<0)s=\"0.\"+t.stringOfChar(\"0\",-r)+i;else if(-1===i.indexOf(\".\")){var a=r-i.length;s=i+t.stringOfChar(\"0\",a)+\".0\"}return this.isNegative()?\"-\"+s:s}},{key:\"reciprocal\",value:function(){var e,n,i,r,s=null,a=null,o=null,u=null;e=(i=1/this._hi)-(s=(o=t.SPLIT*i)-(s=o-i)),a=(u=t.SPLIT*this._hi)-this._hi;var l=i+(o=(1-(r=i*this._hi)-(u=s*(a=u-a)-r+s*(n=this._hi-a)+e*a+e*n)-i*this._lo)/this._hi);return new t(l,i-l+o)}},{key:\"toSciNotation\",value:function(){if(this.isZero())return t.SCI_NOT_ZERO;var e=this.getSpecialNumberString();if(null!==e)return e;var n=new Array(1).fill(null),i=this.extractSignificantDigits(!1,n),r=t.SCI_NOT_EXPONENT_CHAR+n[0];if(\"0\"===i.charAt(0))throw new IllegalStateException(\"Found leading zero: \"+i);var s=\"\";i.length>1&&(s=i.substring(1));var a=i.charAt(0)+\".\"+s;return this.isNegative()?\"-\"+a+r:a+r}},{key:\"abs\",value:function(){return this.isNaN()?t.NaN:this.isNegative()?this.negate():new t(this)}},{key:\"isPositive\",value:function(){return this._hi>0||0===this._hi&&this._lo>0}},{key:\"lt\",value:function(t){return this._hi<t._hi||this._hi===t._hi&&this._lo<t._lo}},{key:\"add\",value:function(){if(arguments[0]instanceof t){var e=arguments[0];return t.copy(this).selfAdd(e)}if(\"number\"==typeof arguments[0]){var n=arguments[0];return t.copy(this).selfAdd(n)}}},{key:\"init\",value:function(){if(1===arguments.length){if(\"number\"==typeof arguments[0]){var e=arguments[0];this._hi=e,this._lo=0}else if(arguments[0]instanceof t){var n=arguments[0];this._hi=n._hi,this._lo=n._lo}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];this._hi=i,this._lo=r}}},{key:\"gt\",value:function(t){return this._hi>t._hi||this._hi===t._hi&&this._lo>t._lo}},{key:\"isNegative\",value:function(){return this._hi<0||0===this._hi&&this._lo<0}},{key:\"trunc\",value:function(){return this.isNaN()?t.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[E,x,I]}}],[{key:\"constructor_\",value:function(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if(\"number\"==typeof arguments[0]){var e=arguments[0];this.init(e)}else if(arguments[0]instanceof t){var n=arguments[0];this.init(n)}else if(\"string\"==typeof arguments[0]){var i=arguments[0];t.constructor_.call(this,t.parse(i))}}else if(2===arguments.length){var r=arguments[0],s=arguments[1];this.init(r,s)}}},{key:\"determinant\",value:function(){if(\"number\"==typeof arguments[3]&&\"number\"==typeof arguments[2]&&\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var e=arguments[0],n=arguments[1],i=arguments[2],r=arguments[3];return t.determinant(t.valueOf(e),t.valueOf(n),t.valueOf(i),t.valueOf(r))}if(arguments[3]instanceof t&&arguments[2]instanceof t&&arguments[0]instanceof t&&arguments[1]instanceof t){var s=arguments[1],a=arguments[2],o=arguments[3];return arguments[0].multiply(o).selfSubtract(s.multiply(a))}}},{key:\"sqr\",value:function(e){return t.valueOf(e).selfMultiply(e)}},{key:\"valueOf\",value:function(){if(\"string\"==typeof arguments[0]){var e=arguments[0];return t.parse(e)}if(\"number\"==typeof arguments[0])return new t(arguments[0])}},{key:\"sqrt\",value:function(e){return t.valueOf(e).sqrt()}},{key:\"parse\",value:function(e){for(var n=0,i=e.length;ot.isWhitespace(e.charAt(n));)n++;var r=!1;if(n<i){var s=e.charAt(n);\"-\"!==s&&\"+\"!==s||(n++,\"-\"===s&&(r=!0))}for(var a=new t,o=0,u=0,l=0,h=!1;!(n>=i);){var c=e.charAt(n);if(n++,ot.isDigit(c)){var f=c-\"0\";a.selfMultiply(t.TEN),a.selfAdd(f),o++}else{if(\".\"!==c){if(\"e\"===c||\"E\"===c){var g=e.substring(n);try{l=at.parseInt(g)}catch(t){throw t instanceof NumberFormatException?new NumberFormatException(\"Invalid exponent \"+g+\" in string \"+e):t}break}throw new NumberFormatException(\"Unexpected character '\"+c+\"' at position \"+n+\" in string \"+e)}u=o,h=!0}}var v=a;h||(u=o);var y=o-u-l;if(0===y)v=a;else if(y>0){var d=t.TEN.pow(y);v=a.divide(d)}else if(y<0){var _=t.TEN.pow(-y);v=a.multiply(_)}return r?v.negate():v}},{key:\"createNaN\",value:function(){return new t(A.NaN,A.NaN)}},{key:\"copy\",value:function(e){return new t(e)}},{key:\"magnitude\",value:function(t){var e=Math.abs(t),n=Math.log(e)/Math.log(10),i=Math.trunc(Math.floor(n));return 10*Math.pow(10,i)<=e&&(i+=1),i}},{key:\"stringOfChar\",value:function(t,e){for(var n=new st,i=0;i<e;i++)n.append(t);return n.toString()}}])}();ut.PI=new ut(3.141592653589793,12246467991473532e-32),ut.TWO_PI=new ut(6.283185307179586,24492935982947064e-32),ut.PI_2=new ut(1.5707963267948966,6123233995736766e-32),ut.E=new ut(2.718281828459045,14456468917292502e-32),ut.NaN=new ut(A.NaN,A.NaN),ut.EPS=123259516440783e-46,ut.SPLIT=134217729,ut.MAX_PRINT_DIGITS=32,ut.TEN=ut.valueOf(10),ut.ONE=ut.valueOf(1),ut.SCI_NOT_EXPONENT_CHAR=\"E\",ut.SCI_NOT_ZERO=\"0.0E0\";var lt=function(){function t(){n(this,t)}return s(t,null,[{key:\"orientationIndex\",value:function(e,n,i){var r=t.orientationIndexFilter(e,n,i);if(r<=1)return r;var s=ut.valueOf(n.x).selfAdd(-e.x),a=ut.valueOf(n.y).selfAdd(-e.y),o=ut.valueOf(i.x).selfAdd(-n.x),u=ut.valueOf(i.y).selfAdd(-n.y);return s.selfMultiply(u).selfSubtract(a.selfMultiply(o)).signum()}},{key:\"signOfDet2x2\",value:function(){if(arguments[3]instanceof ut&&arguments[2]instanceof ut&&arguments[0]instanceof ut&&arguments[1]instanceof ut){var t=arguments[1],e=arguments[2],n=arguments[3];return arguments[0].multiply(n).selfSubtract(t.multiply(e)).signum()}if(\"number\"==typeof arguments[3]&&\"number\"==typeof arguments[2]&&\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var i=arguments[0],r=arguments[1],s=arguments[2],a=arguments[3],o=ut.valueOf(i),u=ut.valueOf(r),l=ut.valueOf(s),h=ut.valueOf(a);return o.multiply(h).selfSubtract(u.multiply(l)).signum()}}},{key:\"intersection\",value:function(t,e,n,i){var r=new ut(t.y).selfSubtract(e.y),s=new ut(e.x).selfSubtract(t.x),a=new ut(t.x).selfMultiply(e.y).selfSubtract(new ut(e.x).selfMultiply(t.y)),o=new ut(n.y).selfSubtract(i.y),u=new ut(i.x).selfSubtract(n.x),l=new ut(n.x).selfMultiply(i.y).selfSubtract(new ut(i.x).selfMultiply(n.y)),h=s.multiply(l).selfSubtract(u.multiply(a)),c=o.multiply(a).selfSubtract(r.multiply(l)),f=r.multiply(u).selfSubtract(o.multiply(s)),g=h.selfDivide(f).doubleValue(),v=c.selfDivide(f).doubleValue();return A.isNaN(g)||A.isInfinite(g)||A.isNaN(v)||A.isInfinite(v)?null:new X(g,v)}},{key:\"orientationIndexFilter\",value:function(e,n,i){var r=null,s=(e.x-i.x)*(n.y-i.y),a=(e.y-i.y)*(n.x-i.x),o=s-a;if(s>0){if(a<=0)return t.signum(o);r=s+a}else{if(!(s<0))return t.signum(o);if(a>=0)return t.signum(o);r=-s-a}var u=t.DP_SAFE_EPSILON*r;return o>=u||-o>=u?t.signum(o):2}},{key:\"signum\",value:function(t){return t>0?1:t<0?-1:0}}])}();lt.DP_SAFE_EPSILON=1e-15;var ht=function(){return s((function t(){n(this,t)}),[{key:\"getM\",value:function(t){if(this.hasM()){var e=this.getDimension()-this.getMeasures();return this.getOrdinate(t,e)}return A.NaN}},{key:\"setOrdinate\",value:function(t,e,n){}},{key:\"getZ\",value:function(t){return this.hasZ()?this.getOrdinate(t,2):A.NaN}},{key:\"size\",value:function(){}},{key:\"getOrdinate\",value:function(t,e){}},{key:\"getCoordinate\",value:function(){}},{key:\"getCoordinateCopy\",value:function(t){}},{key:\"createCoordinate\",value:function(){}},{key:\"getDimension\",value:function(){}},{key:\"hasM\",value:function(){return this.getMeasures()>0}},{key:\"getX\",value:function(t){}},{key:\"hasZ\",value:function(){return this.getDimension()-this.getMeasures()>2}},{key:\"getMeasures\",value:function(){return 0}},{key:\"expandEnvelope\",value:function(t){}},{key:\"copy\",value:function(){}},{key:\"getY\",value:function(t){}},{key:\"toCoordinateArray\",value:function(){}},{key:\"interfaces_\",get:function(){return[I]}}])}();ht.X=0,ht.Y=1,ht.Z=2,ht.M=3;var ct=function(){function t(){n(this,t)}return s(t,null,[{key:\"index\",value:function(t,e,n){return lt.orientationIndex(t,e,n)}},{key:\"isCCW\",value:function(){if(arguments[0]instanceof Array){var e=arguments[0],n=e.length-1;if(n<3)throw new m(\"Ring has fewer than 4 points, so orientation cannot be determined\");for(var i=e[0],r=0,s=1;s<=n;s++){var a=e[s];a.y>i.y&&(i=a,r=s)}var o=r;do{(o-=1)<0&&(o=n)}while(e[o].equals2D(i)&&o!==r);var u=r;do{u=(u+1)%n}while(e[u].equals2D(i)&&u!==r);var l=e[o],h=e[u];if(l.equals2D(i)||h.equals2D(i)||l.equals2D(h))return!1;var c=t.index(l,i,h);return 0===c?l.x>h.x:c>0}if(rt(arguments[0],ht)){var f=arguments[0],g=f.size()-1;if(g<3)throw new m(\"Ring has fewer than 4 points, so orientation cannot be determined\");for(var v=f.getCoordinate(0),y=0,d=1;d<=g;d++){var _=f.getCoordinate(d);_.y>v.y&&(v=_,y=d)}var p=null,k=y;do{(k-=1)<0&&(k=g),p=f.getCoordinate(k)}while(p.equals2D(v)&&k!==y);var x=null,I=y;do{I=(I+1)%g,x=f.getCoordinate(I)}while(x.equals2D(v)&&I!==y);if(p.equals2D(v)||x.equals2D(v)||p.equals2D(x))return!1;var E=t.index(p,v,x);return 0===E?p.x>x.x:E>0}}}])}();ct.CLOCKWISE=-1,ct.RIGHT=ct.CLOCKWISE,ct.COUNTERCLOCKWISE=1,ct.LEFT=ct.COUNTERCLOCKWISE,ct.COLLINEAR=0,ct.STRAIGHT=ct.COLLINEAR;var ft=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getCoordinate\",value:function(){return this._minCoord}},{key:\"getRightmostSide\",value:function(t,e){var n=this.getRightmostSideOfSegment(t,e);return n<0&&(n=this.getRightmostSideOfSegment(t,e-1)),n<0&&(this._minCoord=null,this.checkForRightmostCoordinate(t)),n}},{key:\"findRightmostEdgeAtVertex\",value:function(){var t=this._minDe.getEdge().getCoordinates();G.isTrue(this._minIndex>0&&this._minIndex<t.length,\"rightmost point expected to be interior vertex of edge\");var e=t[this._minIndex-1],n=t[this._minIndex+1],i=ct.index(this._minCoord,n,e),r=!1;(e.y<this._minCoord.y&&n.y<this._minCoord.y&&i===ct.COUNTERCLOCKWISE||e.y>this._minCoord.y&&n.y>this._minCoord.y&&i===ct.CLOCKWISE)&&(r=!0),r&&(this._minIndex=this._minIndex-1)}},{key:\"getRightmostSideOfSegment\",value:function(t,e){var n=t.getEdge().getCoordinates();if(e<0||e+1>=n.length)return-1;if(n[e].y===n[e+1].y)return-1;var i=$.LEFT;return n[e].y<n[e+1].y&&(i=$.RIGHT),i}},{key:\"getEdge\",value:function(){return this._orientedDe}},{key:\"checkForRightmostCoordinate\",value:function(t){for(var e=t.getEdge().getCoordinates(),n=0;n<e.length-1;n++)(null===this._minCoord||e[n].x>this._minCoord.x)&&(this._minDe=t,this._minIndex=n,this._minCoord=e[n])}},{key:\"findRightmostEdgeAtNode\",value:function(){var t=this._minDe.getNode().getEdges();this._minDe=t.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)}},{key:\"findEdge\",value:function(t){for(var e=t.iterator();e.hasNext();){var n=e.next();n.isForward()&&this.checkForRightmostCoordinate(n)}G.isTrue(0!==this._minIndex||this._minCoord.equals(this._minDe.getCoordinate()),\"inconsistency in rightmost processing\"),0===this._minIndex?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe,this.getRightmostSide(this._minDe,this._minIndex)===$.LEFT&&(this._orientedDe=this._minDe.getSym())}}],[{key:\"constructor_\",value:function(){this._minIndex=-1,this._minCoord=null,this._minDe=null,this._orientedDe=null}}])}(),gt=function(t){function i(t,r){var s;return n(this,i),(s=e(this,i,[r?t+\" [ \"+r+\" ]\":t])).pt=r?new X(r):void 0,s.name=Object.keys({TopologyException:i})[0],s}return l(i,t),s(i,[{key:\"getCoordinate\",value:function(){return this.pt}}])}(D),vt=function(){return s((function t(){n(this,t),this.array=[]}),[{key:\"addLast\",value:function(t){this.array.push(t)}},{key:\"removeFirst\",value:function(){return this.array.shift()}},{key:\"isEmpty\",value:function(){return 0===this.array.length}}])}(),yt=function(t){function i(t){var r;return n(this,i),(r=e(this,i)).array=[],t instanceof Z&&r.addAll(t),r}return l(i,t),s(i,[{key:\"interfaces_\",get:function(){return[nt,Z]}},{key:\"ensureCapacity\",value:function(){}},{key:\"add\",value:function(t){return 1===arguments.length?this.array.push(t):this.array.splice(arguments[0],0,arguments[1]),!0}},{key:\"clear\",value:function(){this.array=[]}},{key:\"addAll\",value:function(t){var e,n=a(t);try{for(n.s();!(e=n.n()).done;){var i=e.value;this.array.push(i)}}catch(t){n.e(t)}finally{n.f()}}},{key:\"set\",value:function(t,e){var n=this.array[t];return this.array[t]=e,n}},{key:\"iterator\",value:function(){return new dt(this)}},{key:\"get\",value:function(t){if(t<0||t>=this.size())throw new et;return this.array[t]}},{key:\"isEmpty\",value:function(){return 0===this.array.length}},{key:\"sort\",value:function(t){t?this.array.sort((function(e,n){return t.compare(e,n)})):this.array.sort()}},{key:\"size\",value:function(){return this.array.length}},{key:\"toArray\",value:function(){return this.array.slice()}},{key:\"remove\",value:function(t){for(var e=0,n=this.array.length;e<n;e++)if(this.array[e]===t)return!!this.array.splice(e,1);return!1}},{key:Symbol.iterator,value:function(){return this.array.values()}}])}(nt),dt=function(){return s((function t(e){n(this,t),this.arrayList=e,this.position=0}),[{key:\"next\",value:function(){if(this.position===this.arrayList.size())throw new j;return this.arrayList.get(this.position++)}},{key:\"hasNext\",value:function(){return this.position<this.arrayList.size()}},{key:\"set\",value:function(t){return this.arrayList.set(this.position-1,t)}},{key:\"remove\",value:function(){this.arrayList.remove(this.arrayList.get(this.position))}}])}(),_t=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"clearVisitedEdges\",value:function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){t.next().setVisited(!1)}}},{key:\"getRightmostCoordinate\",value:function(){return this._rightMostCoord}},{key:\"computeNodeDepth\",value:function(t){for(var e=null,n=t.getEdges().iterator();n.hasNext();){var i=n.next();if(i.isVisited()||i.getSym().isVisited()){e=i;break}}if(null===e)throw new gt(\"unable to find edge to compute depths at \"+t.getCoordinate());t.getEdges().computeDepths(e);for(var r=t.getEdges().iterator();r.hasNext();){var s=r.next();s.setVisited(!0),this.copySymDepths(s)}}},{key:\"computeDepth\",value:function(t){this.clearVisitedEdges();var e=this._finder.getEdge();e.getNode(),e.getLabel(),e.setEdgeDepths($.RIGHT,t),this.copySymDepths(e),this.computeDepths(e)}},{key:\"create\",value:function(t){this.addReachable(t),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()}},{key:\"findResultEdges\",value:function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){var e=t.next();e.getDepth($.RIGHT)>=1&&e.getDepth($.LEFT)<=0&&!e.isInteriorAreaEdge()&&e.setInResult(!0)}}},{key:\"computeDepths\",value:function(t){var e=new J,n=new vt,i=t.getNode();for(n.addLast(i),e.add(i),t.setVisited(!0);!n.isEmpty();){var r=n.removeFirst();e.add(r),this.computeNodeDepth(r);for(var s=r.getEdges().iterator();s.hasNext();){var a=s.next().getSym();if(!a.isVisited()){var o=a.getNode();e.contains(o)||(n.addLast(o),e.add(o))}}}}},{key:\"compareTo\",value:function(t){var e=t;return this._rightMostCoord.x<e._rightMostCoord.x?-1:this._rightMostCoord.x>e._rightMostCoord.x?1:0}},{key:\"getEnvelope\",value:function(){if(null===this._env){for(var t=new U,e=this._dirEdgeList.iterator();e.hasNext();)for(var n=e.next().getEdge().getCoordinates(),i=0;i<n.length-1;i++)t.expandToInclude(n[i]);this._env=t}return this._env}},{key:\"addReachable\",value:function(t){var e=new it;for(e.add(t);!e.empty();){var n=e.pop();this.add(n,e)}}},{key:\"copySymDepths\",value:function(t){var e=t.getSym();e.setDepth($.LEFT,t.getDepth($.RIGHT)),e.setDepth($.RIGHT,t.getDepth($.LEFT))}},{key:\"add\",value:function(t,e){t.setVisited(!0),this._nodes.add(t);for(var n=t.getEdges().iterator();n.hasNext();){var i=n.next();this._dirEdgeList.add(i);var r=i.getSym().getNode();r.isVisited()||e.push(r)}}},{key:\"getNodes\",value:function(){return this._nodes}},{key:\"getDirectedEdges\",value:function(){return this._dirEdgeList}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){this._finder=null,this._dirEdgeList=new yt,this._nodes=new yt,this._rightMostCoord=null,this._env=null,this._finder=new ft}}])}(),pt=function(){return s((function t(){n(this,t)}),null,[{key:\"intersection\",value:function(t,e,n,i){var r=t.x<e.x?t.x:e.x,s=t.y<e.y?t.y:e.y,a=t.x>e.x?t.x:e.x,o=t.y>e.y?t.y:e.y,u=n.x<i.x?n.x:i.x,l=n.y<i.y?n.y:i.y,h=n.x>i.x?n.x:i.x,c=n.y>i.y?n.y:i.y,f=((r>u?r:u)+(a<h?a:h))/2,g=((s>l?s:l)+(o<c?o:c))/2,v=t.x-f,y=t.y-g,d=e.x-f,_=e.y-g,p=n.x-f,m=n.y-g,k=i.x-f,x=i.y-g,I=y-_,E=d-v,N=v*_-d*y,T=m-x,S=k-p,L=p*x-k*m,C=I*S-T*E,R=(E*L-S*N)/C,w=(T*N-I*L)/C;return A.isNaN(R)||A.isInfinite(R)||A.isNaN(w)||A.isInfinite(w)?null:new X(R+f,w+g)}}])}(),mt=function(){return s((function t(){n(this,t)}),null,[{key:\"arraycopy\",value:function(t,e,n,i,r){for(var s=0,a=e;a<e+r;a++)n[i+s]=t[a],s++}},{key:\"getProperty\",value:function(t){return{\"line.separator\":\"\\n\"}[t]}}])}(),kt=function(){function t(){n(this,t)}return s(t,null,[{key:\"log10\",value:function(e){var n=Math.log(e);return A.isInfinite(n)||A.isNaN(n)?n:n/t.LOG_10}},{key:\"min\",value:function(t,e,n,i){var r=t;return e<r&&(r=e),n<r&&(r=n),i<r&&(r=i),r}},{key:\"clamp\",value:function(){if(\"number\"==typeof arguments[2]&&\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var t=arguments[0],e=arguments[1],n=arguments[2];return t<e?e:t>n?n:t}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var i=arguments[0],r=arguments[1],s=arguments[2];return i<r?r:i>s?s:i}}},{key:\"wrap\",value:function(t,e){return t<0?e- -t%e:t%e}},{key:\"max\",value:function(){if(3===arguments.length){var t=arguments[1],e=arguments[2],n=arguments[0];return t>n&&(n=t),e>n&&(n=e),n}if(4===arguments.length){var i=arguments[1],r=arguments[2],s=arguments[3],a=arguments[0];return i>a&&(a=i),r>a&&(a=r),s>a&&(a=s),a}}},{key:\"average\",value:function(t,e){return(t+e)/2}}])}();kt.LOG_10=Math.log(10);var xt=function(){function t(){n(this,t)}return s(t,null,[{key:\"segmentToSegment\",value:function(e,n,i,r){if(e.equals(n))return t.pointToSegment(e,i,r);if(i.equals(r))return t.pointToSegment(r,e,n);var s=!1;if(U.intersects(e,n,i,r)){var a=(n.x-e.x)*(r.y-i.y)-(n.y-e.y)*(r.x-i.x);if(0===a)s=!0;else{var o=(e.y-i.y)*(r.x-i.x)-(e.x-i.x)*(r.y-i.y),u=((e.y-i.y)*(n.x-e.x)-(e.x-i.x)*(n.y-e.y))/a,l=o/a;(l<0||l>1||u<0||u>1)&&(s=!0)}}else s=!0;return s?kt.min(t.pointToSegment(e,i,r),t.pointToSegment(n,i,r),t.pointToSegment(i,e,n),t.pointToSegment(r,e,n)):0}},{key:\"pointToSegment\",value:function(t,e,n){if(e.x===n.x&&e.y===n.y)return t.distance(e);var i=(n.x-e.x)*(n.x-e.x)+(n.y-e.y)*(n.y-e.y),r=((t.x-e.x)*(n.x-e.x)+(t.y-e.y)*(n.y-e.y))/i;if(r<=0)return t.distance(e);if(r>=1)return t.distance(n);var s=((e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y))/i;return Math.abs(s)*Math.sqrt(i)}},{key:\"pointToLinePerpendicular\",value:function(t,e,n){var i=(n.x-e.x)*(n.x-e.x)+(n.y-e.y)*(n.y-e.y),r=((e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y))/i;return Math.abs(r)*Math.sqrt(i)}},{key:\"pointToSegmentString\",value:function(e,n){if(0===n.length)throw new m(\"Line array must contain at least one vertex\");for(var i=e.distance(n[0]),r=0;r<n.length-1;r++){var s=t.pointToSegment(e,n[r],n[r+1]);s<i&&(i=s)}return i}}])}(),It=function(){return s((function t(){n(this,t)}),[{key:\"create\",value:function(){if(1===arguments.length)arguments[0]instanceof Array||rt(arguments[0],ht);else if(2===arguments.length);else if(3===arguments.length){var t=arguments[0],e=arguments[1];return this.create(t,e)}}}])}(),Et=function(){return s((function t(){n(this,t)}),[{key:\"filter\",value:function(t){}}])}(),Nt=function(){return s((function t(){n(this,t)}),null,[{key:\"ofLine\",value:function(t){var e=t.size();if(e<=1)return 0;var n=0,i=new X;t.getCoordinate(0,i);for(var r=i.x,s=i.y,a=1;a<e;a++){t.getCoordinate(a,i);var o=i.x,u=i.y,l=o-r,h=u-s;n+=Math.sqrt(l*l+h*h),r=o,s=u}return n}}])}(),Tt=s((function t(){n(this,t)})),St=function(){function t(){n(this,t)}return s(t,null,[{key:\"copyCoord\",value:function(t,e,n,i){for(var r=Math.min(t.getDimension(),n.getDimension()),s=0;s<r;s++)n.setOrdinate(i,s,t.getOrdinate(e,s))}},{key:\"isRing\",value:function(t){var e=t.size();return 0===e||!(e<=3)&&(t.getOrdinate(0,ht.X)===t.getOrdinate(e-1,ht.X)&&t.getOrdinate(0,ht.Y)===t.getOrdinate(e-1,ht.Y))}},{key:\"scroll\",value:function(){if(2===arguments.length){if(rt(arguments[0],ht)&&Number.isInteger(arguments[1])){var e=arguments[0],n=arguments[1];t.scroll(e,n,t.isRing(e))}else if(rt(arguments[0],ht)&&arguments[1]instanceof X){var i=arguments[0],r=arguments[1],s=t.indexOf(r,i);if(s<=0)return null;t.scroll(i,s)}}else if(3===arguments.length){var a=arguments[0],o=arguments[1],u=arguments[2];if(o<=0)return null;for(var l=a.copy(),h=u?a.size()-1:a.size(),c=0;c<h;c++)for(var f=0;f<a.getDimension();f++)a.setOrdinate(c,f,l.getOrdinate((o+c)%h,f));if(u)for(var g=0;g<a.getDimension();g++)a.setOrdinate(h,g,a.getOrdinate(0,g))}}},{key:\"isEqual\",value:function(t,e){var n=t.size();if(n!==e.size())return!1;for(var i=Math.min(t.getDimension(),e.getDimension()),r=0;r<n;r++)for(var s=0;s<i;s++){var a=t.getOrdinate(r,s),o=e.getOrdinate(r,s);if(t.getOrdinate(r,s)!==e.getOrdinate(r,s)&&(!A.isNaN(a)||!A.isNaN(o)))return!1}return!0}},{key:\"minCoordinateIndex\",value:function(){if(1===arguments.length){var e=arguments[0];return t.minCoordinateIndex(e,0,e.size()-1)}if(3===arguments.length){for(var n=arguments[0],i=arguments[2],r=-1,s=null,a=arguments[1];a<=i;a++){var o=n.getCoordinate(a);(null===s||s.compareTo(o)>0)&&(s=o,r=a)}return r}}},{key:\"extend\",value:function(e,n,i){var r=e.create(i,n.getDimension()),s=n.size();if(t.copy(n,0,r,0,s),s>0)for(var a=s;a<i;a++)t.copy(n,s-1,r,a,1);return r}},{key:\"reverse\",value:function(e){for(var n=e.size()-1,i=Math.trunc(n/2),r=0;r<=i;r++)t.swap(e,r,n-r)}},{key:\"swap\",value:function(t,e,n){if(e===n)return null;for(var i=0;i<t.getDimension();i++){var r=t.getOrdinate(e,i);t.setOrdinate(e,i,t.getOrdinate(n,i)),t.setOrdinate(n,i,r)}}},{key:\"copy\",value:function(e,n,i,r,s){for(var a=0;a<s;a++)t.copyCoord(e,n+a,i,r+a)}},{key:\"ensureValidRing\",value:function(e,n){var i=n.size();return 0===i?n:i<=3?t.createClosedRing(e,n,4):n.getOrdinate(0,ht.X)===n.getOrdinate(i-1,ht.X)&&n.getOrdinate(0,ht.Y)===n.getOrdinate(i-1,ht.Y)?n:t.createClosedRing(e,n,i+1)}},{key:\"indexOf\",value:function(t,e){for(var n=0;n<e.size();n++)if(t.x===e.getOrdinate(n,ht.X)&&t.y===e.getOrdinate(n,ht.Y))return n;return-1}},{key:\"createClosedRing\",value:function(e,n,i){var r=e.create(i,n.getDimension()),s=n.size();t.copy(n,0,r,0,s);for(var a=s;a<i;a++)t.copy(n,0,r,a,1);return r}},{key:\"minCoordinate\",value:function(t){for(var e=null,n=0;n<t.size();n++){var i=t.getCoordinate(n);(null===e||e.compareTo(i)>0)&&(e=i)}return e}}])}(),Lt=function(){function t(){n(this,t)}return s(t,null,[{key:\"toDimensionSymbol\",value:function(e){switch(e){case t.FALSE:return t.SYM_FALSE;case t.TRUE:return t.SYM_TRUE;case t.DONTCARE:return t.SYM_DONTCARE;case t.P:return t.SYM_P;case t.L:return t.SYM_L;case t.A:return t.SYM_A}throw new m(\"Unknown dimension value: \"+e)}},{key:\"toDimensionValue\",value:function(e){switch(ot.toUpperCase(e)){case t.SYM_FALSE:return t.FALSE;case t.SYM_TRUE:return t.TRUE;case t.SYM_DONTCARE:return t.DONTCARE;case t.SYM_P:return t.P;case t.SYM_L:return t.L;case t.SYM_A:return t.A}throw new m(\"Unknown dimension symbol: \"+e)}}])}();Lt.P=0,Lt.L=1,Lt.A=2,Lt.FALSE=-1,Lt.TRUE=-2,Lt.DONTCARE=-3,Lt.SYM_FALSE=\"F\",Lt.SYM_TRUE=\"T\",Lt.SYM_DONTCARE=\"*\",Lt.SYM_P=\"0\",Lt.SYM_L=\"1\",Lt.SYM_A=\"2\";var Ct=function(){return s((function t(){n(this,t)}),[{key:\"filter\",value:function(t){}}])}(),Rt=function(){return s((function t(){n(this,t)}),[{key:\"filter\",value:function(t,e){}},{key:\"isDone\",value:function(){}},{key:\"isGeometryChanged\",value:function(){}}])}(),wt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"computeEnvelopeInternal\",value:function(){return this.isEmpty()?new U:this._points.expandEnvelope(new U)}},{key:\"isRing\",value:function(){return this.isClosed()&&this.isSimple()}},{key:\"getCoordinates\",value:function(){return this._points.toCoordinateArray()}},{key:\"copyInternal\",value:function(){return new i(this._points.copy(),this._factory)}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];if(!this.isEquivalentClass(t))return!1;var n=t;if(this._points.size()!==n._points.size())return!1;for(var r=0;r<this._points.size();r++)if(!this.equal(this._points.getCoordinate(r),n._points.getCoordinate(r),e))return!1;return!0}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"normalize\",value:function(){for(var t=0;t<Math.trunc(this._points.size()/2);t++){var e=this._points.size()-1-t;if(!this._points.getCoordinate(t).equals(this._points.getCoordinate(e))){if(this._points.getCoordinate(t).compareTo(this._points.getCoordinate(e))>0){var n=this._points.copy();St.reverse(n),this._points=n}return null}}}},{key:\"getCoordinate\",value:function(){return this.isEmpty()?null:this._points.getCoordinate(0)}},{key:\"getBoundaryDimension\",value:function(){return this.isClosed()?Lt.FALSE:0}},{key:\"isClosed\",value:function(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))}},{key:\"reverseInternal\",value:function(){var t=this._points.copy();return St.reverse(t),this.getFactory().createLineString(t)}},{key:\"getEndPoint\",value:function(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_LINESTRING}},{key:\"getDimension\",value:function(){return 1}},{key:\"getLength\",value:function(){return Nt.ofLine(this._points)}},{key:\"getNumPoints\",value:function(){return this._points.size()}},{key:\"compareToSameClass\",value:function(){if(1===arguments.length){for(var t=arguments[0],e=0,n=0;e<this._points.size()&&n<t._points.size();){var i=this._points.getCoordinate(e).compareTo(t._points.getCoordinate(n));if(0!==i)return i;e++,n++}return e<this._points.size()?1:n<t._points.size()?-1:0}if(2===arguments.length){var r=arguments[0];return arguments[1].compare(this._points,r._points)}}},{key:\"apply\",value:function(){if(rt(arguments[0],Et))for(var t=arguments[0],e=0;e<this._points.size();e++)t.filter(this._points.getCoordinate(e));else if(rt(arguments[0],Rt)){var n=arguments[0];if(0===this._points.size())return null;for(var i=0;i<this._points.size()&&(n.filter(this._points,i),!n.isDone());i++);n.isGeometryChanged()&&this.geometryChanged()}else if(rt(arguments[0],Ct)){arguments[0].filter(this)}else if(rt(arguments[0],k)){arguments[0].filter(this)}}},{key:\"getBoundary\",value:function(){throw new W}},{key:\"isEquivalentClass\",value:function(t){return t instanceof i}},{key:\"getCoordinateN\",value:function(t){return this._points.getCoordinate(t)}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_LINESTRING}},{key:\"getCoordinateSequence\",value:function(){return this._points}},{key:\"isEmpty\",value:function(){return 0===this._points.size()}},{key:\"init\",value:function(t){if(null===t&&(t=this.getFactory().getCoordinateSequenceFactory().create([])),1===t.size())throw new m(\"Invalid number of points in LineString (found \"+t.size()+\" - must be 0 or >= 2)\");this._points=t}},{key:\"isCoordinate\",value:function(t){for(var e=0;e<this._points.size();e++)if(this._points.getCoordinate(e).equals(t))return!0;return!1}},{key:\"getStartPoint\",value:function(){return this.isEmpty()?null:this.getPointN(0)}},{key:\"getPointN\",value:function(t){return this.getFactory().createPoint(this._points.getCoordinate(t))}},{key:\"interfaces_\",get:function(){return[Tt]}}],[{key:\"constructor_\",value:function(){if(this._points=null,0===arguments.length);else if(2===arguments.length){var t=arguments[0],e=arguments[1];V.constructor_.call(this,e),this.init(t)}}}])}(V),Ot=s((function t(){n(this,t)})),bt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"computeEnvelopeInternal\",value:function(){if(this.isEmpty())return new U;var t=new U;return t.expandToInclude(this._coordinates.getX(0),this._coordinates.getY(0)),t}},{key:\"getCoordinates\",value:function(){return this.isEmpty()?[]:[this.getCoordinate()]}},{key:\"copyInternal\",value:function(){return new i(this._coordinates.copy(),this._factory)}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&(!(!this.isEmpty()||!t.isEmpty())||this.isEmpty()===t.isEmpty()&&this.equal(t.getCoordinate(),this.getCoordinate(),e))}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"normalize\",value:function(){}},{key:\"getCoordinate\",value:function(){return 0!==this._coordinates.size()?this._coordinates.getCoordinate(0):null}},{key:\"getBoundaryDimension\",value:function(){return Lt.FALSE}},{key:\"reverseInternal\",value:function(){return this.getFactory().createPoint(this._coordinates.copy())}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_POINT}},{key:\"getDimension\",value:function(){return 0}},{key:\"getNumPoints\",value:function(){return this.isEmpty()?0:1}},{key:\"getX\",value:function(){if(null===this.getCoordinate())throw new IllegalStateException(\"getX called on empty Point\");return this.getCoordinate().x}},{key:\"compareToSameClass\",value:function(){if(1===arguments.length){var t=arguments[0];return this.getCoordinate().compareTo(t.getCoordinate())}if(2===arguments.length){var e=arguments[0];return arguments[1].compare(this._coordinates,e._coordinates)}}},{key:\"apply\",value:function(){if(rt(arguments[0],Et)){var t=arguments[0];if(this.isEmpty())return null;t.filter(this.getCoordinate())}else if(rt(arguments[0],Rt)){var e=arguments[0];if(this.isEmpty())return null;e.filter(this._coordinates,0),e.isGeometryChanged()&&this.geometryChanged()}else if(rt(arguments[0],Ct)){arguments[0].filter(this)}else if(rt(arguments[0],k)){arguments[0].filter(this)}}},{key:\"getBoundary\",value:function(){return this.getFactory().createGeometryCollection()}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_POINT}},{key:\"getCoordinateSequence\",value:function(){return this._coordinates}},{key:\"getY\",value:function(){if(null===this.getCoordinate())throw new IllegalStateException(\"getY called on empty Point\");return this.getCoordinate().y}},{key:\"isEmpty\",value:function(){return 0===this._coordinates.size()}},{key:\"init\",value:function(t){null===t&&(t=this.getFactory().getCoordinateSequenceFactory().create([])),G.isTrue(t.size()<=1),this._coordinates=t}},{key:\"isSimple\",value:function(){return!0}},{key:\"interfaces_\",get:function(){return[Ot]}}],[{key:\"constructor_\",value:function(){this._coordinates=null;var t=arguments[0],e=arguments[1];V.constructor_.call(this,e),this.init(t)}}])}(V),Mt=function(){function t(){n(this,t)}return s(t,null,[{key:\"ofRing\",value:function(){if(arguments[0]instanceof Array){var e=arguments[0];return Math.abs(t.ofRingSigned(e))}if(rt(arguments[0],ht)){var n=arguments[0];return Math.abs(t.ofRingSigned(n))}}},{key:\"ofRingSigned\",value:function(){if(arguments[0]instanceof Array){var t=arguments[0];if(t.length<3)return 0;for(var e=0,n=t[0].x,i=1;i<t.length-1;i++){var r=t[i].x-n,s=t[i+1].y;e+=r*(t[i-1].y-s)}return e/2}if(rt(arguments[0],ht)){var a=arguments[0],o=a.size();if(o<3)return 0;var u=new X,l=new X,h=new X;a.getCoordinate(0,l),a.getCoordinate(1,h);var c=l.x;h.x-=c;for(var f=0,g=1;g<o-1;g++)u.y=l.y,l.x=h.x,l.y=h.y,a.getCoordinate(g+1,h),h.x-=c,f+=l.x*(u.y-h.y);return f/2}}}])}(),At=function(){return s((function t(){n(this,t)}),null,[{key:\"sort\",value:function(){var t=arguments,e=arguments[0];if(1===arguments.length)e.sort((function(t,e){return t.compareTo(e)}));else if(2===arguments.length)e.sort((function(e,n){return t[1].compare(e,n)}));else if(3===arguments.length){var n=e.slice(arguments[1],arguments[2]);n.sort();var i=e.slice(0,arguments[1]).concat(n,e.slice(arguments[2],e.length));e.splice(0,e.length);var r,s=a(i);try{for(s.s();!(r=s.n()).done;){var o=r.value;e.push(o)}}catch(t){s.e(t)}finally{s.f()}}else if(4===arguments.length){var u=e.slice(arguments[1],arguments[2]);u.sort((function(e,n){return t[3].compare(e,n)}));var l=e.slice(0,arguments[1]).concat(u,e.slice(arguments[2],e.length));e.splice(0,e.length);var h,c=a(l);try{for(c.s();!(h=c.n()).done;){var f=h.value;e.push(f)}}catch(t){c.e(t)}finally{c.f()}}}},{key:\"asList\",value:function(t){var e,n=new yt,i=a(t);try{for(i.s();!(e=i.n()).done;){var r=e.value;n.add(r)}}catch(t){i.e(t)}finally{i.f()}return n}},{key:\"copyOf\",value:function(t,e){return t.slice(0,e)}}])}(),Pt=s((function t(){n(this,t)})),Dt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"computeEnvelopeInternal\",value:function(){return this._shell.getEnvelopeInternal()}},{key:\"getCoordinates\",value:function(){if(this.isEmpty())return[];for(var t=new Array(this.getNumPoints()).fill(null),e=-1,n=this._shell.getCoordinates(),i=0;i<n.length;i++)t[++e]=n[i];for(var r=0;r<this._holes.length;r++)for(var s=this._holes[r].getCoordinates(),a=0;a<s.length;a++)t[++e]=s[a];return t}},{key:\"getArea\",value:function(){var t=0;t+=Mt.ofRing(this._shell.getCoordinateSequence());for(var e=0;e<this._holes.length;e++)t-=Mt.ofRing(this._holes[e].getCoordinateSequence());return t}},{key:\"copyInternal\",value:function(){for(var t=this._shell.copy(),e=new Array(this._holes.length).fill(null),n=0;n<this._holes.length;n++)e[n]=this._holes[n].copy();return new i(t,e,this._factory)}},{key:\"isRectangle\",value:function(){if(0!==this.getNumInteriorRing())return!1;if(null===this._shell)return!1;if(5!==this._shell.getNumPoints())return!1;for(var t=this._shell.getCoordinateSequence(),e=this.getEnvelopeInternal(),n=0;n<5;n++){var i=t.getX(n);if(i!==e.getMinX()&&i!==e.getMaxX())return!1;var r=t.getY(n);if(r!==e.getMinY()&&r!==e.getMaxY())return!1}for(var s=t.getX(0),a=t.getY(0),o=1;o<=4;o++){var u=t.getX(o),l=t.getY(o);if(u!==s===(l!==a))return!1;s=u,a=l}return!0}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];if(!this.isEquivalentClass(t))return!1;var n=t,r=this._shell,s=n._shell;if(!r.equalsExact(s,e))return!1;if(this._holes.length!==n._holes.length)return!1;for(var a=0;a<this._holes.length;a++)if(!this._holes[a].equalsExact(n._holes[a],e))return!1;return!0}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"normalize\",value:function(){if(0===arguments.length){this._shell=this.normalized(this._shell,!0);for(var t=0;t<this._holes.length;t++)this._holes[t]=this.normalized(this._holes[t],!1);At.sort(this._holes)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];if(e.isEmpty())return null;var i=e.getCoordinateSequence(),r=St.minCoordinateIndex(i,0,i.size()-2);St.scroll(i,r,!0),ct.isCCW(i)===n&&St.reverse(i)}}},{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 t=this.getExteriorRing().reverse(),e=new Array(this.getNumInteriorRing()).fill(null),n=0;n<e.length;n++)e[n]=this.getInteriorRingN(n).reverse();return this.getFactory().createPolygon(t,e)}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_POLYGON}},{key:\"getDimension\",value:function(){return 2}},{key:\"getLength\",value:function(){var t=0;t+=this._shell.getLength();for(var e=0;e<this._holes.length;e++)t+=this._holes[e].getLength();return t}},{key:\"getNumPoints\",value:function(){for(var t=this._shell.getNumPoints(),e=0;e<this._holes.length;e++)t+=this._holes[e].getNumPoints();return t}},{key:\"convexHull\",value:function(){return this.getExteriorRing().convexHull()}},{key:\"normalized\",value:function(t,e){var n=t.copy();return this.normalize(n,e),n}},{key:\"compareToSameClass\",value:function(){if(1===arguments.length){var t=arguments[0],e=this._shell,n=t._shell;return e.compareToSameClass(n)}if(2===arguments.length){var i=arguments[1],r=arguments[0],s=this._shell,a=r._shell,o=s.compareToSameClass(a,i);if(0!==o)return o;for(var u=this.getNumInteriorRing(),l=r.getNumInteriorRing(),h=0;h<u&&h<l;){var c=this.getInteriorRingN(h),f=r.getInteriorRingN(h),g=c.compareToSameClass(f,i);if(0!==g)return g;h++}return h<u?1:h<l?-1:0}}},{key:\"apply\",value:function(){if(rt(arguments[0],Et)){var t=arguments[0];this._shell.apply(t);for(var e=0;e<this._holes.length;e++)this._holes[e].apply(t)}else if(rt(arguments[0],Rt)){var n=arguments[0];if(this._shell.apply(n),!n.isDone())for(var i=0;i<this._holes.length&&(this._holes[i].apply(n),!n.isDone());i++);n.isGeometryChanged()&&this.geometryChanged()}else if(rt(arguments[0],Ct)){arguments[0].filter(this)}else if(rt(arguments[0],k)){var r=arguments[0];r.filter(this),this._shell.apply(r);for(var s=0;s<this._holes.length;s++)this._holes[s].apply(r)}}},{key:\"getBoundary\",value:function(){if(this.isEmpty())return this.getFactory().createMultiLineString();var t=new Array(this._holes.length+1).fill(null);t[0]=this._shell;for(var e=0;e<this._holes.length;e++)t[e+1]=this._holes[e];return t.length<=1?this.getFactory().createLinearRing(t[0].getCoordinateSequence()):this.getFactory().createMultiLineString(t)}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_POLYGON}},{key:\"getExteriorRing\",value:function(){return this._shell}},{key:\"isEmpty\",value:function(){return this._shell.isEmpty()}},{key:\"getInteriorRingN\",value:function(t){return this._holes[t]}},{key:\"interfaces_\",get:function(){return[Pt]}}],[{key:\"constructor_\",value:function(){this._shell=null,this._holes=null;var t=arguments[0],e=arguments[1],n=arguments[2];if(V.constructor_.call(this,n),null===t&&(t=this.getFactory().createLinearRing()),null===e&&(e=[]),V.hasNullElements(e))throw new m(\"holes must not contain null elements\");if(t.isEmpty()&&V.hasNonEmptyElements(e))throw new m(\"shell is empty but holes are not\");this._shell=t,this._holes=e}}])}(V),Ft=function(t){function i(){return n(this,i),e(this,i,arguments)}return l(i,t),s(i)}(K),Gt=function(t){function i(t){var r;return n(this,i),(r=e(this,i)).array=[],t instanceof Z&&r.addAll(t),r}return l(i,t),s(i,[{key:\"contains\",value:function(t){var e,n=a(this.array);try{for(n.s();!(e=n.n()).done;){if(0===e.value.compareTo(t))return!0}}catch(t){n.e(t)}finally{n.f()}return!1}},{key:\"add\",value:function(t){if(this.contains(t))return!1;for(var e=0,n=this.array.length;e<n;e++){if(1===this.array[e].compareTo(t))return!!this.array.splice(e,0,t)}return this.array.push(t),!0}},{key:\"addAll\",value:function(t){var e,n=a(t);try{for(n.s();!(e=n.n()).done;){var i=e.value;this.add(i)}}catch(t){n.e(t)}finally{n.f()}return!0}},{key:\"remove\",value:function(){throw new W}},{key:\"size\",value:function(){return this.array.length}},{key:\"isEmpty\",value:function(){return 0===this.array.length}},{key:\"toArray\",value:function(){return this.array.slice()}},{key:\"iterator\",value:function(){return new qt(this.array)}}])}(Ft),qt=function(){return s((function t(e){n(this,t),this.array=e,this.position=0}),[{key:\"next\",value:function(){if(this.position===this.array.length)throw new j;return this.array[this.position++]}},{key:\"hasNext\",value:function(){return this.position<this.array.length}},{key:\"remove\",value:function(){throw new W}}])}(),Yt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"computeEnvelopeInternal\",value:function(){for(var t=new U,e=0;e<this._geometries.length;e++)t.expandToInclude(this._geometries[e].getEnvelopeInternal());return t}},{key:\"getGeometryN\",value:function(t){return this._geometries[t]}},{key:\"getCoordinates\",value:function(){for(var t=new Array(this.getNumPoints()).fill(null),e=-1,n=0;n<this._geometries.length;n++)for(var i=this._geometries[n].getCoordinates(),r=0;r<i.length;r++)t[++e]=i[r];return t}},{key:\"getArea\",value:function(){for(var t=0,e=0;e<this._geometries.length;e++)t+=this._geometries[e].getArea();return t}},{key:\"copyInternal\",value:function(){for(var t=new Array(this._geometries.length).fill(null),e=0;e<t.length;e++)t[e]=this._geometries[e].copy();return new i(t,this._factory)}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];if(!this.isEquivalentClass(t))return!1;var n=t;if(this._geometries.length!==n._geometries.length)return!1;for(var r=0;r<this._geometries.length;r++)if(!this._geometries[r].equalsExact(n._geometries[r],e))return!1;return!0}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"normalize\",value:function(){for(var t=0;t<this._geometries.length;t++)this._geometries[t].normalize();At.sort(this._geometries)}},{key:\"getCoordinate\",value:function(){return this.isEmpty()?null:this._geometries[0].getCoordinate()}},{key:\"getBoundaryDimension\",value:function(){for(var t=Lt.FALSE,e=0;e<this._geometries.length;e++)t=Math.max(t,this._geometries[e].getBoundaryDimension());return t}},{key:\"reverseInternal\",value:function(){for(var t=this._geometries.length,e=new yt(t),n=0;n<t;n++)e.add(this._geometries[n].reverse());return this.getFactory().buildGeometry(e)}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_GEOMETRYCOLLECTION}},{key:\"getDimension\",value:function(){for(var t=Lt.FALSE,e=0;e<this._geometries.length;e++)t=Math.max(t,this._geometries[e].getDimension());return t}},{key:\"getLength\",value:function(){for(var t=0,e=0;e<this._geometries.length;e++)t+=this._geometries[e].getLength();return t}},{key:\"getNumPoints\",value:function(){for(var t=0,e=0;e<this._geometries.length;e++)t+=this._geometries[e].getNumPoints();return t}},{key:\"getNumGeometries\",value:function(){return this._geometries.length}},{key:\"compareToSameClass\",value:function(){if(1===arguments.length){var t=arguments[0],e=new Gt(At.asList(this._geometries)),n=new Gt(At.asList(t._geometries));return this.compare(e,n)}if(2===arguments.length){for(var i=arguments[1],r=arguments[0],s=this.getNumGeometries(),a=r.getNumGeometries(),o=0;o<s&&o<a;){var u=this.getGeometryN(o),l=r.getGeometryN(o),h=u.compareToSameClass(l,i);if(0!==h)return h;o++}return o<s?1:o<a?-1:0}}},{key:\"apply\",value:function(){if(rt(arguments[0],Et))for(var t=arguments[0],e=0;e<this._geometries.length;e++)this._geometries[e].apply(t);else if(rt(arguments[0],Rt)){var n=arguments[0];if(0===this._geometries.length)return null;for(var i=0;i<this._geometries.length&&(this._geometries[i].apply(n),!n.isDone());i++);n.isGeometryChanged()&&this.geometryChanged()}else if(rt(arguments[0],Ct)){var r=arguments[0];r.filter(this);for(var s=0;s<this._geometries.length;s++)this._geometries[s].apply(r)}else if(rt(arguments[0],k)){var a=arguments[0];a.filter(this);for(var o=0;o<this._geometries.length;o++)this._geometries[o].apply(a)}}},{key:\"getBoundary\",value:function(){return V.checkNotGeometryCollection(this),G.shouldNeverReachHere(),null}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_GEOMETRYCOLLECTION}},{key:\"isEmpty\",value:function(){for(var t=0;t<this._geometries.length;t++)if(!this._geometries[t].isEmpty())return!1;return!0}}],[{key:\"constructor_\",value:function(){if(this._geometries=null,0===arguments.length);else if(2===arguments.length){var t=arguments[0],e=arguments[1];if(V.constructor_.call(this,e),null===t&&(t=[]),V.hasNullElements(t))throw new m(\"geometries must not contain null elements\");this._geometries=t}}}])}(V),zt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"copyInternal\",value:function(){for(var t=new Array(this._geometries.length).fill(null),e=0;e<t.length;e++)t[e]=this._geometries[e].copy();return new i(t,this._factory)}},{key:\"isValid\",value:function(){return!0}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&f(i,\"equalsExact\",this,1).call(this,t,e)}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"getCoordinate\",value:function(){if(1===arguments.length&&Number.isInteger(arguments[0])){var t=arguments[0];return this._geometries[t].getCoordinate()}return f(i,\"getCoordinate\",this,1).apply(this,arguments)}},{key:\"getBoundaryDimension\",value:function(){return Lt.FALSE}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_MULTIPOINT}},{key:\"getDimension\",value:function(){return 0}},{key:\"getBoundary\",value:function(){return this.getFactory().createGeometryCollection()}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_MULTIPOINT}},{key:\"interfaces_\",get:function(){return[Ot]}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];Yt.constructor_.call(this,t,e)}}])}(Yt),Xt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"copyInternal\",value:function(){return new i(this._points.copy(),this._factory)}},{key:\"getBoundaryDimension\",value:function(){return Lt.FALSE}},{key:\"isClosed\",value:function(){return!!this.isEmpty()||f(i,\"isClosed\",this,1).call(this)}},{key:\"reverseInternal\",value:function(){var t=this._points.copy();return St.reverse(t),this.getFactory().createLinearRing(t)}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_LINEARRING}},{key:\"validateConstruction\",value:function(){if(!this.isEmpty()&&!f(i,\"isClosed\",this,1).call(this))throw new m(\"Points of LinearRing do not form a closed linestring\");if(this.getCoordinateSequence().size()>=1&&this.getCoordinateSequence().size()<i.MINIMUM_VALID_SIZE)throw new m(\"Invalid number of points in LinearRing (found \"+this.getCoordinateSequence().size()+\" - must be 0 or >= 4)\")}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_LINEARRING}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];wt.constructor_.call(this,t,e),this.validateConstruction()}}])}(wt);Xt.MINIMUM_VALID_SIZE=4;var Bt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"setOrdinate\",value:function(t,e){switch(t){case i.X:this.x=e;break;case i.Y:this.y=e;break;default:throw new m(\"Invalid ordinate index: \"+t)}}},{key:\"getZ\",value:function(){return X.NULL_ORDINATE}},{key:\"getOrdinate\",value:function(t){switch(t){case i.X:return this.x;case i.Y:return this.y}throw new m(\"Invalid ordinate index: \"+t)}},{key:\"setZ\",value:function(t){throw new m(\"CoordinateXY dimension 2 does not support z-ordinate\")}},{key:\"copy\",value:function(){return new i(this)}},{key:\"toString\",value:function(){return\"(\"+this.x+\", \"+this.y+\")\"}},{key:\"setCoordinate\",value:function(t){this.x=t.x,this.y=t.y,this.z=t.getZ()}}],[{key:\"constructor_\",value:function(){if(0===arguments.length)X.constructor_.call(this);else if(1===arguments.length){if(arguments[0]instanceof i){var t=arguments[0];X.constructor_.call(this,t.x,t.y)}else if(arguments[0]instanceof X){var e=arguments[0];X.constructor_.call(this,e.x,e.y)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];X.constructor_.call(this,n,r,X.NULL_ORDINATE)}}}])}(X);Bt.X=0,Bt.Y=1,Bt.Z=-1,Bt.M=-1;var Ut=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getM\",value:function(){return this._m}},{key:\"setOrdinate\",value:function(t,e){switch(t){case i.X:this.x=e;break;case i.Y:this.y=e;break;case i.M:this._m=e;break;default:throw new m(\"Invalid ordinate index: \"+t)}}},{key:\"setM\",value:function(t){this._m=t}},{key:\"getZ\",value:function(){return X.NULL_ORDINATE}},{key:\"getOrdinate\",value:function(t){switch(t){case i.X:return this.x;case i.Y:return this.y;case i.M:return this._m}throw new m(\"Invalid ordinate index: \"+t)}},{key:\"setZ\",value:function(t){throw new m(\"CoordinateXY dimension 2 does not support z-ordinate\")}},{key:\"copy\",value:function(){return new i(this)}},{key:\"toString\",value:function(){return\"(\"+this.x+\", \"+this.y+\" m=\"+this.getM()+\")\"}},{key:\"setCoordinate\",value:function(t){this.x=t.x,this.y=t.y,this.z=t.getZ(),this._m=t.getM()}}],[{key:\"constructor_\",value:function(){if(this._m=null,0===arguments.length)X.constructor_.call(this),this._m=0;else if(1===arguments.length){if(arguments[0]instanceof i){var t=arguments[0];X.constructor_.call(this,t.x,t.y),this._m=t._m}else if(arguments[0]instanceof X){var e=arguments[0];X.constructor_.call(this,e.x,e.y),this._m=this.getM()}}else if(3===arguments.length){var n=arguments[0],r=arguments[1],s=arguments[2];X.constructor_.call(this,n,r,X.NULL_ORDINATE),this._m=s}}}])}(X);Ut.X=0,Ut.Y=1,Ut.Z=-1,Ut.M=2;var Vt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getM\",value:function(){return this._m}},{key:\"setOrdinate\",value:function(t,e){switch(t){case X.X:this.x=e;break;case X.Y:this.y=e;break;case X.Z:this.z=e;break;case X.M:this._m=e;break;default:throw new m(\"Invalid ordinate index: \"+t)}}},{key:\"setM\",value:function(t){this._m=t}},{key:\"getOrdinate\",value:function(t){switch(t){case X.X:return this.x;case X.Y:return this.y;case X.Z:return this.getZ();case X.M:return this.getM()}throw new m(\"Invalid ordinate index: \"+t)}},{key:\"copy\",value:function(){return new i(this)}},{key:\"toString\",value:function(){return\"(\"+this.x+\", \"+this.y+\", \"+this.getZ()+\" m=\"+this.getM()+\")\"}},{key:\"setCoordinate\",value:function(t){this.x=t.x,this.y=t.y,this.z=t.getZ(),this._m=t.getM()}}],[{key:\"constructor_\",value:function(){if(this._m=null,0===arguments.length)X.constructor_.call(this),this._m=0;else if(1===arguments.length){if(arguments[0]instanceof i){var t=arguments[0];X.constructor_.call(this,t),this._m=t._m}else if(arguments[0]instanceof X){var e=arguments[0];X.constructor_.call(this,e),this._m=this.getM()}}else if(4===arguments.length){var n=arguments[0],r=arguments[1],s=arguments[2],a=arguments[3];X.constructor_.call(this,n,r,s),this._m=a}}}])}(X),Ht=function(){function t(){n(this,t)}return s(t,null,[{key:\"measures\",value:function(t){return t instanceof Bt?0:t instanceof Ut||t instanceof Vt?1:0}},{key:\"dimension\",value:function(t){return t instanceof Bt?2:t instanceof Ut?3:t instanceof Vt?4:3}},{key:\"create\",value:function(){if(1===arguments.length){var e=arguments[0];return t.create(e,0)}if(2===arguments.length){var n=arguments[0],i=arguments[1];return 2===n?new Bt:3===n&&0===i?new X:3===n&&1===i?new Ut:4===n&&1===i?new Vt:new X}}}])}(),Zt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getCoordinate\",value:function(t){return this.get(t)}},{key:\"addAll\",value:function(){if(2===arguments.length&&\"boolean\"==typeof arguments[1]&&rt(arguments[0],Z)){for(var t=arguments[1],e=!1,n=arguments[0].iterator();n.hasNext();)this.add(n.next(),t),e=!0;return e}return f(i,\"addAll\",this,1).apply(this,arguments)}},{key:\"clone\",value:function(){for(var t=f(i,\"clone\",this,1).call(this),e=0;e<this.size();e++)t.add(e,this.get(e).clone());return t}},{key:\"toCoordinateArray\",value:function(){if(0===arguments.length)return this.toArray(i.coordArrayType);if(1===arguments.length){if(arguments[0])return this.toArray(i.coordArrayType);for(var t=this.size(),e=new Array(t).fill(null),n=0;n<t;n++)e[n]=this.get(t-n-1);return e}}},{key:\"add\",value:function(){if(1===arguments.length){var t=arguments[0];return f(i,\"add\",this,1).call(this,t)}if(2===arguments.length){if(arguments[0]instanceof Array&&\"boolean\"==typeof arguments[1]){var e=arguments[0],n=arguments[1];return this.add(e,n,!0),!0}if(arguments[0]instanceof X&&\"boolean\"==typeof arguments[1]){var r=arguments[0];if(!arguments[1]&&this.size()>=1)if(this.get(this.size()-1).equals2D(r))return null;f(i,\"add\",this,1).call(this,r)}else if(arguments[0]instanceof Object&&\"boolean\"==typeof arguments[1]){var s=arguments[0],a=arguments[1];return this.add(s,a),!0}}else if(3===arguments.length){if(\"boolean\"==typeof arguments[2]&&arguments[0]instanceof Array&&\"boolean\"==typeof arguments[1]){var o=arguments[0],u=arguments[1];if(arguments[2])for(var l=0;l<o.length;l++)this.add(o[l],u);else for(var h=o.length-1;h>=0;h--)this.add(o[h],u);return!0}if(\"boolean\"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof X){var c=arguments[0],g=arguments[1];if(!arguments[2]){var v=this.size();if(v>0){if(c>0)if(this.get(c-1).equals2D(g))return null;if(c<v)if(this.get(c).equals2D(g))return null}}f(i,\"add\",this,1).call(this,c,g)}}else if(4===arguments.length){var y=arguments[0],d=arguments[1],_=arguments[2],p=arguments[3],m=1;_>p&&(m=-1);for(var k=_;k!==p;k+=m)this.add(y[k],d);return!0}}},{key:\"closeRing\",value:function(){if(this.size()>0){var t=this.get(0).copy();this.add(t,!1)}}}],[{key:\"constructor_\",value:function(){if(0===arguments.length);else if(1===arguments.length){var t=arguments[0];this.ensureCapacity(t.length),this.add(t,!0)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this.ensureCapacity(e.length),this.add(e,n)}}}])}(yt);Zt.coordArrayType=new Array(0).fill(null);var jt=function(){function t(){n(this,t)}return s(t,null,[{key:\"isRing\",value:function(t){return!(t.length<4)&&!!t[0].equals2D(t[t.length-1])}},{key:\"ptNotInList\",value:function(e,n){for(var i=0;i<e.length;i++){var r=e[i];if(t.indexOf(r,n)<0)return r}return null}},{key:\"scroll\",value:function(e,n){var i=t.indexOf(n,e);if(i<0)return null;var r=new Array(e.length).fill(null);mt.arraycopy(e,i,r,0,e.length-i),mt.arraycopy(e,0,r,e.length-i,i),mt.arraycopy(r,0,e,0,e.length)}},{key:\"equals\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];if(t===e)return!0;if(null===t||null===e)return!1;if(t.length!==e.length)return!1;for(var n=0;n<t.length;n++)if(!t[n].equals(e[n]))return!1;return!0}if(3===arguments.length){var i=arguments[0],r=arguments[1],s=arguments[2];if(i===r)return!0;if(null===i||null===r)return!1;if(i.length!==r.length)return!1;for(var a=0;a<i.length;a++)if(0!==s.compare(i[a],r[a]))return!1;return!0}}},{key:\"intersection\",value:function(t,e){for(var n=new Zt,i=0;i<t.length;i++)e.intersects(t[i])&&n.add(t[i],!0);return n.toCoordinateArray()}},{key:\"measures\",value:function(t){if(null===t||0===t.length)return 0;var e,n=0,i=a(t);try{for(i.s();!(e=i.n()).done;){var r=e.value;n=Math.max(n,Ht.measures(r))}}catch(t){i.e(t)}finally{i.f()}return n}},{key:\"hasRepeatedPoints\",value:function(t){for(var e=1;e<t.length;e++)if(t[e-1].equals(t[e]))return!0;return!1}},{key:\"removeRepeatedPoints\",value:function(e){return t.hasRepeatedPoints(e)?new Zt(e,!1).toCoordinateArray():e}},{key:\"reverse\",value:function(t){for(var e=t.length-1,n=Math.trunc(e/2),i=0;i<=n;i++){var r=t[i];t[i]=t[e-i],t[e-i]=r}}},{key:\"removeNull\",value:function(t){for(var e=0,n=0;n<t.length;n++)null!==t[n]&&e++;var i=new Array(e).fill(null);if(0===e)return i;for(var r=0,s=0;s<t.length;s++)null!==t[s]&&(i[r++]=t[s]);return i}},{key:\"copyDeep\",value:function(){if(1===arguments.length){for(var t=arguments[0],e=new Array(t.length).fill(null),n=0;n<t.length;n++)e[n]=t[n].copy();return e}if(5===arguments.length)for(var i=arguments[0],r=arguments[1],s=arguments[2],a=arguments[3],o=arguments[4],u=0;u<o;u++)s[a+u]=i[r+u].copy()}},{key:\"isEqualReversed\",value:function(t,e){for(var n=0;n<t.length;n++){var i=t[n],r=e[t.length-n-1];if(0!==i.compareTo(r))return!1}return!0}},{key:\"envelope\",value:function(t){for(var e=new U,n=0;n<t.length;n++)e.expandToInclude(t[n]);return e}},{key:\"toCoordinateArray\",value:function(e){return e.toArray(t.coordArrayType)}},{key:\"dimension\",value:function(t){if(null===t||0===t.length)return 3;var e,n=0,i=a(t);try{for(i.s();!(e=i.n()).done;){var r=e.value;n=Math.max(n,Ht.dimension(r))}}catch(t){i.e(t)}finally{i.f()}return n}},{key:\"atLeastNCoordinatesOrNothing\",value:function(t,e){return e.length>=t?e:[]}},{key:\"indexOf\",value:function(t,e){for(var n=0;n<e.length;n++)if(t.equals(e[n]))return n;return-1}},{key:\"increasingDirection\",value:function(t){for(var e=0;e<Math.trunc(t.length/2);e++){var n=t.length-1-e,i=t[e].compareTo(t[n]);if(0!==i)return i}return 1}},{key:\"compare\",value:function(t,e){for(var n=0;n<t.length&&n<e.length;){var i=t[n].compareTo(e[n]);if(0!==i)return i;n++}return n<e.length?-1:n<t.length?1:0}},{key:\"minCoordinate\",value:function(t){for(var e=null,n=0;n<t.length;n++)(null===e||e.compareTo(t[n])>0)&&(e=t[n]);return e}},{key:\"extract\",value:function(t,e,n){e=kt.clamp(e,0,t.length);var i=(n=kt.clamp(n,-1,t.length))-e+1;n<0&&(i=0),e>=t.length&&(i=0),n<e&&(i=0);var r=new Array(i).fill(null);if(0===i)return r;for(var s=0,a=e;a<=n;a++)r[s++]=t[a];return r}}])}(),Wt=function(){return s((function t(){n(this,t)}),[{key:\"compare\",value:function(t,e){var n=t,i=e;return jt.compare(n,i)}},{key:\"interfaces_\",get:function(){return[P]}}])}(),Kt=function(){return s((function t(){n(this,t)}),[{key:\"compare\",value:function(t,e){var n=t,i=e;if(n.length<i.length)return-1;if(n.length>i.length)return 1;if(0===n.length)return 0;var r=jt.compare(n,i);return jt.isEqualReversed(n,i)?0:r}},{key:\"OLDcompare\",value:function(t,e){var n=t,i=e;if(n.length<i.length)return-1;if(n.length>i.length)return 1;if(0===n.length)return 0;for(var r=jt.increasingDirection(n),s=jt.increasingDirection(i),a=r>0?0:n.length-1,o=s>0?0:n.length-1,u=0;u<n.length;u++){var l=n[a].compareTo(i[o]);if(0!==l)return l;a+=r,o+=s}return 0}},{key:\"interfaces_\",get:function(){return[P]}}])}();jt.ForwardComparator=Wt,jt.BidirectionalComparator=Kt,jt.coordArrayType=new Array(0).fill(null);var Jt=function(){return s((function t(e){n(this,t),this.str=e}),[{key:\"append\",value:function(t){this.str+=t}},{key:\"setCharAt\",value:function(t,e){this.str=this.str.substr(0,t)+e+this.str.substr(t+1)}},{key:\"toString\",value:function(){return this.str}}])}(),Qt=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getM\",value:function(t){return this.hasM()?this._coordinates[t].getM():A.NaN}},{key:\"setOrdinate\",value:function(t,e,n){switch(e){case ht.X:this._coordinates[t].x=n;break;case ht.Y:this._coordinates[t].y=n;break;default:this._coordinates[t].setOrdinate(e,n)}}},{key:\"getZ\",value:function(t){return this.hasZ()?this._coordinates[t].getZ():A.NaN}},{key:\"size\",value:function(){return this._coordinates.length}},{key:\"getOrdinate\",value:function(t,e){switch(e){case ht.X:return this._coordinates[t].x;case ht.Y:return this._coordinates[t].y;default:return this._coordinates[t].getOrdinate(e)}}},{key:\"getCoordinate\",value:function(){if(1===arguments.length){var t=arguments[0];return this._coordinates[t]}if(2===arguments.length){var e=arguments[0];arguments[1].setCoordinate(this._coordinates[e])}}},{key:\"getCoordinateCopy\",value:function(t){var e=this.createCoordinate();return e.setCoordinate(this._coordinates[t]),e}},{key:\"createCoordinate\",value:function(){return Ht.create(this.getDimension(),this.getMeasures())}},{key:\"getDimension\",value:function(){return this._dimension}},{key:\"getX\",value:function(t){return this._coordinates[t].x}},{key:\"getMeasures\",value:function(){return this._measures}},{key:\"expandEnvelope\",value:function(t){for(var e=0;e<this._coordinates.length;e++)t.expandToInclude(this._coordinates[e]);return t}},{key:\"copy\",value:function(){for(var e=new Array(this.size()).fill(null),n=0;n<this._coordinates.length;n++){var i=this.createCoordinate();i.setCoordinate(this._coordinates[n]),e[n]=i}return new t(e,this._dimension,this._measures)}},{key:\"toString\",value:function(){if(this._coordinates.length>0){var t=new Jt(17*this._coordinates.length);t.append(\"(\"),t.append(this._coordinates[0]);for(var e=1;e<this._coordinates.length;e++)t.append(\", \"),t.append(this._coordinates[e]);return t.append(\")\"),t.toString()}return\"()\"}},{key:\"getY\",value:function(t){return this._coordinates[t].y}},{key:\"toCoordinateArray\",value:function(){return this._coordinates}},{key:\"interfaces_\",get:function(){return[ht,E]}}],[{key:\"constructor_\",value:function(){if(this._dimension=3,this._measures=0,this._coordinates=null,1===arguments.length){if(arguments[0]instanceof Array){var e=arguments[0];t.constructor_.call(this,e,jt.dimension(e),jt.measures(e))}else if(Number.isInteger(arguments[0])){var n=arguments[0];this._coordinates=new Array(n).fill(null);for(var i=0;i<n;i++)this._coordinates[i]=new X}else if(rt(arguments[0],ht)){var r=arguments[0];if(null===r)return this._coordinates=new Array(0).fill(null),null;this._dimension=r.getDimension(),this._measures=r.getMeasures(),this._coordinates=new Array(r.size()).fill(null);for(var s=0;s<this._coordinates.length;s++)this._coordinates[s]=r.getCoordinateCopy(s)}}else if(2===arguments.length){if(arguments[0]instanceof Array&&Number.isInteger(arguments[1])){var a=arguments[0],o=arguments[1];t.constructor_.call(this,a,o,jt.measures(a))}else if(Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var u=arguments[0],l=arguments[1];this._coordinates=new Array(u).fill(null),this._dimension=l;for(var h=0;h<u;h++)this._coordinates[h]=Ht.create(l)}}else if(3===arguments.length)if(Number.isInteger(arguments[2])&&arguments[0]instanceof Array&&Number.isInteger(arguments[1])){var c=arguments[0],f=arguments[1],g=arguments[2];this._dimension=f,this._measures=g,this._coordinates=null===c?new Array(0).fill(null):c}else if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var v=arguments[0],y=arguments[1],d=arguments[2];this._coordinates=new Array(v).fill(null),this._dimension=y,this._measures=d;for(var _=0;_<v;_++)this._coordinates[_]=this.createCoordinate()}}}])}(),$t=function(){function t(){n(this,t)}return s(t,[{key:\"readResolve\",value:function(){return t.instance()}},{key:\"create\",value:function(){if(1===arguments.length){if(arguments[0]instanceof Array)return new Qt(arguments[0]);if(rt(arguments[0],ht))return new Qt(arguments[0])}else{if(2===arguments.length){var t=arguments[1];return t>3&&(t=3),t<2&&(t=2),new Qt(arguments[0],t)}if(3===arguments.length){var e=arguments[2],n=arguments[1]-e;return e>1&&(e=1),n>3&&(n=3),n<2&&(n=2),new Qt(arguments[0],n+e,e)}}}},{key:\"interfaces_\",get:function(){return[It,E]}}],[{key:\"instance\",value:function(){return t.instanceObject}}])}();$t.instanceObject=new $t;var te=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"copyInternal\",value:function(){for(var t=new Array(this._geometries.length).fill(null),e=0;e<t.length;e++)t[e]=this._geometries[e].copy();return new i(t,this._factory)}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&f(i,\"equalsExact\",this,1).call(this,t,e)}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"getBoundaryDimension\",value:function(){return 1}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_MULTIPOLYGON}},{key:\"getDimension\",value:function(){return 2}},{key:\"getBoundary\",value:function(){if(this.isEmpty())return this.getFactory().createMultiLineString();for(var t=new yt,e=0;e<this._geometries.length;e++)for(var n=this._geometries[e].getBoundary(),i=0;i<n.getNumGeometries();i++)t.add(n.getGeometryN(i));var r=new Array(t.size()).fill(null);return this.getFactory().createMultiLineString(t.toArray(r))}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_MULTIPOLYGON}},{key:\"interfaces_\",get:function(){return[Pt]}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];Yt.constructor_.call(this,t,e)}}])}(Yt),ee=function(){return s((function t(){n(this,t)}),[{key:\"get\",value:function(){}},{key:\"put\",value:function(){}},{key:\"size\",value:function(){}},{key:\"values\",value:function(){}},{key:\"entrySet\",value:function(){}}])}(),ne=function(t){function i(){var t;return n(this,i),(t=e(this,i)).map=new Map,t}return l(i,t),s(i,[{key:\"get\",value:function(t){return this.map.get(t)||null}},{key:\"put\",value:function(t,e){return this.map.set(t,e),e}},{key:\"values\",value:function(){for(var t=new yt,e=this.map.values(),n=e.next();!n.done;)t.add(n.value),n=e.next();return t}},{key:\"entrySet\",value:function(){var t=new J;return this.map.entries().forEach((function(e){return t.add(e)})),t}},{key:\"size\",value:function(){return this.map.size()}}])}(ee),ie=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"equals\",value:function(e){if(!(e instanceof t))return!1;var n=e;return this._modelType===n._modelType&&this._scale===n._scale}},{key:\"compareTo\",value:function(t){var e=t,n=this.getMaximumSignificantDigits(),i=e.getMaximumSignificantDigits();return at.compare(n,i)}},{key:\"getScale\",value:function(){return this._scale}},{key:\"isFloating\",value:function(){return this._modelType===t.FLOATING||this._modelType===t.FLOATING_SINGLE}},{key:\"getType\",value:function(){return this._modelType}},{key:\"toString\",value:function(){var e=\"UNKNOWN\";return this._modelType===t.FLOATING?e=\"Floating\":this._modelType===t.FLOATING_SINGLE?e=\"Floating-Single\":this._modelType===t.FIXED&&(e=\"Fixed (Scale=\"+this.getScale()+\")\"),e}},{key:\"makePrecise\",value:function(){if(\"number\"==typeof arguments[0]){var e=arguments[0];return A.isNaN(e)||this._modelType===t.FLOATING_SINGLE?e:this._modelType===t.FIXED?Math.round(e*this._scale)/this._scale:e}if(arguments[0]instanceof X){var n=arguments[0];if(this._modelType===t.FLOATING)return null;n.x=this.makePrecise(n.x),n.y=this.makePrecise(n.y)}}},{key:\"getMaximumSignificantDigits\",value:function(){var e=16;return this._modelType===t.FLOATING?e=16:this._modelType===t.FLOATING_SINGLE?e=6:this._modelType===t.FIXED&&(e=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),e}},{key:\"setScale\",value:function(t){this._scale=Math.abs(t)}},{key:\"interfaces_\",get:function(){return[E,x]}}],[{key:\"constructor_\",value:function(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=t.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof re){var e=arguments[0];this._modelType=e,e===t.FIXED&&this.setScale(1)}else if(\"number\"==typeof arguments[0]){var n=arguments[0];this._modelType=t.FIXED,this.setScale(n)}else if(arguments[0]instanceof t){var i=arguments[0];this._modelType=i._modelType,this._scale=i._scale}}},{key:\"mostPrecise\",value:function(t,e){return t.compareTo(e)>=0?t:e}}])}(),re=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"readResolve\",value:function(){return t.nameToTypeMap.get(this._name)}},{key:\"toString\",value:function(){return this._name}},{key:\"interfaces_\",get:function(){return[E]}}],[{key:\"constructor_\",value:function(){this._name=null;var e=arguments[0];this._name=e,t.nameToTypeMap.put(e,this)}}])}();re.nameToTypeMap=new ne,ie.Type=re,ie.FIXED=new re(\"FIXED\"),ie.FLOATING=new re(\"FLOATING\"),ie.FLOATING_SINGLE=new re(\"FLOATING SINGLE\"),ie.maximumPreciseValue=9007199254740992;var se=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"copyInternal\",value:function(){for(var t=new Array(this._geometries.length).fill(null),e=0;e<t.length;e++)t[e]=this._geometries[e].copy();return new i(t,this._factory)}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&f(i,\"equalsExact\",this,1).call(this,t,e)}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"getBoundaryDimension\",value:function(){return this.isClosed()?Lt.FALSE:0}},{key:\"isClosed\",value:function(){if(this.isEmpty())return!1;for(var t=0;t<this._geometries.length;t++)if(!this._geometries[t].isClosed())return!1;return!0}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_MULTILINESTRING}},{key:\"getDimension\",value:function(){return 1}},{key:\"getBoundary\",value:function(){throw new W}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_MULTILINESTRING}},{key:\"interfaces_\",get:function(){return[Tt]}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];Yt.constructor_.call(this,t,e)}}])}(Yt),ae=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"createEmpty\",value:function(t){switch(t){case-1:return this.createGeometryCollection();case 0:return this.createPoint();case 1:return this.createLineString();case 2:return this.createPolygon();default:throw new m(\"Invalid dimension: \"+t)}}},{key:\"toGeometry\",value:function(t){return t.isNull()?this.createPoint():t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new X(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new X(t.getMinX(),t.getMinY()),new X(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new X(t.getMinX(),t.getMinY()),new X(t.getMinX(),t.getMaxY()),new X(t.getMaxX(),t.getMaxY()),new X(t.getMaxX(),t.getMinY()),new X(t.getMinX(),t.getMinY())]),null)}},{key:\"createLineString\",value:function(){if(0===arguments.length)return this.createLineString(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){var t=arguments[0];return this.createLineString(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(rt(arguments[0],ht))return new wt(arguments[0],this)}}},{key:\"createMultiLineString\",value:function(){return 0===arguments.length?new se(null,this):1===arguments.length?new se(arguments[0],this):void 0}},{key:\"buildGeometry\",value:function(e){for(var n=null,i=!1,r=!1,s=e.iterator();s.hasNext();){var a=s.next(),o=a.getTypeCode();null===n&&(n=o),o!==n&&(i=!0),a instanceof Yt&&(r=!0)}if(null===n)return this.createGeometryCollection();if(i||r)return this.createGeometryCollection(t.toGeometryArray(e));var u=e.iterator().next();if(e.size()>1){if(u instanceof Dt)return this.createMultiPolygon(t.toPolygonArray(e));if(u instanceof wt)return this.createMultiLineString(t.toLineStringArray(e));if(u instanceof bt)return this.createMultiPoint(t.toPointArray(e));G.shouldNeverReachHere(\"Unhandled geometry type: \"+u.getGeometryType())}return u}},{key:\"createMultiPointFromCoords\",value:function(t){return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null)}},{key:\"createPoint\",value:function(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof X){var t=arguments[0];return this.createPoint(null!==t?this.getCoordinateSequenceFactory().create([t]):null)}if(rt(arguments[0],ht))return new bt(arguments[0],this)}}},{key:\"getCoordinateSequenceFactory\",value:function(){return this._coordinateSequenceFactory}},{key:\"createPolygon\",value:function(){if(0===arguments.length)return this.createPolygon(null,null);if(1===arguments.length){if(rt(arguments[0],ht)){var t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Array){var e=arguments[0];return this.createPolygon(this.createLinearRing(e))}if(arguments[0]instanceof Xt){var n=arguments[0];return this.createPolygon(n,null)}}else if(2===arguments.length){return new Dt(arguments[0],arguments[1],this)}}},{key:\"getSRID\",value:function(){return this._SRID}},{key:\"createGeometryCollection\",value:function(){return 0===arguments.length?new Yt(null,this):1===arguments.length?new Yt(arguments[0],this):void 0}},{key:\"getPrecisionModel\",value:function(){return this._precisionModel}},{key:\"createLinearRing\",value:function(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){var t=arguments[0];return this.createLinearRing(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(rt(arguments[0],ht))return new Xt(arguments[0],this)}}},{key:\"createMultiPolygon\",value:function(){return 0===arguments.length?new te(null,this):1===arguments.length?new te(arguments[0],this):void 0}},{key:\"createMultiPoint\",value:function(){if(0===arguments.length)return new zt(null,this);if(1===arguments.length){if(arguments[0]instanceof Array)return new zt(arguments[0],this);if(rt(arguments[0],ht)){var t=arguments[0];if(null===t)return this.createMultiPoint(new Array(0).fill(null));for(var e=new Array(t.size()).fill(null),n=0;n<t.size();n++){var i=this.getCoordinateSequenceFactory().create(1,t.getDimension(),t.getMeasures());St.copy(t,n,i,0,1),e[n]=this.createPoint(i)}return this.createMultiPoint(e)}}}},{key:\"interfaces_\",get:function(){return[E]}}],[{key:\"constructor_\",value:function(){if(this._precisionModel=null,this._coordinateSequenceFactory=null,this._SRID=null,0===arguments.length)t.constructor_.call(this,new ie,0);else if(1===arguments.length){if(rt(arguments[0],It)){var e=arguments[0];t.constructor_.call(this,new ie,0,e)}else if(arguments[0]instanceof ie){var n=arguments[0];t.constructor_.call(this,n,0,t.getDefaultCoordinateSequenceFactory())}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];t.constructor_.call(this,i,r,t.getDefaultCoordinateSequenceFactory())}else if(3===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2];this._precisionModel=s,this._coordinateSequenceFactory=o,this._SRID=a}}},{key:\"toMultiPolygonArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toGeometryArray\",value:function(t){if(null===t)return null;var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"getDefaultCoordinateSequenceFactory\",value:function(){return $t.instance()}},{key:\"toMultiLineStringArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toLineStringArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toMultiPointArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toLinearRingArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toPointArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toPolygonArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"createPointFromInternalCoord\",value:function(t,e){return e.getPrecisionModel().makePrecise(t),e.getFactory().createPoint(t)}}])}(),oe=\"XY\",ue=\"XYZ\",le=\"XYM\",he=\"XYZM\",ce={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\"},fe=\"EMPTY\",ge=1,ve=2,ye=3,de=4,_e=5,pe=6;for(var me in ce)ce[me].toUpperCase();var ke=function(){return s((function t(e){n(this,t),this.wkt=e,this.index_=-1}),[{key:\"isAlpha_\",value:function(t){return t>=\"a\"&&t<=\"z\"||t>=\"A\"&&t<=\"Z\"}},{key:\"isNumeric_\",value:function(t,e){return t>=\"0\"&&t<=\"9\"||\".\"==t&&!(void 0!==e&&e)}},{key:\"isWhiteSpace_\",value:function(t){return\" \"==t||\"\\t\"==t||\"\\r\"==t||\"\\n\"==t}},{key:\"nextChar_\",value:function(){return this.wkt.charAt(++this.index_)}},{key:\"nextToken\",value:function(){var t,e=this.nextChar_(),n=this.index_,i=e;if(\"(\"==e)t=ve;else if(\",\"==e)t=_e;else if(\")\"==e)t=ye;else if(this.isNumeric_(e)||\"-\"==e)t=de,i=this.readNumber_();else if(this.isAlpha_(e))t=ge,i=this.readText_();else{if(this.isWhiteSpace_(e))return this.nextToken();if(\"\"!==e)throw new Error(\"Unexpected character: \"+e);t=pe}return{position:n,value:i,type:t}}},{key:\"readNumber_\",value:function(){var t,e=this.index_,n=!1,i=!1;do{\".\"==t?n=!0:\"e\"!=t&&\"E\"!=t||(i=!0),t=this.nextChar_()}while(this.isNumeric_(t,n)||!i&&(\"e\"==t||\"E\"==t)||i&&(\"-\"==t||\"+\"==t));return parseFloat(this.wkt.substring(e,this.index_--))}},{key:\"readText_\",value:function(){var t,e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()}}])}(),xe=function(){return s((function t(e,i){n(this,t),this.lexer_=e,this.token_,this.layout_=oe,this.factory=i}),[{key:\"consume_\",value:function(){this.token_=this.lexer_.nextToken()}},{key:\"isTokenType\",value:function(t){return this.token_.type==t}},{key:\"match\",value:function(t){var e=this.isTokenType(t);return e&&this.consume_(),e}},{key:\"parse\",value:function(){return this.consume_(),this.parseGeometry_()}},{key:\"parseGeometryLayout_\",value:function(){var t=oe,e=this.token_;if(this.isTokenType(ge)){var n=e.value;\"Z\"===n?t=ue:\"M\"===n?t=le:\"ZM\"===n&&(t=he),t!==oe&&this.consume_()}return t}},{key:\"parseGeometryCollectionText_\",value:function(){if(this.match(ve)){var t=[];do{t.push(this.parseGeometry_())}while(this.match(_e));if(this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parsePointText_\",value:function(){if(this.match(ve)){var t=this.parsePoint_();if(this.match(ye))return t}else if(this.isEmptyGeometry_())return null;throw new Error(this.formatErrorMessage_())}},{key:\"parseLineStringText_\",value:function(){if(this.match(ve)){var t=this.parsePointList_();if(this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parsePolygonText_\",value:function(){if(this.match(ve)){var t=this.parseLineStringTextList_();if(this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parseMultiPointText_\",value:function(){var t;if(this.match(ve)){if(t=this.token_.type==ve?this.parsePointTextList_():this.parsePointList_(),this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parseMultiLineStringText_\",value:function(){if(this.match(ve)){var t=this.parseLineStringTextList_();if(this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parseMultiPolygonText_\",value:function(){if(this.match(ve)){var t=this.parsePolygonTextList_();if(this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parsePoint_\",value:function(){for(var t=[],e=this.layout_.length,n=0;n<e;++n){var i=this.token_;if(!this.match(de))break;t.push(i.value)}if(t.length==e)return t;throw new Error(this.formatErrorMessage_())}},{key:\"parsePointList_\",value:function(){for(var t=[this.parsePoint_()];this.match(_e);)t.push(this.parsePoint_());return t}},{key:\"parsePointTextList_\",value:function(){for(var t=[this.parsePointText_()];this.match(_e);)t.push(this.parsePointText_());return t}},{key:\"parseLineStringTextList_\",value:function(){for(var t=[this.parseLineStringText_()];this.match(_e);)t.push(this.parseLineStringText_());return t}},{key:\"parsePolygonTextList_\",value:function(){for(var t=[this.parsePolygonText_()];this.match(_e);)t.push(this.parsePolygonText_());return t}},{key:\"isEmptyGeometry_\",value:function(){var t=this.isTokenType(ge)&&this.token_.value==fe;return t&&this.consume_(),t}},{key:\"formatErrorMessage_\",value:function(){return\"Unexpected `\"+this.token_.value+\"` at position \"+this.token_.position+\" in `\"+this.lexer_.wkt+\"`\"}},{key:\"parseGeometry_\",value:function(){var t=this.factory,e=function(t){return i(X,g(t))},n=function(n){var i=n.map((function(n){return t.createLinearRing(n.map(e))}));return i.length>1?t.createPolygon(i[0],i.slice(1)):t.createPolygon(i[0])},r=this.token_;if(this.match(ge)){var s=r.value;if(this.layout_=this.parseGeometryLayout_(),\"GEOMETRYCOLLECTION\"==s){var a=this.parseGeometryCollectionText_();return t.createGeometryCollection(a)}switch(s){case\"POINT\":var o=this.parsePointText_();return o?t.createPoint(i(X,g(o))):t.createPoint();case\"LINESTRING\":var u=this.parseLineStringText_().map(e);return t.createLineString(u);case\"LINEARRING\":var l=this.parseLineStringText_().map(e);return t.createLinearRing(l);case\"POLYGON\":var h=this.parsePolygonText_();return h&&0!==h.length?n(h):t.createPolygon();case\"MULTIPOINT\":var c=this.parseMultiPointText_();if(!c||0===c.length)return t.createMultiPoint();var f=c.map(e).map((function(e){return t.createPoint(e)}));return t.createMultiPoint(f);case\"MULTILINESTRING\":var v=this.parseMultiLineStringText_().map((function(n){return t.createLineString(n.map(e))}));return t.createMultiLineString(v);case\"MULTIPOLYGON\":var y=this.parseMultiPolygonText_();if(!y||0===y.length)return t.createMultiPolygon();var d=y.map(n);return t.createMultiPolygon(d);default:throw new Error(\"Invalid geometry type: \"+s)}}throw new Error(this.formatErrorMessage_())}}])}();function Ie(t){if(t.isEmpty())return\"\";var e=t.getCoordinate(),n=[e.x,e.y];return void 0===e.z||Number.isNaN(e.z)||n.push(e.z),void 0===e.m||Number.isNaN(e.m)||n.push(e.m),n.join(\" \")}function Ee(t){for(var e=t.getCoordinates().map((function(t){var e=[t.x,t.y];return void 0===t.z||Number.isNaN(t.z)||e.push(t.z),void 0===t.m||Number.isNaN(t.m)||e.push(t.m),e})),n=[],i=0,r=e.length;i<r;++i)n.push(e[i].join(\" \"));return n.join(\", \")}function Ne(t){var e=[];e.push(\"(\"+Ee(t.getExteriorRing())+\")\");for(var n=0,i=t.getNumInteriorRing();n<i;++n)e.push(\"(\"+Ee(t.getInteriorRingN(n))+\")\");return e.join(\", \")}var Te={Point:Ie,LineString:Ee,LinearRing:Ee,Polygon:Ne,MultiPoint:function(t){for(var e=[],n=0,i=t.getNumGeometries();n<i;++n)e.push(\"(\"+Ie(t.getGeometryN(n))+\")\");return e.join(\", \")},MultiLineString:function(t){for(var e=[],n=0,i=t.getNumGeometries();n<i;++n)e.push(\"(\"+Ee(t.getGeometryN(n))+\")\");return e.join(\", \")},MultiPolygon:function(t){for(var e=[],n=0,i=t.getNumGeometries();n<i;++n)e.push(\"(\"+Ne(t.getGeometryN(n))+\")\");return e.join(\", \")},GeometryCollection:function(t){for(var e=[],n=0,i=t.getNumGeometries();n<i;++n)e.push(Se(t.getGeometryN(n)));return e.join(\", \")}};function Se(t){var e=t.getGeometryType(),n=Te[e];e=e.toUpperCase();var i=function(t){var e=\"\";if(t.isEmpty())return e;var n=t.getCoordinate();return void 0===n.z||Number.isNaN(n.z)||(e+=\"Z\"),void 0===n.m||Number.isNaN(n.m)||(e+=\"M\"),e}(t);return i.length>0&&(e+=\" \"+i),t.isEmpty()?e+\" \"+fe:e+\" (\"+n(t)+\")\"}var Le=function(){return s((function t(e){n(this,t),this.geometryFactory=e||new ae,this.precisionModel=this.geometryFactory.getPrecisionModel()}),[{key:\"read\",value:function(t){var e=new ke(t);return new xe(e,this.geometryFactory).parse()}},{key:\"write\",value:function(t){return Se(t)}}])}(),Ce=function(){return s((function t(e){n(this,t),this.parser=new Le(e)}),[{key:\"write\",value:function(t){return this.parser.write(t)}}],[{key:\"toLineString\",value:function(t,e){if(2!==arguments.length)throw new Error(\"Not implemented\");return\"LINESTRING ( \"+t.x+\" \"+t.y+\", \"+e.x+\" \"+e.y+\" )\"}}])}(),Re=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getIndexAlongSegment\",value:function(t,e){return this.computeIntLineIndex(),this._intLineIndex[t][e]}},{key:\"getTopologySummary\",value:function(){var t=new Jt;return this.isEndPoint()&&t.append(\" endpoint\"),this._isProper&&t.append(\" proper\"),this.isCollinear()&&t.append(\" collinear\"),t.toString()}},{key:\"computeIntersection\",value:function(t,e,n,i){this._inputLines[0][0]=t,this._inputLines[0][1]=e,this._inputLines[1][0]=n,this._inputLines[1][1]=i,this._result=this.computeIntersect(t,e,n,i)}},{key:\"getIntersectionNum\",value:function(){return this._result}},{key:\"computeIntLineIndex\",value:function(){if(0===arguments.length)null===this._intLineIndex&&(this._intLineIndex=Array(2).fill().map((function(){return Array(2)})),this.computeIntLineIndex(0),this.computeIntLineIndex(1));else if(1===arguments.length){var t=arguments[0];this.getEdgeDistance(t,0)>this.getEdgeDistance(t,1)?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0)}}},{key:\"isProper\",value:function(){return this.hasIntersection()&&this._isProper}},{key:\"setPrecisionModel\",value:function(t){this._precisionModel=t}},{key:\"isInteriorIntersection\",value:function(){if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){for(var t=arguments[0],e=0;e<this._result;e++)if(!this._intPt[e].equals2D(this._inputLines[t][0])&&!this._intPt[e].equals2D(this._inputLines[t][1]))return!0;return!1}}},{key:\"getIntersection\",value:function(t){return this._intPt[t]}},{key:\"isEndPoint\",value:function(){return this.hasIntersection()&&!this._isProper}},{key:\"hasIntersection\",value:function(){return this._result!==t.NO_INTERSECTION}},{key:\"getEdgeDistance\",value:function(e,n){return t.computeEdgeDistance(this._intPt[n],this._inputLines[e][0],this._inputLines[e][1])}},{key:\"isCollinear\",value:function(){return this._result===t.COLLINEAR_INTERSECTION}},{key:\"toString\",value:function(){return Ce.toLineString(this._inputLines[0][0],this._inputLines[0][1])+\" - \"+Ce.toLineString(this._inputLines[1][0],this._inputLines[1][1])+this.getTopologySummary()}},{key:\"getEndpoint\",value:function(t,e){return this._inputLines[t][e]}},{key:\"isIntersection\",value:function(t){for(var e=0;e<this._result;e++)if(this._intPt[e].equals2D(t))return!0;return!1}},{key:\"getIntersectionAlongSegment\",value:function(t,e){return this.computeIntLineIndex(),this._intPt[this._intLineIndex[t][e]]}}],[{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 X,this._intPt[1]=new X,this._pa=this._intPt[0],this._pb=this._intPt[1],this._result=0}},{key:\"computeEdgeDistance\",value:function(t,e,n){var i=Math.abs(n.x-e.x),r=Math.abs(n.y-e.y),s=-1;if(t.equals(e))s=0;else if(t.equals(n))s=i>r?i:r;else{var a=Math.abs(t.x-e.x),o=Math.abs(t.y-e.y);0!==(s=i>r?a:o)||t.equals(e)||(s=Math.max(a,o))}return G.isTrue(!(0===s&&!t.equals(e)),\"Bad distance calculation\"),s}},{key:\"nonRobustComputeEdgeDistance\",value:function(t,e,n){var i=t.x-e.x,r=t.y-e.y,s=Math.sqrt(i*i+r*r);return G.isTrue(!(0===s&&!t.equals(e)),\"Invalid distance calculation\"),s}}])}();Re.DONT_INTERSECT=0,Re.DO_INTERSECT=1,Re.COLLINEAR=2,Re.NO_INTERSECTION=0,Re.POINT_INTERSECTION=1,Re.COLLINEAR_INTERSECTION=2;var we=function(t){function i(){return n(this,i),e(this,i)}return l(i,t),s(i,[{key:\"isInSegmentEnvelopes\",value:function(t){var e=new U(this._inputLines[0][0],this._inputLines[0][1]),n=new U(this._inputLines[1][0],this._inputLines[1][1]);return e.contains(t)&&n.contains(t)}},{key:\"computeIntersection\",value:function(){if(3!==arguments.length)return f(i,\"computeIntersection\",this,1).apply(this,arguments);var t=arguments[0],e=arguments[1],n=arguments[2];if(this._isProper=!1,U.intersects(e,n,t)&&0===ct.index(e,n,t)&&0===ct.index(n,e,t))return this._isProper=!0,(t.equals(e)||t.equals(n))&&(this._isProper=!1),this._result=Re.POINT_INTERSECTION,null;this._result=Re.NO_INTERSECTION}},{key:\"intersection\",value:function(t,e,n,r){var s=this.intersectionSafe(t,e,n,r);return this.isInSegmentEnvelopes(s)||(s=new X(i.nearestEndpoint(t,e,n,r))),null!==this._precisionModel&&this._precisionModel.makePrecise(s),s}},{key:\"checkDD\",value:function(t,e,n,i,r){var s=lt.intersection(t,e,n,i),a=this.isInSegmentEnvelopes(s);mt.out.println(\"DD in env = \"+a+\" --------------------- \"+s),r.distance(s)>1e-4&&mt.out.println(\"Distance = \"+r.distance(s))}},{key:\"intersectionSafe\",value:function(t,e,n,r){var s=pt.intersection(t,e,n,r);return null===s&&(s=i.nearestEndpoint(t,e,n,r)),s}},{key:\"computeCollinearIntersection\",value:function(t,e,n,i){var r=U.intersects(t,e,n),s=U.intersects(t,e,i),a=U.intersects(n,i,t),o=U.intersects(n,i,e);return r&&s?(this._intPt[0]=n,this._intPt[1]=i,Re.COLLINEAR_INTERSECTION):a&&o?(this._intPt[0]=t,this._intPt[1]=e,Re.COLLINEAR_INTERSECTION):r&&a?(this._intPt[0]=n,this._intPt[1]=t,!n.equals(t)||s||o?Re.COLLINEAR_INTERSECTION:Re.POINT_INTERSECTION):r&&o?(this._intPt[0]=n,this._intPt[1]=e,!n.equals(e)||s||a?Re.COLLINEAR_INTERSECTION:Re.POINT_INTERSECTION):s&&a?(this._intPt[0]=i,this._intPt[1]=t,!i.equals(t)||r||o?Re.COLLINEAR_INTERSECTION:Re.POINT_INTERSECTION):s&&o?(this._intPt[0]=i,this._intPt[1]=e,!i.equals(e)||r||a?Re.COLLINEAR_INTERSECTION:Re.POINT_INTERSECTION):Re.NO_INTERSECTION}},{key:\"computeIntersect\",value:function(t,e,n,i){if(this._isProper=!1,!U.intersects(t,e,n,i))return Re.NO_INTERSECTION;var r=ct.index(t,e,n),s=ct.index(t,e,i);if(r>0&&s>0||r<0&&s<0)return Re.NO_INTERSECTION;var a=ct.index(n,i,t),o=ct.index(n,i,e);return a>0&&o>0||a<0&&o<0?Re.NO_INTERSECTION:0===r&&0===s&&0===a&&0===o?this.computeCollinearIntersection(t,e,n,i):(0===r||0===s||0===a||0===o?(this._isProper=!1,t.equals2D(n)||t.equals2D(i)?this._intPt[0]=t:e.equals2D(n)||e.equals2D(i)?this._intPt[0]=e:0===r?this._intPt[0]=new X(n):0===s?this._intPt[0]=new X(i):0===a?this._intPt[0]=new X(t):0===o&&(this._intPt[0]=new X(e))):(this._isProper=!0,this._intPt[0]=this.intersection(t,e,n,i)),Re.POINT_INTERSECTION)}}],[{key:\"nearestEndpoint\",value:function(t,e,n,i){var r=t,s=xt.pointToSegment(t,n,i),a=xt.pointToSegment(e,n,i);return a<s&&(s=a,r=e),(a=xt.pointToSegment(n,t,e))<s&&(s=a,r=n),(a=xt.pointToSegment(i,t,e))<s&&(s=a,r=i),r}}])}(Re),Oe=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"countSegment\",value:function(t,e){if(t.x<this._p.x&&e.x<this._p.x)return null;if(this._p.x===e.x&&this._p.y===e.y)return this._isPointOnSegment=!0,null;if(t.y===this._p.y&&e.y===this._p.y){var n=t.x,i=e.x;return n>i&&(n=e.x,i=t.x),this._p.x>=n&&this._p.x<=i&&(this._isPointOnSegment=!0),null}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var r=ct.index(t,e,this._p);if(r===ct.COLLINEAR)return this._isPointOnSegment=!0,null;e.y<t.y&&(r=-r),r===ct.LEFT&&this._crossingCount++}}},{key:\"isPointInPolygon\",value:function(){return this.getLocation()!==H.EXTERIOR}},{key:\"getLocation\",value:function(){return this._isPointOnSegment?H.BOUNDARY:this._crossingCount%2==1?H.INTERIOR:H.EXTERIOR}},{key:\"isOnSegment\",value:function(){return this._isPointOnSegment}}],[{key:\"constructor_\",value:function(){this._p=null,this._crossingCount=0,this._isPointOnSegment=!1;var t=arguments[0];this._p=t}},{key:\"locatePointInRing\",value:function(){if(arguments[0]instanceof X&&rt(arguments[1],ht)){for(var e=arguments[1],n=new t(arguments[0]),i=new X,r=new X,s=1;s<e.size();s++)if(e.getCoordinate(s,i),e.getCoordinate(s-1,r),n.countSegment(i,r),n.isOnSegment())return n.getLocation();return n.getLocation()}if(arguments[0]instanceof X&&arguments[1]instanceof Array){for(var a=arguments[1],o=new t(arguments[0]),u=1;u<a.length;u++){var l=a[u],h=a[u-1];if(o.countSegment(l,h),o.isOnSegment())return o.getLocation()}return o.getLocation()}}}])}(),be=function(){function t(){n(this,t)}return s(t,null,[{key:\"isOnLine\",value:function(){if(arguments[0]instanceof X&&rt(arguments[1],ht)){for(var t=arguments[0],e=arguments[1],n=new we,i=new X,r=new X,s=e.size(),a=1;a<s;a++)if(e.getCoordinate(a-1,i),e.getCoordinate(a,r),n.computeIntersection(t,i,r),n.hasIntersection())return!0;return!1}if(arguments[0]instanceof X&&arguments[1]instanceof Array){for(var o=arguments[0],u=arguments[1],l=new we,h=1;h<u.length;h++){var c=u[h-1],f=u[h];if(l.computeIntersection(o,c,f),l.hasIntersection())return!0}return!1}}},{key:\"locateInRing\",value:function(t,e){return Oe.locatePointInRing(t,e)}},{key:\"isInRing\",value:function(e,n){return t.locateInRing(e,n)!==H.EXTERIOR}}])}(),Me=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"setAllLocations\",value:function(t){for(var e=0;e<this.location.length;e++)this.location[e]=t}},{key:\"isNull\",value:function(){for(var t=0;t<this.location.length;t++)if(this.location[t]!==H.NONE)return!1;return!0}},{key:\"setAllLocationsIfNull\",value:function(t){for(var e=0;e<this.location.length;e++)this.location[e]===H.NONE&&(this.location[e]=t)}},{key:\"isLine\",value:function(){return 1===this.location.length}},{key:\"merge\",value:function(t){if(t.location.length>this.location.length){var e=new Array(3).fill(null);e[$.ON]=this.location[$.ON],e[$.LEFT]=H.NONE,e[$.RIGHT]=H.NONE,this.location=e}for(var n=0;n<this.location.length;n++)this.location[n]===H.NONE&&n<t.location.length&&(this.location[n]=t.location[n])}},{key:\"getLocations\",value:function(){return this.location}},{key:\"flip\",value:function(){if(this.location.length<=1)return null;var t=this.location[$.LEFT];this.location[$.LEFT]=this.location[$.RIGHT],this.location[$.RIGHT]=t}},{key:\"toString\",value:function(){var t=new st;return this.location.length>1&&t.append(H.toLocationSymbol(this.location[$.LEFT])),t.append(H.toLocationSymbol(this.location[$.ON])),this.location.length>1&&t.append(H.toLocationSymbol(this.location[$.RIGHT])),t.toString()}},{key:\"setLocations\",value:function(t,e,n){this.location[$.ON]=t,this.location[$.LEFT]=e,this.location[$.RIGHT]=n}},{key:\"get\",value:function(t){return t<this.location.length?this.location[t]:H.NONE}},{key:\"isArea\",value:function(){return this.location.length>1}},{key:\"isAnyNull\",value:function(){for(var t=0;t<this.location.length;t++)if(this.location[t]===H.NONE)return!0;return!1}},{key:\"setLocation\",value:function(){if(1===arguments.length){var t=arguments[0];this.setLocation($.ON,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this.location[e]=n}}},{key:\"init\",value:function(t){this.location=new Array(t).fill(null),this.setAllLocations(H.NONE)}},{key:\"isEqualOnSide\",value:function(t,e){return this.location[e]===t.location[e]}},{key:\"allPositionsEqual\",value:function(t){for(var e=0;e<this.location.length;e++)if(this.location[e]!==t)return!1;return!0}}],[{key:\"constructor_\",value:function(){if(this.location=null,1===arguments.length){if(arguments[0]instanceof Array){var e=arguments[0];this.init(e.length)}else if(Number.isInteger(arguments[0])){var n=arguments[0];this.init(1),this.location[$.ON]=n}else if(arguments[0]instanceof t){var i=arguments[0];if(this.init(i.location.length),null!==i)for(var r=0;r<this.location.length;r++)this.location[r]=i.location[r]}}else if(3===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2];this.init(3),this.location[$.ON]=s,this.location[$.LEFT]=a,this.location[$.RIGHT]=o}}}])}(),Ae=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getGeometryCount\",value:function(){var t=0;return this.elt[0].isNull()||t++,this.elt[1].isNull()||t++,t}},{key:\"setAllLocations\",value:function(t,e){this.elt[t].setAllLocations(e)}},{key:\"isNull\",value:function(t){return this.elt[t].isNull()}},{key:\"setAllLocationsIfNull\",value:function(){if(1===arguments.length){var t=arguments[0];this.setAllLocationsIfNull(0,t),this.setAllLocationsIfNull(1,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this.elt[e].setAllLocationsIfNull(n)}}},{key:\"isLine\",value:function(t){return this.elt[t].isLine()}},{key:\"merge\",value:function(t){for(var e=0;e<2;e++)null===this.elt[e]&&null!==t.elt[e]?this.elt[e]=new Me(t.elt[e]):this.elt[e].merge(t.elt[e])}},{key:\"flip\",value:function(){this.elt[0].flip(),this.elt[1].flip()}},{key:\"getLocation\",value:function(){if(1===arguments.length){var t=arguments[0];return this.elt[t].get($.ON)}if(2===arguments.length){var e=arguments[0],n=arguments[1];return this.elt[e].get(n)}}},{key:\"toString\",value:function(){var t=new st;return null!==this.elt[0]&&(t.append(\"A:\"),t.append(this.elt[0].toString())),null!==this.elt[1]&&(t.append(\" B:\"),t.append(this.elt[1].toString())),t.toString()}},{key:\"isArea\",value:function(){if(0===arguments.length)return this.elt[0].isArea()||this.elt[1].isArea();if(1===arguments.length){var t=arguments[0];return this.elt[t].isArea()}}},{key:\"isAnyNull\",value:function(t){return this.elt[t].isAnyNull()}},{key:\"setLocation\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];this.elt[t].setLocation($.ON,e)}else if(3===arguments.length){var n=arguments[0],i=arguments[1],r=arguments[2];this.elt[n].setLocation(i,r)}}},{key:\"isEqualOnSide\",value:function(t,e){return this.elt[0].isEqualOnSide(t.elt[0],e)&&this.elt[1].isEqualOnSide(t.elt[1],e)}},{key:\"allPositionsEqual\",value:function(t,e){return this.elt[t].allPositionsEqual(e)}},{key:\"toLine\",value:function(t){this.elt[t].isArea()&&(this.elt[t]=new Me(this.elt[t].location[0]))}}],[{key:\"constructor_\",value:function(){if(this.elt=new Array(2).fill(null),1===arguments.length){if(Number.isInteger(arguments[0])){var e=arguments[0];this.elt[0]=new Me(e),this.elt[1]=new Me(e)}else if(arguments[0]instanceof t){var n=arguments[0];this.elt[0]=new Me(n.elt[0]),this.elt[1]=new Me(n.elt[1])}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];this.elt[0]=new Me(H.NONE),this.elt[1]=new Me(H.NONE),this.elt[i].setLocation(r)}else if(3===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2];this.elt[0]=new Me(s,a,o),this.elt[1]=new Me(s,a,o)}else if(4===arguments.length){var u=arguments[0],l=arguments[1],h=arguments[2],c=arguments[3];this.elt[0]=new Me(H.NONE,H.NONE,H.NONE),this.elt[1]=new Me(H.NONE,H.NONE,H.NONE),this.elt[u].setLocations(l,h,c)}}},{key:\"toLineLabel\",value:function(e){for(var n=new t(H.NONE),i=0;i<2;i++)n.setLocation(i,e.getLocation(i));return n}}])}(),Pe=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"computeRing\",value:function(){if(null!==this._ring)return null;for(var t=new Array(this._pts.size()).fill(null),e=0;e<this._pts.size();e++)t[e]=this._pts.get(e);this._ring=this._geometryFactory.createLinearRing(t),this._isHole=ct.isCCW(this._ring.getCoordinates())}},{key:\"isIsolated\",value:function(){return 1===this._label.getGeometryCount()}},{key:\"computePoints\",value:function(t){this._startDe=t;var e=t,n=!0;do{if(null===e)throw new gt(\"Found null DirectedEdge\");if(e.getEdgeRing()===this)throw new gt(\"Directed Edge visited twice during ring-building at \"+e.getCoordinate());this._edges.add(e);var i=e.getLabel();G.isTrue(i.isArea()),this.mergeLabel(i),this.addPoints(e.getEdge(),e.isForward(),n),n=!1,this.setEdgeRing(e,this),e=this.getNext(e)}while(e!==this._startDe)}},{key:\"getLinearRing\",value:function(){return this._ring}},{key:\"getCoordinate\",value:function(t){return this._pts.get(t)}},{key:\"computeMaxNodeDegree\",value:function(){this._maxNodeDegree=0;var t=this._startDe;do{var e=t.getNode().getEdges().getOutgoingDegree(this);e>this._maxNodeDegree&&(this._maxNodeDegree=e),t=this.getNext(t)}while(t!==this._startDe);this._maxNodeDegree*=2}},{key:\"addPoints\",value:function(t,e,n){var i=t.getCoordinates();if(e){var r=1;n&&(r=0);for(var s=r;s<i.length;s++)this._pts.add(i[s])}else{var a=i.length-2;n&&(a=i.length-1);for(var o=a;o>=0;o--)this._pts.add(i[o])}}},{key:\"isHole\",value:function(){return this._isHole}},{key:\"setInResult\",value:function(){var t=this._startDe;do{t.getEdge().setInResult(!0),t=t.getNext()}while(t!==this._startDe)}},{key:\"containsPoint\",value:function(t){var e=this.getLinearRing();if(!e.getEnvelopeInternal().contains(t))return!1;if(!be.isInRing(t,e.getCoordinates()))return!1;for(var n=this._holes.iterator();n.hasNext();){if(n.next().containsPoint(t))return!1}return!0}},{key:\"addHole\",value:function(t){this._holes.add(t)}},{key:\"isShell\",value:function(){return null===this._shell}},{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(1===arguments.length){var t=arguments[0];this.mergeLabel(t,0),this.mergeLabel(t,1)}else if(2===arguments.length){var e=arguments[1],n=arguments[0].getLocation(e,$.RIGHT);if(n===H.NONE)return null;if(this._label.getLocation(e)===H.NONE)return this._label.setLocation(e,n),null}}},{key:\"setShell\",value:function(t){this._shell=t,null!==t&&t.addHole(this)}},{key:\"toPolygon\",value:function(t){for(var e=new Array(this._holes.size()).fill(null),n=0;n<this._holes.size();n++)e[n]=this._holes.get(n).getLinearRing();return t.createPolygon(this.getLinearRing(),e)}}],[{key:\"constructor_\",value:function(){if(this._startDe=null,this._maxNodeDegree=-1,this._edges=new yt,this._pts=new yt,this._label=new Ae(H.NONE),this._ring=null,this._isHole=null,this._shell=null,this._holes=new yt,this._geometryFactory=null,0===arguments.length);else if(2===arguments.length){var t=arguments[0],e=arguments[1];this._geometryFactory=e,this.computePoints(t),this.computeRing()}}}])}(),De=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"setEdgeRing\",value:function(t,e){t.setMinEdgeRing(e)}},{key:\"getNext\",value:function(t){return t.getNextMin()}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];Pe.constructor_.call(this,t,e)}}])}(Pe),Fe=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"buildMinimalRings\",value:function(){var t=new yt,e=this._startDe;do{if(null===e.getMinEdgeRing()){var n=new De(e,this._geometryFactory);t.add(n)}e=e.getNext()}while(e!==this._startDe);return t}},{key:\"setEdgeRing\",value:function(t,e){t.setEdgeRing(e)}},{key:\"linkDirectedEdgesForMinimalEdgeRings\",value:function(){var t=this._startDe;do{t.getNode().getEdges().linkMinimalDirectedEdges(this),t=t.getNext()}while(t!==this._startDe)}},{key:\"getNext\",value:function(t){return t.getNext()}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];Pe.constructor_.call(this,t,e)}}])}(Pe),Ge=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"setVisited\",value:function(t){this._isVisited=t}},{key:\"setInResult\",value:function(t){this._isInResult=t}},{key:\"isCovered\",value:function(){return this._isCovered}},{key:\"isCoveredSet\",value:function(){return this._isCoveredSet}},{key:\"setLabel\",value:function(t){this._label=t}},{key:\"getLabel\",value:function(){return this._label}},{key:\"setCovered\",value:function(t){this._isCovered=t,this._isCoveredSet=!0}},{key:\"updateIM\",value:function(t){G.isTrue(this._label.getGeometryCount()>=2,\"found partial label\"),this.computeIM(t)}},{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,0===arguments.length);else if(1===arguments.length){var t=arguments[0];this._label=t}}}])}(),qe=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"isIncidentEdgeInResult\",value:function(){for(var t=this.getEdges().getEdges().iterator();t.hasNext();){if(t.next().getEdge().isInResult())return!0}return!1}},{key:\"isIsolated\",value:function(){return 1===this._label.getGeometryCount()}},{key:\"getCoordinate\",value:function(){return this._coord}},{key:\"print\",value:function(t){t.println(\"node \"+this._coord+\" lbl: \"+this._label)}},{key:\"computeIM\",value:function(t){}},{key:\"computeMergedLocation\",value:function(t,e){var n=H.NONE;if(n=this._label.getLocation(e),!t.isNull(e)){var i=t.getLocation(e);n!==H.BOUNDARY&&(n=i)}return n}},{key:\"setLabel\",value:function(){if(2!==arguments.length||!Number.isInteger(arguments[1])||!Number.isInteger(arguments[0]))return f(i,\"setLabel\",this,1).apply(this,arguments);var t=arguments[0],e=arguments[1];null===this._label?this._label=new Ae(t,e):this._label.setLocation(t,e)}},{key:\"getEdges\",value:function(){return this._edges}},{key:\"mergeLabel\",value:function(){if(arguments[0]instanceof i){var t=arguments[0];this.mergeLabel(t._label)}else if(arguments[0]instanceof Ae)for(var e=arguments[0],n=0;n<2;n++){var r=this.computeMergedLocation(e,n);this._label.getLocation(n)===H.NONE&&this._label.setLocation(n,r)}}},{key:\"add\",value:function(t){this._edges.insert(t),t.setNode(this)}},{key:\"setLabelBoundary\",value:function(t){if(null===this._label)return null;var e=H.NONE;null!==this._label&&(e=this._label.getLocation(t));var n=null;switch(e){case H.BOUNDARY:n=H.INTERIOR;break;case H.INTERIOR:default:n=H.BOUNDARY}this._label.setLocation(t,n)}}],[{key:\"constructor_\",value:function(){this._coord=null,this._edges=null;var t=arguments[0],e=arguments[1];this._coord=t,this._edges=e,this._label=new Ae(0,H.NONE)}}])}(Ge),Ye=function(t){function i(){return n(this,i),e(this,i,arguments)}return l(i,t),s(i)}(ee);function ze(t){return null==t?0:t.color}function Xe(t){return null==t?null:t.parent}function Be(t,e){null!==t&&(t.color=e)}function Ue(t){return null==t?null:t.left}function Ve(t){return null==t?null:t.right}var He=function(t){function i(){var t;return n(this,i),(t=e(this,i)).root_=null,t.size_=0,t}return l(i,t),s(i,[{key:\"get\",value:function(t){for(var e=this.root_;null!==e;){var n=t.compareTo(e.key);if(n<0)e=e.left;else{if(!(n>0))return e.value;e=e.right}}return null}},{key:\"put\",value:function(t,e){if(null===this.root_)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:0,getValue:function(){return this.value},getKey:function(){return this.key}},this.size_=1,null;var n,i,r=this.root_;do{if(n=r,(i=t.compareTo(r.key))<0)r=r.left;else{if(!(i>0)){var s=r.value;return r.value=e,s}r=r.right}}while(null!==r);var a={key:t,left:null,right:null,value:e,parent:n,color:0,getValue:function(){return this.value},getKey:function(){return this.key}};return i<0?n.left=a:n.right=a,this.fixAfterInsertion(a),this.size_++,null}},{key:\"fixAfterInsertion\",value:function(t){var e;for(t.color=1;null!=t&&t!==this.root_&&1===t.parent.color;)Xe(t)===Ue(Xe(Xe(t)))?1===ze(e=Ve(Xe(Xe(t))))?(Be(Xe(t),0),Be(e,0),Be(Xe(Xe(t)),1),t=Xe(Xe(t))):(t===Ve(Xe(t))&&(t=Xe(t),this.rotateLeft(t)),Be(Xe(t),0),Be(Xe(Xe(t)),1),this.rotateRight(Xe(Xe(t)))):1===ze(e=Ue(Xe(Xe(t))))?(Be(Xe(t),0),Be(e,0),Be(Xe(Xe(t)),1),t=Xe(Xe(t))):(t===Ue(Xe(t))&&(t=Xe(t),this.rotateRight(t)),Be(Xe(t),0),Be(Xe(Xe(t)),1),this.rotateLeft(Xe(Xe(t))));this.root_.color=0}},{key:\"values\",value:function(){var t=new yt,e=this.getFirstEntry();if(null!==e)for(t.add(e.value);null!==(e=i.successor(e));)t.add(e.value);return t}},{key:\"entrySet\",value:function(){var t=new J,e=this.getFirstEntry();if(null!==e)for(t.add(e);null!==(e=i.successor(e));)t.add(e);return t}},{key:\"rotateLeft\",value:function(t){if(null!=t){var e=t.right;t.right=e.left,null!=e.left&&(e.left.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.left===t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}}},{key:\"rotateRight\",value:function(t){if(null!=t){var e=t.left;t.left=e.right,null!=e.right&&(e.right.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.right===t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}}},{key:\"getFirstEntry\",value:function(){var t=this.root_;if(null!=t)for(;null!=t.left;)t=t.left;return t}},{key:\"size\",value:function(){return this.size_}},{key:\"containsKey\",value:function(t){for(var e=this.root_;null!==e;){var n=t.compareTo(e.key);if(n<0)e=e.left;else{if(!(n>0))return!0;e=e.right}}return!1}}],[{key:\"successor\",value:function(t){var e;if(null===t)return null;if(null!==t.right){for(e=t.right;null!==e.left;)e=e.left;return e}e=t.parent;for(var n=t;null!==e&&n===e.right;)n=e,e=e.parent;return e}}])}(Ye),Ze=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"find\",value:function(t){return this.nodeMap.get(t)}},{key:\"addNode\",value:function(){if(arguments[0]instanceof X){var t=arguments[0],e=this.nodeMap.get(t);return null===e&&(e=this.nodeFact.createNode(t),this.nodeMap.put(t,e)),e}if(arguments[0]instanceof qe){var n=arguments[0],i=this.nodeMap.get(n.getCoordinate());return null===i?(this.nodeMap.put(n.getCoordinate(),n),n):(i.mergeLabel(n),i)}}},{key:\"print\",value:function(t){for(var e=this.iterator();e.hasNext();){e.next().print(t)}}},{key:\"iterator\",value:function(){return this.nodeMap.values().iterator()}},{key:\"values\",value:function(){return this.nodeMap.values()}},{key:\"getBoundaryNodes\",value:function(t){for(var e=new yt,n=this.iterator();n.hasNext();){var i=n.next();i.getLabel().getLocation(t)===H.BOUNDARY&&e.add(i)}return e}},{key:\"add\",value:function(t){var e=t.getCoordinate();this.addNode(e).add(t)}}],[{key:\"constructor_\",value:function(){this.nodeMap=new He,this.nodeFact=null;var t=arguments[0];this.nodeFact=t}}])}(),je=function(){function t(){n(this,t)}return s(t,null,[{key:\"isNorthern\",value:function(e){return e===t.NE||e===t.NW}},{key:\"isOpposite\",value:function(t,e){return t!==e&&2===(t-e+4)%4}},{key:\"commonHalfPlane\",value:function(t,e){if(t===e)return t;if(2===(t-e+4)%4)return-1;var n=t<e?t:e;return 0===n&&3===(t>e?t:e)?3:n}},{key:\"isInHalfPlane\",value:function(e,n){return n===t.SE?e===t.SE||e===t.SW:e===n||e===n+1}},{key:\"quadrant\",value:function(){if(\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var e=arguments[0],n=arguments[1];if(0===e&&0===n)throw new m(\"Cannot compute the quadrant for point ( \"+e+\", \"+n+\" )\");return e>=0?n>=0?t.NE:t.SE:n>=0?t.NW:t.SW}if(arguments[0]instanceof X&&arguments[1]instanceof X){var i=arguments[0],r=arguments[1];if(r.x===i.x&&r.y===i.y)throw new m(\"Cannot compute the quadrant for two identical points \"+i);return r.x>=i.x?r.y>=i.y?t.NE:t.SE:r.y>=i.y?t.NW:t.SW}}}])}();je.NE=0,je.NW=1,je.SW=2,je.SE=3;var We=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"compareDirection\",value:function(t){return this._dx===t._dx&&this._dy===t._dy?0:this._quadrant>t._quadrant?1:this._quadrant<t._quadrant?-1:ct.index(t._p0,t._p1,this._p1)}},{key:\"getDy\",value:function(){return this._dy}},{key:\"getCoordinate\",value:function(){return this._p0}},{key:\"setNode\",value:function(t){this._node=t}},{key:\"print\",value:function(t){var e=Math.atan2(this._dy,this._dx),n=this.getClass().getName(),i=n.lastIndexOf(\".\"),r=n.substring(i+1);t.print(\" \"+r+\": \"+this._p0+\" - \"+this._p1+\" \"+this._quadrant+\":\"+e+\" \"+this._label)}},{key:\"compareTo\",value:function(t){var e=t;return this.compareDirection(e)}},{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 t=Math.atan2(this._dy,this._dx),e=this.getClass().getName(),n=e.lastIndexOf(\".\");return\" \"+e.substring(n+1)+\": \"+this._p0+\" - \"+this._p1+\" \"+this._quadrant+\":\"+t+\" \"+this._label}},{key:\"computeLabel\",value:function(t){}},{key:\"init\",value:function(t,e){this._p0=t,this._p1=e,this._dx=e.x-t.x,this._dy=e.y-t.y,this._quadrant=je.quadrant(this._dx,this._dy),G.isTrue(!(0===this._dx&&0===this._dy),\"EdgeEnd with identical endpoints found\")}},{key:\"interfaces_\",get:function(){return[x]}}],[{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,1===arguments.length){var e=arguments[0];this._edge=e}else if(3===arguments.length){var n=arguments[0],i=arguments[1],r=arguments[2];t.constructor_.call(this,n,i,r,null)}else if(4===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2],u=arguments[3];t.constructor_.call(this,s),this.init(a,o),this._label=u}}}])}(),Ke=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getNextMin\",value:function(){return this._nextMin}},{key:\"getDepth\",value:function(t){return this._depth[t]}},{key:\"setVisited\",value:function(t){this._isVisited=t}},{key:\"computeDirectedLabel\",value:function(){this._label=new Ae(this._edge.getLabel()),this._isForward||this._label.flip()}},{key:\"getNext\",value:function(){return this._next}},{key:\"setDepth\",value:function(t,e){if(-999!==this._depth[t]&&this._depth[t]!==e)throw new gt(\"assigned depths do not match\",this.getCoordinate());this._depth[t]=e}},{key:\"isInteriorAreaEdge\",value:function(){for(var t=!0,e=0;e<2;e++)this._label.isArea(e)&&this._label.getLocation(e,$.LEFT)===H.INTERIOR&&this._label.getLocation(e,$.RIGHT)===H.INTERIOR||(t=!1);return t}},{key:\"setNextMin\",value:function(t){this._nextMin=t}},{key:\"print\",value:function(t){f(i,\"print\",this,1).call(this,t),t.print(\" \"+this._depth[$.LEFT]+\"/\"+this._depth[$.RIGHT]),t.print(\" (\"+this.getDepthDelta()+\")\"),this._isInResult&&t.print(\" inResult\")}},{key:\"setMinEdgeRing\",value:function(t){this._minEdgeRing=t}},{key:\"isLineEdge\",value:function(){var t=this._label.isLine(0)||this._label.isLine(1),e=!this._label.isArea(0)||this._label.allPositionsEqual(0,H.EXTERIOR),n=!this._label.isArea(1)||this._label.allPositionsEqual(1,H.EXTERIOR);return t&&e&&n}},{key:\"setEdgeRing\",value:function(t){this._edgeRing=t}},{key:\"getMinEdgeRing\",value:function(){return this._minEdgeRing}},{key:\"getDepthDelta\",value:function(){var t=this._edge.getDepthDelta();return this._isForward||(t=-t),t}},{key:\"setInResult\",value:function(t){this._isInResult=t}},{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(t){this.print(t),t.print(\" \"),this._isForward?this._edge.print(t):this._edge.printReverse(t)}},{key:\"setSym\",value:function(t){this._sym=t}},{key:\"setVisitedEdge\",value:function(t){this.setVisited(t),this._sym.setVisited(t)}},{key:\"setEdgeDepths\",value:function(t,e){var n=this.getEdge().getDepthDelta();this._isForward||(n=-n);var i=1;t===$.LEFT&&(i=-1);var r=$.opposite(t),s=e+n*i;this.setDepth(t,e),this.setDepth(r,s)}},{key:\"getEdgeRing\",value:function(){return this._edgeRing}},{key:\"isInResult\",value:function(){return this._isInResult}},{key:\"setNext\",value:function(t){this._next=t}},{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 t=arguments[0],e=arguments[1];if(We.constructor_.call(this,t),this._isForward=e,e)this.init(t.getCoordinate(0),t.getCoordinate(1));else{var n=t.getNumPoints()-1;this.init(t.getCoordinate(n),t.getCoordinate(n-1))}this.computeDirectedLabel()}},{key:\"depthFactor\",value:function(t,e){return t===H.EXTERIOR&&e===H.INTERIOR?1:t===H.INTERIOR&&e===H.EXTERIOR?-1:0}}])}(We),Je=function(){return s((function t(){n(this,t)}),[{key:\"createNode\",value:function(t){return new qe(t,null)}}])}(),Qe=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"printEdges\",value:function(t){t.println(\"Edges:\");for(var e=0;e<this._edges.size();e++){t.println(\"edge \"+e+\":\");var n=this._edges.get(e);n.print(t),n.eiList.print(t)}}},{key:\"find\",value:function(t){return this._nodes.find(t)}},{key:\"addNode\",value:function(){if(arguments[0]instanceof qe){var t=arguments[0];return this._nodes.addNode(t)}if(arguments[0]instanceof X){var e=arguments[0];return this._nodes.addNode(e)}}},{key:\"getNodeIterator\",value:function(){return this._nodes.iterator()}},{key:\"linkResultDirectedEdges\",value:function(){for(var t=this._nodes.iterator();t.hasNext();){t.next().getEdges().linkResultDirectedEdges()}}},{key:\"debugPrintln\",value:function(t){mt.out.println(t)}},{key:\"isBoundaryNode\",value:function(t,e){var n=this._nodes.find(e);if(null===n)return!1;var i=n.getLabel();return null!==i&&i.getLocation(t)===H.BOUNDARY}},{key:\"linkAllDirectedEdges\",value:function(){for(var t=this._nodes.iterator();t.hasNext();){t.next().getEdges().linkAllDirectedEdges()}}},{key:\"matchInSameDirection\",value:function(t,e,n,i){return!!t.equals(n)&&(ct.index(t,e,i)===ct.COLLINEAR&&je.quadrant(t,e)===je.quadrant(n,i))}},{key:\"getEdgeEnds\",value:function(){return this._edgeEndList}},{key:\"debugPrint\",value:function(t){mt.out.print(t)}},{key:\"getEdgeIterator\",value:function(){return this._edges.iterator()}},{key:\"findEdgeInSameDirection\",value:function(t,e){for(var n=0;n<this._edges.size();n++){var i=this._edges.get(n),r=i.getCoordinates();if(this.matchInSameDirection(t,e,r[0],r[1]))return i;if(this.matchInSameDirection(t,e,r[r.length-1],r[r.length-2]))return i}return null}},{key:\"insertEdge\",value:function(t){this._edges.add(t)}},{key:\"findEdgeEnd\",value:function(t){for(var e=this.getEdgeEnds().iterator();e.hasNext();){var n=e.next();if(n.getEdge()===t)return n}return null}},{key:\"addEdges\",value:function(t){for(var e=t.iterator();e.hasNext();){var n=e.next();this._edges.add(n);var i=new Ke(n,!0),r=new Ke(n,!1);i.setSym(r),r.setSym(i),this.add(i),this.add(r)}}},{key:\"add\",value:function(t){this._nodes.add(t),this._edgeEndList.add(t)}},{key:\"getNodes\",value:function(){return this._nodes.values()}},{key:\"findEdge\",value:function(t,e){for(var n=0;n<this._edges.size();n++){var i=this._edges.get(n),r=i.getCoordinates();if(t.equals(r[0])&&e.equals(r[1]))return i}return null}}],[{key:\"constructor_\",value:function(){if(this._edges=new yt,this._nodes=null,this._edgeEndList=new yt,0===arguments.length)this._nodes=new Ze(new Je);else if(1===arguments.length){var t=arguments[0];this._nodes=new Ze(t)}}},{key:\"linkResultDirectedEdges\",value:function(t){for(var e=t.iterator();e.hasNext();){e.next().getEdges().linkResultDirectedEdges()}}}])}(),$e=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"sortShellsAndHoles\",value:function(t,e,n){for(var i=t.iterator();i.hasNext();){var r=i.next();r.isHole()?n.add(r):e.add(r)}}},{key:\"computePolygons\",value:function(t){for(var e=new yt,n=t.iterator();n.hasNext();){var i=n.next().toPolygon(this._geometryFactory);e.add(i)}return e}},{key:\"placeFreeHoles\",value:function(e,n){for(var i=n.iterator();i.hasNext();){var r=i.next();if(null===r.getShell()){var s=t.findEdgeRingContaining(r,e);if(null===s)throw new gt(\"unable to assign hole to a shell\",r.getCoordinate(0));r.setShell(s)}}}},{key:\"buildMinimalEdgeRings\",value:function(t,e,n){for(var i=new yt,r=t.iterator();r.hasNext();){var s=r.next();if(s.getMaxNodeDegree()>2){s.linkDirectedEdgesForMinimalEdgeRings();var a=s.buildMinimalRings(),o=this.findShell(a);null!==o?(this.placePolygonHoles(o,a),e.add(o)):n.addAll(a)}else i.add(s)}return i}},{key:\"buildMaximalEdgeRings\",value:function(t){for(var e=new yt,n=t.iterator();n.hasNext();){var i=n.next();if(i.isInResult()&&i.getLabel().isArea()&&null===i.getEdgeRing()){var r=new Fe(i,this._geometryFactory);e.add(r),r.setInResult()}}return e}},{key:\"placePolygonHoles\",value:function(t,e){for(var n=e.iterator();n.hasNext();){var i=n.next();i.isHole()&&i.setShell(t)}}},{key:\"getPolygons\",value:function(){return this.computePolygons(this._shellList)}},{key:\"findShell\",value:function(t){for(var e=0,n=null,i=t.iterator();i.hasNext();){var r=i.next();r.isHole()||(n=r,e++)}return G.isTrue(e<=1,\"found two shells in MinimalEdgeRing list\"),n}},{key:\"add\",value:function(){if(1===arguments.length){var t=arguments[0];this.add(t.getEdgeEnds(),t.getNodes())}else if(2===arguments.length){var e=arguments[0],n=arguments[1];Qe.linkResultDirectedEdges(n);var i=this.buildMaximalEdgeRings(e),r=new yt,s=this.buildMinimalEdgeRings(i,this._shellList,r);this.sortShellsAndHoles(s,this._shellList,r),this.placeFreeHoles(this._shellList,r)}}}],[{key:\"constructor_\",value:function(){this._geometryFactory=null,this._shellList=new yt;var t=arguments[0];this._geometryFactory=t}},{key:\"findEdgeRingContaining\",value:function(t,e){for(var n=t.getLinearRing(),i=n.getEnvelopeInternal(),r=n.getCoordinateN(0),s=null,a=null,o=e.iterator();o.hasNext();){var u=o.next(),l=u.getLinearRing(),h=l.getEnvelopeInternal();if(!h.equals(i)&&h.contains(i)){r=jt.ptNotInList(n.getCoordinates(),l.getCoordinates());var c=!1;be.isInRing(r,l.getCoordinates())&&(c=!0),c&&(null===s||a.contains(h))&&(a=(s=u).getLinearRing().getEnvelopeInternal())}}return s}}])}(),tn=function(){return s((function t(){n(this,t)}),[{key:\"getBounds\",value:function(){}}])}(),en=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getItem\",value:function(){return this._item}},{key:\"getBounds\",value:function(){return this._bounds}},{key:\"interfaces_\",get:function(){return[tn,E]}}],[{key:\"constructor_\",value:function(){this._bounds=null,this._item=null;var t=arguments[0],e=arguments[1];this._bounds=t,this._item=e}}])}(),nn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"poll\",value:function(){if(this.isEmpty())return null;var t=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),t}},{key:\"size\",value:function(){return this._size}},{key:\"reorder\",value:function(t){for(var e=null,n=this._items.get(t);2*t<=this._size&&((e=2*t)!==this._size&&this._items.get(e+1).compareTo(this._items.get(e))<0&&e++,this._items.get(e).compareTo(n)<0);t=e)this._items.set(t,this._items.get(e));this._items.set(t,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 0===this._size}},{key:\"add\",value:function(t){this._items.add(null),this._size+=1;var e=this._size;for(this._items.set(0,t);t.compareTo(this._items.get(Math.trunc(e/2)))<0;e/=2)this._items.set(e,this._items.get(Math.trunc(e/2)));this._items.set(e,t)}}],[{key:\"constructor_\",value:function(){this._size=null,this._items=null,this._size=0,this._items=new yt,this._items.add(null)}}])}(),rn=function(){return s((function t(){n(this,t)}),[{key:\"insert\",value:function(t,e){}},{key:\"remove\",value:function(t,e){}},{key:\"query\",value:function(){}}])}(),sn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{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(t){G.isTrue(null===this._bounds),this._childBoundables.add(t)}},{key:\"isEmpty\",value:function(){return this._childBoundables.isEmpty()}},{key:\"getBounds\",value:function(){return null===this._bounds&&(this._bounds=this.computeBounds()),this._bounds}},{key:\"interfaces_\",get:function(){return[tn,E]}}],[{key:\"constructor_\",value:function(){if(this._childBoundables=new yt,this._bounds=null,this._level=null,0===arguments.length);else if(1===arguments.length){var t=arguments[0];this._level=t}}}])}(),an={reverseOrder:function(){return{compare:function(t,e){return e.compareTo(t)}}},min:function(t){return an.sort(t),t.get(0)},sort:function(t,e){var n=t.toArray();e?At.sort(n,e):At.sort(n);for(var i=t.iterator(),r=0,s=n.length;r<s;r++)i.next(),i.set(n[r])},singletonList:function(t){var e=new yt;return e.add(t),e}},on=function(){function t(){n(this,t)}return s(t,null,[{key:\"maxDistance\",value:function(e,n,i,r,s,a,o,u){var l=t.distance(e,n,s,a);return l=Math.max(l,t.distance(e,n,o,u)),l=Math.max(l,t.distance(i,r,s,a)),l=Math.max(l,t.distance(i,r,o,u))}},{key:\"distance\",value:function(t,e,n,i){var r=n-t,s=i-e;return Math.sqrt(r*r+s*s)}},{key:\"maximumDistance\",value:function(e,n){var i=Math.min(e.getMinX(),n.getMinX()),r=Math.min(e.getMinY(),n.getMinY()),s=Math.max(e.getMaxX(),n.getMaxX()),a=Math.max(e.getMaxY(),n.getMaxY());return t.distance(i,r,s,a)}},{key:\"minMaxDistance\",value:function(e,n){var i=e.getMinX(),r=e.getMinY(),s=e.getMaxX(),a=e.getMaxY(),o=n.getMinX(),u=n.getMinY(),l=n.getMaxX(),h=n.getMaxY(),c=t.maxDistance(i,r,i,a,o,u,o,h);return c=Math.min(c,t.maxDistance(i,r,i,a,o,u,l,u)),c=Math.min(c,t.maxDistance(i,r,i,a,l,h,o,h)),c=Math.min(c,t.maxDistance(i,r,i,a,l,h,l,u)),c=Math.min(c,t.maxDistance(i,r,s,r,o,u,o,h)),c=Math.min(c,t.maxDistance(i,r,s,r,o,u,l,u)),c=Math.min(c,t.maxDistance(i,r,s,r,l,h,o,h)),c=Math.min(c,t.maxDistance(i,r,s,r,l,h,l,u)),c=Math.min(c,t.maxDistance(s,a,i,a,o,u,o,h)),c=Math.min(c,t.maxDistance(s,a,i,a,o,u,l,u)),c=Math.min(c,t.maxDistance(s,a,i,a,l,h,o,h)),c=Math.min(c,t.maxDistance(s,a,i,a,l,h,l,u)),c=Math.min(c,t.maxDistance(s,a,s,r,o,u,o,h)),c=Math.min(c,t.maxDistance(s,a,s,r,o,u,l,u)),c=Math.min(c,t.maxDistance(s,a,s,r,l,h,o,h)),c=Math.min(c,t.maxDistance(s,a,s,r,l,h,l,u))}}])}(),un=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"maximumDistance\",value:function(){return on.maximumDistance(this._boundable1.getBounds(),this._boundable2.getBounds())}},{key:\"expandToQueue\",value:function(e,n){var i=t.isComposite(this._boundable1),r=t.isComposite(this._boundable2);if(i&&r)return t.area(this._boundable1)>t.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,!1,e,n),null):(this.expand(this._boundable2,this._boundable1,!0,e,n),null);if(i)return this.expand(this._boundable1,this._boundable2,!1,e,n),null;if(r)return this.expand(this._boundable2,this._boundable1,!0,e,n),null;throw new m(\"neither boundable is composite\")}},{key:\"isLeaves\",value:function(){return!(t.isComposite(this._boundable1)||t.isComposite(this._boundable2))}},{key:\"compareTo\",value:function(t){var e=t;return this._distance<e._distance?-1:this._distance>e._distance?1:0}},{key:\"expand\",value:function(e,n,i,r,s){for(var a=e.getChildBoundables().iterator();a.hasNext();){var o=a.next(),u=null;(u=i?new t(n,o,this._itemDistance):new t(o,n,this._itemDistance)).getDistance()<s&&r.add(u)}}},{key:\"getBoundable\",value:function(t){return 0===t?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[x]}}],[{key:\"constructor_\",value:function(){this._boundable1=null,this._boundable2=null,this._distance=null,this._itemDistance=null;var t=arguments[0],e=arguments[1],n=arguments[2];this._boundable1=t,this._boundable2=e,this._itemDistance=n,this._distance=this.distance()}},{key:\"area\",value:function(t){return t.getBounds().getArea()}},{key:\"isComposite\",value:function(t){return t instanceof sn}}])}(),ln=function(){return s((function t(){n(this,t)}),[{key:\"visitItem\",value:function(t){}}])}(),hn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"queryInternal\",value:function(){if(rt(arguments[2],ln)&&arguments[0]instanceof Object&&arguments[1]instanceof sn)for(var t=arguments[0],e=arguments[2],n=arguments[1].getChildBoundables(),i=0;i<n.size();i++){var r=n.get(i);this.getIntersectsOp().intersects(r.getBounds(),t)&&(r instanceof sn?this.queryInternal(t,r,e):r instanceof en?e.visitItem(r.getItem()):G.shouldNeverReachHere())}else if(rt(arguments[2],nt)&&arguments[0]instanceof Object&&arguments[1]instanceof sn)for(var s=arguments[0],a=arguments[2],o=arguments[1].getChildBoundables(),u=0;u<o.size();u++){var l=o.get(u);this.getIntersectsOp().intersects(l.getBounds(),s)&&(l instanceof sn?this.queryInternal(s,l,a):l instanceof en?a.add(l.getItem()):G.shouldNeverReachHere())}}},{key:\"getNodeCapacity\",value:function(){return this._nodeCapacity}},{key:\"lastNode\",value:function(t){return t.get(t.size()-1)}},{key:\"size\",value:function(){if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.size(this._root));if(1===arguments.length){for(var t=0,e=arguments[0].getChildBoundables().iterator();e.hasNext();){var n=e.next();n instanceof sn?t+=this.size(n):n instanceof en&&(t+=1)}return t}}},{key:\"removeItem\",value:function(t,e){for(var n=null,i=t.getChildBoundables().iterator();i.hasNext();){var r=i.next();r instanceof en&&r.getItem()===e&&(n=r)}return null!==n&&(t.getChildBoundables().remove(n),!0)}},{key:\"itemsTree\",value:function(){if(0===arguments.length){this.build();var t=this.itemsTree(this._root);return null===t?new yt:t}if(1===arguments.length){for(var e=arguments[0],n=new yt,i=e.getChildBoundables().iterator();i.hasNext();){var r=i.next();if(r instanceof sn){var s=this.itemsTree(r);null!==s&&n.add(s)}else r instanceof en?n.add(r.getItem()):G.shouldNeverReachHere()}return n.size()<=0?null:n}}},{key:\"insert\",value:function(t,e){G.isTrue(!this._built,\"Cannot insert items into an STR packed R-tree after it has been built.\"),this._itemBoundables.add(new en(t,e))}},{key:\"boundablesAtLevel\",value:function(){if(1===arguments.length){var t=arguments[0],e=new yt;return this.boundablesAtLevel(t,this._root,e),e}if(3===arguments.length){var n=arguments[0],i=arguments[1],r=arguments[2];if(G.isTrue(n>-2),i.getLevel()===n)return r.add(i),null;for(var s=i.getChildBoundables().iterator();s.hasNext();){var a=s.next();a instanceof sn?this.boundablesAtLevel(n,a,r):(G.isTrue(a instanceof en),-1===n&&r.add(a))}return null}}},{key:\"query\",value:function(){if(1===arguments.length){var t=arguments[0];this.build();var e=new yt;return this.isEmpty()||this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.queryInternal(t,this._root,e),e}if(2===arguments.length){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(2===arguments.length){var t=arguments[0],e=arguments[1];return this.build(),!!this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.remove(t,this._root,e)}if(3===arguments.length){var n=arguments[0],i=arguments[1],r=arguments[2],s=this.removeItem(i,r);if(s)return!0;for(var a=null,o=i.getChildBoundables().iterator();o.hasNext();){var u=o.next();if(this.getIntersectsOp().intersects(u.getBounds(),n)&&(u instanceof sn&&(s=this.remove(n,u,r)))){a=u;break}}return null!==a&&a.getChildBoundables().isEmpty()&&i.getChildBoundables().remove(a),s}}},{key:\"createHigherLevels\",value:function(t,e){G.isTrue(!t.isEmpty());var n=this.createParentBoundables(t,e+1);return 1===n.size()?n.get(0):this.createHigherLevels(n,e+1)}},{key:\"depth\",value:function(){if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.depth(this._root));if(1===arguments.length){for(var t=0,e=arguments[0].getChildBoundables().iterator();e.hasNext();){var n=e.next();if(n instanceof sn){var i=this.depth(n);i>t&&(t=i)}}return t+1}}},{key:\"createParentBoundables\",value:function(t,e){G.isTrue(!t.isEmpty());var n=new yt;n.add(this.createNode(e));var i=new yt(t);an.sort(i,this.getComparator());for(var r=i.iterator();r.hasNext();){var s=r.next();this.lastNode(n).getChildBoundables().size()===this.getNodeCapacity()&&n.add(this.createNode(e)),this.lastNode(n).addChildBoundable(s)}return n}},{key:\"isEmpty\",value:function(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()}},{key:\"interfaces_\",get:function(){return[E]}}],[{key:\"constructor_\",value:function(){if(this._root=null,this._built=!1,this._itemBoundables=new yt,this._nodeCapacity=null,0===arguments.length)t.constructor_.call(this,t.DEFAULT_NODE_CAPACITY);else if(1===arguments.length){var e=arguments[0];G.isTrue(e>1,\"Node capacity must be greater than 1\"),this._nodeCapacity=e}}},{key:\"compareDoubles\",value:function(t,e){return t>e?1:t<e?-1:0}}])}();hn.IntersectsOp=function(){},hn.DEFAULT_NODE_CAPACITY=10;var cn=function(){return s((function t(){n(this,t)}),[{key:\"distance\",value:function(t,e){}}])}(),fn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"createParentBoundablesFromVerticalSlices\",value:function(t,e){G.isTrue(t.length>0);for(var n=new yt,i=0;i<t.length;i++)n.addAll(this.createParentBoundablesFromVerticalSlice(t[i],e));return n}},{key:\"nearestNeighbourK\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];return this.nearestNeighbourK(t,A.POSITIVE_INFINITY,e)}if(3===arguments.length){var n=arguments[0],r=arguments[2],s=arguments[1],a=new nn;a.add(n);for(var o=new nn;!a.isEmpty()&&s>=0;){var u=a.poll(),l=u.getDistance();if(l>=s)break;if(u.isLeaves())if(o.size()<r)o.add(u);else o.peek().getDistance()>l&&(o.poll(),o.add(u)),s=o.peek().getDistance();else u.expandToQueue(a,s)}return i.getItems(o)}}},{key:\"createNode\",value:function(t){return new gn(t)}},{key:\"size\",value:function(){return 0===arguments.length?f(i,\"size\",this,1).call(this):f(i,\"size\",this,1).apply(this,arguments)}},{key:\"insert\",value:function(){if(!(2===arguments.length&&arguments[1]instanceof Object&&arguments[0]instanceof U))return f(i,\"insert\",this,1).apply(this,arguments);var t=arguments[0],e=arguments[1];if(t.isNull())return null;f(i,\"insert\",this,1).call(this,t,e)}},{key:\"getIntersectsOp\",value:function(){return i.intersectsOp}},{key:\"verticalSlices\",value:function(t,e){for(var n=Math.trunc(Math.ceil(t.size()/e)),i=new Array(e).fill(null),r=t.iterator(),s=0;s<e;s++){i[s]=new yt;for(var a=0;r.hasNext()&&a<n;){var o=r.next();i[s].add(o),a++}}return i}},{key:\"query\",value:function(){if(1===arguments.length){var t=arguments[0];return f(i,\"query\",this,1).call(this,t)}if(2===arguments.length){var e=arguments[0],n=arguments[1];f(i,\"query\",this,1).call(this,e,n)}}},{key:\"getComparator\",value:function(){return i.yComparator}},{key:\"createParentBoundablesFromVerticalSlice\",value:function(t,e){return f(i,\"createParentBoundables\",this,1).call(this,t,e)}},{key:\"remove\",value:function(){if(2===arguments.length&&arguments[1]instanceof Object&&arguments[0]instanceof U){var t=arguments[0],e=arguments[1];return f(i,\"remove\",this,1).call(this,t,e)}return f(i,\"remove\",this,1).apply(this,arguments)}},{key:\"depth\",value:function(){return 0===arguments.length?f(i,\"depth\",this,1).call(this):f(i,\"depth\",this,1).apply(this,arguments)}},{key:\"createParentBoundables\",value:function(t,e){G.isTrue(!t.isEmpty());var n=Math.trunc(Math.ceil(t.size()/this.getNodeCapacity())),r=new yt(t);an.sort(r,i.xComparator);var s=this.verticalSlices(r,Math.trunc(Math.ceil(Math.sqrt(n))));return this.createParentBoundablesFromVerticalSlices(s,e)}},{key:\"nearestNeighbour\",value:function(){if(1===arguments.length){if(rt(arguments[0],cn)){var t=arguments[0];if(this.isEmpty())return null;var e=new un(this.getRoot(),this.getRoot(),t);return this.nearestNeighbour(e)}if(arguments[0]instanceof un){var n=arguments[0],i=A.POSITIVE_INFINITY,r=null,s=new nn;for(s.add(n);!s.isEmpty()&&i>0;){var a=s.poll(),o=a.getDistance();if(o>=i)break;a.isLeaves()?(i=o,r=a):a.expandToQueue(s,i)}return null===r?null:[r.getBoundable(0).getItem(),r.getBoundable(1).getItem()]}}else{if(2===arguments.length){var u=arguments[0],l=arguments[1];if(this.isEmpty()||u.isEmpty())return null;var h=new un(this.getRoot(),u.getRoot(),l);return this.nearestNeighbour(h)}if(3===arguments.length){var c=arguments[2],f=new en(arguments[0],arguments[1]),g=new un(this.getRoot(),f,c);return this.nearestNeighbour(g)[0]}if(4===arguments.length){var v=arguments[2],y=arguments[3],d=new en(arguments[0],arguments[1]),_=new un(this.getRoot(),d,v);return this.nearestNeighbourK(_,y)}}}},{key:\"isWithinDistance\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1],n=A.POSITIVE_INFINITY,i=new nn;for(i.add(t);!i.isEmpty();){var r=i.poll(),s=r.getDistance();if(s>e)return!1;if(r.maximumDistance()<=e)return!0;if(r.isLeaves()){if((n=s)<=e)return!0}else r.expandToQueue(i,n)}return!1}if(3===arguments.length){var a=arguments[0],o=arguments[1],u=arguments[2],l=new un(this.getRoot(),a.getRoot(),o);return this.isWithinDistance(l,u)}}},{key:\"interfaces_\",get:function(){return[rn,E]}}],[{key:\"constructor_\",value:function(){if(0===arguments.length)i.constructor_.call(this,i.DEFAULT_NODE_CAPACITY);else if(1===arguments.length){var t=arguments[0];hn.constructor_.call(this,t)}}},{key:\"centreX\",value:function(t){return i.avg(t.getMinX(),t.getMaxX())}},{key:\"avg\",value:function(t,e){return(t+e)/2}},{key:\"getItems\",value:function(t){for(var e=new Array(t.size()).fill(null),n=0;!t.isEmpty();){var i=t.poll();e[n]=i.getBoundable(0).getItem(),n++}return e}},{key:\"centreY\",value:function(t){return i.avg(t.getMinY(),t.getMaxY())}}])}(hn),gn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"computeBounds\",value:function(){for(var t=null,e=this.getChildBoundables().iterator();e.hasNext();){var n=e.next();null===t?t=new U(n.getBounds()):t.expandToInclude(n.getBounds())}return t}}],[{key:\"constructor_\",value:function(){var t=arguments[0];sn.constructor_.call(this,t)}}])}(sn);fn.STRtreeNode=gn,fn.xComparator=new(function(){return s((function t(){n(this,t)}),[{key:\"interfaces_\",get:function(){return[P]}},{key:\"compare\",value:function(t,e){return hn.compareDoubles(fn.centreX(t.getBounds()),fn.centreX(e.getBounds()))}}])}()),fn.yComparator=new(function(){return s((function t(){n(this,t)}),[{key:\"interfaces_\",get:function(){return[P]}},{key:\"compare\",value:function(t,e){return hn.compareDoubles(fn.centreY(t.getBounds()),fn.centreY(e.getBounds()))}}])}()),fn.intersectsOp=new(function(){return s((function t(){n(this,t)}),[{key:\"interfaces_\",get:function(){return[IntersectsOp]}},{key:\"intersects\",value:function(t,e){return t.intersects(e)}}])}()),fn.DEFAULT_NODE_CAPACITY=10;var vn=function(){function t(){n(this,t)}return s(t,null,[{key:\"relativeSign\",value:function(t,e){return t<e?-1:t>e?1:0}},{key:\"compare\",value:function(e,n,i){if(n.equals2D(i))return 0;var r=t.relativeSign(n.x,i.x),s=t.relativeSign(n.y,i.y);switch(e){case 0:return t.compareValue(r,s);case 1:return t.compareValue(s,r);case 2:return t.compareValue(s,-r);case 3:return t.compareValue(-r,s);case 4:return t.compareValue(-r,-s);case 5:return t.compareValue(-s,-r);case 6:return t.compareValue(-s,r);case 7:return t.compareValue(r,-s)}return G.shouldNeverReachHere(\"invalid octant value\"),0}},{key:\"compareValue\",value:function(t,e){return t<0?-1:t>0?1:e<0?-1:e>0?1:0}}])}(),yn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getCoordinate\",value:function(){return this.coord}},{key:\"print\",value:function(t){t.print(this.coord),t.print(\" seg # = \"+this.segmentIndex)}},{key:\"compareTo\",value:function(t){var e=t;return this.segmentIndex<e.segmentIndex?-1:this.segmentIndex>e.segmentIndex?1:this.coord.equals2D(e.coord)?0:this._isInterior?e._isInterior?vn.compare(this._segmentOctant,this.coord,e.coord):1:-1}},{key:\"isEndPoint\",value:function(t){return 0===this.segmentIndex&&!this._isInterior||this.segmentIndex===t}},{key:\"toString\",value:function(){return this.segmentIndex+\":\"+this.coord.toString()}},{key:\"isInterior\",value:function(){return this._isInterior}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;var t=arguments[0],e=arguments[1],n=arguments[2],i=arguments[3];this._segString=t,this.coord=new X(e),this.segmentIndex=n,this._segmentOctant=i,this._isInterior=!e.equals2D(t.getCoordinate(n))}}])}(),dn=function(){return s((function t(){n(this,t)}),[{key:\"hasNext\",value:function(){}},{key:\"next\",value:function(){}},{key:\"remove\",value:function(){}}])}(),_n=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getSplitCoordinates\",value:function(){var t=new Zt;this.addEndpoints();for(var e=this.iterator(),n=e.next();e.hasNext();){var i=e.next();this.addEdgeCoordinates(n,i,t),n=i}return t.toCoordinateArray()}},{key:\"addCollapsedNodes\",value:function(){var t=new yt;this.findCollapsesFromInsertedNodes(t),this.findCollapsesFromExistingVertices(t);for(var e=t.iterator();e.hasNext();){var n=e.next().intValue();this.add(this._edge.getCoordinate(n),n)}}},{key:\"createSplitEdgePts\",value:function(t,e){var n=e.segmentIndex-t.segmentIndex+2;if(2===n)return[new X(t.coord),new X(e.coord)];var i=this._edge.getCoordinate(e.segmentIndex),r=e.isInterior()||!e.coord.equals2D(i);r||n--;var s=new Array(n).fill(null),a=0;s[a++]=new X(t.coord);for(var o=t.segmentIndex+1;o<=e.segmentIndex;o++)s[a++]=this._edge.getCoordinate(o);return r&&(s[a]=new X(e.coord)),s}},{key:\"print\",value:function(t){t.println(\"Intersections:\");for(var e=this.iterator();e.hasNext();){e.next().print(t)}}},{key:\"findCollapsesFromExistingVertices\",value:function(t){for(var e=0;e<this._edge.size()-2;e++){var n=this._edge.getCoordinate(e);this._edge.getCoordinate(e+1);var i=this._edge.getCoordinate(e+2);n.equals2D(i)&&t.add(at.valueOf(e+1))}}},{key:\"addEdgeCoordinates\",value:function(t,e,n){var i=this.createSplitEdgePts(t,e);n.add(i,!1)}},{key:\"iterator\",value:function(){return this._nodeMap.values().iterator()}},{key:\"addSplitEdges\",value:function(t){this.addEndpoints(),this.addCollapsedNodes();for(var e=this.iterator(),n=e.next();e.hasNext();){var i=e.next(),r=this.createSplitEdge(n,i);t.add(r),n=i}}},{key:\"findCollapseIndex\",value:function(t,e,n){if(!t.coord.equals2D(e.coord))return!1;var i=e.segmentIndex-t.segmentIndex;return e.isInterior()||i--,1===i&&(n[0]=t.segmentIndex+1,!0)}},{key:\"findCollapsesFromInsertedNodes\",value:function(t){for(var e=new Array(1).fill(null),n=this.iterator(),i=n.next();n.hasNext();){var r=n.next();this.findCollapseIndex(i,r,e)&&t.add(at.valueOf(e[0])),i=r}}},{key:\"getEdge\",value:function(){return this._edge}},{key:\"addEndpoints\",value:function(){var t=this._edge.size()-1;this.add(this._edge.getCoordinate(0),0),this.add(this._edge.getCoordinate(t),t)}},{key:\"createSplitEdge\",value:function(t,e){var n=this.createSplitEdgePts(t,e);return new xn(n,this._edge.getData())}},{key:\"add\",value:function(t,e){var n=new yn(this._edge,t,e,this._edge.getSegmentOctant(e)),i=this._nodeMap.get(n);return null!==i?(G.isTrue(i.coord.equals2D(t),\"Found equal nodes with different coordinates\"),i):(this._nodeMap.put(n,n),n)}},{key:\"checkSplitEdgesCorrectness\",value:function(t){var e=this._edge.getCoordinates(),n=t.get(0).getCoordinate(0);if(!n.equals2D(e[0]))throw new D(\"bad split edge start point at \"+n);var i=t.get(t.size()-1).getCoordinates(),r=i[i.length-1];if(!r.equals2D(e[e.length-1]))throw new D(\"bad split edge end point at \"+r)}}],[{key:\"constructor_\",value:function(){this._nodeMap=new He,this._edge=null;var t=arguments[0];this._edge=t}}])}(),pn=function(){function t(){n(this,t)}return s(t,null,[{key:\"octant\",value:function(){if(\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var e=arguments[0],n=arguments[1];if(0===e&&0===n)throw new m(\"Cannot compute the octant for point ( \"+e+\", \"+n+\" )\");var i=Math.abs(e),r=Math.abs(n);return e>=0?n>=0?i>=r?0:1:i>=r?7:6:n>=0?i>=r?3:2:i>=r?4:5}if(arguments[0]instanceof X&&arguments[1]instanceof X){var s=arguments[0],a=arguments[1],o=a.x-s.x,u=a.y-s.y;if(0===o&&0===u)throw new m(\"Cannot compute the octant for two identical points \"+s);return t.octant(o,u)}}}])}(),mn=function(){return s((function t(){n(this,t)}),[{key:\"getCoordinates\",value:function(){}},{key:\"size\",value:function(){}},{key:\"getCoordinate\",value:function(t){}},{key:\"isClosed\",value:function(){}},{key:\"setData\",value:function(t){}},{key:\"getData\",value:function(){}}])}(),kn=function(){return s((function t(){n(this,t)}),[{key:\"addIntersection\",value:function(t,e){}},{key:\"interfaces_\",get:function(){return[mn]}}])}(),xn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getCoordinates\",value:function(){return this._pts}},{key:\"size\",value:function(){return this._pts.length}},{key:\"getCoordinate\",value:function(t){return this._pts[t]}},{key:\"isClosed\",value:function(){return this._pts[0].equals(this._pts[this._pts.length-1])}},{key:\"getSegmentOctant\",value:function(t){return t===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(t),this.getCoordinate(t+1))}},{key:\"setData\",value:function(t){this._data=t}},{key:\"safeOctant\",value:function(t,e){return t.equals2D(e)?0:pn.octant(t,e)}},{key:\"getData\",value:function(){return this._data}},{key:\"addIntersection\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];this.addIntersectionNode(t,e)}else if(4===arguments.length){var n=arguments[1],i=arguments[3],r=new X(arguments[0].getIntersection(i));this.addIntersection(r,n)}}},{key:\"toString\",value:function(){return Ce.toLineString(new Qt(this._pts))}},{key:\"getNodeList\",value:function(){return this._nodeList}},{key:\"addIntersectionNode\",value:function(t,e){var n=e,i=n+1;if(i<this._pts.length){var r=this._pts[i];t.equals2D(r)&&(n=i)}return this._nodeList.add(t,n)}},{key:\"addIntersections\",value:function(t,e,n){for(var i=0;i<t.getIntersectionNum();i++)this.addIntersection(t,e,n,i)}},{key:\"interfaces_\",get:function(){return[kn]}}],[{key:\"constructor_\",value:function(){this._nodeList=new _n(this),this._pts=null,this._data=null;var t=arguments[0],e=arguments[1];this._pts=t,this._data=e}},{key:\"getNodedSubstrings\",value:function(){if(1===arguments.length){var e=arguments[0],n=new yt;return t.getNodedSubstrings(e,n),n}if(2===arguments.length)for(var i=arguments[1],r=arguments[0].iterator();r.hasNext();){r.next().getNodeList().addSplitEdges(i)}}}])}(),In=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"minX\",value:function(){return Math.min(this.p0.x,this.p1.x)}},{key:\"orientationIndex\",value:function(){if(arguments[0]instanceof t){var e=arguments[0],n=ct.index(this.p0,this.p1,e.p0),i=ct.index(this.p0,this.p1,e.p1);return n>=0&&i>=0||n<=0&&i<=0?Math.max(n,i):0}if(arguments[0]instanceof X){var r=arguments[0];return ct.index(this.p0,this.p1,r)}}},{key:\"toGeometry\",value:function(t){return t.createLineString([this.p0,this.p1])}},{key:\"isVertical\",value:function(){return this.p0.x===this.p1.x}},{key:\"equals\",value:function(e){if(!(e instanceof t))return!1;var n=e;return this.p0.equals(n.p0)&&this.p1.equals(n.p1)}},{key:\"intersection\",value:function(t){var e=new we;return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null}},{key:\"project\",value:function(){if(arguments[0]instanceof X){var e=arguments[0];if(e.equals(this.p0)||e.equals(this.p1))return new X(e);var n=this.projectionFactor(e),i=new X;return i.x=this.p0.x+n*(this.p1.x-this.p0.x),i.y=this.p0.y+n*(this.p1.y-this.p0.y),i}if(arguments[0]instanceof t){var r=arguments[0],s=this.projectionFactor(r.p0),a=this.projectionFactor(r.p1);if(s>=1&&a>=1)return null;if(s<=0&&a<=0)return null;var o=this.project(r.p0);s<0&&(o=this.p0),s>1&&(o=this.p1);var u=this.project(r.p1);return a<0&&(u=this.p0),a>1&&(u=this.p1),new t(o,u)}}},{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(t){return 0===t?this.p0:this.p1}},{key:\"distancePerpendicular\",value:function(t){return xt.pointToLinePerpendicular(t,this.p0,this.p1)}},{key:\"minY\",value:function(){return Math.min(this.p0.y,this.p1.y)}},{key:\"midPoint\",value:function(){return t.midPoint(this.p0,this.p1)}},{key:\"projectionFactor\",value:function(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,n=this.p1.y-this.p0.y,i=e*e+n*n;return i<=0?A.NaN:((t.x-this.p0.x)*e+(t.y-this.p0.y)*n)/i}},{key:\"closestPoints\",value:function(t){var e=this.intersection(t);if(null!==e)return[e,e];var n=new Array(2).fill(null),i=A.MAX_VALUE,r=null,s=this.closestPoint(t.p0);i=s.distance(t.p0),n[0]=s,n[1]=t.p0;var a=this.closestPoint(t.p1);(r=a.distance(t.p1))<i&&(i=r,n[0]=a,n[1]=t.p1);var o=t.closestPoint(this.p0);(r=o.distance(this.p0))<i&&(i=r,n[0]=this.p0,n[1]=o);var u=t.closestPoint(this.p1);return(r=u.distance(this.p1))<i&&(i=r,n[0]=this.p1,n[1]=u),n}},{key:\"closestPoint\",value:function(t){var e=this.projectionFactor(t);return e>0&&e<1?this.project(t):this.p0.distance(t)<this.p1.distance(t)?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(t){var e=t,n=this.p0.compareTo(e.p0);return 0!==n?n:this.p1.compareTo(e.p1)}},{key:\"reverse\",value:function(){var t=this.p0;this.p0=this.p1,this.p1=t}},{key:\"equalsTopo\",value:function(t){return this.p0.equals(t.p0)&&this.p1.equals(t.p1)||this.p0.equals(t.p1)&&this.p1.equals(t.p0)}},{key:\"lineIntersection\",value:function(t){return pt.intersection(this.p0,this.p1,t.p0,t.p1)}},{key:\"maxY\",value:function(){return Math.max(this.p0.y,this.p1.y)}},{key:\"pointAlongOffset\",value:function(t,e){var n=this.p0.x+t*(this.p1.x-this.p0.x),i=this.p0.y+t*(this.p1.y-this.p0.y),r=this.p1.x-this.p0.x,s=this.p1.y-this.p0.y,a=Math.sqrt(r*r+s*s),o=0,u=0;if(0!==e){if(a<=0)throw new IllegalStateException(\"Cannot compute offset from zero-length line segment\");o=e*r/a,u=e*s/a}return new X(n-u,i+o)}},{key:\"setCoordinates\",value:function(){if(1===arguments.length){var t=arguments[0];this.setCoordinates(t.p0,t.p1)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this.p0.x=e.x,this.p0.y=e.y,this.p1.x=n.x,this.p1.y=n.y}}},{key:\"segmentFraction\",value:function(t){var e=this.projectionFactor(t);return e<0?e=0:(e>1||A.isNaN(e))&&(e=1),e}},{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(t){var e=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()),r=e*e+n*n,s=e*e-n*n,a=t.getX(),o=t.getY();return new X((-s*a-2*e*n*o-2*e*i)/r,(s*o-2*e*n*a-2*n*i)/r)}},{key:\"distance\",value:function(){if(arguments[0]instanceof t){var e=arguments[0];return xt.segmentToSegment(this.p0,this.p1,e.p0,e.p1)}if(arguments[0]instanceof X){var n=arguments[0];return xt.pointToSegment(n,this.p0,this.p1)}}},{key:\"pointAlong\",value:function(t){var e=new X;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}},{key:\"hashCode\",value:function(){var t=A.doubleToLongBits(this.p0.x);t^=31*A.doubleToLongBits(this.p0.y);var e=Math.trunc(t)^Math.trunc(t>>32),n=A.doubleToLongBits(this.p1.x);return n^=31*A.doubleToLongBits(this.p1.y),e^(Math.trunc(n)^Math.trunc(n>>32))}},{key:\"interfaces_\",get:function(){return[x,E]}}],[{key:\"constructor_\",value:function(){if(this.p0=null,this.p1=null,0===arguments.length)t.constructor_.call(this,new X,new X);else if(1===arguments.length){var e=arguments[0];t.constructor_.call(this,e.p0,e.p1)}else if(2===arguments.length){var n=arguments[0],i=arguments[1];this.p0=n,this.p1=i}else if(4===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2],o=arguments[3];t.constructor_.call(this,new X(r,s),new X(a,o))}}},{key:\"midPoint\",value:function(t,e){return new X((t.x+e.x)/2,(t.y+e.y)/2)}}])}(),En=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"overlap\",value:function(){if(2===arguments.length);else if(4===arguments.length){var t=arguments[1],e=arguments[2],n=arguments[3];arguments[0].getLineSegment(t,this._overlapSeg1),e.getLineSegment(n,this._overlapSeg2),this.overlap(this._overlapSeg1,this._overlapSeg2)}}}],[{key:\"constructor_\",value:function(){this._overlapSeg1=new In,this._overlapSeg2=new In}}])}(),Nn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getLineSegment\",value:function(t,e){e.p0=this._pts[t],e.p1=this._pts[t+1]}},{key:\"computeSelect\",value:function(t,e,n,i){var r=this._pts[e],s=this._pts[n];if(n-e==1)return i.select(this,e),null;if(!t.intersects(r,s))return null;var a=Math.trunc((e+n)/2);e<a&&this.computeSelect(t,e,a,i),a<n&&this.computeSelect(t,a,n,i)}},{key:\"getCoordinates\",value:function(){for(var t=new Array(this._end-this._start+1).fill(null),e=0,n=this._start;n<=this._end;n++)t[e++]=this._pts[n];return t}},{key:\"computeOverlaps\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];this.computeOverlaps(this._start,this._end,t,t._start,t._end,e)}else if(6===arguments.length){var n=arguments[0],i=arguments[1],r=arguments[2],s=arguments[3],a=arguments[4],o=arguments[5];if(i-n==1&&a-s==1)return o.overlap(this,n,r,s),null;if(!this.overlaps(n,i,r,s,a))return null;var u=Math.trunc((n+i)/2),l=Math.trunc((s+a)/2);n<u&&(s<l&&this.computeOverlaps(n,u,r,s,l,o),l<a&&this.computeOverlaps(n,u,r,l,a,o)),u<i&&(s<l&&this.computeOverlaps(u,i,r,s,l,o),l<a&&this.computeOverlaps(u,i,r,l,a,o))}}},{key:\"setId\",value:function(t){this._id=t}},{key:\"select\",value:function(t,e){this.computeSelect(t,this._start,this._end,e)}},{key:\"getEnvelope\",value:function(){if(null===this._env){var t=this._pts[this._start],e=this._pts[this._end];this._env=new U(t,e)}return this._env}},{key:\"overlaps\",value:function(t,e,n,i,r){return U.intersects(this._pts[t],this._pts[e],n._pts[i],n._pts[r])}},{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 t=arguments[0],e=arguments[1],n=arguments[2],i=arguments[3];this._pts=t,this._start=e,this._end=n,this._context=i}}])}(),Tn=function(){function t(){n(this,t)}return s(t,null,[{key:\"findChainEnd\",value:function(t,e){for(var n=e;n<t.length-1&&t[n].equals2D(t[n+1]);)n++;if(n>=t.length-1)return t.length-1;for(var i=je.quadrant(t[n],t[n+1]),r=e+1;r<t.length;){if(!t[r-1].equals2D(t[r]))if(je.quadrant(t[r-1],t[r])!==i)break;r++}return r-1}},{key:\"getChains\",value:function(){if(1===arguments.length){var e=arguments[0];return t.getChains(e,null)}if(2===arguments.length){var n=arguments[0],i=arguments[1],r=new yt,s=0;do{var a=t.findChainEnd(n,s),o=new Nn(n,s,a,i);r.add(o),s=a}while(s<n.length-1);return r}}}])}(),Sn=function(){return s((function t(){n(this,t)}),[{key:\"computeNodes\",value:function(t){}},{key:\"getNodedSubstrings\",value:function(){}}])}(),Ln=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"setSegmentIntersector\",value:function(t){this._segInt=t}},{key:\"interfaces_\",get:function(){return[Sn]}}],[{key:\"constructor_\",value:function(){if(this._segInt=null,0===arguments.length);else if(1===arguments.length){var t=arguments[0];this.setSegmentIntersector(t)}}}])}(),Cn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getMonotoneChains\",value:function(){return this._monoChains}},{key:\"getNodedSubstrings\",value:function(){return xn.getNodedSubstrings(this._nodedSegStrings)}},{key:\"getIndex\",value:function(){return this._index}},{key:\"add\",value:function(t){for(var e=Tn.getChains(t.getCoordinates(),t).iterator();e.hasNext();){var n=e.next();n.setId(this._idCounter++),this._index.insert(n.getEnvelope(),n),this._monoChains.add(n)}}},{key:\"computeNodes\",value:function(t){this._nodedSegStrings=t;for(var e=t.iterator();e.hasNext();)this.add(e.next());this.intersectChains()}},{key:\"intersectChains\",value:function(){for(var t=new Rn(this._segInt),e=this._monoChains.iterator();e.hasNext();)for(var n=e.next(),i=this._index.query(n.getEnvelope()).iterator();i.hasNext();){var r=i.next();if(r.getId()>n.getId()&&(n.computeOverlaps(r,t),this._nOverlaps++),this._segInt.isDone())return null}}}],[{key:\"constructor_\",value:function(){if(this._monoChains=new yt,this._index=new fn,this._idCounter=0,this._nodedSegStrings=null,this._nOverlaps=0,0===arguments.length);else if(1===arguments.length){var t=arguments[0];Ln.constructor_.call(this,t)}}}])}(Ln),Rn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"overlap\",value:function(){if(4!==arguments.length)return f(i,\"overlap\",this,1).apply(this,arguments);var t=arguments[1],e=arguments[2],n=arguments[3],r=arguments[0].getContext(),s=e.getContext();this._si.processIntersections(r,t,s,n)}}],[{key:\"constructor_\",value:function(){this._si=null;var t=arguments[0];this._si=t}}])}(En);Cn.SegmentOverlapAction=Rn;var wn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"isDeletable\",value:function(t,e,n,i){var r=this._inputLine[t],s=this._inputLine[e],a=this._inputLine[n];return!!this.isConcave(r,s,a)&&(!!this.isShallow(r,s,a,i)&&this.isShallowSampled(r,s,t,n,i))}},{key:\"deleteShallowConcavities\",value:function(){for(var e=1,n=this.findNextNonDeletedIndex(e),i=this.findNextNonDeletedIndex(n),r=!1;i<this._inputLine.length;){var s=!1;this.isDeletable(e,n,i,this._distanceTol)&&(this._isDeleted[n]=t.DELETE,s=!0,r=!0),e=s?i:n,n=this.findNextNonDeletedIndex(e),i=this.findNextNonDeletedIndex(n)}return r}},{key:\"isShallowConcavity\",value:function(t,e,n,i){return ct.index(t,e,n)===this._angleOrientation&&xt.pointToSegment(e,t,n)<i}},{key:\"isShallowSampled\",value:function(e,n,i,r,s){var a=Math.trunc((r-i)/t.NUM_PTS_TO_CHECK);a<=0&&(a=1);for(var o=i;o<r;o+=a)if(!this.isShallow(e,n,this._inputLine[o],s))return!1;return!0}},{key:\"isConcave\",value:function(t,e,n){var i=ct.index(t,e,n)===this._angleOrientation;return i}},{key:\"simplify\",value:function(t){this._distanceTol=Math.abs(t),t<0&&(this._angleOrientation=ct.CLOCKWISE),this._isDeleted=new Array(this._inputLine.length).fill(null);var e=!1;do{e=this.deleteShallowConcavities()}while(e);return this.collapseLine()}},{key:\"findNextNonDeletedIndex\",value:function(e){for(var n=e+1;n<this._inputLine.length&&this._isDeleted[n]===t.DELETE;)n++;return n}},{key:\"isShallow\",value:function(t,e,n,i){return xt.pointToSegment(e,t,n)<i}},{key:\"collapseLine\",value:function(){for(var e=new Zt,n=0;n<this._inputLine.length;n++)this._isDeleted[n]!==t.DELETE&&e.add(this._inputLine[n]);return e.toCoordinateArray()}}],[{key:\"constructor_\",value:function(){this._inputLine=null,this._distanceTol=null,this._isDeleted=null,this._angleOrientation=ct.COUNTERCLOCKWISE;var t=arguments[0];this._inputLine=t}},{key:\"simplify\",value:function(e,n){return new t(e).simplify(n)}}])}();wn.INIT=0,wn.DELETE=1,wn.KEEP=1,wn.NUM_PTS_TO_CHECK=10;var On=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getCoordinates\",value:function(){return this._ptList.toArray(t.COORDINATE_ARRAY_TYPE)}},{key:\"setPrecisionModel\",value:function(t){this._precisionModel=t}},{key:\"addPt\",value:function(t){var e=new X(t);if(this._precisionModel.makePrecise(e),this.isRedundant(e))return null;this._ptList.add(e)}},{key:\"reverse\",value:function(){}},{key:\"addPts\",value:function(t,e){if(e)for(var n=0;n<t.length;n++)this.addPt(t[n]);else for(var i=t.length-1;i>=0;i--)this.addPt(t[i])}},{key:\"isRedundant\",value:function(t){if(this._ptList.size()<1)return!1;var e=this._ptList.get(this._ptList.size()-1);return t.distance(e)<this._minimimVertexDistance}},{key:\"toString\",value:function(){return(new ae).createLineString(this.getCoordinates()).toString()}},{key:\"closeRing\",value:function(){if(this._ptList.size()<1)return null;var t=new X(this._ptList.get(0)),e=this._ptList.get(this._ptList.size()-1);if(t.equals(e))return null;this._ptList.add(t)}},{key:\"setMinimumVertexDistance\",value:function(t){this._minimimVertexDistance=t}}],[{key:\"constructor_\",value:function(){this._ptList=null,this._precisionModel=null,this._minimimVertexDistance=0,this._ptList=new yt}}])}();On.COORDINATE_ARRAY_TYPE=new Array(0).fill(null);var bn=function(){function t(){n(this,t)}return s(t,null,[{key:\"toDegrees\",value:function(t){return 180*t/Math.PI}},{key:\"normalize\",value:function(e){for(;e>Math.PI;)e-=t.PI_TIMES_2;for(;e<=-Math.PI;)e+=t.PI_TIMES_2;return e}},{key:\"angle\",value:function(){if(1===arguments.length){var t=arguments[0];return Math.atan2(t.y,t.x)}if(2===arguments.length){var e=arguments[0],n=arguments[1],i=n.x-e.x,r=n.y-e.y;return Math.atan2(r,i)}}},{key:\"isAcute\",value:function(t,e,n){var i=t.x-e.x,r=t.y-e.y;return i*(n.x-e.x)+r*(n.y-e.y)>0}},{key:\"isObtuse\",value:function(t,e,n){var i=t.x-e.x,r=t.y-e.y;return i*(n.x-e.x)+r*(n.y-e.y)<0}},{key:\"interiorAngle\",value:function(e,n,i){var r=t.angle(n,e),s=t.angle(n,i);return Math.abs(s-r)}},{key:\"normalizePositive\",value:function(e){if(e<0){for(;e<0;)e+=t.PI_TIMES_2;e>=t.PI_TIMES_2&&(e=0)}else{for(;e>=t.PI_TIMES_2;)e-=t.PI_TIMES_2;e<0&&(e=0)}return e}},{key:\"angleBetween\",value:function(e,n,i){var r=t.angle(n,e),s=t.angle(n,i);return t.diff(r,s)}},{key:\"diff\",value:function(t,e){var n=null;return(n=t<e?e-t:t-e)>Math.PI&&(n=2*Math.PI-n),n}},{key:\"toRadians\",value:function(t){return t*Math.PI/180}},{key:\"getTurn\",value:function(e,n){var i=Math.sin(n-e);return i>0?t.COUNTERCLOCKWISE:i<0?t.CLOCKWISE:t.NONE}},{key:\"angleBetweenOriented\",value:function(e,n,i){var r=t.angle(n,e),s=t.angle(n,i)-r;return s<=-Math.PI?s+t.PI_TIMES_2:s>Math.PI?s-t.PI_TIMES_2:s}}])}();bn.PI_TIMES_2=2*Math.PI,bn.PI_OVER_2=Math.PI/2,bn.PI_OVER_4=Math.PI/4,bn.COUNTERCLOCKWISE=ct.COUNTERCLOCKWISE,bn.CLOCKWISE=ct.CLOCKWISE,bn.NONE=ct.COLLINEAR;var Mn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"addNextSegment\",value:function(t,e){if(this._s0=this._s1,this._s1=this._s2,this._s2=t,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=ct.index(this._s0,this._s1,this._s2),i=n===ct.CLOCKWISE&&this._side===$.LEFT||n===ct.COUNTERCLOCKWISE&&this._side===$.RIGHT;0===n?this.addCollinear(e):i?this.addOutsideTurn(n,e):this.addInsideTurn(n,e)}},{key:\"addLineEndCap\",value:function(t,e){var n=new In(t,e),i=new In;this.computeOffsetSegment(n,$.LEFT,this._distance,i);var r=new In;this.computeOffsetSegment(n,$.RIGHT,this._distance,r);var s=e.x-t.x,a=e.y-t.y,o=Math.atan2(a,s);switch(this._bufParams.getEndCapStyle()){case _.CAP_ROUND:this._segList.addPt(i.p1),this.addDirectedFillet(e,o+Math.PI/2,o-Math.PI/2,ct.CLOCKWISE,this._distance),this._segList.addPt(r.p1);break;case _.CAP_FLAT:this._segList.addPt(i.p1),this._segList.addPt(r.p1);break;case _.CAP_SQUARE:var u=new X;u.x=Math.abs(this._distance)*Math.cos(o),u.y=Math.abs(this._distance)*Math.sin(o);var l=new X(i.p1.x+u.x,i.p1.y+u.y),h=new X(r.p1.x+u.x,r.p1.y+u.y);this._segList.addPt(l),this._segList.addPt(h)}}},{key:\"getCoordinates\",value:function(){return this._segList.getCoordinates()}},{key:\"addMitreJoin\",value:function(t,e,n,i){var r=pt.intersection(e.p0,e.p1,n.p0,n.p1);if(null!==r&&(i<=0?1:r.distance(t)/Math.abs(i))<=this._bufParams.getMitreLimit())return this._segList.addPt(r),null;this.addLimitedMitreJoin(e,n,i,this._bufParams.getMitreLimit())}},{key:\"addOutsideTurn\",value:function(e,n){if(this._offset0.p1.distance(this._offset1.p0)<this._distance*t.OFFSET_SEGMENT_SEPARATION_FACTOR)return this._segList.addPt(this._offset0.p1),null;this._bufParams.getJoinStyle()===_.JOIN_MITRE?this.addMitreJoin(this._s1,this._offset0,this._offset1,this._distance):this._bufParams.getJoinStyle()===_.JOIN_BEVEL?this.addBevelJoin(this._offset0,this._offset1):(n&&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(t){this._segList.addPt(new X(t.x+this._distance,t.y+this._distance)),this._segList.addPt(new X(t.x+this._distance,t.y-this._distance)),this._segList.addPt(new X(t.x-this._distance,t.y-this._distance)),this._segList.addPt(new X(t.x-this._distance,t.y+this._distance)),this._segList.closeRing()}},{key:\"addSegments\",value:function(t,e){this._segList.addPts(t,e)}},{key:\"addFirstSegment\",value:function(){this._segList.addPt(this._offset1.p0)}},{key:\"addCornerFillet\",value:function(t,e,n,i,r){var s=e.x-t.x,a=e.y-t.y,o=Math.atan2(a,s),u=n.x-t.x,l=n.y-t.y,h=Math.atan2(l,u);i===ct.CLOCKWISE?o<=h&&(o+=2*Math.PI):o>=h&&(o-=2*Math.PI),this._segList.addPt(e),this.addDirectedFillet(t,o,h,i,r),this._segList.addPt(n)}},{key:\"addLastSegment\",value:function(){this._segList.addPt(this._offset1.p1)}},{key:\"initSideSegments\",value:function(t,e,n){this._s1=t,this._s2=e,this._side=n,this._seg1.setCoordinates(t,e),this.computeOffsetSegment(this._seg1,n,this._distance,this._offset1)}},{key:\"addLimitedMitreJoin\",value:function(t,e,n,i){var r=this._seg0.p1,s=bn.angle(r,this._seg0.p0),a=bn.angleBetweenOriented(this._seg0.p0,r,this._seg1.p1)/2,o=bn.normalize(s+a),u=bn.normalize(o+Math.PI),l=i*n,h=n-l*Math.abs(Math.sin(a)),c=r.x+l*Math.cos(u),f=r.y+l*Math.sin(u),g=new X(c,f),v=new In(r,g),y=v.pointAlongOffset(1,h),d=v.pointAlongOffset(1,-h);this._side===$.LEFT?(this._segList.addPt(y),this._segList.addPt(d)):(this._segList.addPt(d),this._segList.addPt(y))}},{key:\"addDirectedFillet\",value:function(t,e,n,i,r){var s=i===ct.CLOCKWISE?-1:1,a=Math.abs(e-n),o=Math.trunc(a/this._filletAngleQuantum+.5);if(o<1)return null;for(var u=a/o,l=new X,h=0;h<o;h++){var c=e+s*h*u;l.x=t.x+r*Math.cos(c),l.y=t.y+r*Math.sin(c),this._segList.addPt(l)}}},{key:\"computeOffsetSegment\",value:function(t,e,n,i){var r=e===$.LEFT?1:-1,s=t.p1.x-t.p0.x,a=t.p1.y-t.p0.y,o=Math.sqrt(s*s+a*a),u=r*n*s/o,l=r*n*a/o;i.p0.x=t.p0.x-l,i.p0.y=t.p0.y+u,i.p1.x=t.p1.x-l,i.p1.y=t.p1.y+u}},{key:\"addInsideTurn\",value:function(e,n){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*t.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR)this._segList.addPt(this._offset0.p1);else{if(this._segList.addPt(this._offset0.p1),this._closingSegLengthFactor>0){var i=new X((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(i);var r=new X((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(r)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}}},{key:\"createCircle\",value:function(t){var e=new X(t.x+this._distance,t.y);this._segList.addPt(e),this.addDirectedFillet(t,0,2*Math.PI,-1,this._distance),this._segList.closeRing()}},{key:\"addBevelJoin\",value:function(t,e){this._segList.addPt(t.p1),this._segList.addPt(e.p0)}},{key:\"init\",value:function(e){this._distance=e,this._maxCurveSegmentError=e*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new On,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(e*t.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)}},{key:\"addCollinear\",value:function(t){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2),this._li.getIntersectionNum()>=2&&(this._bufParams.getJoinStyle()===_.JOIN_BEVEL||this._bufParams.getJoinStyle()===_.JOIN_MITRE?(t&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addCornerFillet(this._s1,this._offset0.p1,this._offset1.p0,ct.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 In,this._seg1=new In,this._offset0=new In,this._offset1=new In,this._side=0,this._hasNarrowConcaveAngle=!1;var e=arguments[0],n=arguments[1],i=arguments[2];this._precisionModel=e,this._bufParams=n,this._li=new we,this._filletAngleQuantum=Math.PI/2/n.getQuadrantSegments(),n.getQuadrantSegments()>=8&&n.getJoinStyle()===_.JOIN_ROUND&&(this._closingSegLengthFactor=t.MAX_CLOSING_SEG_LEN_FACTOR),this.init(i)}}])}();Mn.OFFSET_SEGMENT_SEPARATION_FACTOR=.001,Mn.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR=.001,Mn.CURVE_VERTEX_SNAP_DISTANCE_FACTOR=1e-6,Mn.MAX_CLOSING_SEG_LEN_FACTOR=80;var An=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getOffsetCurve\",value:function(t,e){if(this._distance=e,0===e)return null;var n=e<0,i=Math.abs(e),r=this.getSegGen(i);t.length<=1?this.computePointCurve(t[0],r):this.computeOffsetCurve(t,n,r);var s=r.getCoordinates();return n&&jt.reverse(s),s}},{key:\"computeSingleSidedBufferCurve\",value:function(t,e,n){var i=this.simplifyTolerance(this._distance);if(e){n.addSegments(t,!0);var r=wn.simplify(t,-i),s=r.length-1;n.initSideSegments(r[s],r[s-1],$.LEFT),n.addFirstSegment();for(var a=s-2;a>=0;a--)n.addNextSegment(r[a],!0)}else{n.addSegments(t,!1);var o=wn.simplify(t,i),u=o.length-1;n.initSideSegments(o[0],o[1],$.LEFT),n.addFirstSegment();for(var l=2;l<=u;l++)n.addNextSegment(o[l],!0)}n.addLastSegment(),n.closeRing()}},{key:\"computeRingBufferCurve\",value:function(t,e,n){var i=this.simplifyTolerance(this._distance);e===$.RIGHT&&(i=-i);var r=wn.simplify(t,i),s=r.length-1;n.initSideSegments(r[s-1],r[0],e);for(var a=1;a<=s;a++){var o=1!==a;n.addNextSegment(r[a],o)}n.closeRing()}},{key:\"computeLineBufferCurve\",value:function(t,e){var n=this.simplifyTolerance(this._distance),i=wn.simplify(t,n),r=i.length-1;e.initSideSegments(i[0],i[1],$.LEFT);for(var s=2;s<=r;s++)e.addNextSegment(i[s],!0);e.addLastSegment(),e.addLineEndCap(i[r-1],i[r]);var a=wn.simplify(t,-n),o=a.length-1;e.initSideSegments(a[o],a[o-1],$.LEFT);for(var u=o-2;u>=0;u--)e.addNextSegment(a[u],!0);e.addLastSegment(),e.addLineEndCap(a[1],a[0]),e.closeRing()}},{key:\"computePointCurve\",value:function(t,e){switch(this._bufParams.getEndCapStyle()){case _.CAP_ROUND:e.createCircle(t);break;case _.CAP_SQUARE:e.createSquare(t)}}},{key:\"getLineCurve\",value:function(t,e){if(this._distance=e,this.isLineOffsetEmpty(e))return null;var n=Math.abs(e),i=this.getSegGen(n);if(t.length<=1)this.computePointCurve(t[0],i);else if(this._bufParams.isSingleSided()){var r=e<0;this.computeSingleSidedBufferCurve(t,r,i)}else this.computeLineBufferCurve(t,i);return i.getCoordinates()}},{key:\"getBufferParameters\",value:function(){return this._bufParams}},{key:\"simplifyTolerance\",value:function(t){return t*this._bufParams.getSimplifyFactor()}},{key:\"getRingCurve\",value:function(e,n,i){if(this._distance=i,e.length<=2)return this.getLineCurve(e,i);if(0===i)return t.copyCoordinates(e);var r=this.getSegGen(i);return this.computeRingBufferCurve(e,n,r),r.getCoordinates()}},{key:\"computeOffsetCurve\",value:function(t,e,n){var i=this.simplifyTolerance(this._distance);if(e){var r=wn.simplify(t,-i),s=r.length-1;n.initSideSegments(r[s],r[s-1],$.LEFT),n.addFirstSegment();for(var a=s-2;a>=0;a--)n.addNextSegment(r[a],!0)}else{var o=wn.simplify(t,i),u=o.length-1;n.initSideSegments(o[0],o[1],$.LEFT),n.addFirstSegment();for(var l=2;l<=u;l++)n.addNextSegment(o[l],!0)}n.addLastSegment()}},{key:\"isLineOffsetEmpty\",value:function(t){return 0===t||t<0&&!this._bufParams.isSingleSided()}},{key:\"getSegGen\",value:function(t){return new Mn(this._precisionModel,this._bufParams,t)}}],[{key:\"constructor_\",value:function(){this._distance=0,this._precisionModel=null,this._bufParams=null;var t=arguments[0],e=arguments[1];this._precisionModel=t,this._bufParams=e}},{key:\"copyCoordinates\",value:function(t){for(var e=new Array(t.length).fill(null),n=0;n<e.length;n++)e[n]=new X(t[n]);return e}}])}(),Pn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"findStabbedSegments\",value:function(){if(1===arguments.length){for(var t=arguments[0],e=new yt,n=this._subgraphs.iterator();n.hasNext();){var i=n.next(),r=i.getEnvelope();t.y<r.getMinY()||t.y>r.getMaxY()||this.findStabbedSegments(t,i.getDirectedEdges(),e)}return e}if(3===arguments.length)if(rt(arguments[2],nt)&&arguments[0]instanceof X&&arguments[1]instanceof Ke)for(var s=arguments[0],a=arguments[1],o=arguments[2],u=a.getEdge().getCoordinates(),l=0;l<u.length-1;l++){if(this._seg.p0=u[l],this._seg.p1=u[l+1],this._seg.p0.y>this._seg.p1.y&&this._seg.reverse(),!(Math.max(this._seg.p0.x,this._seg.p1.x)<s.x||this._seg.isHorizontal()||s.y<this._seg.p0.y||s.y>this._seg.p1.y||ct.index(this._seg.p0,this._seg.p1,s)===ct.RIGHT)){var h=a.getDepth($.LEFT);this._seg.p0.equals(u[l])||(h=a.getDepth($.RIGHT));var c=new Dn(this._seg,h);o.add(c)}}else if(rt(arguments[2],nt)&&arguments[0]instanceof X&&rt(arguments[1],nt))for(var f=arguments[0],g=arguments[2],v=arguments[1].iterator();v.hasNext();){var y=v.next();y.isForward()&&this.findStabbedSegments(f,y,g)}}},{key:\"getDepth\",value:function(t){var e=this.findStabbedSegments(t);return 0===e.size()?0:an.min(e)._leftDepth}}],[{key:\"constructor_\",value:function(){this._subgraphs=null,this._seg=new In;var t=arguments[0];this._subgraphs=t}}])}(),Dn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"compareTo\",value:function(t){var e=t;if(this._upwardSeg.minX()>=e._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=e._upwardSeg.minX())return-1;var n=this._upwardSeg.orientationIndex(e._upwardSeg);return 0!==n||0!==(n=-1*e._upwardSeg.orientationIndex(this._upwardSeg))?n:this._upwardSeg.compareTo(e._upwardSeg)}},{key:\"compareX\",value:function(t,e){var n=t.p0.compareTo(e.p0);return 0!==n?n:t.p1.compareTo(e.p1)}},{key:\"toString\",value:function(){return this._upwardSeg.toString()}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){this._upwardSeg=null,this._leftDepth=null;var t=arguments[0],e=arguments[1];this._upwardSeg=new In(t),this._leftDepth=e}}])}();Pn.DepthSegment=Dn;var Fn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,null,[{key:\"constructor_\",value:function(){p.constructor_.call(this,\"Projective point not representable on the Cartesian plane.\")}}])}(p),Gn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getY\",value:function(){var t=this.y/this.w;if(A.isNaN(t)||A.isInfinite(t))throw new Fn;return t}},{key:\"getX\",value:function(){var t=this.x/this.w;if(A.isNaN(t)||A.isInfinite(t))throw new Fn;return t}},{key:\"getCoordinate\",value:function(){var t=new X;return t.x=this.getX(),t.y=this.getY(),t}}],[{key:\"constructor_\",value:function(){if(this.x=null,this.y=null,this.w=null,0===arguments.length)this.x=0,this.y=0,this.w=1;else if(1===arguments.length){var e=arguments[0];this.x=e.x,this.y=e.y,this.w=1}else if(2===arguments.length){if(\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var n=arguments[0],i=arguments[1];this.x=n,this.y=i,this.w=1}else if(arguments[0]instanceof t&&arguments[1]instanceof t){var r=arguments[0],s=arguments[1];this.x=r.y*s.w-s.y*r.w,this.y=s.x*r.w-r.x*s.w,this.w=r.x*s.y-s.x*r.y}else if(arguments[0]instanceof X&&arguments[1]instanceof X){var a=arguments[0],o=arguments[1];this.x=a.y-o.y,this.y=o.x-a.x,this.w=a.x*o.y-o.x*a.y}}else if(3===arguments.length){var u=arguments[0],l=arguments[1],h=arguments[2];this.x=u,this.y=l,this.w=h}else if(4===arguments.length){var c=arguments[0],f=arguments[1],g=arguments[2],v=arguments[3],y=c.y-f.y,d=f.x-c.x,_=c.x*f.y-f.x*c.y,p=g.y-v.y,m=v.x-g.x,k=g.x*v.y-v.x*g.y;this.x=d*k-m*_,this.y=p*_-y*k,this.w=y*m-p*d}}}])}(),qn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"area\",value:function(){return t.area(this.p0,this.p1,this.p2)}},{key:\"signedArea\",value:function(){return t.signedArea(this.p0,this.p1,this.p2)}},{key:\"interpolateZ\",value:function(e){if(null===e)throw new m(\"Supplied point is null.\");return t.interpolateZ(e,this.p0,this.p1,this.p2)}},{key:\"longestSideLength\",value:function(){return t.longestSideLength(this.p0,this.p1,this.p2)}},{key:\"isAcute\",value:function(){return t.isAcute(this.p0,this.p1,this.p2)}},{key:\"circumcentre\",value:function(){return t.circumcentre(this.p0,this.p1,this.p2)}},{key:\"area3D\",value:function(){return t.area3D(this.p0,this.p1,this.p2)}},{key:\"centroid\",value:function(){return t.centroid(this.p0,this.p1,this.p2)}},{key:\"inCentre\",value:function(){return t.inCentre(this.p0,this.p1,this.p2)}}],[{key:\"constructor_\",value:function(){this.p0=null,this.p1=null,this.p2=null;var t=arguments[0],e=arguments[1],n=arguments[2];this.p0=t,this.p1=e,this.p2=n}},{key:\"area\",value:function(t,e,n){return Math.abs(((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2)}},{key:\"signedArea\",value:function(t,e,n){return((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2}},{key:\"det\",value:function(t,e,n,i){return t*i-e*n}},{key:\"interpolateZ\",value:function(t,e,n,i){var r=e.x,s=e.y,a=n.x-r,o=i.x-r,u=n.y-s,l=i.y-s,h=a*l-o*u,c=t.x-r,f=t.y-s,g=(l*c-o*f)/h,v=(-u*c+a*f)/h;return e.getZ()+g*(n.getZ()-e.getZ())+v*(i.getZ()-e.getZ())}},{key:\"longestSideLength\",value:function(t,e,n){var i=t.distance(e),r=e.distance(n),s=n.distance(t),a=i;return r>a&&(a=r),s>a&&(a=s),a}},{key:\"circumcentreDD\",value:function(t,e,n){var i=ut.valueOf(t.x).subtract(n.x),r=ut.valueOf(t.y).subtract(n.y),s=ut.valueOf(e.x).subtract(n.x),a=ut.valueOf(e.y).subtract(n.y),o=ut.determinant(i,r,s,a).multiply(2),u=i.sqr().add(r.sqr()),l=s.sqr().add(a.sqr()),h=ut.determinant(r,u,a,l),c=ut.determinant(i,u,s,l),f=ut.valueOf(n.x).subtract(h.divide(o)).doubleValue(),g=ut.valueOf(n.y).add(c.divide(o)).doubleValue();return new X(f,g)}},{key:\"isAcute\",value:function(t,e,n){return!!bn.isAcute(t,e,n)&&(!!bn.isAcute(e,n,t)&&!!bn.isAcute(n,t,e))}},{key:\"circumcentre\",value:function(e,n,i){var r=i.x,s=i.y,a=e.x-r,o=e.y-s,u=n.x-r,l=n.y-s,h=2*t.det(a,o,u,l),c=t.det(o,a*a+o*o,l,u*u+l*l),f=t.det(a,a*a+o*o,u,u*u+l*l);return new X(r-c/h,s+f/h)}},{key:\"perpendicularBisector\",value:function(t,e){var n=e.x-t.x,i=e.y-t.y,r=new Gn(t.x+n/2,t.y+i/2,1),s=new Gn(t.x-i+n/2,t.y+n+i/2,1);return new Gn(r,s)}},{key:\"angleBisector\",value:function(t,e,n){var i=e.distance(t),r=i/(i+e.distance(n)),s=n.x-t.x,a=n.y-t.y;return new X(t.x+r*s,t.y+r*a)}},{key:\"area3D\",value:function(t,e,n){var i=e.x-t.x,r=e.y-t.y,s=e.getZ()-t.getZ(),a=n.x-t.x,o=n.y-t.y,u=n.getZ()-t.getZ(),l=r*u-s*o,h=s*a-i*u,c=i*o-r*a,f=l*l+h*h+c*c,g=Math.sqrt(f)/2;return g}},{key:\"centroid\",value:function(t,e,n){var i=(t.x+e.x+n.x)/3,r=(t.y+e.y+n.y)/3;return new X(i,r)}},{key:\"inCentre\",value:function(t,e,n){var i=e.distance(n),r=t.distance(n),s=t.distance(e),a=i+r+s,o=(i*t.x+r*e.x+s*n.x)/a,u=(i*t.y+r*e.y+s*n.y)/a;return new X(o,u)}}])}(),Yn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"addRingSide\",value:function(t,e,n,i,r){if(0===e&&t.length<Xt.MINIMUM_VALID_SIZE)return null;var s=i,a=r;t.length>=Xt.MINIMUM_VALID_SIZE&&ct.isCCW(t)&&(s=r,a=i,n=$.opposite(n));var o=this._curveBuilder.getRingCurve(t,n,e);this.addCurve(o,s,a)}},{key:\"addRingBothSides\",value:function(t,e){this.addRingSide(t,e,$.LEFT,H.EXTERIOR,H.INTERIOR),this.addRingSide(t,e,$.RIGHT,H.INTERIOR,H.EXTERIOR)}},{key:\"addPoint\",value:function(t){if(this._distance<=0)return null;var e=t.getCoordinates(),n=this._curveBuilder.getLineCurve(e,this._distance);this.addCurve(n,H.EXTERIOR,H.INTERIOR)}},{key:\"addPolygon\",value:function(t){var e=this._distance,n=$.LEFT;this._distance<0&&(e=-this._distance,n=$.RIGHT);var i=t.getExteriorRing(),r=jt.removeRepeatedPoints(i.getCoordinates());if(this._distance<0&&this.isErodedCompletely(i,this._distance))return null;if(this._distance<=0&&r.length<3)return null;this.addRingSide(r,e,n,H.EXTERIOR,H.INTERIOR);for(var s=0;s<t.getNumInteriorRing();s++){var a=t.getInteriorRingN(s),o=jt.removeRepeatedPoints(a.getCoordinates());this._distance>0&&this.isErodedCompletely(a,-this._distance)||this.addRingSide(o,e,$.opposite(n),H.INTERIOR,H.EXTERIOR)}}},{key:\"isTriangleErodedCompletely\",value:function(t,e){var n=new qn(t[0],t[1],t[2]),i=n.inCentre();return xt.pointToSegment(i,n.p0,n.p1)<Math.abs(e)}},{key:\"addLineString\",value:function(t){if(this._curveBuilder.isLineOffsetEmpty(this._distance))return null;var e=jt.removeRepeatedPoints(t.getCoordinates());if(jt.isRing(e)&&!this._curveBuilder.getBufferParameters().isSingleSided())this.addRingBothSides(e,this._distance);else{var n=this._curveBuilder.getLineCurve(e,this._distance);this.addCurve(n,H.EXTERIOR,H.INTERIOR)}}},{key:\"addCurve\",value:function(t,e,n){if(null===t||t.length<2)return null;var i=new xn(t,new Ae(0,H.BOUNDARY,e,n));this._curveList.add(i)}},{key:\"getCurves\",value:function(){return this.add(this._inputGeom),this._curveList}},{key:\"add\",value:function(t){if(t.isEmpty())return null;if(t instanceof Dt)this.addPolygon(t);else if(t instanceof wt)this.addLineString(t);else if(t instanceof bt)this.addPoint(t);else if(t instanceof zt)this.addCollection(t);else if(t instanceof se)this.addCollection(t);else if(t instanceof te)this.addCollection(t);else{if(!(t instanceof Yt))throw new W(t.getGeometryType());this.addCollection(t)}}},{key:\"isErodedCompletely\",value:function(t,e){var n=t.getCoordinates();if(n.length<4)return e<0;if(4===n.length)return this.isTriangleErodedCompletely(n,e);var i=t.getEnvelopeInternal(),r=Math.min(i.getHeight(),i.getWidth());return e<0&&2*Math.abs(e)>r}},{key:\"addCollection\",value:function(t){for(var e=0;e<t.getNumGeometries();e++){var n=t.getGeometryN(e);this.add(n)}}}],[{key:\"constructor_\",value:function(){this._inputGeom=null,this._distance=null,this._curveBuilder=null,this._curveList=new yt;var t=arguments[0],e=arguments[1],n=arguments[2];this._inputGeom=t,this._distance=e,this._curveBuilder=n}}])}(),zn=function(){return s((function t(){n(this,t)}),[{key:\"locate\",value:function(t){}}])}(),Xn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"next\",value:function(){if(this._atStart)return this._atStart=!1,t.isAtomic(this._parent)&&this._index++,this._parent;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return this._subcollectionIterator.next();this._subcollectionIterator=null}if(this._index>=this._max)throw new j;var e=this._parent.getGeometryN(this._index++);return e instanceof Yt?(this._subcollectionIterator=new t(e),this._subcollectionIterator.next()):e}},{key:\"remove\",value:function(){throw new W(this.getClass().getName())}},{key:\"hasNext\",value:function(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)}},{key:\"interfaces_\",get:function(){return[dn]}}],[{key:\"constructor_\",value:function(){this._parent=null,this._atStart=null,this._max=null,this._index=null,this._subcollectionIterator=null;var t=arguments[0];this._parent=t,this._atStart=!0,this._index=0,this._max=t.getNumGeometries()}},{key:\"isAtomic\",value:function(t){return!(t instanceof Yt)}}])}(),Bn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"locate\",value:function(e){return t.locate(e,this._geom)}},{key:\"interfaces_\",get:function(){return[zn]}}],[{key:\"constructor_\",value:function(){this._geom=null;var t=arguments[0];this._geom=t}},{key:\"locatePointInPolygon\",value:function(e,n){if(n.isEmpty())return H.EXTERIOR;var i=n.getExteriorRing(),r=t.locatePointInRing(e,i);if(r!==H.INTERIOR)return r;for(var s=0;s<n.getNumInteriorRing();s++){var a=n.getInteriorRingN(s),o=t.locatePointInRing(e,a);if(o===H.BOUNDARY)return H.BOUNDARY;if(o===H.INTERIOR)return H.EXTERIOR}return H.INTERIOR}},{key:\"locatePointInRing\",value:function(t,e){return e.getEnvelopeInternal().intersects(t)?be.locateInRing(t,e.getCoordinates()):H.EXTERIOR}},{key:\"containsPointInPolygon\",value:function(e,n){return H.EXTERIOR!==t.locatePointInPolygon(e,n)}},{key:\"locateInGeometry\",value:function(e,n){if(n instanceof Dt)return t.locatePointInPolygon(e,n);if(n instanceof Yt)for(var i=new Xn(n);i.hasNext();){var r=i.next();if(r!==n){var s=t.locateInGeometry(e,r);if(s!==H.EXTERIOR)return s}}return H.EXTERIOR}},{key:\"isContained\",value:function(e,n){return H.EXTERIOR!==t.locate(e,n)}},{key:\"locate\",value:function(e,n){return n.isEmpty()?H.EXTERIOR:n.getEnvelopeInternal().intersects(e)?t.locateInGeometry(e,n):H.EXTERIOR}}])}(),Un=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getNextCW\",value:function(t){this.getEdges();var e=this._edgeList.indexOf(t),n=e-1;return 0===e&&(n=this._edgeList.size()-1),this._edgeList.get(n)}},{key:\"propagateSideLabels\",value:function(t){for(var e=H.NONE,n=this.iterator();n.hasNext();){var i=n.next().getLabel();i.isArea(t)&&i.getLocation(t,$.LEFT)!==H.NONE&&(e=i.getLocation(t,$.LEFT))}if(e===H.NONE)return null;for(var r=e,s=this.iterator();s.hasNext();){var a=s.next(),o=a.getLabel();if(o.getLocation(t,$.ON)===H.NONE&&o.setLocation(t,$.ON,r),o.isArea(t)){var u=o.getLocation(t,$.LEFT),l=o.getLocation(t,$.RIGHT);if(l!==H.NONE){if(l!==r)throw new gt(\"side location conflict\",a.getCoordinate());u===H.NONE&&G.shouldNeverReachHere(\"found single null side (at \"+a.getCoordinate()+\")\"),r=u}else G.isTrue(o.getLocation(t,$.LEFT)===H.NONE,\"found single null side\"),o.setLocation(t,$.RIGHT,r),o.setLocation(t,$.LEFT,r)}}}},{key:\"getCoordinate\",value:function(){var t=this.iterator();return t.hasNext()?t.next().getCoordinate():null}},{key:\"print\",value:function(t){mt.out.println(\"EdgeEndStar: \"+this.getCoordinate());for(var e=this.iterator();e.hasNext();){e.next().print(t)}}},{key:\"isAreaLabelsConsistent\",value:function(t){return this.computeEdgeEndLabels(t.getBoundaryNodeRule()),this.checkAreaLabelsConsistent(0)}},{key:\"checkAreaLabelsConsistent\",value:function(t){var e=this.getEdges();if(e.size()<=0)return!0;var n=e.size()-1,i=e.get(n).getLabel().getLocation(t,$.LEFT);G.isTrue(i!==H.NONE,\"Found unlabelled area edge\");for(var r=i,s=this.iterator();s.hasNext();){var a=s.next().getLabel();G.isTrue(a.isArea(t),\"Found non-area edge\");var o=a.getLocation(t,$.LEFT),u=a.getLocation(t,$.RIGHT);if(o===u)return!1;if(u!==r)return!1;r=o}return!0}},{key:\"findIndex\",value:function(t){this.iterator();for(var e=0;e<this._edgeList.size();e++){if(this._edgeList.get(e)===t)return e}return-1}},{key:\"iterator\",value:function(){return this.getEdges().iterator()}},{key:\"getEdges\",value:function(){return null===this._edgeList&&(this._edgeList=new yt(this._edgeMap.values())),this._edgeList}},{key:\"getLocation\",value:function(t,e,n){return this._ptInAreaLocation[t]===H.NONE&&(this._ptInAreaLocation[t]=Bn.locate(e,n[t].getGeometry())),this._ptInAreaLocation[t]}},{key:\"toString\",value:function(){var t=new st;t.append(\"EdgeEndStar: \"+this.getCoordinate()),t.append(\"\\n\");for(var e=this.iterator();e.hasNext();){var n=e.next();t.append(n),t.append(\"\\n\")}return t.toString()}},{key:\"computeEdgeEndLabels\",value:function(t){for(var e=this.iterator();e.hasNext();){e.next().computeLabel(t)}}},{key:\"computeLabelling\",value:function(t){this.computeEdgeEndLabels(t[0].getBoundaryNodeRule()),this.propagateSideLabels(0),this.propagateSideLabels(1);for(var e=[!1,!1],n=this.iterator();n.hasNext();)for(var i=n.next().getLabel(),r=0;r<2;r++)i.isLine(r)&&i.getLocation(r)===H.BOUNDARY&&(e[r]=!0);for(var s=this.iterator();s.hasNext();)for(var a=s.next(),o=a.getLabel(),u=0;u<2;u++)if(o.isAnyNull(u)){var l=H.NONE;if(e[u])l=H.EXTERIOR;else{var h=a.getCoordinate();l=this.getLocation(u,h,t)}o.setAllLocationsIfNull(u,l)}}},{key:\"getDegree\",value:function(){return this._edgeMap.size()}},{key:\"insertEdgeEnd\",value:function(t,e){this._edgeMap.put(t,e),this._edgeList=null}}],[{key:\"constructor_\",value:function(){this._edgeMap=new He,this._edgeList=null,this._ptInAreaLocation=[H.NONE,H.NONE]}}])}(),Vn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"linkResultDirectedEdges\",value:function(){this.getResultAreaEdges();for(var t=null,e=null,n=this._SCANNING_FOR_INCOMING,i=0;i<this._resultAreaEdgeList.size();i++){var r=this._resultAreaEdgeList.get(i),s=r.getSym();if(r.getLabel().isArea())switch(null===t&&r.isInResult()&&(t=r),n){case this._SCANNING_FOR_INCOMING:if(!s.isInResult())continue;e=s,n=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(!r.isInResult())continue;e.setNext(r),n=this._SCANNING_FOR_INCOMING}}if(n===this._LINKING_TO_OUTGOING){if(null===t)throw new gt(\"no outgoing dirEdge found\",this.getCoordinate());G.isTrue(t.isInResult(),\"unable to link last incoming dirEdge\"),e.setNext(t)}}},{key:\"insert\",value:function(t){var e=t;this.insertEdgeEnd(e,e)}},{key:\"getRightmostEdge\",value:function(){var t=this.getEdges(),e=t.size();if(e<1)return null;var n=t.get(0);if(1===e)return n;var i=t.get(e-1),r=n.getQuadrant(),s=i.getQuadrant();return je.isNorthern(r)&&je.isNorthern(s)?n:je.isNorthern(r)||je.isNorthern(s)?0!==n.getDy()?n:0!==i.getDy()?i:(G.shouldNeverReachHere(\"found two horizontal edges incident on node\"),null):i}},{key:\"print\",value:function(t){mt.out.println(\"DirectedEdgeStar: \"+this.getCoordinate());for(var e=this.iterator();e.hasNext();){var n=e.next();t.print(\"out \"),n.print(t),t.println(),t.print(\"in \"),n.getSym().print(t),t.println()}}},{key:\"getResultAreaEdges\",value:function(){if(null!==this._resultAreaEdgeList)return this._resultAreaEdgeList;this._resultAreaEdgeList=new yt;for(var t=this.iterator();t.hasNext();){var e=t.next();(e.isInResult()||e.getSym().isInResult())&&this._resultAreaEdgeList.add(e)}return this._resultAreaEdgeList}},{key:\"updateLabelling\",value:function(t){for(var e=this.iterator();e.hasNext();){var n=e.next().getLabel();n.setAllLocationsIfNull(0,t.getLocation(0)),n.setAllLocationsIfNull(1,t.getLocation(1))}}},{key:\"linkAllDirectedEdges\",value:function(){this.getEdges();for(var t=null,e=null,n=this._edgeList.size()-1;n>=0;n--){var i=this._edgeList.get(n),r=i.getSym();null===e&&(e=r),null!==t&&r.setNext(t),t=i}e.setNext(t)}},{key:\"computeDepths\",value:function(){if(1===arguments.length){var t=arguments[0],e=this.findIndex(t),n=t.getDepth($.LEFT),i=t.getDepth($.RIGHT),r=this.computeDepths(e+1,this._edgeList.size(),n);if(this.computeDepths(0,e,r)!==i)throw new gt(\"depth mismatch at \"+t.getCoordinate())}else if(3===arguments.length){for(var s=arguments[1],a=arguments[2],o=arguments[0];o<s;o++){var u=this._edgeList.get(o);u.setEdgeDepths($.RIGHT,a),a=u.getDepth($.LEFT)}return a}}},{key:\"mergeSymLabels\",value:function(){for(var t=this.iterator();t.hasNext();){var e=t.next();e.getLabel().merge(e.getSym().getLabel())}}},{key:\"linkMinimalDirectedEdges\",value:function(t){for(var e=null,n=null,i=this._SCANNING_FOR_INCOMING,r=this._resultAreaEdgeList.size()-1;r>=0;r--){var s=this._resultAreaEdgeList.get(r),a=s.getSym();switch(null===e&&s.getEdgeRing()===t&&(e=s),i){case this._SCANNING_FOR_INCOMING:if(a.getEdgeRing()!==t)continue;n=a,i=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(s.getEdgeRing()!==t)continue;n.setNextMin(s),i=this._SCANNING_FOR_INCOMING}}i===this._LINKING_TO_OUTGOING&&(G.isTrue(null!==e,\"found null for first outgoing dirEdge\"),G.isTrue(e.getEdgeRing()===t,\"unable to link last incoming dirEdge\"),n.setNextMin(e))}},{key:\"getOutgoingDegree\",value:function(){if(0===arguments.length){for(var t=0,e=this.iterator();e.hasNext();){e.next().isInResult()&&t++}return t}if(1===arguments.length){for(var n=arguments[0],i=0,r=this.iterator();r.hasNext();){r.next().getEdgeRing()===n&&i++}return i}}},{key:\"getLabel\",value:function(){return this._label}},{key:\"findCoveredLineEdges\",value:function(){for(var t=H.NONE,e=this.iterator();e.hasNext();){var n=e.next(),i=n.getSym();if(!n.isLineEdge()){if(n.isInResult()){t=H.INTERIOR;break}if(i.isInResult()){t=H.EXTERIOR;break}}}if(t===H.NONE)return null;for(var r=t,s=this.iterator();s.hasNext();){var a=s.next(),o=a.getSym();a.isLineEdge()?a.getEdge().setCovered(r===H.INTERIOR):(a.isInResult()&&(r=H.EXTERIOR),o.isInResult()&&(r=H.INTERIOR))}}},{key:\"computeLabelling\",value:function(t){f(i,\"computeLabelling\",this,1).call(this,t),this._label=new Ae(H.NONE);for(var e=this.iterator();e.hasNext();)for(var n=e.next().getEdge().getLabel(),r=0;r<2;r++){var s=n.getLocation(r);s!==H.INTERIOR&&s!==H.BOUNDARY||this._label.setLocation(r,H.INTERIOR)}}}],[{key:\"constructor_\",value:function(){this._resultAreaEdgeList=null,this._label=null,this._SCANNING_FOR_INCOMING=1,this._LINKING_TO_OUTGOING=2}}])}(Un),Hn=function(t){function i(){return n(this,i),e(this,i)}return l(i,t),s(i,[{key:\"createNode\",value:function(t){return new qe(t,new Vn)}}])}(Je),Zn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"compareTo\",value:function(e){var n=e;return t.compareOriented(this._pts,this._orientation,n._pts,n._orientation)}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){this._pts=null,this._orientation=null;var e=arguments[0];this._pts=e,this._orientation=t.orientation(e)}},{key:\"orientation\",value:function(t){return 1===jt.increasingDirection(t)}},{key:\"compareOriented\",value:function(t,e,n,i){for(var r=e?1:-1,s=i?1:-1,a=e?t.length:-1,o=i?n.length:-1,u=e?0:t.length-1,l=i?0:n.length-1;;){var h=t[u].compareTo(n[l]);if(0!==h)return h;var c=(u+=r)===a,f=(l+=s)===o;if(c&&!f)return-1;if(!c&&f)return 1;if(c&&f)return 0}}}])}(),jn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"print\",value:function(t){t.print(\"MULTILINESTRING ( \");for(var e=0;e<this._edges.size();e++){var n=this._edges.get(e);e>0&&t.print(\",\"),t.print(\"(\");for(var i=n.getCoordinates(),r=0;r<i.length;r++)r>0&&t.print(\",\"),t.print(i[r].x+\" \"+i[r].y);t.println(\")\")}t.print(\") \")}},{key:\"addAll\",value:function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next())}},{key:\"findEdgeIndex\",value:function(t){for(var e=0;e<this._edges.size();e++)if(this._edges.get(e).equals(t))return e;return-1}},{key:\"iterator\",value:function(){return this._edges.iterator()}},{key:\"getEdges\",value:function(){return this._edges}},{key:\"get\",value:function(t){return this._edges.get(t)}},{key:\"findEqualEdge\",value:function(t){var e=new Zn(t.getCoordinates());return this._ocaMap.get(e)}},{key:\"add\",value:function(t){this._edges.add(t);var e=new Zn(t.getCoordinates());this._ocaMap.put(e,t)}}],[{key:\"constructor_\",value:function(){this._edges=new yt,this._ocaMap=new He}}])}(),Wn=function(){return s((function t(){n(this,t)}),[{key:\"processIntersections\",value:function(t,e,n,i){}},{key:\"isDone\",value:function(){}}])}(),Kn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"isTrivialIntersection\",value:function(e,n,i,r){if(e===i&&1===this._li.getIntersectionNum()){if(t.isAdjacentSegments(n,r))return!0;if(e.isClosed()){var s=e.size()-1;if(0===n&&r===s||0===r&&n===s)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(t,e,n,i){if(t===n&&e===i)return null;this.numTests++;var r=t.getCoordinates()[e],s=t.getCoordinates()[e+1],a=n.getCoordinates()[i],o=n.getCoordinates()[i+1];this._li.computeIntersection(r,s,a,o),this._li.hasIntersection()&&(this.numIntersections++,this._li.isInteriorIntersection()&&(this.numInteriorIntersections++,this._hasInterior=!0),this.isTrivialIntersection(t,e,n,i)||(this._hasIntersection=!0,t.addIntersections(this._li,e,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[Wn]}}],[{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 t=arguments[0];this._li=t}},{key:\"isAdjacentSegments\",value:function(t,e){return 1===Math.abs(t-e)}}])}(),Jn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getSegmentIndex\",value:function(){return this.segmentIndex}},{key:\"getCoordinate\",value:function(){return this.coord}},{key:\"print\",value:function(t){t.print(this.coord),t.print(\" seg # = \"+this.segmentIndex),t.println(\" dist = \"+this.dist)}},{key:\"compareTo\",value:function(t){var e=t;return this.compare(e.segmentIndex,e.dist)}},{key:\"isEndPoint\",value:function(t){return 0===this.segmentIndex&&0===this.dist||this.segmentIndex===t}},{key:\"toString\",value:function(){return this.coord+\" seg # = \"+this.segmentIndex+\" dist = \"+this.dist}},{key:\"getDistance\",value:function(){return this.dist}},{key:\"compare\",value:function(t,e){return this.segmentIndex<t?-1:this.segmentIndex>t?1:this.dist<e?-1:this.dist>e?1:0}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){this.coord=null,this.segmentIndex=null,this.dist=null;var t=arguments[0],e=arguments[1],n=arguments[2];this.coord=new X(t),this.segmentIndex=e,this.dist=n}}])}(),Qn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"print\",value:function(t){t.println(\"Intersections:\");for(var e=this.iterator();e.hasNext();){e.next().print(t)}}},{key:\"iterator\",value:function(){return this._nodeMap.values().iterator()}},{key:\"addSplitEdges\",value:function(t){this.addEndpoints();for(var e=this.iterator(),n=e.next();e.hasNext();){var i=e.next(),r=this.createSplitEdge(n,i);t.add(r),n=i}}},{key:\"addEndpoints\",value:function(){var t=this.edge.pts.length-1;this.add(this.edge.pts[0],0,0),this.add(this.edge.pts[t],t,0)}},{key:\"createSplitEdge\",value:function(t,e){var n=e.segmentIndex-t.segmentIndex+2,i=this.edge.pts[e.segmentIndex],r=e.dist>0||!e.coord.equals2D(i);r||n--;var s=new Array(n).fill(null),a=0;s[a++]=new X(t.coord);for(var o=t.segmentIndex+1;o<=e.segmentIndex;o++)s[a++]=this.edge.pts[o];return r&&(s[a]=e.coord),new ri(s,new Ae(this.edge._label))}},{key:\"add\",value:function(t,e,n){var i=new Jn(t,e,n),r=this._nodeMap.get(i);return null!==r?r:(this._nodeMap.put(i,i),i)}},{key:\"isIntersection\",value:function(t){for(var e=this.iterator();e.hasNext();){if(e.next().coord.equals(t))return!0}return!1}}],[{key:\"constructor_\",value:function(){this._nodeMap=new He,this.edge=null;var t=arguments[0];this.edge=t}}])}(),$n=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"isIntersects\",value:function(){return!this.isDisjoint()}},{key:\"isCovers\",value:function(){return(t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])||t.isTrue(this._matrix[H.INTERIOR][H.BOUNDARY])||t.isTrue(this._matrix[H.BOUNDARY][H.INTERIOR])||t.isTrue(this._matrix[H.BOUNDARY][H.BOUNDARY]))&&this._matrix[H.EXTERIOR][H.INTERIOR]===Lt.FALSE&&this._matrix[H.EXTERIOR][H.BOUNDARY]===Lt.FALSE}},{key:\"isCoveredBy\",value:function(){return(t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])||t.isTrue(this._matrix[H.INTERIOR][H.BOUNDARY])||t.isTrue(this._matrix[H.BOUNDARY][H.INTERIOR])||t.isTrue(this._matrix[H.BOUNDARY][H.BOUNDARY]))&&this._matrix[H.INTERIOR][H.EXTERIOR]===Lt.FALSE&&this._matrix[H.BOUNDARY][H.EXTERIOR]===Lt.FALSE}},{key:\"set\",value:function(){if(1===arguments.length)for(var t=arguments[0],e=0;e<t.length;e++){var n=Math.trunc(e/3),i=e%3;this._matrix[n][i]=Lt.toDimensionValue(t.charAt(e))}else if(3===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2];this._matrix[r][s]=a}}},{key:\"isContains\",value:function(){return t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&this._matrix[H.EXTERIOR][H.INTERIOR]===Lt.FALSE&&this._matrix[H.EXTERIOR][H.BOUNDARY]===Lt.FALSE}},{key:\"setAtLeast\",value:function(){if(1===arguments.length)for(var t=arguments[0],e=0;e<t.length;e++){var n=Math.trunc(e/3),i=e%3;this.setAtLeast(n,i,Lt.toDimensionValue(t.charAt(e)))}else if(3===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2];this._matrix[r][s]<a&&(this._matrix[r][s]=a)}}},{key:\"setAtLeastIfValid\",value:function(t,e,n){t>=0&&e>=0&&this.setAtLeast(t,e,n)}},{key:\"isWithin\",value:function(){return t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&this._matrix[H.INTERIOR][H.EXTERIOR]===Lt.FALSE&&this._matrix[H.BOUNDARY][H.EXTERIOR]===Lt.FALSE}},{key:\"isTouches\",value:function(e,n){return e>n?this.isTouches(n,e):(e===Lt.A&&n===Lt.A||e===Lt.L&&n===Lt.L||e===Lt.L&&n===Lt.A||e===Lt.P&&n===Lt.A||e===Lt.P&&n===Lt.L)&&(this._matrix[H.INTERIOR][H.INTERIOR]===Lt.FALSE&&(t.isTrue(this._matrix[H.INTERIOR][H.BOUNDARY])||t.isTrue(this._matrix[H.BOUNDARY][H.INTERIOR])||t.isTrue(this._matrix[H.BOUNDARY][H.BOUNDARY])))}},{key:\"isOverlaps\",value:function(e,n){return e===Lt.P&&n===Lt.P||e===Lt.A&&n===Lt.A?t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&t.isTrue(this._matrix[H.INTERIOR][H.EXTERIOR])&&t.isTrue(this._matrix[H.EXTERIOR][H.INTERIOR]):e===Lt.L&&n===Lt.L&&(1===this._matrix[H.INTERIOR][H.INTERIOR]&&t.isTrue(this._matrix[H.INTERIOR][H.EXTERIOR])&&t.isTrue(this._matrix[H.EXTERIOR][H.INTERIOR]))}},{key:\"isEquals\",value:function(e,n){return e===n&&(t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&this._matrix[H.INTERIOR][H.EXTERIOR]===Lt.FALSE&&this._matrix[H.BOUNDARY][H.EXTERIOR]===Lt.FALSE&&this._matrix[H.EXTERIOR][H.INTERIOR]===Lt.FALSE&&this._matrix[H.EXTERIOR][H.BOUNDARY]===Lt.FALSE)}},{key:\"toString\",value:function(){for(var t=new Jt(\"123456789\"),e=0;e<3;e++)for(var n=0;n<3;n++)t.setCharAt(3*e+n,Lt.toDimensionSymbol(this._matrix[e][n]));return t.toString()}},{key:\"setAll\",value:function(t){for(var e=0;e<3;e++)for(var n=0;n<3;n++)this._matrix[e][n]=t}},{key:\"get\",value:function(t,e){return this._matrix[t][e]}},{key:\"transpose\",value:function(){var t=this._matrix[1][0];return this._matrix[1][0]=this._matrix[0][1],this._matrix[0][1]=t,t=this._matrix[2][0],this._matrix[2][0]=this._matrix[0][2],this._matrix[0][2]=t,t=this._matrix[2][1],this._matrix[2][1]=this._matrix[1][2],this._matrix[1][2]=t,this}},{key:\"matches\",value:function(e){if(9!==e.length)throw new m(\"Should be length 9: \"+e);for(var n=0;n<3;n++)for(var i=0;i<3;i++)if(!t.matches(this._matrix[n][i],e.charAt(3*n+i)))return!1;return!0}},{key:\"add\",value:function(t){for(var e=0;e<3;e++)for(var n=0;n<3;n++)this.setAtLeast(e,n,t.get(e,n))}},{key:\"isDisjoint\",value:function(){return this._matrix[H.INTERIOR][H.INTERIOR]===Lt.FALSE&&this._matrix[H.INTERIOR][H.BOUNDARY]===Lt.FALSE&&this._matrix[H.BOUNDARY][H.INTERIOR]===Lt.FALSE&&this._matrix[H.BOUNDARY][H.BOUNDARY]===Lt.FALSE}},{key:\"isCrosses\",value:function(e,n){return e===Lt.P&&n===Lt.L||e===Lt.P&&n===Lt.A||e===Lt.L&&n===Lt.A?t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&t.isTrue(this._matrix[H.INTERIOR][H.EXTERIOR]):e===Lt.L&&n===Lt.P||e===Lt.A&&n===Lt.P||e===Lt.A&&n===Lt.L?t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&t.isTrue(this._matrix[H.EXTERIOR][H.INTERIOR]):e===Lt.L&&n===Lt.L&&0===this._matrix[H.INTERIOR][H.INTERIOR]}},{key:\"interfaces_\",get:function(){return[I]}}],[{key:\"constructor_\",value:function(){if(this._matrix=null,0===arguments.length)this._matrix=Array(3).fill().map((function(){return Array(3)})),this.setAll(Lt.FALSE);else if(1===arguments.length)if(\"string\"==typeof arguments[0]){var e=arguments[0];t.constructor_.call(this),this.set(e)}else if(arguments[0]instanceof t){var n=arguments[0];t.constructor_.call(this),this._matrix[H.INTERIOR][H.INTERIOR]=n._matrix[H.INTERIOR][H.INTERIOR],this._matrix[H.INTERIOR][H.BOUNDARY]=n._matrix[H.INTERIOR][H.BOUNDARY],this._matrix[H.INTERIOR][H.EXTERIOR]=n._matrix[H.INTERIOR][H.EXTERIOR],this._matrix[H.BOUNDARY][H.INTERIOR]=n._matrix[H.BOUNDARY][H.INTERIOR],this._matrix[H.BOUNDARY][H.BOUNDARY]=n._matrix[H.BOUNDARY][H.BOUNDARY],this._matrix[H.BOUNDARY][H.EXTERIOR]=n._matrix[H.BOUNDARY][H.EXTERIOR],this._matrix[H.EXTERIOR][H.INTERIOR]=n._matrix[H.EXTERIOR][H.INTERIOR],this._matrix[H.EXTERIOR][H.BOUNDARY]=n._matrix[H.EXTERIOR][H.BOUNDARY],this._matrix[H.EXTERIOR][H.EXTERIOR]=n._matrix[H.EXTERIOR][H.EXTERIOR]}}},{key:\"matches\",value:function(){if(Number.isInteger(arguments[0])&&\"string\"==typeof arguments[1]){var e=arguments[0],n=arguments[1];return n===Lt.SYM_DONTCARE||(n===Lt.SYM_TRUE&&(e>=0||e===Lt.TRUE)||(n===Lt.SYM_FALSE&&e===Lt.FALSE||(n===Lt.SYM_P&&e===Lt.P||(n===Lt.SYM_L&&e===Lt.L||n===Lt.SYM_A&&e===Lt.A))))}if(\"string\"==typeof arguments[0]&&\"string\"==typeof arguments[1]){var i=arguments[1];return new t(arguments[0]).matches(i)}}},{key:\"isTrue\",value:function(t){return t>=0||t===Lt.TRUE}}])}(),ti=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"size\",value:function(){return this._size}},{key:\"addAll\",value:function(t){return null===t||0===t.length?null:(this.ensureCapacity(this._size+t.length),mt.arraycopy(t,0,this._data,this._size,t.length),void(this._size+=t.length))}},{key:\"ensureCapacity\",value:function(t){if(t<=this._data.length)return null;var e=Math.max(t,2*this._data.length);this._data=At.copyOf(this._data,e)}},{key:\"toArray\",value:function(){var t=new Array(this._size).fill(null);return mt.arraycopy(this._data,0,t,0,this._size),t}},{key:\"add\",value:function(t){this.ensureCapacity(this._size+1),this._data[this._size]=t,++this._size}}],[{key:\"constructor_\",value:function(){if(this._data=null,this._size=0,0===arguments.length)t.constructor_.call(this,10);else if(1===arguments.length){var e=arguments[0];this._data=new Array(e).fill(null)}}}])}(),ei=function(){function t(){n(this,t)}return s(t,[{key:\"getChainStartIndices\",value:function(t){var e=0,n=new ti(Math.trunc(t.length/2));n.add(e);do{var i=this.findChainEnd(t,e);n.add(i),e=i}while(e<t.length-1);return n.toArray()}},{key:\"findChainEnd\",value:function(t,e){for(var n=je.quadrant(t[e],t[e+1]),i=e+1;i<t.length;){if(je.quadrant(t[i-1],t[i])!==n)break;i++}return i-1}},{key:\"OLDgetChainStartIndices\",value:function(e){var n=0,i=new yt;i.add(n);do{var r=this.findChainEnd(e,n);i.add(r),n=r}while(n<e.length-1);return t.toIntArray(i)}}],[{key:\"toIntArray\",value:function(t){for(var e=new Array(t.size()).fill(null),n=0;n<e.length;n++)e[n]=t.get(n).intValue();return e}}])}(),ni=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getCoordinates\",value:function(){return this.pts}},{key:\"getMaxX\",value:function(t){var e=this.pts[this.startIndex[t]].x,n=this.pts[this.startIndex[t+1]].x;return e>n?e:n}},{key:\"getMinX\",value:function(t){var e=this.pts[this.startIndex[t]].x,n=this.pts[this.startIndex[t+1]].x;return e<n?e:n}},{key:\"computeIntersectsForChain\",value:function(){if(4===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2],i=arguments[3];this.computeIntersectsForChain(this.startIndex[t],this.startIndex[t+1],e,e.startIndex[n],e.startIndex[n+1],i)}else if(6===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2],o=arguments[3],u=arguments[4],l=arguments[5];if(s-r==1&&u-o==1)return l.addIntersections(this.e,r,a.e,o),null;if(!this.overlaps(r,s,a,o,u))return null;var h=Math.trunc((r+s)/2),c=Math.trunc((o+u)/2);r<h&&(o<c&&this.computeIntersectsForChain(r,h,a,o,c,l),c<u&&this.computeIntersectsForChain(r,h,a,c,u,l)),h<s&&(o<c&&this.computeIntersectsForChain(h,s,a,o,c,l),c<u&&this.computeIntersectsForChain(h,s,a,c,u,l))}}},{key:\"overlaps\",value:function(t,e,n,i,r){return U.intersects(this.pts[t],this.pts[e],n.pts[i],n.pts[r])}},{key:\"getStartIndexes\",value:function(){return this.startIndex}},{key:\"computeIntersects\",value:function(t,e){for(var n=0;n<this.startIndex.length-1;n++)for(var i=0;i<t.startIndex.length-1;i++)this.computeIntersectsForChain(n,t,i,e)}}],[{key:\"constructor_\",value:function(){this.e=null,this.pts=null,this.startIndex=null;var t=arguments[0];this.e=t,this.pts=t.getCoordinates();var e=new ei;this.startIndex=e.getChainStartIndices(this.pts)}}])}(),ii=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getDepth\",value:function(t,e){return this._depth[t][e]}},{key:\"setDepth\",value:function(t,e,n){this._depth[t][e]=n}},{key:\"isNull\",value:function(){if(0===arguments.length){for(var e=0;e<2;e++)for(var n=0;n<3;n++)if(this._depth[e][n]!==t.NULL_VALUE)return!1;return!0}if(1===arguments.length){var i=arguments[0];return this._depth[i][1]===t.NULL_VALUE}if(2===arguments.length){var r=arguments[0],s=arguments[1];return this._depth[r][s]===t.NULL_VALUE}}},{key:\"normalize\",value:function(){for(var t=0;t<2;t++)if(!this.isNull(t)){var e=this._depth[t][1];this._depth[t][2]<e&&(e=this._depth[t][2]),e<0&&(e=0);for(var n=1;n<3;n++){var i=0;this._depth[t][n]>e&&(i=1),this._depth[t][n]=i}}}},{key:\"getDelta\",value:function(t){return this._depth[t][$.RIGHT]-this._depth[t][$.LEFT]}},{key:\"getLocation\",value:function(t,e){return this._depth[t][e]<=0?H.EXTERIOR:H.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(1===arguments.length)for(var e=arguments[0],n=0;n<2;n++)for(var i=1;i<3;i++){var r=e.getLocation(n,i);r!==H.EXTERIOR&&r!==H.INTERIOR||(this.isNull(n,i)?this._depth[n][i]=t.depthAtLocation(r):this._depth[n][i]+=t.depthAtLocation(r))}else if(3===arguments.length){var s=arguments[0],a=arguments[1];arguments[2]===H.INTERIOR&&this._depth[s][a]++}}}],[{key:\"constructor_\",value:function(){this._depth=Array(2).fill().map((function(){return Array(3)}));for(var e=0;e<2;e++)for(var n=0;n<3;n++)this._depth[e][n]=t.NULL_VALUE}},{key:\"depthAtLocation\",value:function(e){return e===H.EXTERIOR?0:e===H.INTERIOR?1:t.NULL_VALUE}}])}();ii.NULL_VALUE=-1;var ri=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getDepth\",value:function(){return this._depth}},{key:\"getCollapsedEdge\",value:function(){var t=new Array(2).fill(null);return t[0]=this.pts[0],t[1]=this.pts[1],new i(t,Ae.toLineLabel(this._label))}},{key:\"isIsolated\",value:function(){return this._isIsolated}},{key:\"getCoordinates\",value:function(){return this.pts}},{key:\"setIsolated\",value:function(t){this._isIsolated=t}},{key:\"setName\",value:function(t){this._name=t}},{key:\"equals\",value:function(t){if(!(t instanceof i))return!1;var e=t;if(this.pts.length!==e.pts.length)return!1;for(var n=!0,r=!0,s=this.pts.length,a=0;a<this.pts.length;a++)if(this.pts[a].equals2D(e.pts[a])||(n=!1),this.pts[a].equals2D(e.pts[--s])||(r=!1),!n&&!r)return!1;return!0}},{key:\"getCoordinate\",value:function(){if(0===arguments.length)return this.pts.length>0?this.pts[0]:null;if(1===arguments.length){var t=arguments[0];return this.pts[t]}}},{key:\"print\",value:function(t){t.print(\"edge \"+this._name+\": \"),t.print(\"LINESTRING (\");for(var e=0;e<this.pts.length;e++)e>0&&t.print(\",\"),t.print(this.pts[e].x+\" \"+this.pts[e].y);t.print(\") \"+this._label+\" \"+this._depthDelta)}},{key:\"computeIM\",value:function(t){i.updateIM(this._label,t)}},{key:\"isCollapsed\",value:function(){return!!this._label.isArea()&&(3===this.pts.length&&!!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(t){t.print(\"edge \"+this._name+\": \");for(var e=this.pts.length-1;e>=0;e--)t.print(this.pts[e]+\" \");t.println(\"\")}},{key:\"getMonotoneChainEdge\",value:function(){return null===this._mce&&(this._mce=new ni(this)),this._mce}},{key:\"getEnvelope\",value:function(){if(null===this._env){this._env=new U;for(var t=0;t<this.pts.length;t++)this._env.expandToInclude(this.pts[t])}return this._env}},{key:\"addIntersection\",value:function(t,e,n,i){var r=new X(t.getIntersection(i)),s=e,a=t.getEdgeDistance(n,i),o=s+1;if(o<this.pts.length){var u=this.pts[o];r.equals2D(u)&&(s=o,a=0)}this.eiList.add(r,s,a)}},{key:\"toString\",value:function(){var t=new Jt;t.append(\"edge \"+this._name+\": \"),t.append(\"LINESTRING (\");for(var e=0;e<this.pts.length;e++)e>0&&t.append(\",\"),t.append(this.pts[e].x+\" \"+this.pts[e].y);return t.append(\") \"+this._label+\" \"+this._depthDelta),t.toString()}},{key:\"isPointwiseEqual\",value:function(t){if(this.pts.length!==t.pts.length)return!1;for(var e=0;e<this.pts.length;e++)if(!this.pts[e].equals2D(t.pts[e]))return!1;return!0}},{key:\"setDepthDelta\",value:function(t){this._depthDelta=t}},{key:\"getEdgeIntersectionList\",value:function(){return this.eiList}},{key:\"addIntersections\",value:function(t,e,n){for(var i=0;i<t.getIntersectionNum();i++)this.addIntersection(t,e,n,i)}}],[{key:\"constructor_\",value:function(){if(this.pts=null,this._env=null,this.eiList=new Qn(this),this._name=null,this._mce=null,this._isIsolated=!0,this._depth=new ii,this._depthDelta=0,1===arguments.length){var t=arguments[0];i.constructor_.call(this,t,null)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this.pts=e,this._label=n}}},{key:\"updateIM\",value:function(){if(!(2===arguments.length&&arguments[1]instanceof $n&&arguments[0]instanceof Ae))return f(i,\"updateIM\",this).apply(this,arguments);var t=arguments[0],e=arguments[1];e.setAtLeastIfValid(t.getLocation(0,$.ON),t.getLocation(1,$.ON),1),t.isArea()&&(e.setAtLeastIfValid(t.getLocation(0,$.LEFT),t.getLocation(1,$.LEFT),2),e.setAtLeastIfValid(t.getLocation(0,$.RIGHT),t.getLocation(1,$.RIGHT),2))}}])}(Ge),si=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"setWorkingPrecisionModel\",value:function(t){this._workingPrecisionModel=t}},{key:\"insertUniqueEdge\",value:function(e){var n=this._edgeList.findEqualEdge(e);if(null!==n){var i=n.getLabel(),r=e.getLabel();n.isPointwiseEqual(e)||(r=new Ae(e.getLabel())).flip(),i.merge(r);var s=t.depthDelta(r),a=n.getDepthDelta()+s;n.setDepthDelta(a)}else this._edgeList.add(e),e.setDepthDelta(t.depthDelta(e.getLabel()))}},{key:\"buildSubgraphs\",value:function(t,e){for(var n=new yt,i=t.iterator();i.hasNext();){var r=i.next(),s=r.getRightmostCoordinate(),a=new Pn(n).getDepth(s);r.computeDepth(a),r.findResultEdges(),n.add(r),e.add(r.getDirectedEdges(),r.getNodes())}}},{key:\"createSubgraphs\",value:function(t){for(var e=new yt,n=t.getNodes().iterator();n.hasNext();){var i=n.next();if(!i.isVisited()){var r=new _t;r.create(i),e.add(r)}}return an.sort(e,an.reverseOrder()),e}},{key:\"createEmptyResultGeometry\",value:function(){return this._geomFact.createPolygon()}},{key:\"getNoder\",value:function(t){if(null!==this._workingNoder)return this._workingNoder;var e=new Cn,n=new we;return n.setPrecisionModel(t),e.setSegmentIntersector(new Kn(n)),e}},{key:\"buffer\",value:function(t,e){var n=this._workingPrecisionModel;null===n&&(n=t.getPrecisionModel()),this._geomFact=t.getFactory();var i=new An(n,this._bufParams),r=new Yn(t,e,i).getCurves();if(r.size()<=0)return this.createEmptyResultGeometry();this.computeNodedEdges(r,n),this._graph=new Qe(new Hn),this._graph.addEdges(this._edgeList.getEdges());var s=this.createSubgraphs(this._graph),a=new $e(this._geomFact);this.buildSubgraphs(s,a);var o=a.getPolygons();return o.size()<=0?this.createEmptyResultGeometry():this._geomFact.buildGeometry(o)}},{key:\"computeNodedEdges\",value:function(t,e){var n=this.getNoder(e);n.computeNodes(t);for(var i=n.getNodedSubstrings().iterator();i.hasNext();){var r=i.next(),s=r.getCoordinates();if(2!==s.length||!s[0].equals2D(s[1])){var a=r.getData(),o=new ri(r.getCoordinates(),new Ae(a));this.insertUniqueEdge(o)}}}},{key:\"setNoder\",value:function(t){this._workingNoder=t}}],[{key:\"constructor_\",value:function(){this._bufParams=null,this._workingPrecisionModel=null,this._workingNoder=null,this._geomFact=null,this._graph=null,this._edgeList=new jn;var t=arguments[0];this._bufParams=t}},{key:\"depthDelta\",value:function(t){var e=t.getLocation(0,$.LEFT),n=t.getLocation(0,$.RIGHT);return e===H.INTERIOR&&n===H.EXTERIOR?1:e===H.EXTERIOR&&n===H.INTERIOR?-1:0}},{key:\"convertSegStrings\",value:function(t){for(var e=new ae,n=new yt;t.hasNext();){var i=t.next(),r=e.createLineString(i.getCoordinates());n.add(r)}return e.buildGeometry(n)}}])}(),ai=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"rescale\",value:function(){if(rt(arguments[0],Z))for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();this.rescale(e.getCoordinates())}else if(arguments[0]instanceof Array){for(var n=arguments[0],i=0;i<n.length;i++)n[i].x=n[i].x/this._scaleFactor+this._offsetX,n[i].y=n[i].y/this._scaleFactor+this._offsetY;2===n.length&&n[0].equals2D(n[1])&&mt.out.println(n)}}},{key:\"scale\",value:function(){if(rt(arguments[0],Z)){for(var t=arguments[0],e=new yt(t.size()),n=t.iterator();n.hasNext();){var i=n.next();e.add(new xn(this.scale(i.getCoordinates()),i.getData()))}return e}if(arguments[0]instanceof Array){for(var r=arguments[0],s=new Array(r.length).fill(null),a=0;a<r.length;a++)s[a]=new X(Math.round((r[a].x-this._offsetX)*this._scaleFactor),Math.round((r[a].y-this._offsetY)*this._scaleFactor),r[a].getZ());return jt.removeRepeatedPoints(s)}}},{key:\"isIntegerPrecision\",value:function(){return 1===this._scaleFactor}},{key:\"getNodedSubstrings\",value:function(){var t=this._noder.getNodedSubstrings();return this._isScaled&&this.rescale(t),t}},{key:\"computeNodes\",value:function(t){var e=t;this._isScaled&&(e=this.scale(t)),this._noder.computeNodes(e)}},{key:\"interfaces_\",get:function(){return[Sn]}}],[{key:\"constructor_\",value:function(){if(this._noder=null,this._scaleFactor=null,this._offsetX=null,this._offsetY=null,this._isScaled=!1,2===arguments.length){var e=arguments[0],n=arguments[1];t.constructor_.call(this,e,n,0,0)}else if(4===arguments.length){var i=arguments[0],r=arguments[1];this._noder=i,this._scaleFactor=r,this._isScaled=!this.isIntegerPrecision()}}}])}(),oi=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"checkEndPtVertexIntersections\",value:function(){if(0===arguments.length)for(var t=this._segStrings.iterator();t.hasNext();){var e=t.next().getCoordinates();this.checkEndPtVertexIntersections(e[0],this._segStrings),this.checkEndPtVertexIntersections(e[e.length-1],this._segStrings)}else if(2===arguments.length)for(var n=arguments[0],i=arguments[1].iterator();i.hasNext();)for(var r=i.next().getCoordinates(),s=1;s<r.length-1;s++)if(r[s].equals(n))throw new D(\"found endpt/interior pt intersection at index \"+s+\" :pt \"+n)}},{key:\"checkInteriorIntersections\",value:function(){if(0===arguments.length)for(var t=this._segStrings.iterator();t.hasNext();)for(var e=t.next(),n=this._segStrings.iterator();n.hasNext();){var i=n.next();this.checkInteriorIntersections(e,i)}else if(2===arguments.length)for(var r=arguments[0],s=arguments[1],a=r.getCoordinates(),o=s.getCoordinates(),u=0;u<a.length-1;u++)for(var l=0;l<o.length-1;l++)this.checkInteriorIntersections(r,u,s,l);else if(4===arguments.length){var h=arguments[0],c=arguments[1],f=arguments[2],g=arguments[3];if(h===f&&c===g)return null;var v=h.getCoordinates()[c],y=h.getCoordinates()[c+1],d=f.getCoordinates()[g],_=f.getCoordinates()[g+1];if(this._li.computeIntersection(v,y,d,_),this._li.hasIntersection()&&(this._li.isProper()||this.hasInteriorIntersection(this._li,v,y)||this.hasInteriorIntersection(this._li,d,_)))throw new D(\"found non-noded intersection at \"+v+\"-\"+y+\" and \"+d+\"-\"+_)}}},{key:\"checkValid\",value:function(){this.checkEndPtVertexIntersections(),this.checkInteriorIntersections(),this.checkCollapses()}},{key:\"checkCollapses\",value:function(){if(0===arguments.length)for(var t=this._segStrings.iterator();t.hasNext();){var e=t.next();this.checkCollapses(e)}else if(1===arguments.length)for(var n=arguments[0].getCoordinates(),i=0;i<n.length-2;i++)this.checkCollapse(n[i],n[i+1],n[i+2])}},{key:\"hasInteriorIntersection\",value:function(t,e,n){for(var i=0;i<t.getIntersectionNum();i++){var r=t.getIntersection(i);if(!r.equals(e)&&!r.equals(n))return!0}return!1}},{key:\"checkCollapse\",value:function(e,n,i){if(e.equals(i))throw new D(\"found non-noded collapse at \"+t.fact.createLineString([e,n,i]))}}],[{key:\"constructor_\",value:function(){this._li=new we,this._segStrings=null;var t=arguments[0];this._segStrings=t}}])}();oi.fact=new ae;var ui=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"intersectsScaled\",value:function(t,e){var n=Math.min(t.x,e.x),i=Math.max(t.x,e.x),r=Math.min(t.y,e.y),s=Math.max(t.y,e.y),a=this._maxx<n||this._minx>i||this._maxy<r||this._miny>s;if(a)return!1;var o=this.intersectsToleranceSquare(t,e);return G.isTrue(!(a&&o),\"Found bad envelope test\"),o}},{key:\"initCorners\",value:function(t){var e=.5;this._minx=t.x-e,this._maxx=t.x+e,this._miny=t.y-e,this._maxy=t.y+e,this._corner[0]=new X(this._maxx,this._maxy),this._corner[1]=new X(this._minx,this._maxy),this._corner[2]=new X(this._minx,this._miny),this._corner[3]=new X(this._maxx,this._miny)}},{key:\"intersects\",value:function(t,e){return 1===this._scaleFactor?this.intersectsScaled(t,e):(this.copyScaled(t,this._p0Scaled),this.copyScaled(e,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))}},{key:\"scale\",value:function(t){return Math.round(t*this._scaleFactor)}},{key:\"getCoordinate\",value:function(){return this._originalPt}},{key:\"copyScaled\",value:function(t,e){e.x=this.scale(t.x),e.y=this.scale(t.y)}},{key:\"getSafeEnvelope\",value:function(){if(null===this._safeEnv){var e=t.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new U(this._originalPt.x-e,this._originalPt.x+e,this._originalPt.y-e,this._originalPt.y+e)}return this._safeEnv}},{key:\"intersectsPixelClosure\",value:function(t,e){return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),!!this._li.hasIntersection())))}},{key:\"intersectsToleranceSquare\",value:function(t,e){var n=!1,i=!1;return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!this._li.isProper()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),!!this._li.isProper()||(this._li.hasIntersection()&&(n=!0),this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),!!this._li.isProper()||(this._li.hasIntersection()&&(i=!0),this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),!!this._li.isProper()||(!(!n||!i)||(!!t.equals(this._pt)||!!e.equals(this._pt))))))}},{key:\"addSnappedNode\",value:function(t,e){var n=t.getCoordinate(e),i=t.getCoordinate(e+1);return!!this.intersects(n,i)&&(t.addIntersection(this.getCoordinate(),e),!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 t=arguments[0],e=arguments[1],n=arguments[2];if(this._originalPt=t,this._pt=t,this._scaleFactor=e,this._li=n,e<=0)throw new m(\"Scale factor must be non-zero\");1!==e&&(this._pt=new X(this.scale(t.x),this.scale(t.y)),this._p0Scaled=new X,this._p1Scaled=new X),this.initCorners(this._pt)}}])}();ui.SAFE_ENV_EXPANSION_FACTOR=.75;var li=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"select\",value:function(){if(1===arguments.length);else if(2===arguments.length){var t=arguments[1];arguments[0].getLineSegment(t,this.selectedSegment),this.select(this.selectedSegment)}}}],[{key:\"constructor_\",value:function(){this.selectedSegment=new In}}])}(),hi=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"snap\",value:function(){if(1===arguments.length){var t=arguments[0];return this.snap(t,null,-1)}if(3===arguments.length){var e=arguments[0],i=arguments[1],r=arguments[2],a=e.getSafeEnvelope(),o=new ci(e,i,r);return this._index.query(a,new(function(){return s((function t(){n(this,t)}),[{key:\"interfaces_\",get:function(){return[ln]}},{key:\"visitItem\",value:function(t){t.select(a,o)}}])}())),o.isNodeAdded()}}}],[{key:\"constructor_\",value:function(){this._index=null;var t=arguments[0];this._index=t}}])}(),ci=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"isNodeAdded\",value:function(){return this._isNodeAdded}},{key:\"select\",value:function(){if(!(2===arguments.length&&Number.isInteger(arguments[1])&&arguments[0]instanceof Nn))return f(i,\"select\",this,1).apply(this,arguments);var t=arguments[1],e=arguments[0].getContext();if(this._parentEdge===e&&(t===this._hotPixelVertexIndex||t+1===this._hotPixelVertexIndex))return null;this._isNodeAdded|=this._hotPixel.addSnappedNode(e,t)}}],[{key:\"constructor_\",value:function(){this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;var t=arguments[0],e=arguments[1],n=arguments[2];this._hotPixel=t,this._parentEdge=e,this._hotPixelVertexIndex=n}}])}(li);hi.HotPixelSnapAction=ci;var fi=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"processIntersections\",value:function(t,e,n,i){if(t===n&&e===i)return null;var r=t.getCoordinates()[e],s=t.getCoordinates()[e+1],a=n.getCoordinates()[i],o=n.getCoordinates()[i+1];if(this._li.computeIntersection(r,s,a,o),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var u=0;u<this._li.getIntersectionNum();u++)this._interiorIntersections.add(this._li.getIntersection(u));t.addIntersections(this._li,e,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[Wn]}}],[{key:\"constructor_\",value:function(){this._li=null,this._interiorIntersections=null;var t=arguments[0];this._li=t,this._interiorIntersections=new yt}}])}(),gi=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"checkCorrectness\",value:function(t){var e=xn.getNodedSubstrings(t),n=new oi(e);try{n.checkValid()}catch(t){if(!(t instanceof p))throw t;t.printStackTrace()}}},{key:\"getNodedSubstrings\",value:function(){return xn.getNodedSubstrings(this._nodedSegStrings)}},{key:\"snapRound\",value:function(t,e){var n=this.findInteriorIntersections(t,e);this.computeIntersectionSnaps(n),this.computeVertexSnaps(t)}},{key:\"findInteriorIntersections\",value:function(t,e){var n=new fi(e);return this._noder.setSegmentIntersector(n),this._noder.computeNodes(t),n.getInteriorIntersections()}},{key:\"computeVertexSnaps\",value:function(){if(rt(arguments[0],Z))for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();this.computeVertexSnaps(e)}else if(arguments[0]instanceof xn)for(var n=arguments[0],i=n.getCoordinates(),r=0;r<i.length;r++){var s=new ui(i[r],this._scaleFactor,this._li);this._pointSnapper.snap(s,n,r)&&n.addIntersection(i[r],r)}}},{key:\"computeNodes\",value:function(t){this._nodedSegStrings=t,this._noder=new Cn,this._pointSnapper=new hi(this._noder.getIndex()),this.snapRound(t,this._li)}},{key:\"computeIntersectionSnaps\",value:function(t){for(var e=t.iterator();e.hasNext();){var n=e.next(),i=new ui(n,this._scaleFactor,this._li);this._pointSnapper.snap(i)}}},{key:\"interfaces_\",get:function(){return[Sn]}}],[{key:\"constructor_\",value:function(){this._pm=null,this._li=null,this._scaleFactor=null,this._noder=null,this._pointSnapper=null,this._nodedSegStrings=null;var t=arguments[0];this._pm=t,this._li=new we,this._li.setPrecisionModel(t),this._scaleFactor=t.getScale()}}])}(),vi=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"bufferFixedPrecision\",value:function(t){var e=new ai(new gi(new ie(1)),t.getScale()),n=new si(this._bufParams);n.setWorkingPrecisionModel(t),n.setNoder(e),this._resultGeometry=n.buffer(this._argGeom,this._distance)}},{key:\"bufferReducedPrecision\",value:function(){if(0===arguments.length){for(var e=t.MAX_PRECISION_DIGITS;e>=0;e--){try{this.bufferReducedPrecision(e)}catch(t){if(!(t instanceof gt))throw t;this._saveException=t}if(null!==this._resultGeometry)return null}throw this._saveException}if(1===arguments.length){var n=arguments[0],i=t.precisionScaleFactor(this._argGeom,this._distance,n),r=new ie(i);this.bufferFixedPrecision(r)}}},{key:\"computeGeometry\",value:function(){if(this.bufferOriginalPrecision(),null!==this._resultGeometry)return null;var t=this._argGeom.getFactory().getPrecisionModel();t.getType()===ie.FIXED?this.bufferFixedPrecision(t):this.bufferReducedPrecision()}},{key:\"setQuadrantSegments\",value:function(t){this._bufParams.setQuadrantSegments(t)}},{key:\"bufferOriginalPrecision\",value:function(){try{var t=new si(this._bufParams);this._resultGeometry=t.buffer(this._argGeom,this._distance)}catch(t){if(!(t instanceof D))throw t;this._saveException=t}}},{key:\"getResultGeometry\",value:function(t){return this._distance=t,this.computeGeometry(),this._resultGeometry}},{key:\"setEndCapStyle\",value:function(t){this._bufParams.setEndCapStyle(t)}}],[{key:\"constructor_\",value:function(){if(this._argGeom=null,this._distance=null,this._bufParams=new _,this._resultGeometry=null,this._saveException=null,1===arguments.length){var t=arguments[0];this._argGeom=t}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this._argGeom=e,this._bufParams=n}}},{key:\"bufferOp\",value:function(){if(2===arguments.length){var e=arguments[1];return new t(arguments[0]).getResultGeometry(e)}if(3===arguments.length){if(Number.isInteger(arguments[2])&&arguments[0]instanceof V&&\"number\"==typeof arguments[1]){var n=arguments[1],i=arguments[2],r=new t(arguments[0]);return r.setQuadrantSegments(i),r.getResultGeometry(n)}if(arguments[2]instanceof _&&arguments[0]instanceof V&&\"number\"==typeof arguments[1]){var s=arguments[1];return new t(arguments[0],arguments[2]).getResultGeometry(s)}}else if(4===arguments.length){var a=arguments[1],o=arguments[2],u=arguments[3],l=new t(arguments[0]);return l.setQuadrantSegments(o),l.setEndCapStyle(u),l.getResultGeometry(a)}}},{key:\"precisionScaleFactor\",value:function(t,e,n){var i=t.getEnvelopeInternal(),r=kt.max(Math.abs(i.getMaxX()),Math.abs(i.getMaxY()),Math.abs(i.getMinX()),Math.abs(i.getMinY()))+2*(e>0?e:0),s=n-Math.trunc(Math.log(r)/Math.log(10)+1);return Math.pow(10,s)}}])}();vi.CAP_ROUND=_.CAP_ROUND,vi.CAP_BUTT=_.CAP_FLAT,vi.CAP_FLAT=_.CAP_FLAT,vi.CAP_SQUARE=_.CAP_SQUARE,vi.MAX_PRECISION_DIGITS=12;var yi=[\"Point\",\"MultiPoint\",\"LineString\",\"MultiLineString\",\"Polygon\",\"MultiPolygon\"],di=function(){return s((function t(e){n(this,t),this.geometryFactory=e||new ae}),[{key:\"read\",value:function(t){var e,n=(e=\"string\"==typeof t?JSON.parse(t):t).type;if(!_i[n])throw new Error(\"Unknown GeoJSON type: \"+e.type);return-1!==yi.indexOf(n)?_i[n].call(this,e.coordinates):\"GeometryCollection\"===n?_i[n].call(this,e.geometries):_i[n].call(this,e)}},{key:\"write\",value:function(t){var e=t.getGeometryType();if(!pi[e])throw new Error(\"Geometry is not supported\");return pi[e].call(this,t)}}])}(),_i={Feature:function(t){var e={};for(var n in t)e[n]=t[n];if(t.geometry){var i=t.geometry.type;if(!_i[i])throw new Error(\"Unknown GeoJSON type: \"+t.type);e.geometry=this.read(t.geometry)}return t.bbox&&(e.bbox=_i.bbox.call(this,t.bbox)),e},FeatureCollection:function(t){var e={};if(t.features){e.features=[];for(var n=0;n<t.features.length;++n)e.features.push(this.read(t.features[n]))}return t.bbox&&(e.bbox=this.parse.bbox.call(this,t.bbox)),e},coordinates:function(t){for(var e=[],n=0;n<t.length;++n){var r=t[n];e.push(i(X,g(r)))}return e},bbox:function(t){return this.geometryFactory.createLinearRing([new X(t[0],t[1]),new X(t[2],t[1]),new X(t[2],t[3]),new X(t[0],t[3]),new X(t[0],t[1])])},Point:function(t){var e=i(X,g(t));return this.geometryFactory.createPoint(e)},MultiPoint:function(t){for(var e=[],n=0;n<t.length;++n)e.push(_i.Point.call(this,t[n]));return this.geometryFactory.createMultiPoint(e)},LineString:function(t){var e=_i.coordinates.call(this,t);return this.geometryFactory.createLineString(e)},MultiLineString:function(t){for(var e=[],n=0;n<t.length;++n)e.push(_i.LineString.call(this,t[n]));return this.geometryFactory.createMultiLineString(e)},Polygon:function(t){for(var e=_i.coordinates.call(this,t[0]),n=this.geometryFactory.createLinearRing(e),i=[],r=1;r<t.length;++r){var s=t[r],a=_i.coordinates.call(this,s),o=this.geometryFactory.createLinearRing(a);i.push(o)}return this.geometryFactory.createPolygon(n,i)},MultiPolygon:function(t){for(var e=[],n=0;n<t.length;++n){var i=t[n];e.push(_i.Polygon.call(this,i))}return this.geometryFactory.createMultiPolygon(e)},GeometryCollection:function(t){for(var e=[],n=0;n<t.length;++n){var i=t[n];e.push(this.read(i))}return this.geometryFactory.createGeometryCollection(e)}},pi={coordinate:function(t){var e=[t.x,t.y];return t.z&&e.push(t.z),t.m&&e.push(t.m),e},Point:function(t){return{type:\"Point\",coordinates:pi.coordinate.call(this,t.getCoordinate())}},MultiPoint:function(t){for(var e=[],n=0;n<t._geometries.length;++n){var i=t._geometries[n],r=pi.Point.call(this,i);e.push(r.coordinates)}return{type:\"MultiPoint\",coordinates:e}},LineString:function(t){for(var e=[],n=t.getCoordinates(),i=0;i<n.length;++i){var r=n[i];e.push(pi.coordinate.call(this,r))}return{type:\"LineString\",coordinates:e}},MultiLineString:function(t){for(var e=[],n=0;n<t._geometries.length;++n){var i=t._geometries[n],r=pi.LineString.call(this,i);e.push(r.coordinates)}return{type:\"MultiLineString\",coordinates:e}},Polygon:function(t){var e=[],n=pi.LineString.call(this,t._shell);e.push(n.coordinates);for(var i=0;i<t._holes.length;++i){var r=t._holes[i],s=pi.LineString.call(this,r);e.push(s.coordinates)}return{type:\"Polygon\",coordinates:e}},MultiPolygon:function(t){for(var e=[],n=0;n<t._geometries.length;++n){var i=t._geometries[n],r=pi.Polygon.call(this,i);e.push(r.coordinates)}return{type:\"MultiPolygon\",coordinates:e}},GeometryCollection:function(t){for(var e=[],n=0;n<t._geometries.length;++n){var i=t._geometries[n],r=i.getGeometryType();e.push(pi[r].call(this,i))}return{type:\"GeometryCollection\",geometries:e}}};return{BufferOp:vi,GeoJSONReader:function(){return s((function t(e){n(this,t),this.parser=new di(e||new ae)}),[{key:\"read\",value:function(t){return this.parser.read(t)}}])}(),GeoJSONWriter:function(){return s((function t(){n(this,t),this.parser=new di(this.geometryFactory)}),[{key:\"write\",value:function(t){return this.parser.write(t)}}])}()}}));\n//# sourceMappingURL=jsts.min.js.map\n"],"names":["t","e","module","this","n","i","u","h","r","c","v","s","a","y","o","l","f","g","d","_","p","m","k","x","I","E","N","T","S","L","C","R","w","O","b","M","A","P","D","F","G","q","Y","z","X","B","U","V","H","Z","j","W","K","J","Q","$","tt","et","nt","it","rt","st","at","ot","ut","lt","ht","ct","ft","gt","vt","yt","dt","_t","pt","mt","kt","xt","It","Et","Nt","Tt","St","Lt","Ct","Rt","wt","Ot","bt","Mt","At","Pt","Dt","Ft","Gt","qt","Yt","zt","Xt","Bt","Ut","Vt","Ht","Zt","jt","Wt","Kt","Jt","Qt","$t","te","ee","ne","ie","re","se","ae","oe","ue","le","he","ce","fe","ge","ve","ye","de","_e","pe","me","ke","xe","Ie","Ee","Ne","Te","Se","Le","Ce","Re","we","Oe","be","Me","Ae","Pe","De","Fe","Ge","qe","Ye","ze","Xe","Be","Ue","Ve","He","Ze","je","We","Ke","Je","Qe","$e","tn","en","nn","rn","sn","an","on","un","ln","hn","cn","fn","gn","vn","yn","dn","_n","xn","pn","mn","kn","In","En","Nn","Tn","Sn","Ln","Cn","Rn","wn","On","bn","Mn","An","Pn","Dn","Fn","Gn","qn","Yn","zn","Xn","Bn","Un","Vn","Hn","Zn","jn","Wn","Kn","Jn","Qn","ri","$n","ti","ei","ni","ii","si","ai","oi","ui","li","hi","ci","fi","gi","vi","yi","di","_i","pi"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.es238.js","sources":["../node_modules/underscore/modules/_shallowProperty.js"],"sourcesContent":["// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n"],"names":["shallowProperty","key","obj"],"mappings":"AACA,SAAwBA,EAAgBC,GAAK;AAC3C,SAAO,SAASC,GAAK;AACnB,WAA8BA,IAAID,CAAG;AAAA,EACvC;AACF;","x_google_ignoreList":[0]}
|