diff --git a/dev/404.html b/dev/404.html index 82357e316..ba9b8da34 100644 --- a/dev/404.html +++ b/dev/404.html @@ -8,7 +8,7 @@ - + @@ -16,7 +16,7 @@
- + \ No newline at end of file diff --git a/dev/api.html b/dev/api.html index 06155dfee..58d941055 100644 --- a/dev/api.html +++ b/dev/api.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -416,7 +416,7 @@ # output true

source



  1. K. Hormann and N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics. Taylor & Fancis, CRC Press, 2017. ↩︎

- + \ No newline at end of file diff --git a/dev/assets/aatsppc.1eU7snjD.png b/dev/assets/aatsppc.1eU7snjD.png new file mode 100644 index 000000000..76989cde0 Binary files /dev/null and b/dev/assets/aatsppc.1eU7snjD.png differ diff --git a/dev/assets/api.md.BWaOjP0Y.js b/dev/assets/api.md.5FfvzWVI.js similarity index 99% rename from dev/assets/api.md.BWaOjP0Y.js rename to dev/assets/api.md.5FfvzWVI.js index 44c360f3b..f02aa15e8 100644 --- a/dev/assets/api.md.BWaOjP0Y.js +++ b/dev/assets/api.md.5FfvzWVI.js @@ -1,4 +1,4 @@ -import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.BBBwll2u.js";const S=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h=i(`

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

# GeometryOps.applyFunction.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
+import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.Bvl2j7qw.js";const S=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h=i(`

Full GeometryOps API documentation

Warning

This page is still very much WIP!

Documentation for GeometryOps's full API (only for reference!).

apply and associated functions

# GeometryOps.applyFunction.
julia
apply(f, target::Union{TraitTarget, GI.AbstractTrait}, obj; kw...)

Reconstruct a geometry, feature, feature collection, or nested vectors of either using the function f on the target trait.

f(target_geom) => x where x also has the target trait, or a trait that can be substituted. For example, swapping PolgonTrait to MultiPointTrait will fail if the outer object has MultiPolygonTrait, but should work if it has FeatureTrait.

Objects "shallower" than the target trait are always completely rebuilt, like a Vector of FeatureCollectionTrait of FeatureTrait when the target has PolygonTrait and is held in the features. These will always be GeoInterface geometries/feature/feature collections. But "deeper" objects may remain unchanged or be whatever GeoInterface compatible objects f returns.

The result is a functionally similar geometry with values depending on f.

  • threaded: true or false. Whether to use multithreading. Defaults to false.

  • crs: The CRS to attach to geometries. Defaults to nothing.

  • calc_extent: true or false. Whether to calculate the extent. Defaults to false.

Example

Flipped point the order in any feature or geometry, or iterables of either:

julia
import GeoInterface as GI
 import GeometryOps as GO
 geom = GI.Polygon([GI.LinearRing([(1, 2), (3, 4), (5, 6), (1, 2)]),
                    GI.LinearRing([(3, 4), (5, 6), (6, 7), (3, 4)])])
diff --git a/dev/assets/api.md.BWaOjP0Y.lean.js b/dev/assets/api.md.5FfvzWVI.lean.js
similarity index 98%
rename from dev/assets/api.md.BWaOjP0Y.lean.js
rename to dev/assets/api.md.5FfvzWVI.lean.js
index 7416b4e51..56069c01c 100644
--- a/dev/assets/api.md.BWaOjP0Y.lean.js
+++ b/dev/assets/api.md.5FfvzWVI.lean.js
@@ -1 +1 @@
-import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.BBBwll2u.js";const S=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h=i("",178),p={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},r=s("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},"#",-1),k=s("b",null,[s("u",null,"GeometryOps.isclockwise")],-1),o=s("i",null,"Method",-1),d=i("",2),g={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.827ex"},xmlns:"http://www.w3.org/2000/svg",width:"33.539ex",height:"6.785ex",role:"img",focusable:"false",viewBox:"0 -1749.5 14824.1 2999","aria-hidden":"true"},E=i("",1),c=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("munderover",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"="),s("mn",null,"2")]),s("mi",null,"n")]),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mi",null,"i")]),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",null,"⋅"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"y"),s("mi",null,"i")]),s("mo",null,"+"),s("msub",null,[s("mi",null,"y"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",{"data-mjx-texclass":"CLOSE"},")")]),s("mo",null,">"),s("mn",null,"0")])],-1),m=i("",3),F=i("",37),b={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},C=s("a",{id:"GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}",href:"#GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}"},"#",-1),f=s("b",null,[s("u",null,"GeometryOps.t_value")],-1),T=s("i",null,"Method",-1),v=i("",3),G={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},A={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.746ex",height:"5.362ex",role:"img",focusable:"false",viewBox:"0 -1460 12263.9 2370","aria-hidden":"true"},B=i("",1),O=[B],D=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"t"),s("mi",null,"ᵢ"),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-auto-op":"false"},"det")]),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,","),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])]),s("mrow",null,[s("mi",null,"r"),s("mi",null,"ᵢ"),s("mo",null,"∗"),s("mi",null,"r"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",null,"+"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,"⋅"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1),j=i("",3),x=i("",17);function w(Q,_,I,L,P,M){return t(),e("div",null,[h,s("div",p,[r,a(" "),k,a(" — "),o,a(". "),d,s("mjx-container",g,[(t(),e("svg",y,c)),u]),m]),F,s("div",b,[C,a(" "),f,a(" — "),T,a(". "),v,s("mjx-container",G,[(t(),e("svg",A,O)),D]),j]),x])}const R=n(l,[["render",w]]);export{S as __pageData,R as default};
+import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.Bvl2j7qw.js";const S=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h=i("",178),p={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},r=s("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},"#",-1),k=s("b",null,[s("u",null,"GeometryOps.isclockwise")],-1),o=s("i",null,"Method",-1),d=i("",2),g={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.827ex"},xmlns:"http://www.w3.org/2000/svg",width:"33.539ex",height:"6.785ex",role:"img",focusable:"false",viewBox:"0 -1749.5 14824.1 2999","aria-hidden":"true"},E=i("",1),c=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("munderover",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"="),s("mn",null,"2")]),s("mi",null,"n")]),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mi",null,"i")]),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",null,"⋅"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"y"),s("mi",null,"i")]),s("mo",null,"+"),s("msub",null,[s("mi",null,"y"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",{"data-mjx-texclass":"CLOSE"},")")]),s("mo",null,">"),s("mn",null,"0")])],-1),m=i("",3),F=i("",37),b={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},C=s("a",{id:"GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}",href:"#GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}"},"#",-1),f=s("b",null,[s("u",null,"GeometryOps.t_value")],-1),T=s("i",null,"Method",-1),v=i("",3),G={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},A={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"27.746ex",height:"5.362ex",role:"img",focusable:"false",viewBox:"0 -1460 12263.9 2370","aria-hidden":"true"},B=i("",1),O=[B],D=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"t"),s("mi",null,"ᵢ"),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-auto-op":"false"},"det")]),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,","),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])]),s("mrow",null,[s("mi",null,"r"),s("mi",null,"ᵢ"),s("mo",null,"∗"),s("mi",null,"r"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",null,"+"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,"⋅"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1),j=i("",3),x=i("",17);function w(Q,_,I,L,P,M){return t(),e("div",null,[h,s("div",p,[r,a(" "),k,a(" — "),o,a(". "),d,s("mjx-container",g,[(t(),e("svg",y,c)),u]),m]),F,s("div",b,[C,a(" "),f,a(" — "),T,a(". "),v,s("mjx-container",G,[(t(),e("svg",A,O)),D]),j]),x])}const R=n(l,[["render",w]]);export{S as __pageData,R as default};
diff --git a/dev/assets/app.BHK2j7C5.js b/dev/assets/app.D8qniW2V.js
similarity index 90%
rename from dev/assets/app.BHK2j7C5.js
rename to dev/assets/app.D8qniW2V.js
index 0458388f3..ae6803ec5 100644
--- a/dev/assets/app.BHK2j7C5.js
+++ b/dev/assets/app.D8qniW2V.js
@@ -1 +1 @@
-import{U as o,a8 as p,a9 as u,aa as l,ab as c,ac as f,ad as d,ae as m,af as h,ag as g,ah as A,d as P,u as v,y,x as w,ai as C,aj as R,ak as b,a6 as E}from"./chunks/framework.BBBwll2u.js";import{R as S}from"./chunks/theme.BLE0Gq7c.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function x(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp};
+import{U as o,a8 as p,a9 as u,aa as l,ab as c,ac as f,ad as d,ae as m,af as h,ag as g,ah as A,d as P,u as v,y,x as w,ai as C,aj as R,ak as b,a6 as E}from"./chunks/framework.Bvl2j7qw.js";import{R as S}from"./chunks/theme.Bp-liF74.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function x(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp};
diff --git a/dev/assets/call_notes.md.BbjlywY7.js b/dev/assets/call_notes.md.9cTzDhNW.js
similarity index 96%
rename from dev/assets/call_notes.md.BbjlywY7.js
rename to dev/assets/call_notes.md.9cTzDhNW.js
index f41ce86f8..b9160e1c1 100644
--- a/dev/assets/call_notes.md.BbjlywY7.js
+++ b/dev/assets/call_notes.md.9cTzDhNW.js
@@ -1 +1 @@
-import{_ as e,c as i,o as l,a7 as t}from"./chunks/framework.BBBwll2u.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),o={name:"call_notes.md"},a=t('

20th April, 2024

See GeometryOps#114.

  • [ ] Exact predicates can be defined for lower-level, more atomic predicates within GeometryOps.

  • [ ] Add Shewchuck's adaptive math as a stage for exact predicates.

  • [x] @skygering to write docstrings for the predicates

29th Feb, 2024

To do

  • [ ] Finish clipping degeneracies

  • [ ] Fix cross & overlap functions

  • [x] Benchmarks to show why things you couldn't concieve of in R are doable in Julia

  • [x] profile functions for exponential improvements

  • [ ] A list of projects people can work on...the beauty here is that each function is kind of self-contained so it's an undergrad level project

  • [ ] Doc improvements

    • more

    • benchmarks page

  • Methods to validate and fix geometry

    • [ ] Polygons and LinearRings:

      • [ ] self-intersection

      • [ ] holes are actually within the polygon

      • [ ] Polygon exteriors must be counterclockwise, holes clockwise.

      • [ ] length of all rings > 4

      • [ ] repeated last point

    • [ ] LineStrings: NaN/Inf points

    • [x] Fix linear rings at some point to make sure the ring is closed, i.e., points[end] == points[begin]

  • Tests

    • [x] Simplify functions

    • [x] Polygonize

    • Barycentric tests for n_vertices > 4

Done

  • Rename bools.jl to something more relevant to the actual code -> orientation.jl

  • Doc improvements:

    • organise sections
',8),n=[a];function r(s,p,c,d,h,u){return l(),i("div",null,n)}const g=e(o,[["render",r]]);export{m as __pageData,g as default}; +import{_ as e,c as i,o as l,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),o={name:"call_notes.md"},a=t('

20th April, 2024

See GeometryOps#114.

  • [ ] Exact predicates can be defined for lower-level, more atomic predicates within GeometryOps.

  • [ ] Add Shewchuck's adaptive math as a stage for exact predicates.

  • [x] @skygering to write docstrings for the predicates

29th Feb, 2024

To do

  • [ ] Finish clipping degeneracies

  • [ ] Fix cross & overlap functions

  • [x] Benchmarks to show why things you couldn't concieve of in R are doable in Julia

  • [x] profile functions for exponential improvements

  • [ ] A list of projects people can work on...the beauty here is that each function is kind of self-contained so it's an undergrad level project

  • [ ] Doc improvements

    • more

    • benchmarks page

  • Methods to validate and fix geometry

    • [ ] Polygons and LinearRings:

      • [ ] self-intersection

      • [ ] holes are actually within the polygon

      • [ ] Polygon exteriors must be counterclockwise, holes clockwise.

      • [ ] length of all rings > 4

      • [ ] repeated last point

    • [ ] LineStrings: NaN/Inf points

    • [x] Fix linear rings at some point to make sure the ring is closed, i.e., points[end] == points[begin]

  • Tests

    • [x] Simplify functions

    • [x] Polygonize

    • Barycentric tests for n_vertices > 4

Done

  • Rename bools.jl to something more relevant to the actual code -> orientation.jl

  • Doc improvements:

    • organise sections
',8),n=[a];function r(s,p,c,d,h,u){return l(),i("div",null,n)}const g=e(o,[["render",r]]);export{m as __pageData,g as default}; diff --git a/dev/assets/call_notes.md.BbjlywY7.lean.js b/dev/assets/call_notes.md.9cTzDhNW.lean.js similarity index 67% rename from dev/assets/call_notes.md.BbjlywY7.lean.js rename to dev/assets/call_notes.md.9cTzDhNW.lean.js index 800ddff2c..f6bf97a27 100644 --- a/dev/assets/call_notes.md.BbjlywY7.lean.js +++ b/dev/assets/call_notes.md.9cTzDhNW.lean.js @@ -1 +1 @@ -import{_ as e,c as i,o as l,a7 as t}from"./chunks/framework.BBBwll2u.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),o={name:"call_notes.md"},a=t("",8),n=[a];function r(s,p,c,d,h,u){return l(),i("div",null,n)}const g=e(o,[["render",r]]);export{m as __pageData,g as default}; +import{_ as e,c as i,o as l,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),o={name:"call_notes.md"},a=t("",8),n=[a];function r(s,p,c,d,h,u){return l(),i("div",null,n)}const g=e(o,[["render",r]]);export{m as __pageData,g as default}; diff --git a/dev/assets/kfwpeaq.DHcwB147.png b/dev/assets/cgiamym.DHcwB147.png similarity index 100% rename from dev/assets/kfwpeaq.DHcwB147.png rename to dev/assets/cgiamym.DHcwB147.png diff --git a/dev/assets/chunks/@localSearchIndexroot.BKnKO2Yj.js b/dev/assets/chunks/@localSearchIndexroot.BXhyoer8.js similarity index 72% rename from dev/assets/chunks/@localSearchIndexroot.BKnKO2Yj.js rename to dev/assets/chunks/@localSearchIndexroot.BXhyoer8.js index 9bcd95de7..eb583ea37 100644 --- a/dev/assets/chunks/@localSearchIndexroot.BKnKO2Yj.js +++ b/dev/assets/chunks/@localSearchIndexroot.BXhyoer8.js @@ -1 +1 @@ -const e='{"documentCount":179,"nextId":179,"documentIds":{"0":"/GeometryOps.jl/dev/api#Full-GeometryOps-API-documentation","1":"/GeometryOps.jl/dev/api#apply-and-associated-functions","2":"/GeometryOps.jl/dev/api#General-geometry-methods","3":"/GeometryOps.jl/dev/api#OGC-methods","4":"/GeometryOps.jl/dev/api#Other-general-methods","5":"/GeometryOps.jl/dev/api#Barycentric-coordinates","6":"/GeometryOps.jl/dev/api#Other-methods","7":"/GeometryOps.jl/dev/call_notes#20th-April,-2024","8":"/GeometryOps.jl/dev/call_notes#29th-Feb,-2024","9":"/GeometryOps.jl/dev/call_notes#To-do","10":"/GeometryOps.jl/dev/call_notes#done","11":"/GeometryOps.jl/dev/experiments/accurate_accumulators#Accurate-accumulation","12":"/GeometryOps.jl/dev/experiments/predicates#predicates","13":"/GeometryOps.jl/dev/experiments/predicates#orient","14":"/GeometryOps.jl/dev/experiments/predicates#dashboard","15":"/GeometryOps.jl/dev/experiments/predicates#Testing-robust-vs-regular-predicates","16":"/GeometryOps.jl/dev/experiments/predicates#incircle","17":"/GeometryOps.jl/dev/explanations/paradigms#paradigms","18":"/GeometryOps.jl/dev/explanations/paradigms#apply","19":"/GeometryOps.jl/dev/explanations/paradigms#applyreduce","20":"/GeometryOps.jl/dev/explanations/paradigms#fix-and-prepare","21":"/GeometryOps.jl/dev/explanations/peculiarities#peculiarities","22":"/GeometryOps.jl/dev/explanations/peculiarities#What-does-apply-return-and-why?","23":"/GeometryOps.jl/dev/explanations/peculiarities#Why-do-you-want-me-to-provide-a-target-in-set-operations?","24":"/GeometryOps.jl/dev/explanations/peculiarities#_True-and-_False-(or-BoolsAsTypes)","25":"/GeometryOps.jl/dev/#what-is-geometryops-jl","26":"/GeometryOps.jl/dev/#how-to-navigate-the-docs","27":"/GeometryOps.jl/dev/introduction#introduction","28":"/GeometryOps.jl/dev/introduction#Main-concepts","29":"/GeometryOps.jl/dev/introduction#The-apply-paradigm","30":"/GeometryOps.jl/dev/introduction#What\'s-this-GeoInterface.Wrapper-thing?","31":"/GeometryOps.jl/dev/source/GeometryOps#geometryops-jl","32":"/GeometryOps.jl/dev/source/methods/angles#angles","33":"/GeometryOps.jl/dev/source/methods/angles#What-is-angles?","34":"/GeometryOps.jl/dev/source/methods/angles#implementation","35":"/GeometryOps.jl/dev/source/methods/area#Area-and-signed-area","36":"/GeometryOps.jl/dev/source/methods/area#What-is-area?-What-is-signed-area?","37":"/GeometryOps.jl/dev/source/methods/area#implementation","38":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinates","39":"/GeometryOps.jl/dev/source/methods/barycentric#example","40":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinate-API","41":"/GeometryOps.jl/dev/source/methods/buffer#buffer","42":"/GeometryOps.jl/dev/source/methods/centroid#centroid","43":"/GeometryOps.jl/dev/source/methods/centroid#What-is-the-centroid?","44":"/GeometryOps.jl/dev/source/methods/centroid#implementation","45":"/GeometryOps.jl/dev/source/methods/clipping/clipping_processor#Polygon-clipping-helpers","46":"/GeometryOps.jl/dev/source/methods/clipping/cut#Polygon-cutting","47":"/GeometryOps.jl/dev/source/methods/clipping/cut#What-is-cut?","48":"/GeometryOps.jl/dev/source/methods/clipping/cut#implementation","49":"/GeometryOps.jl/dev/source/methods/clipping/coverage#What-is-coverage?","50":"/GeometryOps.jl/dev/source/methods/clipping/coverage#implementation","51":"/GeometryOps.jl/dev/source/methods/clipping/difference#Difference-Polygon-Clipping","52":"/GeometryOps.jl/dev/source/methods/clipping/difference#Helper-functions-for-Differences-with-Greiner-and-Hormann-Polygon-Clipping","53":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Geometry-Intersection","54":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Helper-functions-for-Intersections-with-Greiner-and-Hormann-Polygon-Clipping","55":"/GeometryOps.jl/dev/source/methods/clipping/predicates#If-we-want-to-inject-adaptivity,-we-would-do-something-like:","56":"/GeometryOps.jl/dev/source/methods/clipping/union#Union-Polygon-Clipping","57":"/GeometryOps.jl/dev/source/methods/clipping/union#Helper-functions-for-Unions-with-Greiner-and-Hormann-Polygon-Clipping","58":"/GeometryOps.jl/dev/source/methods/convex_hull#Convex-hull","59":"/GeometryOps.jl/dev/source/methods/convex_hull#example","60":"/GeometryOps.jl/dev/source/methods/convex_hull#Simple-hull","61":"/GeometryOps.jl/dev/source/methods/convex_hull#Convex-hull-of-the-USA","62":"/GeometryOps.jl/dev/source/methods/convex_hull#Investigating-the-winding-order","63":"/GeometryOps.jl/dev/source/methods/convex_hull#implementation","64":"/GeometryOps.jl/dev/source/methods/distance#Distance-and-signed-distance","65":"/GeometryOps.jl/dev/source/methods/distance#What-is-distance?-What-is-signed-distance?","66":"/GeometryOps.jl/dev/source/methods/distance#implementation","67":"/GeometryOps.jl/dev/source/methods/equals#equals","68":"/GeometryOps.jl/dev/source/methods/equals#What-is-equals?","69":"/GeometryOps.jl/dev/source/methods/equals#implementation","70":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#contains","71":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#What-is-contains?","72":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#implementation","73":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#coveredby","74":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#What-is-coveredby?","75":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#implementation","76":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Convert-features-to-geometries","77":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Points-coveredby-geometries","78":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Lines-coveredby-geometries","79":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Rings-covered-by-geometries","80":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Polygons-covered-by-geometries","81":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Geometries-coveredby-multi-geometry/geometry-collections","82":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Multi-geometry/geometry-collections-coveredby-geometries","83":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#covers","84":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#What-is-covers?","85":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#implementation","86":"/GeometryOps.jl/dev/source/methods/geom_relations/crosses#Crossing-checks","87":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#disjoint","88":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#What-is-disjoint?","89":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#implementation","90":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Convert-features-to-geometries","91":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Point-disjoint-geometries","92":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Lines-disjoint-geometries","93":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Rings-disjoint-geometries","94":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Polygon-disjoint-geometries","95":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Geometries-disjoint-multi-geometry/geometry-collections","96":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Multi-geometry/geometry-collections-coveredby-geometries","97":"/GeometryOps.jl/dev/source/methods/geom_relations/geom_geom_processors#Line-curve-interaction","98":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#Intersection-checks","99":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#What-is-intersects?","100":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#implementation","101":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#overlaps","102":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#What-is-overlaps?","103":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#implementation","104":"/GeometryOps.jl/dev/source/methods/geom_relations/within#within","105":"/GeometryOps.jl/dev/source/methods/geom_relations/within#What-is-within?","106":"/GeometryOps.jl/dev/source/methods/geom_relations/within#implementation","107":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Convert-features-to-geometries","108":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Points-within-geometries","109":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Lines-within-geometries","110":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Rings-covered-by-geometries","111":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Polygons-within-geometries","112":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Geometries-within-multi-geometry/geometry-collections","113":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Multi-geometry/geometry-collections-within-geometries","114":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#touches","115":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#What-is-touches?","116":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#implementation","117":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Convert-features-to-geometries","118":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Point-touches-geometries","119":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Lines-touching-geometries","120":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Rings-touch-geometries","121":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Polygons-touch-geometries","122":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Geometries-touch-multi-geometry/geometry-collections","123":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Multi-geometry/geometry-collections-cross-geometries","124":"/GeometryOps.jl/dev/source/methods/orientation#orientation","125":"/GeometryOps.jl/dev/source/methods/orientation#isclockwise","126":"/GeometryOps.jl/dev/source/methods/orientation#isconcave","127":"/GeometryOps.jl/dev/source/methods/polygonize#Polygonizing-raster-data","128":"/GeometryOps.jl/dev/source/not_implemented_yet#Not-implemented-yet","129":"/GeometryOps.jl/dev/source/primitives#Primitive-functions","130":"/GeometryOps.jl/dev/source/primitives#docstrings","131":"/GeometryOps.jl/dev/source/primitives#functions","132":"/GeometryOps.jl/dev/source/primitives#types","133":"/GeometryOps.jl/dev/source/primitives#implementation","134":"/GeometryOps.jl/dev/source/primitives#What-is-apply?","135":"/GeometryOps.jl/dev/source/primitives#embedding","136":"/GeometryOps.jl/dev/source/primitives#threading","137":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#Closed-Rings","138":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#example","139":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#implementation","140":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Geometry-Corrections","141":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#interface","142":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Available-corrections","143":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#Intersecting-Polygons","144":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#example","145":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#implementation","146":"/GeometryOps.jl/dev/source/transformations/extent#Extent-embedding","147":"/GeometryOps.jl/dev/source/transformations/flip#Coordinate-flipping","148":"/GeometryOps.jl/dev/source/transformations/reproject#Geometry-reprojection","149":"/GeometryOps.jl/dev/source/transformations/reproject#Method-error-handling","150":"/GeometryOps.jl/dev/source/transformations/segmentize#segmentize","151":"/GeometryOps.jl/dev/source/transformations/segmentize#examples","152":"/GeometryOps.jl/dev/source/transformations/segmentize#benchmark","153":"/GeometryOps.jl/dev/source/transformations/segmentize#implementation","154":"/GeometryOps.jl/dev/source/transformations/simplify#Geometry-simplification","155":"/GeometryOps.jl/dev/source/transformations/simplify#examples","156":"/GeometryOps.jl/dev/source/transformations/simplify#benchmark","157":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-RadialDistance-Algorithm","158":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-DouglasPeucker-Algorithm","159":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-VisvalingamWhyatt-Algorithm","160":"/GeometryOps.jl/dev/source/transformations/simplify#Shared-utils","161":"/GeometryOps.jl/dev/source/transformations/transform#Pointwise-transformation","162":"/GeometryOps.jl/dev/source/transformations/tuples#Tuple-conversion","163":"/GeometryOps.jl/dev/source/types#types","164":"/GeometryOps.jl/dev/source/types#TraitTarget","165":"/GeometryOps.jl/dev/source/types#BoolsAsTypes","166":"/GeometryOps.jl/dev/source/types#GEOS","167":"/GeometryOps.jl/dev/source/utils#Utility-functions","168":"/GeometryOps.jl/dev/tutorials/creating_geometry#Creating-Geometry","169":"/GeometryOps.jl/dev/tutorials/creating_geometry#creating-geometry","170":"/GeometryOps.jl/dev/tutorials/creating_geometry#plot-geometry","171":"/GeometryOps.jl/dev/tutorials/creating_geometry#geom-crs","172":"/GeometryOps.jl/dev/tutorials/creating_geometry#attributes","173":"/GeometryOps.jl/dev/tutorials/creating_geometry#save-geometry","174":"/GeometryOps.jl/dev/tutorials/geodesic_paths#Geodesic-paths","175":"/GeometryOps.jl/dev/tutorials/spatial_joins#Spatial-joins","176":"/GeometryOps.jl/dev/tutorials/spatial_joins#Simple-example","177":"/GeometryOps.jl/dev/tutorials/spatial_joins#Real-world-example","178":"/GeometryOps.jl/dev/tutorials/spatial_joins#Enabling-custom-predicates"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,91],"1":[4,4,248],"2":[3,4,1],"3":[2,7,208],"4":[3,7,258],"5":[2,4,84],"6":[2,4,1086],"7":[3,1,55],"8":[3,1,1],"9":[2,3,107],"10":[1,3,17],"11":[2,1,74],"12":[1,1,5],"13":[1,1,128],"14":[1,2,116],"15":[5,2,72],"16":[1,1,1],"17":[1,1,53],"18":[1,1,109],"19":[1,2,35],"20":[3,1,79],"21":[1,1,1],"22":[7,1,71],"23":[13,1,101],"24":[6,1,66],"25":[5,1,72],"26":[5,1,61],"27":[1,1,72],"28":[2,1,1],"29":[3,3,50],"30":[8,3,18],"31":[2,1,120],"32":[1,1,3],"33":[4,1,57],"34":[1,1,268],"35":[4,1,4],"36":[5,4,100],"37":[1,4,246],"38":[2,1,65],"39":[1,2,211],"40":[3,2,414],"41":[1,1,110],"42":[1,1,6],"43":[5,1,91],"44":[1,1,199],"45":[3,1,609],"46":[2,1,3],"47":[4,2,57],"48":[1,2,200],"49":[4,1,70],"50":[1,1,327],"51":[3,1,214],"52":[10,1,190],"53":[2,1,250],"54":[10,1,480],"55":[11,1,25],"56":[3,1,235],"57":[10,1,283],"58":[2,1,56],"59":[1,2,1],"60":[2,3,32],"61":[5,2,40],"62":[4,2,100],"63":[1,2,166],"64":[4,1,4],"65":[5,4,128],"66":[1,4,260],"67":[1,1,3],"68":[4,1,68],"69":[1,1,265],"70":[1,1,3],"71":[4,1,79],"72":[1,1,79],"73":[1,1,3],"74":[4,1,81],"75":[1,1,128],"76":[4,1,11],"77":[3,1,56],"78":[3,1,46],"79":[4,1,48],"80":[4,1,40],"81":[5,1,40],"82":[5,1,44],"83":[1,1,3],"84":[4,1,67],"85":[1,1,78],"86":[2,1,149],"87":[1,1,3],"88":[4,1,68],"89":[1,1,110],"90":[4,1,10],"91":[3,1,57],"92":[3,1,58],"93":[3,1,47],"94":[3,1,33],"95":[5,1,39],"96":[5,1,44],"97":[3,1,432],"98":[2,1,3],"99":[4,2,80],"100":[1,2,76],"101":[1,1,3],"102":[4,1,82],"103":[1,1,244],"104":[1,1,3],"105":[4,1,72],"106":[1,1,129],"107":[4,1,11],"108":[3,1,63],"109":[3,1,53],"110":[4,1,53],"111":[3,1,38],"112":[5,1,39],"113":[5,1,42],"114":[1,1,3],"115":[4,1,70],"116":[1,1,125],"117":[4,1,11],"118":[3,1,69],"119":[3,1,52],"120":[3,1,61],"121":[3,1,40],"122":[5,1,39],"123":[5,1,42],"124":[1,1,4],"125":[1,1,21],"126":[1,1,206],"127":[3,1,511],"128":[3,1,47],"129":[2,1,113],"130":[1,2,1],"131":[1,3,106],"132":[1,2,12],"133":[1,2,33],"134":[4,2,114],"135":[2,2,36],"136":[1,2,536],"137":[2,1,54],"138":[1,2,87],"139":[1,2,83],"140":[2,1,41],"141":[1,2,112],"142":[2,2,109],"143":[2,1,77],"144":[1,2,70],"145":[1,2,135],"146":[2,1,71],"147":[2,1,56],"148":[2,1,132],"149":[3,2,77],"150":[1,1,76],"151":[1,1,147],"152":[1,1,268],"153":[1,1,188],"154":[2,1,44],"155":[1,2,67],"156":[1,2,391],"157":[4,1,75],"158":[4,1,186],"159":[4,1,85],"160":[2,1,149],"161":[2,1,111],"162":[2,1,58],"163":[1,1,38],"164":[1,1,74],"165":[1,1,82],"166":[1,1,147],"167":[2,1,136],"168":[2,1,60],"169":[4,2,287],"170":[13,2,280],"171":[9,2,199],"172":[7,2,63],"173":[4,2,140],"174":[2,1,52],"175":[2,1,138],"176":[2,2,137],"177":[3,2,117],"178":[3,2,68]},"averageFieldLength":[2.860335195530726,1.4692737430167604,108.19553072625699],"storedFields":{"0":{"title":"Full GeometryOps API documentation","titles":[]},"1":{"title":"apply and associated functions","titles":["Full GeometryOps API documentation"]},"2":{"title":"General geometry methods","titles":["Full GeometryOps API documentation"]},"3":{"title":"OGC methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"4":{"title":"Other general methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"5":{"title":"Barycentric coordinates","titles":["Full GeometryOps API documentation"]},"6":{"title":"Other methods","titles":["Full GeometryOps API documentation"]},"7":{"title":"20th April, 2024","titles":[]},"8":{"title":"29th Feb, 2024","titles":[]},"9":{"title":"To do","titles":["29th Feb, 2024"]},"10":{"title":"Done","titles":["29th Feb, 2024"]},"11":{"title":"Accurate accumulation","titles":[]},"12":{"title":"Predicates","titles":[]},"13":{"title":"Orient","titles":["Predicates"]},"14":{"title":"Dashboard","titles":["Predicates","Orient"]},"15":{"title":"Testing robust vs regular predicates","titles":["Predicates","Orient"]},"16":{"title":"Incircle","titles":["Predicates"]},"17":{"title":"Paradigms","titles":[]},"18":{"title":"apply","titles":["Paradigms"]},"19":{"title":"applyreduce","titles":["Paradigms","apply"]},"20":{"title":"fix and prepare","titles":["Paradigms"]},"21":{"title":"Peculiarities","titles":[]},"22":{"title":"What does apply return and why?","titles":["Peculiarities"]},"23":{"title":"Why do you want me to provide a target in set operations?","titles":["Peculiarities"]},"24":{"title":"_True and _False (or BoolsAsTypes)","titles":["Peculiarities"]},"25":{"title":"What is GeometryOps.jl?","titles":[]},"26":{"title":"How to navigate the docs","titles":[]},"27":{"title":"Introduction","titles":[]},"28":{"title":"Main concepts","titles":["Introduction"]},"29":{"title":"The apply paradigm","titles":["Introduction","Main concepts"]},"30":{"title":"What's this GeoInterface.Wrapper thing?","titles":["Introduction","Main concepts"]},"31":{"title":"GeometryOps.jl","titles":[]},"32":{"title":"Angles","titles":[]},"33":{"title":"What is angles?","titles":["Angles"]},"34":{"title":"Implementation","titles":["Angles"]},"35":{"title":"Area and signed area","titles":[]},"36":{"title":"What is area? What is signed area?","titles":["Area and signed area"]},"37":{"title":"Implementation","titles":["Area and signed area"]},"38":{"title":"Barycentric coordinates","titles":[]},"39":{"title":"Example","titles":["Barycentric coordinates"]},"40":{"title":"Barycentric-coordinate API","titles":["Barycentric coordinates"]},"41":{"title":"Buffer","titles":[]},"42":{"title":"Centroid","titles":[]},"43":{"title":"What is the centroid?","titles":["Centroid"]},"44":{"title":"Implementation","titles":["Centroid"]},"45":{"title":"Polygon clipping helpers","titles":[]},"46":{"title":"Polygon cutting","titles":[]},"47":{"title":"What is cut?","titles":["Polygon cutting"]},"48":{"title":"Implementation","titles":["Polygon cutting"]},"49":{"title":"What is coverage?","titles":[]},"50":{"title":"Implementation","titles":[]},"51":{"title":"Difference Polygon Clipping","titles":[]},"52":{"title":"Helper functions for Differences with Greiner and Hormann Polygon Clipping","titles":[]},"53":{"title":"Geometry Intersection","titles":[]},"54":{"title":"Helper functions for Intersections with Greiner and Hormann Polygon Clipping","titles":[]},"55":{"title":"If we want to inject adaptivity, we would do something like:","titles":[]},"56":{"title":"Union Polygon Clipping","titles":[]},"57":{"title":"Helper functions for Unions with Greiner and Hormann Polygon Clipping","titles":[]},"58":{"title":"Convex hull","titles":[]},"59":{"title":"Example","titles":["Convex hull"]},"60":{"title":"Simple hull","titles":["Convex hull","Example"]},"61":{"title":"Convex hull of the USA","titles":["Convex hull"]},"62":{"title":"Investigating the winding order","titles":["Convex hull"]},"63":{"title":"Implementation","titles":["Convex hull"]},"64":{"title":"Distance and signed distance","titles":[]},"65":{"title":"What is distance? What is signed distance?","titles":["Distance and signed distance"]},"66":{"title":"Implementation","titles":["Distance and signed distance"]},"67":{"title":"Equals","titles":[]},"68":{"title":"What is equals?","titles":["Equals"]},"69":{"title":"Implementation","titles":["Equals"]},"70":{"title":"Contains","titles":[]},"71":{"title":"What is contains?","titles":["Contains"]},"72":{"title":"Implementation","titles":["Contains"]},"73":{"title":"CoveredBy","titles":[]},"74":{"title":"What is coveredby?","titles":["CoveredBy"]},"75":{"title":"Implementation","titles":["CoveredBy"]},"76":{"title":"Convert features to geometries","titles":[]},"77":{"title":"Points coveredby geometries","titles":[]},"78":{"title":"Lines coveredby geometries","titles":[]},"79":{"title":"Rings covered by geometries","titles":[]},"80":{"title":"Polygons covered by geometries","titles":[]},"81":{"title":"Geometries coveredby multi-geometry/geometry collections","titles":[]},"82":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"83":{"title":"Covers","titles":[]},"84":{"title":"What is covers?","titles":["Covers"]},"85":{"title":"Implementation","titles":["Covers"]},"86":{"title":"Crossing checks","titles":[]},"87":{"title":"Disjoint","titles":[]},"88":{"title":"What is disjoint?","titles":["Disjoint"]},"89":{"title":"Implementation","titles":["Disjoint"]},"90":{"title":"Convert features to geometries","titles":[]},"91":{"title":"Point disjoint geometries","titles":[]},"92":{"title":"Lines disjoint geometries","titles":[]},"93":{"title":"Rings disjoint geometries","titles":[]},"94":{"title":"Polygon disjoint geometries","titles":[]},"95":{"title":"Geometries disjoint multi-geometry/geometry collections","titles":[]},"96":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"97":{"title":"Line-curve interaction","titles":[]},"98":{"title":"Intersection checks","titles":[]},"99":{"title":"What is intersects?","titles":["Intersection checks"]},"100":{"title":"Implementation","titles":["Intersection checks"]},"101":{"title":"Overlaps","titles":[]},"102":{"title":"What is overlaps?","titles":["Overlaps"]},"103":{"title":"Implementation","titles":["Overlaps"]},"104":{"title":"Within","titles":[]},"105":{"title":"What is within?","titles":["Within"]},"106":{"title":"Implementation","titles":["Within"]},"107":{"title":"Convert features to geometries","titles":[]},"108":{"title":"Points within geometries","titles":[]},"109":{"title":"Lines within geometries","titles":[]},"110":{"title":"Rings covered by geometries","titles":[]},"111":{"title":"Polygons within geometries","titles":[]},"112":{"title":"Geometries within multi-geometry/geometry collections","titles":[]},"113":{"title":"Multi-geometry/geometry collections within geometries","titles":[]},"114":{"title":"Touches","titles":[]},"115":{"title":"What is touches?","titles":["Touches"]},"116":{"title":"Implementation","titles":["Touches"]},"117":{"title":"Convert features to geometries","titles":[]},"118":{"title":"Point touches geometries","titles":[]},"119":{"title":"Lines touching geometries","titles":[]},"120":{"title":"Rings touch geometries","titles":[]},"121":{"title":"Polygons touch geometries","titles":[]},"122":{"title":"Geometries touch multi-geometry/geometry collections","titles":[]},"123":{"title":"Multi-geometry/geometry collections cross geometries","titles":[]},"124":{"title":"Orientation","titles":[]},"125":{"title":"isclockwise","titles":["Orientation"]},"126":{"title":"isconcave","titles":["Orientation"]},"127":{"title":"Polygonizing raster data","titles":[]},"128":{"title":"Not implemented yet","titles":[]},"129":{"title":"Primitive functions","titles":[]},"130":{"title":"Docstrings","titles":["Primitive functions"]},"131":{"title":"Functions","titles":["Primitive functions","Docstrings"]},"132":{"title":"Types","titles":["Primitive functions"]},"133":{"title":"Implementation","titles":["Primitive functions"]},"134":{"title":"What is apply?","titles":["Primitive functions"]},"135":{"title":"Embedding:","titles":["Primitive functions"]},"136":{"title":"Threading","titles":["Primitive functions"]},"137":{"title":"Closed Rings","titles":[]},"138":{"title":"Example","titles":["Closed Rings"]},"139":{"title":"Implementation","titles":["Closed Rings"]},"140":{"title":"Geometry Corrections","titles":[]},"141":{"title":"Interface","titles":["Geometry Corrections"]},"142":{"title":"Available corrections","titles":["Geometry Corrections"]},"143":{"title":"Intersecting Polygons","titles":[]},"144":{"title":"Example","titles":["Intersecting Polygons"]},"145":{"title":"Implementation","titles":["Intersecting Polygons"]},"146":{"title":"Extent embedding","titles":[]},"147":{"title":"Coordinate flipping","titles":[]},"148":{"title":"Geometry reprojection","titles":[]},"149":{"title":"Method error handling","titles":["Geometry reprojection"]},"150":{"title":"Segmentize","titles":[]},"151":{"title":"Examples","titles":["Segmentize"]},"152":{"title":"Benchmark","titles":["Segmentize"]},"153":{"title":"Implementation","titles":["Segmentize"]},"154":{"title":"Geometry simplification","titles":[]},"155":{"title":"Examples","titles":["Geometry simplification"]},"156":{"title":"Benchmark","titles":["Geometry simplification"]},"157":{"title":"Simplify with RadialDistance Algorithm","titles":[]},"158":{"title":"Simplify with DouglasPeucker Algorithm","titles":[]},"159":{"title":"Simplify with VisvalingamWhyatt Algorithm","titles":[]},"160":{"title":"Shared utils","titles":[]},"161":{"title":"Pointwise transformation","titles":[]},"162":{"title":"Tuple conversion","titles":[]},"163":{"title":"Types","titles":[]},"164":{"title":"TraitTarget","titles":["Types"]},"165":{"title":"BoolsAsTypes","titles":["Types"]},"166":{"title":"GEOS","titles":["Types"]},"167":{"title":"Utility functions","titles":[]},"168":{"title":"Creating Geometry","titles":[]},"169":{"title":"Creating and plotting geometries","titles":["Creating Geometry"]},"170":{"title":"Plot geometries on a map using GeoMakie and coordinate reference system (CRS)","titles":["Creating Geometry"]},"171":{"title":"Create geospatial geometries with embedded coordinate reference system information","titles":["Creating Geometry"]},"172":{"title":"Creating a table with attributes and geometry","titles":["Creating Geometry"]},"173":{"title":"Saving your geospatial data","titles":["Creating Geometry"]},"174":{"title":"Geodesic paths","titles":[]},"175":{"title":"Spatial joins","titles":[]},"176":{"title":"Simple example","titles":["Spatial joins"]},"177":{"title":"Real-world example","titles":["Spatial joins"]},"178":{"title":"Enabling custom predicates","titles":["Spatial joins"]}},"dirtCount":0,"index":[["⋮",{"2":{"170":1}}],["θ",{"2":{"169":7,"170":3,"171":5}}],["☁",{"2":{"169":1}}],["✈",{"2":{"169":1}}],["÷",{"2":{"136":2}}],["ϵ",{"2":{"54":5}}],["∘",{"2":{"54":1,"103":2,"127":2,"141":1,"156":2,"178":2}}],["⊻",{"2":{"45":1,"52":2}}],["≥",{"2":{"45":1,"97":2,"145":1,"158":1}}],["α≈1",{"2":{"54":1}}],["α≈0",{"2":{"54":1}}],["α2",{"2":{"45":4,"54":2}}],["α",{"2":{"45":3,"54":28,"97":7}}],["α1",{"2":{"45":4,"54":2}}],["β2",{"2":{"45":4,"54":2}}],["β",{"2":{"45":4,"54":28,"97":7}}],["β1",{"2":{"45":4,"54":2}}],["≤",{"2":{"45":5,"50":14,"97":6,"158":1,"160":1,"167":4}}],["^",{"2":{"170":1}}],["^3",{"2":{"170":1}}],["^n",{"2":{"126":1}}],["^2",{"2":{"44":2,"66":2}}],["^hormannpresentation",{"2":{"40":2}}],["∑λ",{"2":{"40":2}}],["∑i=2n",{"2":{"6":1}}],["`$",{"2":{"166":1}}],["`libgeos",{"2":{"166":1}}],["`linearring`",{"2":{"153":1}}],["`linearsegments`",{"2":{"153":1}}],["`linestring`",{"2":{"153":1}}],["`linestringtrait`",{"2":{"141":1}}],["`line2`",{"2":{"126":1}}],["`line1`",{"2":{"126":1}}],["`line",{"2":{"53":4}}],["`equatorial",{"2":{"152":2}}],["`extents",{"2":{"146":1}}],["`inf`",{"2":{"148":1}}],["`intersects`",{"2":{"100":1}}],["`intersectingpolygons`",{"2":{"51":1,"53":1,"56":1}}],["`prefilter",{"2":{"156":1}}],["`proj",{"2":{"148":1,"152":2}}],["`polgontrait`",{"2":{"136":1}}],["`polygontrait`",{"2":{"136":1,"141":1}}],["`polygonize`",{"2":{"127":2}}],["`polygon`",{"2":{"40":3}}],["`polys`",{"2":{"52":1}}],["`poly",{"2":{"52":3,"54":1,"57":1}}],["`pointrait`",{"2":{"156":1}}],["`pointtrait`",{"2":{"136":3,"141":1}}],["`point",{"2":{"97":3}}],["`point`",{"2":{"40":4,"66":1}}],["`point2f`",{"2":{"39":1}}],["`obj`",{"2":{"136":1,"161":1,"162":1}}],["`op`",{"2":{"136":2}}],["`+`",{"2":{"136":1}}],["`alg",{"2":{"166":1}}],["`alg`",{"2":{"160":1}}],["`always",{"2":{"148":1}}],["`application",{"2":{"141":1}}],["`apply`",{"2":{"136":1,"164":1}}],["`abstractgeometrytrait`",{"2":{"136":1}}],["`abstractarray`",{"2":{"136":1}}],["`abstractmatrix`",{"2":{"127":1}}],["`calc",{"2":{"133":1}}],["`crs`",{"2":{"133":1}}],["`components`",{"2":{"136":1}}],["`collect`",{"2":{"136":1}}],["`covers`",{"2":{"75":1,"85":1}}],["`coveredby`",{"2":{"75":1,"85":1}}],["`contains`",{"2":{"72":1,"106":1}}],["`convex",{"2":{"63":2}}],["`union",{"2":{"127":2}}],["`unionintersectingpolygons`",{"2":{"145":1}}],["`unionintersectingpolygons",{"2":{"51":1,"52":2,"53":1,"54":2,"56":1,"57":2}}],["`ys`",{"2":{"127":1}}],["`flattening`",{"2":{"152":1}}],["`flattening",{"2":{"152":1}}],["`flatten`",{"2":{"136":1}}],["`f",{"2":{"136":1}}],["`featurecollectiontrait`",{"2":{"136":2}}],["`featurecollection`",{"2":{"127":2}}],["`featuretrait`",{"2":{"136":3}}],["`feature`s",{"2":{"127":1}}],["`f`",{"2":{"127":5,"136":6,"161":2,"166":1}}],["`false`",{"2":{"126":1,"127":1,"133":4,"148":1}}],["`fix",{"2":{"51":2,"52":2,"53":2,"54":2,"56":2,"57":2}}],["`douglaspeucker`",{"2":{"156":1}}],["`d`",{"2":{"148":1}}],["`difference`",{"2":{"145":1}}],["`disjoint`",{"2":{"100":1}}],["`delaunaytriangulation",{"2":{"63":1}}],["`within`",{"2":{"72":1,"106":1}}],["`weight`",{"2":{"40":1}}],["`geos`",{"2":{"166":3}}],["`geodesic`",{"2":{"152":1}}],["`geodesicsegments`",{"2":{"151":1,"152":1,"153":1}}],["`geointerface`",{"2":{"141":1}}],["`geointerface",{"2":{"136":2,"148":2}}],["`geom`",{"2":{"66":3,"136":1,"153":1}}],["`geometrycorrection`",{"2":{"139":1,"141":1,"145":2}}],["`geometry`",{"2":{"136":1,"148":2}}],["`geometrybasics",{"2":{"40":3}}],["`geometries`",{"2":{"63":1}}],["`g1`",{"2":{"66":1}}],["`gi",{"2":{"63":1,"127":1}}],["`tuple",{"2":{"167":1}}],["`tuple`s",{"2":{"162":1}}],["`tuple`",{"2":{"127":1,"162":1}}],["`time`",{"2":{"148":1}}],["`transform`",{"2":{"148":1}}],["`true`",{"2":{"75":1,"86":1,"89":2,"106":1,"116":1,"126":2,"127":1,"133":2,"148":1}}],["`threaded==true`",{"2":{"136":1}}],["`threaded`",{"2":{"133":1}}],["`tol`",{"2":{"156":2,"157":3,"158":2,"159":3,"160":4}}],["`to",{"2":{"54":1}}],["`target",{"2":{"148":3}}],["`target`",{"2":{"53":1,"136":4,"164":1}}],["`tables",{"2":{"136":1}}],["`taget`",{"2":{"51":1,"56":1}}],["`method",{"2":{"153":1}}],["`method`",{"2":{"40":3,"153":1}}],["`max",{"2":{"152":4,"153":2,"166":1}}],["`makie",{"2":{"127":1}}],["`multipointtrait`",{"2":{"136":1,"156":1}}],["`multipolygontrait`",{"2":{"136":1}}],["`multipolygon`",{"2":{"127":3}}],["`multipolygon",{"2":{"52":3,"54":3,"57":2}}],["`multipoly",{"2":{"52":7,"54":3,"57":3}}],["`minpoints`",{"2":{"127":2}}],["`number`",{"2":{"156":2,"160":3}}],["`namedtuple`",{"2":{"136":1}}],["`nothing`",{"2":{"45":1,"133":1}}],["`next",{"2":{"45":1}}],["`bool`",{"2":{"127":2}}],["`buffer`",{"2":{"41":1}}],["`barycentric",{"2":{"40":3}}],["`radialdistance`",{"2":{"156":1}}],["`ratio`",{"2":{"156":2,"160":3}}],["`reproject`",{"2":{"149":1}}],["`rebuild`",{"2":{"136":1}}],["`r`",{"2":{"40":1}}],["`rᵢ`",{"2":{"40":1}}],["`segmentize`",{"2":{"166":1}}],["`svector`",{"2":{"161":3}}],["`simplifyalg`",{"2":{"156":2}}],["`simplify",{"2":{"156":1}}],["`simplify`",{"2":{"156":2}}],["`source",{"2":{"148":3}}],["`s`",{"2":{"40":1}}],["`sᵢ`",{"2":{"40":2}}],["`s2`",{"2":{"40":1}}],["`s1`",{"2":{"40":1}}],["`hcat`",{"2":{"40":1}}],["`x`",{"2":{"136":1}}],["`xs`",{"2":{"127":1}}],["`x1",{"2":{"40":1}}],["`x1`",{"2":{"40":2}}],["`x2`",{"2":{"40":1}}],["`visvalingamwhyatt`",{"2":{"156":1}}],["`vector",{"2":{"148":1}}],["`vector`",{"2":{"127":1,"136":1}}],["`vᵢ`",{"2":{"40":1}}],["`v`",{"2":{"40":1}}],["`values`",{"2":{"40":1,"127":1}}],["`λs`",{"2":{"40":2}}],["`",{"2":{"40":2,"51":1,"52":2,"53":1,"54":3,"56":1,"57":2,"127":3,"136":1,"141":2,"148":2,"153":1,"156":3,"166":2,"167":1}}],["```jldoctest",{"2":{"48":1,"51":1,"53":1,"54":1,"56":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":1,"156":1}}],["```julia",{"2":{"6":2,"40":1,"86":1,"126":1,"136":1,"161":2,"164":1}}],["```math",{"2":{"40":1,"126":1}}],["```",{"2":{"11":1,"40":3,"48":1,"51":1,"53":1,"56":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":3,"127":11,"136":1,"156":1,"161":2,"167":1}}],["λ₁",{"2":{"40":2}}],["λn",{"2":{"38":1}}],["λ3",{"2":{"38":1}}],["λ2",{"2":{"38":2}}],["λ1",{"2":{"38":2}}],["λs",{"2":{"5":3,"6":4,"40":27}}],["π",{"2":{"34":1,"156":1}}],["δbay",{"2":{"54":3}}],["δbax",{"2":{"54":3}}],["δby",{"2":{"54":5}}],["δbx",{"2":{"54":5}}],["δb",{"2":{"54":2}}],["δay",{"2":{"54":5}}],["δax",{"2":{"54":5}}],["δa",{"2":{"54":2}}],["δintrs",{"2":{"45":2}}],["δy2",{"2":{"126":2}}],["δy1",{"2":{"126":2}}],["δyl",{"2":{"103":4}}],["δy",{"2":{"34":8,"50":3,"97":7}}],["δys",{"2":{"34":1}}],["δx2",{"2":{"126":2}}],["δx1",{"2":{"126":2}}],["δxl",{"2":{"103":4}}],["δx",{"2":{"34":9,"50":3,"97":7}}],["∈",{"2":{"14":1}}],["~",{"2":{"14":3}}],["$ratio",{"2":{"160":1}}],["$rectangle",{"2":{"152":2}}],["$number",{"2":{"160":1}}],["$name",{"2":{"31":2}}],["$min",{"2":{"160":1}}],["$douglas",{"2":{"156":1,"158":1}}],["$simplify",{"2":{"156":1,"157":1,"159":1}}],["$lg",{"2":{"152":1}}],["$lin",{"2":{"152":2}}],["$geom",{"2":{"156":8}}],["$geo",{"2":{"152":1}}],["$apply",{"2":{"136":1,"147":1,"148":1,"156":1}}],["$calc",{"2":{"133":1}}],["$crs",{"2":{"133":1,"146":1}}],["$tol",{"2":{"160":1}}],["$threaded",{"2":{"133":1}}],["$t",{"2":{"69":1,"136":4}}],["$target",{"2":{"52":1,"54":1,"57":1,"136":3}}],["$trait",{"2":{"48":1,"52":2,"54":2,"57":2}}],["$",{"2":{"13":4,"14":1,"40":4,"45":2,"127":3,"141":4,"153":1,"156":12,"166":1}}],["|=",{"2":{"97":4,"103":1}}],["||",{"2":{"34":2,"45":13,"48":1,"50":8,"53":1,"54":5,"56":1,"69":18,"86":2,"97":8,"103":1,"118":1,"127":7,"158":1,"160":3}}],["|",{"2":{"11":4,"97":1}}],["|>",{"2":{"11":8,"13":2,"136":1,"151":1,"152":1,"156":3,"177":2}}],["↩︎",{"2":{"6":1}}],["ᵢᵢᵢ₊₁ᵢᵢ₊₁ᵢᵢ₊₁tᵢ=det",{"2":{"6":1}}],["⋅",{"2":{"6":1,"40":1}}],["qy",{"2":{"13":2,"14":2}}],["qx",{"2":{"13":2,"14":2}}],["q",{"2":{"13":13,"14":12,"45":4}}],["qhull",{"2":{"6":1,"63":1}}],["queue",{"2":{"158":41}}],["questions",{"2":{"54":1}}],["quite",{"2":{"138":1,"177":1}}],["quickhull",{"2":{"6":1,"58":1,"63":2}}],["quick",{"2":{"4":1,"6":1,"40":1,"146":1,"155":1}}],["quality",{"2":{"6":1,"156":1}}],["quantity",{"2":{"6":1,"152":1}}],["quot",{"2":{"1":4,"6":10,"20":2,"45":8,"65":2,"66":2,"69":2,"84":4,"97":10,"134":2,"136":8,"150":6,"169":2,"176":2}}],["zone",{"2":{"170":1}}],["zoom",{"2":{"14":1}}],["zs",{"2":{"127":5}}],["zip",{"2":{"13":1,"14":1,"169":4,"170":1,"171":1}}],["zeros",{"2":{"40":1,"50":1}}],["zero",{"2":{"4":6,"6":8,"37":11,"44":3,"45":4,"50":11,"54":22,"65":1,"66":3,"126":1,"136":1,"158":4}}],["z",{"2":{"4":1,"5":1,"6":2,"40":3,"69":3,"127":3,"147":1,"161":1,"162":1}}],["0e6",{"2":{"170":6}}],["0example",{"2":{"6":1}}],["097075198097933",{"2":{"171":1}}],["09707519809793252",{"2":{"171":2}}],["091887951911644",{"2":{"171":3}}],["0999933334666654",{"2":{"169":1}}],["09801605542096",{"2":{"169":1}}],["098016055420953",{"2":{"169":3}}],["09297443860091348",{"2":{"169":4}}],["09",{"2":{"39":1}}],["08506974233813636",{"2":{"171":2}}],["08",{"2":{"39":1}}],["062749678615475",{"2":{"171":1}}],["06274967861547665",{"2":{"171":2}}],["06592462566760626",{"2":{"169":1}}],["0650624499034016",{"2":{"169":4}}],["06",{"2":{"39":1}}],["02017324484778",{"2":{"171":1}}],["020173244847778715",{"2":{"171":2}}],["027886421973952302",{"2":{"169":4}}],["02",{"2":{"39":3}}],["04500741774392",{"2":{"171":1}}],["045007417743918",{"2":{"171":2}}],["049999166670833324",{"2":{"169":1}}],["0438052480035",{"2":{"169":1}}],["043805248003498",{"2":{"169":3}}],["04",{"2":{"39":6}}],["07518688541961",{"2":{"171":1}}],["075186885419612",{"2":{"171":2}}],["071",{"2":{"151":2,"152":2}}],["07",{"2":{"39":6,"151":6,"152":6}}],["009176636029576",{"2":{"171":1}}],["0091766360295773",{"2":{"171":2}}],["003135308800957",{"2":{"171":1}}],["0031353088009582475",{"2":{"171":2}}],["0035114210915891397",{"2":{"169":4}}],["006784125578492062",{"2":{"171":2}}],["0020133807972559925",{"2":{"171":2}}],["00839489109211",{"2":{"171":3}}],["008696",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["005465967083412071",{"2":{"169":4}}],["00111595449914",{"2":{"169":1}}],["001115954499138",{"2":{"169":3}}],["0010075412835199304",{"2":{"169":4}}],["001",{"2":{"156":1}}],["00085222666982",{"2":{"171":3}}],["000577332369005",{"2":{"171":1}}],["0005773323690041465",{"2":{"171":2}}],["000510363870095e6",{"2":{"170":2}}],["00025191811248184703",{"2":{"171":2}}],["000215611503127e6",{"2":{"170":2}}],["0007260527263e6",{"2":{"170":2}}],["000342160541625e6",{"2":{"170":2}}],["000124843834609e6",{"2":{"170":2}}],["000063948817746e6",{"2":{"170":2}}],["000026987852369e6",{"2":{"170":2}}],["000008144045314",{"2":{"171":1}}],["000007998400139e6",{"2":{"170":2}}],["000000999950001e6",{"2":{"170":2}}],["00001e6",{"2":{"170":1}}],["0004397316773170068",{"2":{"169":4}}],["000",{"2":{"156":1,"174":1}}],["00",{"2":{"39":2}}],["053798628882221644",{"2":{"171":2}}],["05877989361332",{"2":{"169":1}}],["058779893613323",{"2":{"169":3}}],["05416726609360478",{"2":{"169":4}}],["05",{"2":{"39":1}}],["052704767595",{"2":{"15":1}}],["037564867762832",{"2":{"171":1}}],["03756486776283019",{"2":{"171":2}}],["031245035570328428",{"2":{"171":2}}],["033518309870985",{"2":{"171":3}}],["03503632062070827",{"2":{"169":4}}],["03",{"2":{"39":4}}],["01458815628695",{"2":{"171":3}}],["016044338630866517",{"2":{"171":2}}],["01592650896568995",{"2":{"169":1}}],["01597247419241532",{"2":{"169":4}}],["01908693278165",{"2":{"169":1}}],["019086932781654",{"2":{"169":3}}],["01098781325325",{"2":{"169":1}}],["010987813253244",{"2":{"169":3}}],["011814947665167774",{"2":{"169":4}}],["01362848005",{"2":{"15":1}}],["01",{"2":{"14":1,"39":1,"151":1,"152":1,"169":1,"170":1,"171":1}}],["0^",{"2":{"13":2,"14":2}}],["0+2",{"2":{"13":2,"14":2}}],["0",{"2":{"3":35,"4":12,"6":190,"11":1,"13":5,"14":8,"15":32,"33":20,"34":3,"36":9,"37":4,"39":155,"40":2,"43":6,"44":6,"45":49,"47":22,"48":49,"49":13,"50":5,"51":42,"53":2,"54":21,"56":46,"57":2,"61":1,"65":20,"66":2,"68":13,"69":18,"71":16,"74":6,"75":6,"84":6,"85":12,"86":9,"88":15,"97":37,"102":13,"103":9,"105":16,"115":12,"116":11,"126":21,"127":7,"138":24,"144":64,"145":4,"151":16,"152":13,"153":1,"156":11,"158":7,"160":4,"167":2,"169":129,"170":2,"171":46,"176":13}}],[">=",{"2":{"40":6,"86":4,"103":1,"160":1}}],[">",{"2":{"1":1,"6":6,"11":2,"13":1,"15":2,"34":1,"40":1,"45":17,"48":5,"50":3,"51":1,"52":1,"54":2,"56":1,"57":3,"65":1,"69":1,"86":8,"97":10,"103":2,"126":4,"127":12,"136":5,"141":1,"145":3,"153":2,"156":1,"158":12,"160":3,"161":1,"167":1,"177":1}}],["914930257661865",{"2":{"171":1}}],["96875496442967",{"2":{"171":1}}],["961329",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["983955661369134",{"2":{"171":1}}],["9833",{"2":{"15":1}}],["9877550012664",{"2":{"169":1}}],["9840085315131",{"2":{"169":1}}],["98271048511609",{"2":{"169":1}}],["98661575256801",{"2":{"169":1}}],["99321587442151",{"2":{"171":1}}],["99375130197483",{"2":{"169":1}}],["997986619202745",{"2":{"171":1}}],["997750168744936",{"2":{"169":1}}],["997247091122496",{"2":{"169":1}}],["99600053330489",{"2":{"169":1}}],["991002699676024",{"2":{"169":1}}],["990022362600165",{"2":{"169":1}}],["99292997455441",{"2":{"169":1}}],["99533829767195",{"2":{"169":1}}],["99865616402829",{"2":{"169":1}}],["999999967681458e6",{"2":{"170":2}}],["999997707902938e6",{"2":{"170":2}}],["999987539891298e6",{"2":{"170":2}}],["999963474314044e6",{"2":{"170":2}}],["999919535736425e6",{"2":{"170":2}}],["999974634566875",{"2":{"169":1}}],["999849768598615e6",{"2":{"170":2}}],["999748081887518",{"2":{"171":1}}],["999748243174828e6",{"2":{"170":2}}],["999750002083324",{"2":{"169":1}}],["999609061508909e6",{"2":{"170":2}}],["999426363321033e6",{"2":{"170":2}}],["999194331880103e6",{"2":{"170":2}}],["99900003333289",{"2":{"169":1}}],["999565375483215",{"2":{"169":1}}],["9im",{"2":{"97":2,"175":1}}],["97976366505997",{"2":{"169":1}}],["9783069507679",{"2":{"169":1}}],["97",{"2":{"39":1}}],["946201371117777",{"2":{"171":1}}],["94",{"2":{"39":1}}],["92",{"2":{"39":1}}],["95770326033",{"2":{"15":1}}],["95",{"2":{"13":1,"14":1,"174":1}}],["900",{"2":{"152":1}}],["90063612163",{"2":{"11":2}}],["90",{"2":{"33":9,"39":1}}],["909318372607",{"2":{"11":3}}],["9",{"2":{"1":1,"6":1,"97":2,"126":12,"151":1,"161":1}}],["897070",{"2":{"174":1}}],["873633668827033",{"2":{"171":1}}],["8135804051007",{"2":{"169":1}}],["813580405100698",{"2":{"169":3}}],["88",{"2":{"39":1}}],["86641841658641",{"2":{"169":1}}],["866418416586406",{"2":{"169":3}}],["86",{"2":{"39":1}}],["868447876892",{"2":{"15":2}}],["84",{"2":{"39":1}}],["821068835162155",{"2":{"171":1}}],["82",{"2":{"39":1}}],["800",{"2":{"39":1}}],["80000",{"2":{"15":5}}],["80",{"2":{"39":1}}],["80869813739",{"2":{"15":2}}],["856614689791036e",{"2":{"15":2}}],["83572303404496",{"2":{"6":2,"53":1,"54":1}}],["8",{"2":{"1":3,"6":9,"13":1,"14":1,"51":2,"56":4,"97":1,"127":3,"151":1,"161":3,"171":2}}],["karnataka",{"2":{"177":1}}],["kbn",{"2":{"11":2}}],["kinds",{"2":{"23":1}}],["kind",{"2":{"9":1,"127":1}}],["k",{"2":{"6":1,"14":6,"40":1,"45":5,"97":5,"169":5,"171":5}}],["kernel",{"2":{"153":4}}],["keepat",{"2":{"56":1,"145":2}}],["keep",{"2":{"45":3,"127":1,"145":14,"151":1,"176":1}}],["keeping",{"2":{"6":1,"136":1,"147":1}}],["keys",{"2":{"127":4}}],["key",{"2":{"6":1,"127":4,"166":5}}],["keyword",{"2":{"6":8,"23":1,"51":1,"53":1,"56":1,"133":6,"136":1,"146":2,"152":2,"166":4,"170":1,"171":1}}],["keywords",{"2":{"1":2,"4":1,"6":10,"97":2,"127":1,"133":1,"136":1,"146":1,"147":2,"148":3,"156":8,"157":1,"158":1,"159":1,"160":1,"162":2}}],["known",{"2":{"50":2}}],["know",{"2":{"6":3,"34":2,"45":1,"50":1,"51":1,"53":1,"54":2,"56":1,"57":1,"136":1,"176":1}}],["kwargs",{"2":{"41":3,"48":1,"50":1,"51":3,"52":3,"53":4,"54":5,"56":3,"57":5,"141":2,"149":1,"152":1}}],["kwdef",{"2":{"31":1,"45":1,"152":1,"157":1,"158":1,"159":1}}],["kw",{"2":{"1":1,"6":11,"97":10,"127":20,"136":21,"147":3,"156":15,"159":1,"161":3,"162":3,"166":6}}],["json",{"2":{"173":3}}],["jstep",{"2":{"69":3}}],["jstart",{"2":{"69":7}}],["joined",{"2":{"176":4}}],["joins",{"0":{"175":1},"1":{"176":1,"177":1,"178":1},"2":{"175":3}}],["joinpath",{"2":{"156":2}}],["join",{"2":{"136":2,"175":4,"176":5,"178":1}}],["joining",{"2":{"6":2,"156":1,"175":1}}],["jpn",{"2":{"177":2}}],["jp",{"2":{"69":2}}],["jhole",{"2":{"69":2}}],["jh",{"2":{"57":5}}],["j+1",{"2":{"45":1,"127":1,"160":1}}],["j",{"2":{"45":24,"69":8,"86":9,"97":12,"126":2,"127":8,"160":2}}],["jet",{"2":{"39":1}}],["just",{"2":{"4":1,"6":1,"44":1,"45":2,"54":4,"57":1,"62":1,"66":2,"127":1,"134":1,"136":3,"152":1,"175":1}}],["julialand",{"2":{"170":2}}],["julialines",{"2":{"36":1}}],["julialinearsegments",{"2":{"6":1}}],["juliahole",{"2":{"169":1}}],["juliaplot",{"2":{"170":2}}],["juliap1",{"2":{"169":1}}],["juliapoly",{"2":{"170":1}}],["juliapolygon3",{"2":{"170":1}}],["juliapolygon1",{"2":{"169":1}}],["juliapolygonize",{"2":{"6":1}}],["juliapolygon",{"2":{"6":1}}],["juliapoints",{"2":{"176":1}}],["juliapoint",{"2":{"169":1}}],["juliaxoffset",{"2":{"169":3,"171":1}}],["juliax",{"2":{"169":2}}],["juliaxrange",{"2":{"65":1}}],["julia$apply",{"2":{"162":1}}],["julia$threaded",{"2":{"146":1}}],["julia6",{"2":{"156":1}}],["julia```jldoctest",{"2":{"167":1}}],["julia```julia",{"2":{"127":1}}],["julia```",{"2":{"86":1,"164":1}}],["julia1",{"2":{"51":1,"53":1,"54":1,"56":1}}],["julia2",{"2":{"48":1}}],["juliabase",{"2":{"40":1,"66":4,"136":1,"166":1}}],["juliabarycentric",{"2":{"5":3,"6":3}}],["juliafig",{"2":{"169":1,"170":1}}],["juliafalse",{"2":{"126":1}}],["juliafunction",{"2":{"34":2,"40":3,"41":2,"44":1,"45":11,"48":1,"50":2,"52":1,"54":2,"57":1,"63":1,"66":8,"97":6,"103":2,"118":1,"128":1,"136":5,"149":1,"152":1,"160":2}}],["juliafor",{"2":{"31":1,"136":2}}],["juliaflexijoins",{"2":{"178":1}}],["juliaflipped",{"2":{"129":1}}],["juliaflip",{"2":{"6":1}}],["juliaflatten",{"2":{"6":1,"131":1}}],["juliagi",{"2":{"11":2}}],["juliago",{"2":{"11":1,"33":1,"36":1,"49":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"175":1}}],["juliageopoly1",{"2":{"171":1}}],["juliageointerface",{"2":{"167":1}}],["juliageometry",{"2":{"63":1}}],["juliageo",{"2":{"6":2}}],["juliageodesicsegments",{"2":{"6":1}}],["juliageos",{"2":{"6":1}}],["juliaweighted",{"2":{"6":1}}],["juliawithin",{"2":{"3":1,"6":1}}],["juliaunwrap",{"2":{"6":1,"136":6}}],["juliaunion",{"2":{"6":1}}],["juliaunionintersectingpolygons",{"2":{"6":1,"142":1}}],["juliausing",{"2":{"6":1,"13":1,"14":1,"39":1,"151":2,"152":1,"155":1,"156":1,"172":1}}],["juliascatter",{"2":{"176":1}}],["juliasource",{"2":{"170":2}}],["juliasimplify",{"2":{"6":1,"156":3}}],["juliasigned",{"2":{"4":2,"6":2}}],["juliasegmentize",{"2":{"6":1}}],["julias1",{"2":{"6":1}}],["juliavisvalingamwhyatt",{"2":{"6":1}}],["juliaring3",{"2":{"170":1}}],["juliaring1",{"2":{"169":1}}],["juliar",{"2":{"169":2,"170":1,"171":1}}],["juliareconstruct",{"2":{"6":1,"131":1}}],["juliarebuild",{"2":{"6":1,"131":1}}],["juliareproject",{"2":{"1":1}}],["juliaradialdistance",{"2":{"6":1}}],["juliamy",{"2":{"178":1}}],["juliamultipoly",{"2":{"156":1}}],["juliamodule",{"2":{"31":1}}],["juliamonotonechainmethod",{"2":{"6":1}}],["juliameanvalue",{"2":{"6":1}}],["juliadf",{"2":{"172":1}}],["juliadestination",{"2":{"170":1}}],["juliadouglaspeucker",{"2":{"6":1}}],["juliadifference",{"2":{"6":1}}],["juliadiffintersectingpolygons",{"2":{"6":1,"142":1}}],["juliadistance",{"2":{"4":1,"6":1}}],["juliadisjoint",{"2":{"3":1,"6":1}}],["juliaexport",{"2":{"32":1,"35":1,"38":1,"42":1,"46":1,"51":1,"53":1,"56":1,"64":1,"67":1,"70":1,"73":1,"83":1,"87":1,"98":1,"101":1,"104":1,"114":1,"124":1,"127":1,"129":1,"137":1,"140":1,"143":1,"148":1,"150":1,"156":1,"163":1}}],["juliaend",{"2":{"66":1}}],["juliaenforce",{"2":{"6":1}}],["juliaenum",{"2":{"6":2}}],["juliaembed",{"2":{"4":1,"6":1}}],["juliaequals",{"2":{"4":15,"6":15,"45":1}}],["juliaaccuratearithmetic",{"2":{"11":2}}],["juliaabstract",{"2":{"6":3,"141":1,"142":1,"152":1,"165":1}}],["juliaangles",{"2":{"4":1,"6":1}}],["juliaarea",{"2":{"4":1,"6":1}}],["juliaapplyreduce",{"2":{"1":1,"6":1}}],["juliaapply",{"2":{"1":1,"6":1,"18":1}}],["juliacent",{"2":{"43":1}}],["juliacentroid",{"2":{"4":1,"6":3}}],["juliacut",{"2":{"6":1}}],["juliaclosedring",{"2":{"6":1,"142":1}}],["juliaconst",{"2":{"34":1,"37":1,"40":1,"45":1,"50":2,"66":1,"75":1,"89":1,"106":1,"116":1,"133":1}}],["juliaconvex",{"2":{"6":1,"63":1}}],["juliacontains",{"2":{"3":1,"6":1}}],["juliacoverage",{"2":{"6":1}}],["juliacovers",{"2":{"3":1,"6":1}}],["juliacoveredby",{"2":{"3":1,"6":1}}],["juliatrue",{"2":{"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":1}}],["juliatraittarget",{"2":{"6":2,"164":1}}],["juliatransform",{"2":{"1":1,"6":1}}],["juliatuples",{"2":{"6":1}}],["juliat",{"2":{"6":1}}],["juliatouches",{"2":{"3":1,"6":1}}],["juliaoverlaps",{"2":{"3":9,"6":9}}],["juliainnerjoin",{"2":{"177":1}}],["juliaintersection",{"2":{"6":2}}],["juliaintersects",{"2":{"3":1}}],["juliaisconcave",{"2":{"6":1}}],["juliaisclockwise",{"2":{"6":1}}],["juliaimport",{"2":{"1":1,"3":9,"4":1,"6":18,"11":1,"33":1,"36":1,"43":1,"47":1,"49":1,"60":1,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"138":2,"144":2,"151":1,"173":4,"174":1,"176":1,"177":1}}],["julia",{"2":{"3":1,"6":5,"9":1,"15":1,"25":1,"27":1,"31":1,"34":4,"37":10,"40":8,"44":19,"45":60,"48":10,"50":18,"51":6,"52":1,"53":5,"54":29,"56":6,"57":4,"58":1,"63":5,"65":1,"66":4,"69":15,"72":1,"76":1,"77":5,"78":1,"79":1,"80":2,"81":1,"82":1,"85":1,"86":3,"90":1,"91":3,"92":1,"93":1,"94":1,"95":1,"96":1,"97":50,"100":1,"103":7,"107":1,"108":3,"109":1,"110":1,"111":2,"112":1,"113":1,"117":1,"118":3,"119":1,"120":1,"121":1,"122":1,"123":1,"126":9,"127":40,"128":2,"136":63,"139":5,"141":1,"145":3,"146":1,"147":1,"148":1,"152":1,"153":2,"156":1,"157":2,"158":15,"159":3,"161":1,"162":1,"163":1,"164":1,"166":4,"167":1,"168":2,"170":2,"173":2,"175":1,"176":1}}],["julia>",{"2":{"1":5,"6":7,"126":3,"161":7}}],["juliajulia>",{"2":{"1":2,"6":3}}],["jl`",{"2":{"63":1,"148":1,"166":1}}],["jldoctest",{"2":{"6":1}}],["jl",{"0":{"25":1,"31":1},"2":{"1":10,"4":1,"6":16,"10":2,"11":1,"22":2,"25":2,"27":2,"31":42,"34":1,"37":1,"40":1,"41":3,"44":1,"45":1,"48":1,"50":1,"52":1,"54":1,"55":1,"57":1,"58":3,"63":6,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":2,"127":1,"128":1,"131":1,"136":3,"139":1,"142":1,"145":1,"146":2,"147":1,"148":4,"149":3,"150":1,"152":3,"153":2,"156":2,"160":1,"161":6,"162":2,"165":1,"166":2,"167":1,"170":1,"175":1}}],["+5000000",{"2":{"170":1}}],["+proj=natearth2",{"2":{"170":2}}],["+=",{"2":{"37":2,"40":11,"44":6,"45":17,"48":1,"50":10,"69":1,"86":1,"97":5,"126":1,"145":2,"158":4,"167":3}}],["+",{"2":{"1":1,"6":2,"13":1,"14":1,"34":4,"37":1,"40":20,"44":10,"45":15,"48":1,"50":7,"54":10,"66":3,"69":2,"86":2,"97":6,"126":6,"127":2,"145":3,"153":2,"158":3,"159":2,"160":2,"169":6,"170":1,"171":4}}],["yticklabelsvisible",{"2":{"170":1}}],["york",{"2":{"177":1}}],["yoffset",{"2":{"169":7,"171":2}}],["your",{"0":{"173":1},"2":{"18":1,"41":1,"127":1,"129":1,"149":1,"152":1,"172":1,"173":1,"178":2}}],["you",{"0":{"23":1},"2":{"1":1,"4":1,"5":2,"6":11,"9":1,"11":1,"17":1,"18":5,"23":1,"29":2,"34":1,"37":1,"40":8,"41":1,"44":1,"51":1,"53":1,"56":1,"62":1,"63":1,"129":1,"138":1,"144":1,"149":1,"151":1,"152":1,"153":1,"161":1,"164":1,"170":1,"172":2,"173":3,"176":2,"177":3,"178":4}}],["y=y",{"2":{"167":1}}],["yvec",{"2":{"127":4}}],["ybounds",{"2":{"127":4}}],["yhalf",{"2":{"127":3}}],["ylast",{"2":{"66":3}}],["yfirst",{"2":{"66":5}}],["y0",{"2":{"66":5}}],["yw",{"2":{"50":4}}],["ye",{"2":{"50":4}}],["yet",{"0":{"128":1},"2":{"31":1,"40":1,"48":1,"52":1,"54":1,"57":1,"69":1,"127":1,"128":1,"141":2,"177":1}}],["y2",{"2":{"44":2,"50":18,"66":7,"86":10,"97":5,"103":4,"127":5,"153":6,"167":2}}],["y1",{"2":{"44":2,"50":22,"66":7,"86":11,"97":6,"103":5,"127":5,"153":7,"167":2}}],["yind+1",{"2":{"127":1}}],["yind",{"2":{"127":2}}],["yinterior",{"2":{"44":2}}],["yield",{"2":{"54":1,"152":1}}],["yi+yi−1",{"2":{"6":1}}],["ycentroid",{"2":{"44":13}}],["yrange",{"2":{"39":3,"65":3}}],["yautolimits",{"2":{"39":2}}],["yp2",{"2":{"34":4}}],["ys",{"2":{"6":3,"127":30}}],["ymax",{"2":{"6":1,"49":2,"50":48}}],["ymin",{"2":{"6":1,"49":2,"50":49}}],["y",{"2":{"1":2,"4":1,"6":4,"13":9,"14":10,"34":8,"37":2,"39":8,"43":1,"44":10,"45":6,"49":1,"50":8,"52":6,"54":8,"65":2,"66":7,"69":3,"86":21,"97":16,"103":7,"126":10,"129":2,"136":1,"147":4,"148":1,"153":2,"160":1,"161":2,"162":2,"167":7,"169":8,"170":2,"171":2,"175":1}}],["75",{"2":{"65":2,"71":1,"88":1,"105":1}}],["78",{"2":{"39":1}}],["749907",{"2":{"174":1}}],["74",{"2":{"39":1}}],["72",{"2":{"39":1}}],["726711609794",{"2":{"15":1}}],["76",{"2":{"39":1}}],["76085",{"2":{"15":1}}],["768946",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["70440582002419",{"2":{"169":1}}],["704405820024185",{"2":{"169":3}}],["704377648755",{"2":{"15":2}}],["700",{"2":{"14":1}}],["700454",{"2":{"6":1,"155":1,"156":1}}],["701141",{"2":{"6":1,"155":1,"156":1}}],["70",{"2":{"6":20,"39":1,"155":20,"156":20,"169":20}}],["738281",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["7",{"2":{"1":5,"6":5,"97":1,"136":1,"151":4,"152":4,"161":4,"171":1}}],["65533525026046",{"2":{"169":1}}],["655335250260467",{"2":{"169":3}}],["659942",{"2":{"6":1,"155":1,"156":1}}],["6area",{"2":{"44":2}}],["66",{"2":{"39":1}}],["668869",{"2":{"6":1,"155":1,"156":1}}],["64744840486518",{"2":{"171":3}}],["64",{"2":{"39":1,"151":2,"152":2}}],["646209",{"2":{"6":1,"155":1,"156":1}}],["629",{"2":{"170":1}}],["62",{"2":{"39":1}}],["624923",{"2":{"6":1,"155":1,"156":1}}],["61366192682",{"2":{"15":1}}],["614624",{"2":{"6":1,"155":1,"156":1}}],["605000000000004",{"2":{"151":2}}],["60",{"2":{"39":1,"151":2}}],["60000",{"2":{"15":3}}],["609817",{"2":{"6":1,"155":1,"156":1}}],["603637",{"2":{"6":2,"155":2,"156":2}}],["68",{"2":{"39":1}}],["682601",{"2":{"6":1,"155":1,"156":1}}],["683975",{"2":{"6":1,"155":1,"156":1}}],["69159119078359",{"2":{"171":3}}],["694274",{"2":{"6":1,"155":1,"156":1}}],["697021",{"2":{"6":1,"155":1,"156":1}}],["639343",{"2":{"6":1,"155":1,"156":1}}],["6",{"2":{"1":12,"3":4,"6":23,"51":3,"56":3,"97":1,"103":4,"136":3,"156":1,"161":9,"171":2}}],["51695367760999",{"2":{"171":1}}],["516953677609987",{"2":{"171":2}}],["51030066635026",{"2":{"169":4}}],["5e6",{"2":{"170":2}}],["55715336218991",{"2":{"171":1}}],["557153362189904",{"2":{"171":2}}],["55",{"2":{"169":3}}],["55494217175954",{"2":{"169":4}}],["57",{"2":{"151":4,"152":4}}],["57725",{"2":{"15":2}}],["5x",{"2":{"136":1}}],["563198",{"2":{"54":1}}],["56",{"2":{"39":1}}],["54",{"2":{"39":1,"169":19}}],["50",{"2":{"39":1,"151":4,"152":4,"169":3}}],["500000",{"2":{"170":1}}],["50000",{"2":{"15":1}}],["500",{"2":{"14":1,"170":1}}],["5d",{"2":{"25":1,"27":1}}],["52",{"2":{"39":1,"174":1}}],["52521",{"2":{"15":1}}],["52709",{"2":{"15":2}}],["594711",{"2":{"6":1,"155":1,"156":1}}],["590591",{"2":{"6":1,"155":1,"156":1}}],["595397",{"2":{"6":1,"155":1,"156":1}}],["535",{"2":{"151":4}}],["5355",{"2":{"151":2}}],["53333",{"2":{"15":4}}],["53",{"2":{"6":10,"151":2,"167":10}}],["58",{"2":{"39":1}}],["58059",{"2":{"15":2}}],["587158",{"2":{"6":2,"155":2,"156":2}}],["58375366067548",{"2":{"6":2,"53":1,"54":1}}],["584961",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["5",{"2":{"1":29,"3":4,"4":8,"6":84,"13":1,"39":1,"47":5,"48":8,"51":16,"56":18,"65":8,"69":8,"97":1,"103":4,"127":1,"136":2,"151":1,"152":1,"161":27,"169":32,"170":25,"178":1}}],["4983491639274692e6",{"2":{"170":2}}],["4986507085647392e6",{"2":{"170":2}}],["497205585568957e6",{"2":{"170":2}}],["4976022389592e6",{"2":{"170":2}}],["4957639801366436e6",{"2":{"170":2}}],["4940253560034204e6",{"2":{"170":2}}],["4946113281484335e6",{"2":{"170":2}}],["491990928929295e6",{"2":{"170":2}}],["4904357734399722e6",{"2":{"170":2}}],["4926709788709967e6",{"2":{"170":2}}],["4962554647802354e6",{"2":{"170":2}}],["499984780817334e6",{"2":{"170":2}}],["4997392479570867e6",{"2":{"170":2}}],["4991939151049731e6",{"2":{"170":2}}],["4994001399837343e6",{"2":{"170":2}}],["4998500087497458e6",{"2":{"170":2}}],["49",{"2":{"127":1}}],["43541888381864",{"2":{"171":3}}],["4326",{"2":{"170":2,"171":3}}],["43787",{"2":{"15":1}}],["439295815226",{"2":{"15":1}}],["434306",{"2":{"6":1,"155":1,"156":1}}],["4896621210021754e6",{"2":{"170":2}}],["489271",{"2":{"6":4,"167":4}}],["4870405593989636e6",{"2":{"170":2}}],["4879072738504685e6",{"2":{"170":2}}],["484003",{"2":{"126":4}}],["482551",{"2":{"126":4}}],["48268",{"2":{"15":1}}],["48",{"2":{"39":1}}],["48001",{"2":{"15":1}}],["45",{"2":{"39":2,"126":12,"169":2}}],["450",{"2":{"13":1}}],["458369",{"2":{"6":2,"155":2,"156":2}}],["42004014766201",{"2":{"169":1}}],["420040147662014",{"2":{"169":3}}],["4219350464667047e",{"2":{"169":4}}],["42",{"2":{"13":1,"14":1,"39":3}}],["426283",{"2":{"6":1,"155":1,"156":1}}],["400",{"2":{"39":3}}],["40000",{"2":{"15":1}}],["40",{"2":{"14":1,"39":3}}],["406224",{"2":{"6":1,"155":1,"156":1}}],["404504",{"2":{"6":1,"155":1,"156":1}}],["41544701408748197",{"2":{"169":1}}],["41",{"2":{"39":1,"171":20}}],["41878",{"2":{"15":1}}],["414248",{"2":{"6":1,"155":1,"156":1}}],["419406",{"2":{"6":1,"155":1,"156":1}}],["4493927459900552",{"2":{"169":1}}],["44121252392",{"2":{"15":1}}],["44",{"2":{"14":1,"39":2}}],["442901",{"2":{"6":1,"155":1,"156":1}}],["446339",{"2":{"6":1,"155":1,"156":1}}],["477985",{"2":{"126":4}}],["47",{"2":{"39":3}}],["473835",{"2":{"6":1,"155":1,"156":1}}],["472117",{"2":{"6":2,"155":2,"156":2}}],["46525251631344455",{"2":{"169":1}}],["465816",{"2":{"6":1,"155":1,"156":1}}],["46",{"2":{"39":3}}],["468107",{"2":{"6":1,"155":1,"156":1}}],["464547",{"2":{"6":6,"167":6}}],["4",{"2":{"1":11,"3":4,"6":15,"9":2,"13":2,"14":1,"33":1,"50":1,"72":1,"85":1,"89":1,"97":2,"106":1,"126":1,"136":3,"151":1,"158":1,"161":8,"170":20,"173":2,"174":1}}],["358421",{"2":{"174":1}}],["3585",{"2":{"151":1}}],["35",{"2":{"39":3}}],["354492",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["38042741557976",{"2":{"169":1}}],["380427415579764",{"2":{"169":3}}],["38",{"2":{"39":3}}],["3655999675063154",{"2":{"169":1}}],["36",{"2":{"39":2}}],["360",{"2":{"34":1}}],["36022",{"2":{"15":1}}],["327284472232776",{"2":{"171":3}}],["32610",{"2":{"170":3}}],["32",{"2":{"39":3}}],["377956",{"2":{"174":1}}],["37",{"2":{"39":5}}],["3497142366876638",{"2":{"169":1}}],["34",{"2":{"39":3}}],["31571636123306385",{"2":{"169":1}}],["31",{"2":{"39":2}}],["30151010318639",{"2":{"169":4}}],["30527612515520186",{"2":{"169":4}}],["300",{"2":{"65":1}}],["30",{"2":{"14":2,"39":3,"169":2}}],["3376428491230612",{"2":{"169":4}}],["3390",{"2":{"97":1}}],["33333333333",{"2":{"15":1}}],["333333333336",{"2":{"15":3}}],["33",{"2":{"6":20,"155":20,"156":20}}],["3d",{"2":{"4":1,"6":1,"40":2,"69":1,"136":1,"150":1}}],["3",{"2":{"1":13,"3":4,"5":1,"6":29,"14":2,"40":13,"43":6,"45":1,"51":6,"56":5,"68":1,"72":1,"85":1,"89":1,"97":2,"102":1,"106":1,"127":7,"136":3,"144":16,"151":4,"156":3,"158":2,"160":1,"161":11,"170":1,"171":1,"176":1}}],["39945867303846",{"2":{"171":3}}],["3995734698458635",{"2":{"169":1}}],["399918",{"2":{"6":2,"155":2,"156":2}}],["394759",{"2":{"6":1,"155":1,"156":1}}],["392466",{"2":{"6":1,"155":1,"156":1}}],["395332",{"2":{"6":1,"155":1,"156":1}}],["39",{"0":{"30":1},"2":{"0":1,"3":1,"4":5,"6":21,"7":1,"9":2,"17":2,"18":1,"19":1,"23":1,"29":1,"34":1,"36":1,"37":1,"38":1,"39":3,"40":2,"43":6,"44":3,"45":28,"47":1,"48":1,"50":1,"52":1,"53":4,"54":1,"57":2,"62":2,"66":4,"69":7,"74":1,"84":2,"91":2,"97":19,"103":1,"115":2,"118":2,"127":3,"129":2,"131":3,"132":1,"136":5,"142":6,"143":1,"151":6,"152":1,"154":1,"156":2,"164":2,"165":3,"166":6,"168":1,"169":6,"170":6,"171":4,"172":4,"173":5,"175":1,"177":1,"178":2}}],["2pi",{"2":{"169":1,"170":1,"171":1}}],["2nd",{"2":{"54":6}}],["2335447787454",{"2":{"171":1}}],["233544778745394",{"2":{"171":2}}],["23",{"2":{"39":3,"97":1}}],["23699059147",{"2":{"15":1}}],["28",{"2":{"39":2}}],["28083",{"2":{"15":2}}],["2658011835867806",{"2":{"169":1}}],["26745668457025",{"2":{"169":1}}],["267456684570245",{"2":{"169":3}}],["26",{"2":{"39":5,"97":2}}],["24989584635339165",{"2":{"169":1}}],["24279488312757858",{"2":{"169":4}}],["24",{"2":{"39":7,"97":1,"171":9}}],["274364",{"2":{"51":1,"53":1,"56":1}}],["274363",{"2":{"51":1,"53":1,"56":1}}],["27",{"2":{"39":2}}],["275543",{"2":{"6":6,"167":6}}],["2d",{"2":{"25":1,"27":1,"150":1}}],["2^",{"2":{"14":1}}],["2158594260436434",{"2":{"169":1}}],["215118",{"2":{"6":4,"167":4}}],["21664550952386064",{"2":{"169":4}}],["21",{"2":{"39":4,"97":2,"171":40}}],["21427",{"2":{"11":5}}],["295828190107045",{"2":{"171":1}}],["29582819010705",{"2":{"171":2}}],["299820032397223",{"2":{"169":1}}],["29",{"2":{"39":3,"174":1}}],["29th",{"0":{"8":1},"1":{"9":1,"10":1}}],["298",{"2":{"6":2,"152":2}}],["20340",{"2":{"173":1}}],["20682326747054",{"2":{"171":1}}],["206823267470536",{"2":{"171":2}}],["20093817218219",{"2":{"169":1}}],["200938172182195",{"2":{"169":3}}],["2018",{"2":{"97":1}}],["2017",{"2":{"6":1,"40":1}}],["20",{"2":{"39":3,"97":2,"169":60,"171":1}}],["2024",{"0":{"7":1,"8":1},"1":{"9":1,"10":1}}],["20th",{"0":{"7":1}}],["25",{"2":{"39":3,"71":1,"97":1,"105":1,"171":12}}],["258",{"2":{"11":1}}],["25px",{"2":{"6":2}}],["257223563`",{"2":{"152":1}}],["257223563",{"2":{"6":2,"152":1}}],["22",{"2":{"39":3,"97":1}}],["22168",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["224758",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["2",{"2":{"1":19,"3":9,"5":1,"6":50,"13":1,"14":1,"15":3,"25":2,"27":2,"34":3,"37":1,"39":6,"40":32,"43":2,"44":4,"45":10,"47":1,"48":2,"49":6,"50":7,"54":2,"56":1,"60":1,"61":1,"62":3,"63":1,"65":1,"66":3,"69":4,"72":2,"85":2,"86":2,"88":2,"89":3,"97":11,"106":2,"126":2,"127":23,"136":5,"145":1,"153":1,"156":5,"158":7,"159":7,"160":5,"161":18,"167":11,"169":7,"170":6,"171":10,"172":1,"174":1}}],["1st",{"2":{"54":6}}],["198232937815632",{"2":{"171":1}}],["19823293781563178",{"2":{"171":2}}],["1999466709331708",{"2":{"169":1}}],["1998",{"2":{"51":1,"53":1,"56":1}}],["19",{"2":{"39":2,"97":2}}],["11591614996189725",{"2":{"169":1}}],["11966707868197",{"2":{"169":1}}],["119667078681967",{"2":{"169":3}}],["110m",{"2":{"170":2}}],["110",{"2":{"61":1,"170":1}}],["11",{"2":{"15":2,"39":2,"97":1}}],["1145",{"2":{"51":1,"53":1,"56":1}}],["114",{"2":{"7":1}}],["16589608273778408",{"2":{"169":1}}],["165644",{"2":{"126":2}}],["16692537029320365",{"2":{"169":4}}],["166644",{"2":{"126":2}}],["163434",{"2":{"126":2}}],["169356",{"2":{"126":2}}],["164434",{"2":{"126":2}}],["16111",{"2":{"15":1}}],["16",{"2":{"13":1,"14":1,"39":2,"97":2}}],["180",{"2":{"34":1,"126":1}}],["18593721105",{"2":{"15":1}}],["18",{"2":{"13":1,"14":1,"39":3,"97":2}}],["1em",{"2":{"6":2}}],["1px",{"2":{"6":2}}],["13309630561615",{"2":{"171":3}}],["13401805979",{"2":{"15":2}}],["13",{"2":{"6":3,"39":1,"51":1,"56":2,"97":1}}],["10n",{"2":{"170":1}}],["10832215707812454",{"2":{"169":4}}],["10^9",{"2":{"13":1}}],["1000000",{"2":{"170":1}}],["1000",{"2":{"13":2,"151":2,"170":1,"176":2}}],["100",{"2":{"6":2,"14":3,"60":1,"62":1,"127":2,"174":1}}],["10",{"2":{"6":14,"11":1,"36":1,"39":5,"47":4,"48":10,"51":2,"53":1,"56":2,"68":2,"97":3,"102":2,"152":1,"156":4,"169":1}}],["14182952335953",{"2":{"171":1}}],["14182952335952814",{"2":{"171":2}}],["14404531208901e",{"2":{"171":2}}],["1499775010124783",{"2":{"169":1}}],["1464721641710074",{"2":{"169":4}}],["14",{"2":{"3":1,"6":5,"39":2,"53":2,"54":2,"97":1,"99":1,"100":1,"151":2,"152":2}}],["15488729606723",{"2":{"171":3}}],["15",{"2":{"3":1,"6":4,"39":1,"47":1,"48":1,"53":1,"54":1,"97":1,"99":1,"100":1}}],["17893116483784577",{"2":{"171":2}}],["17289902010158",{"2":{"169":1}}],["172899020101585",{"2":{"169":3}}],["170356",{"2":{"126":2}}],["17",{"2":{"3":1,"6":3,"39":3,"53":1,"54":1,"97":2,"99":1,"100":1}}],["125",{"2":{"6":2,"53":1,"54":1}}],["127",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1,"170":1}}],["123",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["12636633117296836",{"2":{"171":2}}],["126",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["12",{"2":{"3":1,"6":3,"39":2,"53":1,"54":1,"97":1,"99":1,"100":1,"177":1}}],["124",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["1",{"2":{"1":8,"3":38,"6":63,"13":1,"14":4,"15":1,"33":4,"34":15,"36":7,"38":2,"39":11,"40":16,"43":4,"44":7,"45":72,"47":1,"48":10,"49":9,"50":15,"52":3,"54":9,"56":4,"57":11,"62":6,"65":7,"66":6,"69":16,"71":2,"72":6,"74":2,"75":2,"84":2,"85":8,"86":12,"88":2,"89":5,"97":38,"103":6,"105":2,"106":6,"115":4,"116":5,"118":1,"126":16,"127":25,"136":9,"138":12,"139":2,"145":9,"152":1,"153":4,"156":8,"158":15,"159":3,"160":15,"161":6,"167":9,"169":8,"170":44,"171":12,"172":1,"176":8,"177":3}}],["bx",{"2":{"126":2}}],["b2y",{"2":{"54":4}}],["b2x",{"2":{"54":4}}],["b2",{"2":{"54":47,"66":3,"103":6}}],["b``",{"2":{"52":1}}],["b`",{"2":{"52":3,"54":4,"57":4}}],["bigger",{"2":{"45":1}}],["bit",{"2":{"25":1,"27":1,"160":8,"169":2}}],["b1y",{"2":{"54":7}}],["b1x",{"2":{"54":7}}],["b1",{"2":{"45":8,"54":63,"103":6}}],["building",{"2":{"169":1}}],["build",{"2":{"45":13,"48":1,"51":1,"53":1,"56":1,"131":3,"132":1,"151":2,"159":1,"160":1}}],["built",{"2":{"17":1,"20":1}}],["buffers",{"2":{"127":1}}],["buffered",{"2":{"41":2}}],["buffering",{"2":{"40":1,"41":1}}],["buffer",{"0":{"41":1},"2":{"31":2,"41":5,"44":2,"45":1,"128":1}}],["but",{"2":{"1":2,"3":5,"4":3,"6":15,"18":1,"22":1,"25":1,"27":1,"34":1,"36":1,"37":1,"50":1,"54":2,"57":2,"62":2,"63":2,"69":4,"74":2,"97":1,"102":1,"103":5,"105":1,"115":1,"116":1,"119":2,"120":1,"126":1,"127":1,"128":1,"131":1,"134":1,"136":16,"147":1,"148":1,"153":1,"156":1,"164":1,"166":2,"170":2,"171":2,"173":1,"175":1,"176":1,"177":2}}],["b>",{"2":{"6":4}}],["bloat",{"2":{"171":1}}],["block",{"2":{"169":1}}],["blob",{"2":{"6":2,"156":1}}],["blue",{"2":{"14":1,"47":1,"68":2,"71":2,"88":2,"102":2,"105":2,"176":2}}],["black",{"2":{"6":2,"47":1,"170":1}}],["breaks",{"2":{"145":1}}],["break",{"2":{"45":3,"50":1,"52":2,"69":4,"97":11,"103":1,"127":6,"145":2}}],["brevity",{"2":{"40":1}}],["br>",{"2":{"6":2}}],["broadcasting",{"2":{"6":1,"40":1}}],["broken",{"2":{"3":1,"6":1,"86":1}}],["balancing",{"2":{"136":2}}],["barrier",{"2":{"136":1}}],["barycentric",{"0":{"5":1,"38":1,"40":1},"1":{"39":1,"40":1},"2":{"0":6,"5":10,"6":17,"9":1,"31":1,"38":9,"39":4,"40":52}}],["basicsgeoms",{"2":{"136":1}}],["basic",{"2":{"127":1}}],["base",{"2":{"31":4,"40":15,"41":1,"45":2,"127":6,"136":5,"149":1,"152":2,"153":1,"164":1,"166":3}}],["based",{"2":{"4":2,"6":3,"19":1,"34":2,"37":2,"39":2,"44":1,"50":1,"66":2,"69":1,"75":1,"89":1,"97":2,"103":1,"106":1,"116":1,"164":1,"173":1,"175":1,"176":1}}],["backs",{"2":{"48":4}}],["backwards",{"2":{"45":1,"52":1,"54":1,"57":1}}],["backing",{"2":{"45":1}}],["backend",{"2":{"41":2,"166":1}}],["back",{"2":{"6":1,"18":1,"22":1,"23":1,"48":4,"166":1}}],["b",{"2":{"3":2,"4":7,"6":13,"45":206,"50":9,"51":26,"52":18,"53":26,"54":77,"55":3,"56":27,"57":39,"69":29,"97":2,"103":22,"172":1}}],["box",{"2":{"49":2,"50":3,"176":1}}],["bounce",{"2":{"45":8,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1}}],["bouncings",{"2":{"45":1}}],["bouncing",{"2":{"45":13,"52":3,"54":4,"57":4}}],["bound",{"2":{"55":1}}],["bounding",{"2":{"45":1,"49":2,"50":3}}],["boundscheck",{"2":{"40":14}}],["bounds",{"2":{"6":1,"127":4}}],["boundaries",{"2":{"3":2,"6":2,"84":2,"88":1,"89":1,"97":2,"99":1,"100":1,"127":1}}],["boundary",{"2":{"3":7,"6":7,"65":1,"71":1,"72":1,"74":1,"75":3,"78":4,"85":2,"86":9,"89":2,"91":1,"92":6,"93":3,"97":18,"105":1,"106":3,"115":2,"116":4,"118":3,"119":5,"120":3,"121":3}}],["bold",{"2":{"41":1,"149":1,"152":1}}],["border",{"2":{"6":8}}],["both",{"2":{"3":5,"6":6,"45":2,"54":4,"56":1,"57":1,"62":2,"65":1,"69":3,"72":1,"86":4,"89":1,"97":2,"103":1,"106":1,"120":1,"151":1,"153":1}}],["booltype",{"2":{"136":3,"153":1,"165":3}}],["booleans",{"2":{"45":1,"97":2}}],["boolean",{"2":{"24":2,"45":1,"52":1,"54":1,"57":1,"136":1,"165":1,"175":1}}],["boolsastypes",{"0":{"24":1,"165":1},"2":{"153":2,"165":6}}],["bools",{"2":{"10":1}}],["bool",{"2":{"3":17,"4":14,"6":40,"45":3,"69":17,"72":1,"75":1,"85":2,"86":13,"89":1,"97":2,"100":1,"103":10,"106":1,"116":2,"126":7,"127":6,"153":2,"165":2,"167":5}}],["bypred",{"2":{"178":1}}],["by",{"0":{"79":1,"80":1,"110":1},"2":{"1":3,"3":2,"4":8,"6":31,"7":1,"17":1,"18":2,"19":1,"22":1,"24":1,"25":1,"26":1,"27":1,"33":1,"34":6,"36":1,"37":1,"40":4,"41":1,"43":5,"44":4,"45":14,"47":1,"48":6,"49":1,"50":6,"51":1,"53":1,"54":5,"56":4,"57":3,"63":2,"66":5,"69":8,"72":1,"74":1,"75":1,"79":2,"80":2,"81":1,"82":2,"84":1,"96":2,"97":10,"126":2,"127":4,"131":2,"136":7,"142":2,"143":1,"145":3,"147":1,"148":2,"149":1,"150":1,"152":3,"153":1,"154":1,"156":1,"157":1,"158":3,"159":1,"161":1,"169":1,"170":1,"171":1,"173":1,"175":2,"176":1,"177":2,"178":1}}],["berlin",{"2":{"177":1}}],["bearing",{"2":{"126":4}}],["beauty",{"2":{"9":1}}],["better",{"2":{"86":1,"136":2,"156":1}}],["between",{"2":{"4":4,"6":18,"23":1,"34":2,"40":13,"45":1,"50":18,"51":1,"52":4,"53":1,"54":11,"56":2,"57":4,"66":8,"69":1,"97":4,"103":4,"127":1,"152":3,"153":1,"157":2,"158":2,"159":1,"170":1,"175":2,"176":1}}],["been",{"2":{"52":1,"127":1,"129":2,"165":1}}],["because",{"2":{"45":1,"63":1,"129":1,"163":1}}],["become",{"2":{"22":1}}],["being",{"2":{"34":1,"54":1,"97":1,"103":1,"143":1}}],["behind",{"2":{"25":1,"26":1,"27":1,"39":1,"129":1}}],["behaviour",{"2":{"6":1,"18":1,"23":1,"156":1}}],["best",{"2":{"19":1,"136":2,"156":1}}],["beware",{"2":{"18":1}}],["benchmarking",{"2":{"152":1,"156":1}}],["benchmarkgroup",{"2":{"152":2,"156":3}}],["benchmark",{"0":{"152":1,"156":1},"2":{"152":1,"156":1}}],["benchmarktools",{"2":{"13":1,"152":1,"156":1}}],["benchmarks",{"2":{"9":2}}],["beginning",{"2":{"50":1,"169":1}}],["begin+1",{"2":{"40":5}}],["begin",{"2":{"9":1,"40":7,"136":2,"157":1,"173":1}}],["before",{"2":{"6":4,"40":1,"51":1,"53":1,"54":1,"56":1,"156":1,"170":1}}],["below",{"2":{"6":2,"17":1,"41":1,"141":1,"158":1,"159":1,"160":1,"173":1}}],["be",{"2":{"1":7,"3":3,"4":11,"5":4,"6":66,"7":1,"9":1,"13":2,"20":3,"23":2,"24":1,"25":3,"26":1,"27":3,"34":8,"37":7,"38":2,"39":1,"40":10,"41":2,"43":1,"44":3,"45":14,"48":1,"49":1,"50":2,"51":7,"52":4,"53":7,"54":12,"56":6,"57":5,"63":6,"65":2,"66":4,"69":15,"75":6,"84":2,"85":1,"89":6,"97":21,"103":2,"106":6,"108":1,"109":1,"110":1,"111":1,"116":6,"126":2,"127":1,"131":2,"134":2,"135":2,"136":12,"138":1,"139":1,"140":1,"141":3,"142":4,"143":2,"145":2,"146":1,"148":3,"149":1,"150":1,"152":8,"153":2,"156":10,"158":1,"160":3,"161":1,"165":1,"166":2,"169":2,"171":1,"175":4}}],["human",{"2":{"173":1}}],["hull`",{"2":{"63":2}}],["hulls",{"2":{"6":1,"58":1,"63":1}}],["hull",{"0":{"58":1,"60":1,"61":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1},"2":{"0":1,"6":8,"31":2,"58":2,"60":4,"61":1,"62":10,"63":15}}],["hypot",{"2":{"153":1}}],["h2",{"2":{"97":6}}],["h1",{"2":{"97":11}}],["hm",{"2":{"39":2}}],["h",{"2":{"34":2,"45":2,"57":8}}],["href=",{"2":{"6":2}}],["https",{"2":{"6":2,"51":1,"53":1,"54":1,"56":1,"63":1,"97":2,"158":1}}],["high",{"2":{"173":1}}],["highest",{"2":{"171":1}}],["higher",{"2":{"6":1,"63":1}}],["hit",{"2":{"45":1,"136":5}}],["hits",{"2":{"18":1}}],["hidedecorations",{"2":{"39":2}}],["hinter",{"2":{"31":3,"41":1,"149":1,"152":1}}],["hint",{"2":{"31":3,"41":1,"152":1}}],["hinge=2",{"2":{"53":1}}],["hinge`",{"2":{"53":1}}],["hinge",{"2":{"6":1,"45":1,"54":13,"97":15}}],["hist",{"2":{"13":1}}],["histogram",{"2":{"13":1}}],["hcat",{"2":{"6":1}}],["hexpb",{"2":{"170":1}}],["heavily",{"2":{"136":1}}],["heatmap",{"2":{"13":5,"14":6,"39":2,"65":2,"127":1}}],["help",{"2":{"165":1}}],["helpers",{"0":{"45":1},"2":{"86":1,"103":1}}],["helper",{"0":{"52":1,"54":1,"57":1},"2":{"44":1,"45":1,"48":1}}],["helps",{"2":{"30":1}}],["held",{"2":{"1":1,"6":1,"136":1}}],["here",{"2":{"6":2,"9":1,"13":1,"14":1,"20":1,"40":1,"54":1,"63":2,"86":1,"127":2,"136":5,"138":1,"152":1,"170":2,"175":2,"176":3}}],["hours",{"2":{"177":1}}],["hood",{"2":{"173":1}}],["hook",{"2":{"6":1,"156":1}}],["home",{"2":{"170":1}}],["horizontal",{"2":{"50":1,"54":1,"127":1,"156":1}}],["hormann",{"0":{"52":1,"54":1,"57":1},"2":{"6":2,"40":2,"45":3,"48":2,"51":1,"53":1,"56":1}}],["how",{"0":{"26":1},"2":{"6":2,"26":2,"36":1,"40":1,"45":1,"54":1,"69":1,"127":2,"131":1,"136":1,"147":1,"156":1,"170":1,"173":1,"175":2,"176":2,"177":1,"178":1}}],["however",{"2":{"3":1,"6":2,"34":1,"40":1,"44":1,"45":1,"54":1,"62":1,"65":1,"69":1,"71":1,"85":1,"143":1}}],["hole",{"2":{"34":1,"37":3,"39":2,"40":9,"44":4,"45":58,"50":3,"51":6,"53":2,"57":15,"66":3,"78":1,"79":1,"80":1,"97":33,"127":5,"139":2,"169":1}}],["holes=",{"2":{"45":1}}],["holes",{"2":{"4":3,"5":1,"6":4,"9":2,"34":2,"36":1,"40":2,"44":1,"45":19,"48":4,"51":2,"53":2,"56":6,"57":29,"66":3,"69":3,"94":1,"97":11,"108":1,"127":17,"139":2,"169":4}}],["holding",{"2":{"6":1,"127":1,"136":2}}],["holds",{"2":{"6":1,"45":1,"154":1,"164":2}}],["hold",{"2":{"6":1,"127":1,"156":1,"165":1,"173":1}}],["halign",{"2":{"156":1}}],["half",{"2":{"49":2}}],["hail",{"2":{"139":1}}],["handling",{"0":{"149":1},"2":{"129":1}}],["handler",{"2":{"41":1,"149":1}}],["handle",{"2":{"31":1,"126":1,"134":2,"136":1,"170":1}}],["handled",{"2":{"18":1}}],["hao",{"2":{"97":1}}],["had",{"2":{"51":1,"53":1,"69":1,"151":1,"165":1}}],["happens",{"2":{"45":1}}],["happen",{"2":{"24":1}}],["have",{"2":{"3":3,"4":9,"6":17,"19":1,"23":1,"34":2,"37":3,"40":6,"41":1,"45":4,"54":1,"63":2,"65":1,"66":2,"69":10,"97":5,"102":1,"103":3,"115":1,"116":1,"127":1,"128":1,"129":2,"131":2,"135":1,"136":4,"156":1,"158":1,"165":1,"166":1,"169":1,"170":1,"175":1,"176":1,"177":3}}],["haskey",{"2":{"166":1}}],["hash",{"2":{"127":1}}],["hasn",{"2":{"127":1}}],["hassle",{"2":{"1":1,"6":1,"161":1}}],["has",{"2":{"1":4,"6":4,"33":1,"36":2,"40":2,"45":2,"52":2,"54":1,"57":1,"65":1,"66":1,"69":11,"118":1,"126":1,"136":4,"137":1,"151":2,"160":1,"170":1}}],["xticklabelsvisible",{"2":{"170":1}}],["xticklabelrotation",{"2":{"13":2}}],["xoffset",{"2":{"169":4,"171":1}}],["x=x",{"2":{"167":1}}],["x`",{"2":{"136":1}}],["xvec",{"2":{"127":4}}],["xbounds",{"2":{"127":4}}],["xhalf",{"2":{"127":3}}],["xlast",{"2":{"66":3}}],["xfirst",{"2":{"66":5}}],["x0",{"2":{"66":5}}],["xn",{"2":{"50":4}}],["xind+1",{"2":{"127":1}}],["xind",{"2":{"127":2}}],["xinterior",{"2":{"44":2}}],["xi−xi−1",{"2":{"6":1}}],["xcentroid",{"2":{"44":13}}],["xrange",{"2":{"39":3,"65":2}}],["xautolimits",{"2":{"39":2}}],["xp2",{"2":{"34":5}}],["x2",{"2":{"6":3,"40":4,"44":2,"50":18,"66":8,"86":10,"97":5,"103":4,"127":5,"153":6,"167":2}}],["x26",{"2":{"6":4,"34":2,"37":6,"40":1,"41":4,"45":58,"50":36,"51":4,"52":4,"54":24,"57":2,"66":3,"69":14,"81":2,"82":2,"86":48,"95":2,"96":2,"97":170,"103":22,"112":2,"113":2,"118":2,"122":2,"123":2,"126":4,"127":12,"141":2,"145":6,"149":2,"152":2,"158":10,"159":2,"167":4,"175":1}}],["x1",{"2":{"6":4,"40":3,"44":2,"50":22,"66":8,"86":11,"97":6,"103":5,"127":5,"153":7,"167":2}}],["xs",{"2":{"6":3,"50":4,"127":30,"167":4}}],["xmax",{"2":{"6":1,"49":2,"50":48}}],["xmin",{"2":{"6":1,"49":2,"50":49}}],["x3c",{"2":{"5":1,"6":36,"31":1,"34":4,"37":2,"40":66,"45":17,"48":3,"50":11,"51":1,"53":1,"54":6,"56":1,"65":1,"66":13,"69":2,"86":33,"97":13,"103":10,"126":1,"127":4,"131":2,"136":19,"139":2,"142":3,"145":5,"152":2,"157":2,"158":6,"159":3,"160":9,"164":4,"165":2,"178":1}}],["xy`",{"2":{"148":1}}],["xy",{"2":{"1":4,"40":1,"148":3}}],["x",{"2":{"1":4,"4":1,"6":6,"7":1,"9":5,"11":6,"13":11,"14":10,"15":4,"34":9,"37":2,"39":8,"43":1,"44":10,"45":21,"48":6,"49":1,"50":8,"52":9,"54":18,"57":9,"65":2,"66":7,"69":3,"86":21,"97":16,"103":7,"126":11,"127":2,"129":2,"136":17,"141":2,"146":2,"147":4,"148":1,"153":2,"156":2,"158":2,"160":1,"161":2,"162":2,"165":4,"167":33,"169":6,"170":2,"171":2,"175":1,"177":2}}],["=>",{"2":{"136":2}}],["=float64",{"2":{"44":3,"53":1,"56":1}}],["=false",{"2":{"34":1}}],["===",{"2":{"86":8,"126":4}}],["==",{"2":{"9":1,"19":1,"34":4,"37":2,"40":9,"41":2,"44":1,"45":34,"50":30,"52":1,"54":20,"56":2,"57":1,"61":1,"65":1,"69":16,"97":44,"103":2,"126":3,"127":18,"136":1,"139":1,"141":1,"145":1,"149":1,"152":2,"156":1,"160":3}}],["=",{"2":{"1":5,"3":17,"4":7,"5":2,"6":62,"11":1,"13":19,"14":33,"15":18,"31":4,"33":4,"34":56,"36":6,"37":25,"39":35,"40":110,"41":3,"43":6,"44":36,"45":323,"47":7,"48":29,"49":6,"50":96,"51":21,"52":30,"53":18,"54":143,"56":21,"57":77,"60":6,"61":4,"62":14,"63":4,"65":15,"66":52,"68":7,"69":40,"71":7,"72":3,"74":4,"75":23,"76":3,"77":7,"78":14,"79":14,"80":4,"81":2,"82":2,"84":5,"85":3,"86":57,"88":7,"89":18,"90":3,"91":11,"92":17,"93":9,"94":3,"95":2,"96":2,"97":189,"99":3,"100":3,"102":7,"103":40,"105":7,"106":22,"107":3,"108":11,"109":14,"110":14,"111":4,"112":2,"113":2,"115":3,"116":22,"117":3,"118":9,"119":14,"120":10,"121":6,"122":2,"123":2,"126":32,"127":106,"129":1,"133":4,"136":90,"138":2,"139":4,"141":9,"144":3,"145":30,"146":1,"149":2,"151":16,"152":21,"153":18,"154":2,"155":5,"156":60,"157":11,"158":49,"159":7,"160":43,"161":2,"162":1,"164":6,"165":2,"166":3,"167":42,"169":45,"170":19,"171":13,"172":3,"173":4,"174":7,"176":12,"177":6,"178":2}}],["utm",{"2":{"170":1}}],["utility",{"0":{"167":1},"2":{"40":1,"136":2}}],["utils",{"0":{"160":1},"2":{"31":1}}],["u2",{"2":{"97":4}}],["u1",{"2":{"97":4}}],["update",{"2":{"45":6,"127":10}}],["updated",{"2":{"45":6,"136":3}}],["updates",{"2":{"40":1}}],["up",{"2":{"45":2,"54":1,"97":1,"120":1,"134":1,"144":1,"158":2,"169":2}}],["upper",{"2":{"6":1,"127":1,"176":1}}],["uv",{"2":{"40":1}}],["u>",{"2":{"6":2}}],["u>geometryops",{"2":{"6":2}}],["usage",{"2":{"177":1}}],["usa",{"0":{"61":1},"2":{"61":4,"156":15,"177":3}}],["us",{"2":{"37":1,"63":1,"170":1,"177":1}}],["usually",{"2":{"6":1,"26":2,"58":1,"131":1,"136":1,"173":1}}],["usual",{"2":{"6":1,"139":1,"142":1}}],["usecases",{"2":{"25":1,"27":1}}],["uses",{"2":{"6":2,"58":1,"63":1,"97":1,"148":1,"152":1,"156":1,"173":1}}],["users",{"2":{"31":1,"129":1,"143":1}}],["user",{"2":{"6":12,"23":1,"44":1,"51":3,"53":3,"56":3,"157":1,"158":1,"159":1,"175":1}}],["useful",{"2":{"6":10,"40":1,"127":1,"150":1,"153":1,"156":2,"166":1}}],["used",{"2":{"1":1,"5":1,"6":8,"34":1,"37":1,"38":1,"40":1,"44":2,"45":7,"48":1,"50":1,"54":1,"65":1,"66":1,"69":1,"103":1,"127":2,"131":1,"136":3,"137":1,"153":1,"156":1,"158":2,"163":2,"164":1,"170":1,"173":1,"175":2,"176":1}}],["use",{"2":{"1":2,"4":1,"5":1,"6":10,"11":1,"20":1,"23":1,"26":1,"40":1,"45":1,"57":1,"63":2,"86":2,"103":1,"127":1,"128":1,"133":1,"136":7,"139":1,"147":1,"151":1,"153":1,"156":1,"158":2,"166":3,"169":1,"173":1,"175":2,"178":2}}],["using",{"0":{"170":1},"2":{"1":4,"4":1,"5":3,"6":12,"11":4,"13":4,"14":1,"15":1,"31":6,"33":1,"34":1,"36":2,"37":2,"39":4,"40":7,"41":3,"43":2,"44":1,"45":5,"47":2,"48":1,"49":2,"50":1,"52":3,"54":4,"55":1,"57":3,"60":1,"61":2,"62":1,"63":2,"65":2,"66":2,"68":2,"69":1,"71":2,"72":1,"74":2,"75":1,"82":1,"84":2,"85":1,"86":1,"88":2,"89":1,"96":1,"97":1,"99":2,"100":1,"102":2,"103":1,"105":2,"106":1,"113":1,"115":2,"116":1,"123":1,"126":1,"127":5,"128":1,"129":2,"134":1,"136":4,"139":1,"142":1,"145":1,"146":2,"147":1,"148":1,"149":3,"151":1,"152":5,"153":1,"156":3,"158":1,"160":1,"161":4,"162":2,"166":2,"167":1,"168":4,"169":1,"171":1,"172":2,"174":1,"175":1,"176":4,"177":2}}],["until",{"2":{"127":3,"134":1,"158":1,"166":1}}],["unprocessed",{"2":{"45":1}}],["unknown",{"2":{"45":4,"50":15}}],["unknown=3",{"2":{"45":1}}],["unmatched",{"2":{"45":9,"50":26}}],["understand",{"2":{"163":1}}],["under",{"2":{"37":2,"173":1}}],["undergrad",{"2":{"9":1}}],["undef",{"2":{"34":2,"45":1,"157":1,"158":1,"160":2,"167":2}}],["unless",{"2":{"22":1,"45":1,"52":2,"54":2,"57":2}}],["unlike",{"2":{"18":1,"163":1}}],["unstable",{"2":{"13":1,"136":1,"165":1}}],["unneeded",{"2":{"6":3,"45":1,"51":2,"53":2,"56":2}}],["unnecessary",{"2":{"6":3,"127":1,"157":1,"158":1,"159":1}}],["universal",{"2":{"170":1}}],["united",{"2":{"156":1}}],["unify",{"2":{"25":1,"27":1}}],["unique",{"2":{"6":2,"54":3,"142":2,"145":2}}],["unioning",{"2":{"57":1}}],["unionintersectingpolygons",{"2":{"0":1,"6":8,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"142":2,"143":2,"144":1,"145":4}}],["unions",{"0":{"57":1},"2":{"18":1,"164":1}}],["union",{"0":{"56":1},"2":{"0":1,"1":2,"3":2,"4":4,"6":22,"11":3,"23":2,"31":1,"34":2,"37":1,"40":1,"44":4,"45":7,"50":1,"53":2,"56":18,"57":30,"66":1,"69":8,"77":2,"78":4,"79":1,"81":2,"82":1,"91":2,"92":6,"95":2,"96":1,"103":4,"108":2,"109":4,"110":1,"112":2,"113":1,"118":2,"119":4,"120":1,"122":2,"123":1,"126":1,"127":5,"129":1,"134":3,"136":6,"142":1,"143":1,"145":9,"153":4,"156":2,"157":3,"158":3,"159":3,"164":4,"167":1}}],["unchanged",{"2":{"1":1,"6":2,"136":1,"156":1}}],["unwrap",{"2":{"0":1,"6":3,"131":1,"136":16}}],["nselected",{"2":{"160":3}}],["nmax",{"2":{"160":2}}],["nice",{"2":{"158":1}}],["null",{"2":{"152":1}}],["numeric",{"2":{"11":1}}],["numbers",{"2":{"6":1,"7":1,"38":2,"40":1,"152":1}}],["number=6",{"2":{"6":1,"155":1,"156":1}}],["number",{"2":{"6":11,"40":1,"45":2,"48":1,"58":1,"62":1,"65":1,"69":2,"97":2,"150":1,"151":1,"153":1,"156":2,"157":4,"158":7,"159":4,"160":12}}],["n+1",{"2":{"138":1}}],["nfeature",{"2":{"136":2}}],["nkeys",{"2":{"127":8}}],["nc",{"2":{"97":13}}],["ncoord",{"2":{"69":2}}],["nl",{"2":{"97":11}}],["nhole",{"2":{"45":2,"51":2,"53":2,"56":2,"57":1,"69":2}}],["nbpts",{"2":{"45":2}}],["nbsp",{"2":{"1":4,"3":9,"4":8,"5":3,"6":89,"131":3,"141":1,"142":4}}],["ngeom",{"2":{"44":1,"136":2,"167":1}}],["nt",{"2":{"166":2}}],["ntasks",{"2":{"136":6}}],["nthreads",{"2":{"136":3}}],["nthe",{"2":{"41":1,"149":1,"152":1}}],["ntuple",{"2":{"40":3,"153":1}}],["n2",{"2":{"40":8,"69":10}}],["n1",{"2":{"40":8,"69":9}}],["np2",{"2":{"86":4}}],["npolygon",{"2":{"52":1,"69":3,"145":2}}],["npoints",{"2":{"34":6,"45":5,"97":3,"152":6,"158":7}}],["npoint",{"2":{"6":1,"34":2,"36":1,"37":1,"50":2,"62":2,"66":1,"69":6,"86":6,"97":6,"118":1,"126":2,"139":1,"152":3,"153":1,"156":14,"160":1,"167":13}}],["npts",{"2":{"45":6,"158":3}}],["np",{"2":{"37":2,"66":5}}],["n",{"2":{"6":1,"9":1,"38":2,"40":36,"41":2,"45":51,"48":10,"56":4,"57":4,"97":11,"118":2,"126":6,"127":5,"138":1,"145":25,"149":2,"152":2,"153":3,"156":2,"160":7,"167":32}}],["naive",{"2":{"55":1}}],["napts",{"2":{"45":3}}],["navigate",{"0":{"26":1}}],["natearth2",{"2":{"170":1}}],["natural",{"2":{"156":1,"170":2,"175":1}}],["naturalearth",{"2":{"11":2,"61":2,"156":3,"170":1}}],["nature",{"2":{"127":1}}],["native",{"2":{"6":1,"128":1,"166":4,"173":1}}],["nan",{"2":{"9":1}}],["named",{"2":{"136":1}}],["namedtuple",{"2":{"22":2,"136":2,"166":2}}],["name",{"2":{"6":1,"31":2,"156":1,"166":1,"172":1,"173":2,"177":1}}],["names",{"2":{"6":1,"31":3,"136":6,"166":1}}],["nodestatus",{"2":{"127":6}}],["nodes",{"2":{"45":1,"127":4}}],["node",{"2":{"45":26,"127":17}}],["north",{"2":{"50":12}}],["nor",{"2":{"41":1,"149":1,"152":1}}],["normalized",{"2":{"40":1}}],["normalize",{"2":{"40":1}}],["norm",{"2":{"6":1,"40":22}}],["now",{"2":{"6":1,"13":1,"25":1,"27":1,"36":1,"39":2,"40":4,"41":1,"45":1,"48":1,"57":1,"58":1,"66":1,"126":1,"127":2,"144":1,"150":1,"151":3,"152":1,"156":1,"169":5,"170":6,"171":2,"172":1,"173":3,"176":2}}],["no",{"2":{"6":6,"34":1,"40":2,"45":4,"51":1,"52":1,"53":1,"54":14,"56":1,"69":2,"75":3,"89":3,"97":2,"106":2,"108":1,"109":3,"110":3,"111":1,"116":2,"118":1,"120":1,"121":2,"127":2,"128":1,"129":1,"136":3,"150":1,"152":2,"153":1,"156":1,"166":1,"173":1}}],["nonzero",{"2":{"153":1}}],["none",{"2":{"6":4,"45":1,"48":1,"51":1,"53":1,"56":1,"57":1,"86":4,"88":1}}],["nondimensional",{"2":{"6":1,"152":1}}],["nonintersecting",{"2":{"6":1,"23":1,"142":1,"145":1}}],["non",{"2":{"3":2,"6":2,"22":1,"38":2,"45":15,"51":2,"52":1,"53":1,"54":4,"56":1,"57":2,"65":1,"103":2,"120":1,"134":1,"165":1}}],["note",{"2":{"4":4,"6":11,"19":1,"29":1,"34":1,"37":2,"40":1,"43":2,"44":2,"45":3,"48":2,"50":1,"52":3,"54":5,"57":3,"63":1,"66":1,"69":5,"97":1,"102":1,"103":1,"148":1,"153":1,"157":1,"158":2,"159":1,"165":1,"170":2,"171":1}}],["not",{"0":{"128":1},"2":{"1":2,"3":8,"4":1,"6":18,"18":1,"19":1,"22":1,"24":1,"31":1,"34":4,"37":1,"40":4,"41":1,"43":1,"45":18,"48":1,"53":1,"54":7,"57":3,"62":1,"68":2,"69":4,"71":2,"72":1,"74":2,"75":2,"84":1,"85":2,"89":3,"91":5,"92":3,"93":2,"94":2,"97":5,"102":1,"103":2,"105":2,"106":2,"108":1,"116":1,"126":4,"127":2,"128":1,"134":1,"135":1,"136":10,"138":2,"141":2,"144":3,"147":1,"148":1,"149":1,"150":1,"152":2,"153":1,"163":1,"164":1,"165":1,"166":2,"170":1,"171":1,"175":1}}],["nothing`",{"2":{"52":2,"54":2,"57":2}}],["nothing",{"2":{"1":34,"4":1,"6":42,"15":3,"45":4,"48":1,"52":2,"53":1,"54":2,"57":2,"69":1,"97":1,"126":9,"127":3,"136":8,"138":24,"141":1,"144":60,"149":1,"153":1,"156":2,"157":6,"158":6,"159":6,"160":1,"161":32,"167":7,"169":252,"170":16,"171":20}}],["ne",{"2":{"170":2}}],["net",{"2":{"141":2}}],["ness",{"2":{"136":1}}],["nesting",{"2":{"134":2}}],["nestedloopfast",{"2":{"178":1}}],["nested",{"2":{"1":2,"4":1,"6":5,"18":1,"34":1,"134":2,"136":4,"156":1,"162":1}}],["never",{"2":{"134":1,"157":1}}],["neumann",{"2":{"127":1}}],["neither",{"2":{"57":1}}],["neighborhood",{"2":{"127":2}}],["neighbor",{"2":{"45":27}}],["neighboring",{"2":{"6":6,"45":1,"156":1,"157":1,"158":1,"159":2}}],["nearly",{"2":{"173":1}}],["nearest",{"2":{"45":1,"54":2}}],["neatly",{"2":{"17":1}}],["nedge",{"2":{"45":2,"167":13}}],["nextnode",{"2":{"127":27}}],["nextnodes",{"2":{"127":6}}],["next",{"2":{"44":1,"45":81,"48":4,"50":3,"97":14,"127":3,"145":13,"158":5}}],["necessarily",{"2":{"6":1,"126":1,"147":1}}],["necessary",{"2":{"6":1,"134":1,"156":1}}],["newfeature",{"2":{"136":2}}],["newnodes",{"2":{"127":2}}],["new",{"2":{"6":1,"41":1,"45":58,"50":9,"51":3,"52":1,"57":16,"97":2,"127":4,"135":1,"136":19,"141":2,"142":1,"143":1,"145":19,"153":8,"157":1,"158":2,"159":1,"171":1,"172":1,"177":1}}],["negative",{"2":{"4":3,"6":3,"36":2,"37":1,"38":2,"65":2,"66":3}}],["needs",{"2":{"44":1}}],["needing",{"2":{"4":1,"6":1,"17":1,"146":1}}],["need",{"2":{"1":1,"3":1,"4":2,"5":1,"6":5,"40":2,"43":1,"45":2,"52":1,"62":1,"69":4,"84":1,"85":1,"97":1,"127":2,"129":1,"146":1,"160":1,"161":1,"170":1,"171":2,"178":2}}],["needed",{"2":{"1":2,"6":4,"34":1,"40":1,"45":4,"50":1,"51":1,"53":1,"56":1,"66":2,"97":5,"127":1,"136":2,"141":1,"148":3,"171":1}}],["gdal",{"2":{"173":1}}],["gml",{"2":{"173":1}}],["gpkg",{"2":{"173":3}}],["gadm",{"2":{"177":4}}],["ga",{"2":{"170":3,"174":2}}],["gaps",{"2":{"127":1}}],["global",{"2":{"170":1}}],["gft",{"2":{"168":1,"170":2}}],["gc",{"2":{"141":6}}],["g",{"2":{"34":3,"37":3,"41":1,"44":3,"50":3,"66":6,"134":1,"136":6,"156":2,"167":2,"173":1}}],["gb",{"2":{"31":1,"136":10}}],["guarantee",{"2":{"19":1,"30":1}}],["guaranteed",{"2":{"1":1,"6":1,"34":1,"136":1}}],["grand",{"2":{"177":1}}],["grained",{"2":{"151":1}}],["grahamscanmethod",{"2":{"63":1}}],["graphics",{"2":{"6":1,"40":1}}],["great",{"2":{"169":1,"171":1,"173":1}}],["greater",{"2":{"6":1,"126":1,"153":1}}],["greiner",{"0":{"52":1,"54":1,"57":1},"2":{"45":3,"48":2,"51":1,"53":1,"56":1}}],["green",{"2":{"14":1,"170":1}}],["grouped",{"2":{"169":1}}],["groups",{"2":{"6":1,"127":1}}],["grouping",{"2":{"1":1,"6":1,"136":2}}],["grid",{"2":{"6":1,"39":1,"50":4}}],["g2",{"2":{"3":5,"6":5,"72":4,"75":12,"76":6,"77":9,"78":6,"79":6,"80":3,"81":4,"82":2,"85":3,"86":21,"89":10,"90":6,"91":10,"92":8,"93":4,"94":2,"95":4,"96":2,"106":10,"107":6,"108":9,"109":6,"110":6,"111":3,"112":4,"113":2,"116":10,"117":6,"118":10,"119":6,"120":5,"121":4,"122":4,"123":2}}],["g1",{"2":{"3":5,"4":1,"6":6,"72":4,"75":12,"76":6,"77":9,"78":6,"79":6,"80":3,"81":2,"82":4,"85":3,"86":21,"89":9,"90":6,"91":10,"92":8,"93":4,"94":2,"95":2,"96":4,"106":10,"107":6,"108":9,"109":6,"110":6,"111":3,"112":2,"113":4,"116":10,"117":6,"118":9,"119":6,"120":5,"121":4,"122":2,"123":4}}],["generic",{"2":{"22":1}}],["generation",{"2":{"156":2}}],["generated",{"2":{"31":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"48":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"147":1,"149":1,"153":1,"156":1,"160":1,"161":1,"162":1,"166":1,"167":1,"176":1}}],["generate",{"2":{"7":1,"13":2,"156":1,"176":2}}],["generalization",{"2":{"38":1}}],["generalized",{"2":{"6":1,"38":3,"40":1}}],["generalise",{"2":{"6":4,"156":1}}],["generally",{"2":{"6":2,"166":3}}],["general",{"0":{"2":1,"4":1},"1":{"3":1,"4":1},"2":{"18":1,"20":1,"25":1,"27":1,"129":1,"149":1}}],["getfeature",{"2":{"136":5,"167":5}}],["getcolumn",{"2":{"136":4}}],["getgeom",{"2":{"81":1,"82":1,"95":1,"96":1,"103":2,"112":1,"113":1,"122":1,"123":1,"136":6,"156":3,"167":6}}],["getring",{"2":{"45":1}}],["getindex",{"2":{"40":2}}],["gethole",{"2":{"34":1,"37":1,"44":1,"45":4,"48":1,"50":1,"51":2,"53":2,"57":6,"66":1,"69":2,"97":5,"139":1,"169":1}}],["getexterior",{"2":{"34":1,"37":1,"40":1,"44":1,"45":3,"48":1,"50":1,"51":2,"53":2,"56":3,"57":6,"66":1,"69":2,"97":5,"126":1,"127":1,"139":1,"169":1}}],["getpolygon",{"2":{"52":3,"54":2,"57":2,"69":3}}],["getpoint",{"2":{"33":1,"34":5,"36":2,"37":1,"40":1,"43":1,"44":6,"45":3,"47":3,"49":2,"50":3,"65":1,"66":6,"68":4,"69":13,"71":4,"74":1,"84":1,"86":7,"88":4,"97":28,"99":2,"102":4,"103":2,"105":4,"115":2,"118":2,"126":5,"139":3,"151":4,"153":2,"160":1,"167":3,"169":2}}],["getproperty",{"2":{"13":2,"14":1}}],["get",{"2":{"6":1,"13":1,"36":1,"41":1,"45":9,"51":1,"52":1,"53":1,"54":2,"56":2,"63":2,"127":4,"136":4,"149":1,"152":3,"156":1,"157":1,"159":1,"160":2,"166":5,"167":1,"169":2,"177":2}}],["geoparquet",{"2":{"173":4}}],["geopoly1",{"2":{"171":1,"172":1}}],["geopoly2",{"2":{"171":1,"172":1}}],["geoaxis",{"2":{"170":4,"174":1}}],["geographic",{"2":{"170":1,"173":1}}],["geographiclib",{"2":{"6":1,"152":1}}],["geointeface",{"2":{"134":1}}],["geointerace",{"2":{"22":1}}],["geointerfacemakie",{"2":{"155":1,"176":1,"177":1}}],["geointerface",{"0":{"30":1},"2":{"1":20,"3":9,"4":2,"6":41,"11":1,"13":1,"14":1,"15":1,"22":3,"25":1,"27":1,"30":1,"31":7,"33":1,"34":1,"36":1,"37":1,"40":23,"43":1,"44":1,"45":1,"47":1,"48":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"60":1,"61":1,"62":1,"65":1,"66":11,"68":1,"69":2,"71":1,"72":2,"74":1,"75":2,"84":1,"85":2,"86":1,"88":1,"89":3,"99":1,"100":2,"102":1,"103":2,"105":1,"106":2,"115":1,"116":2,"126":5,"127":1,"131":3,"134":3,"136":6,"138":9,"141":1,"142":1,"144":23,"146":1,"148":2,"151":1,"152":1,"155":1,"156":2,"161":13,"162":1,"167":1,"168":1,"169":122,"170":5,"171":9,"174":1,"176":1,"177":1}}],["geo",{"2":{"127":1,"152":4,"170":2}}],["geotable",{"2":{"29":1}}],["geojson",{"2":{"11":1,"156":2,"168":1,"170":4,"173":3}}],["geodataframes",{"2":{"173":3}}],["geod",{"2":{"6":2,"152":3}}],["geodesic`",{"2":{"152":2}}],["geodesic",{"0":{"174":1},"2":{"6":5,"31":1,"151":6,"152":8,"153":1,"174":1}}],["geodesicsegments",{"2":{"0":1,"6":2,"150":1,"151":3,"152":6,"153":2,"174":1}}],["geoformattypes",{"2":{"1":2,"148":2,"168":1,"170":2,"171":8}}],["geomakie",{"0":{"170":1},"2":{"168":2,"170":5,"174":2}}],["geomfromgeos",{"2":{"152":1}}],["geomtype",{"2":{"136":2}}],["geoms",{"2":{"6":1,"63":1,"97":1,"131":1,"136":18}}],["geom2",{"2":{"3":8,"4":1,"6":9,"66":6,"69":1,"86":6,"89":1,"100":3,"103":6,"106":2,"116":1}}],["geom1",{"2":{"3":8,"4":1,"6":9,"66":6,"69":1,"86":4,"89":1,"100":3,"103":6,"106":2,"116":1}}],["geometrical",{"2":{"175":1}}],["geometric",{"2":{"25":2,"27":2,"43":1}}],["geometries",{"0":{"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"169":1,"170":1,"171":1},"2":{"1":6,"3":8,"4":14,"6":63,"18":3,"20":1,"22":3,"25":2,"27":2,"29":4,"33":1,"34":3,"37":4,"44":1,"48":1,"50":2,"51":5,"53":5,"54":4,"56":5,"63":6,"65":1,"66":4,"68":1,"69":7,"72":1,"74":1,"75":1,"86":2,"89":2,"97":1,"99":1,"100":1,"102":2,"103":3,"106":2,"108":1,"115":2,"116":2,"129":1,"131":4,"133":1,"135":2,"136":13,"146":1,"148":2,"150":3,"151":1,"152":4,"153":1,"154":1,"157":1,"158":1,"159":1,"162":1,"167":1,"168":5,"170":1,"171":2,"172":2,"173":1,"175":5,"176":1,"178":1}}],["geometry=",{"2":{"172":1}}],["geometrybasics",{"2":{"31":3,"39":2,"40":10,"63":1,"65":1,"75":1,"106":1,"116":1}}],["geometrycolumns",{"2":{"136":3}}],["geometrycollections",{"2":{"175":1}}],["geometrycollection",{"2":{"23":1,"177":1}}],["geometrycollectiontrait",{"2":{"23":1,"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["geometrycorrections",{"2":{"141":1}}],["geometrycorrection",{"2":{"0":1,"6":11,"139":2,"140":2,"141":13,"142":11,"145":4}}],["geometry",{"0":{"2":1,"53":1,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"140":1,"148":1,"154":1,"168":1,"172":1},"1":{"3":1,"4":1,"141":1,"142":1,"149":1,"155":1,"156":1,"169":1,"170":1,"171":1,"172":1,"173":1},"2":{"1":10,"3":24,"4":12,"6":70,"9":1,"11":2,"18":4,"20":1,"23":3,"29":1,"31":1,"34":7,"37":4,"41":4,"44":3,"48":4,"49":1,"50":4,"61":1,"65":4,"66":6,"69":8,"71":5,"72":2,"74":4,"75":5,"76":4,"77":1,"81":3,"82":4,"84":4,"85":4,"86":3,"88":2,"89":5,"90":4,"91":2,"92":2,"95":3,"96":4,"97":2,"99":2,"103":3,"105":4,"106":5,"107":4,"112":3,"113":4,"115":3,"116":4,"117":4,"118":2,"122":3,"123":4,"125":1,"129":3,"131":2,"134":2,"136":43,"138":1,"139":1,"140":2,"141":23,"142":6,"146":1,"147":1,"148":6,"150":3,"151":1,"152":5,"153":8,"156":6,"167":6,"169":1,"170":1,"171":4,"172":2,"173":2,"175":1,"176":7,"177":4,"178":2}}],["geometryopsprojext",{"2":{"148":1,"149":1,"152":1,"153":1}}],["geometryopslibgeosext",{"2":{"41":1}}],["geometryops",{"0":{"0":1,"25":1,"31":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":117,"1":6,"3":18,"4":9,"5":3,"6":114,"7":2,"11":1,"13":1,"14":1,"15":1,"17":2,"25":1,"26":4,"27":1,"31":1,"33":1,"36":1,"39":5,"41":1,"43":1,"47":1,"48":1,"49":1,"51":1,"53":1,"54":1,"56":1,"58":1,"60":1,"61":1,"62":3,"65":1,"68":1,"69":1,"71":1,"72":2,"74":1,"75":2,"84":1,"85":2,"86":2,"88":1,"89":2,"99":1,"100":1,"102":1,"103":1,"105":1,"106":2,"115":1,"116":2,"126":3,"127":2,"131":4,"136":1,"138":1,"141":1,"142":4,"144":1,"149":1,"151":1,"152":2,"155":1,"156":2,"161":1,"163":1,"166":2,"167":1,"168":1,"169":3,"174":1,"175":1,"176":2,"177":2}}],["geom",{"2":{"1":7,"4":21,"6":48,"18":3,"31":12,"34":25,"37":17,"44":28,"45":16,"48":15,"50":6,"51":8,"52":2,"53":12,"54":10,"56":9,"57":9,"66":28,"69":45,"75":4,"86":1,"89":4,"97":3,"103":1,"106":4,"116":4,"126":3,"127":1,"129":2,"131":3,"136":91,"145":11,"147":4,"153":13,"156":36,"160":3,"161":7,"162":4,"167":13,"177":6}}],["geospatial",{"0":{"171":1,"173":1},"2":{"168":5,"170":1,"171":3,"173":5}}],["geoscontext",{"2":{"152":1}}],["geosdensify",{"2":{"152":3}}],["geos",{"0":{"166":1},"2":{"0":1,"6":6,"41":4,"58":1,"62":4,"63":1,"154":5,"156":2,"163":1,"166":12}}],["got",{"2":{"160":3}}],["goes",{"2":{"6":2,"126":2}}],["good",{"2":{"6":1,"40":1,"166":2,"171":1}}],["going",{"2":{"4":4,"6":5,"50":2,"62":1,"69":5,"126":1,"127":1,"168":1}}],["go",{"2":{"1":5,"3":17,"4":2,"6":43,"11":9,"13":1,"14":1,"15":6,"18":1,"31":2,"33":1,"36":1,"40":1,"43":2,"47":2,"48":2,"49":1,"51":2,"53":2,"54":2,"56":2,"60":3,"61":2,"62":8,"63":2,"65":6,"68":1,"69":2,"71":2,"72":2,"74":1,"75":2,"84":2,"85":2,"86":1,"88":1,"89":2,"99":1,"100":2,"102":1,"103":2,"105":2,"106":2,"115":1,"116":2,"126":6,"127":2,"129":1,"131":1,"136":3,"138":3,"144":3,"151":7,"152":8,"155":2,"156":49,"161":3,"166":1,"167":2,"168":1,"169":3,"171":1,"173":1,"174":3,"175":9,"176":2,"177":5,"178":1}}],["gtrait",{"2":{"66":2}}],["gt",{"2":{"1":1,"6":2,"9":2,"10":1,"11":5,"45":3,"126":3}}],["gif",{"2":{"158":1}}],["gives",{"2":{"177":1}}],["give",{"2":{"97":1,"173":1}}],["given",{"2":{"4":7,"6":21,"18":2,"29":1,"33":1,"34":1,"37":2,"44":3,"45":8,"48":5,"50":3,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"66":8,"69":4,"71":1,"72":1,"75":1,"84":1,"85":1,"89":1,"97":7,"99":1,"100":1,"106":1,"116":1,"118":1,"129":1,"141":4,"142":1,"144":1,"150":2,"152":2,"153":2,"159":1}}],["github",{"2":{"6":2,"63":1}}],["gis",{"2":{"5":1,"6":1,"25":1,"27":1,"40":1}}],["gi",{"2":{"1":13,"3":42,"4":31,"6":125,"11":8,"13":15,"14":15,"15":8,"18":2,"31":1,"33":3,"34":30,"36":5,"37":21,"39":1,"43":5,"44":38,"45":34,"47":6,"48":13,"49":5,"50":17,"51":19,"52":16,"53":25,"54":24,"56":17,"57":36,"60":1,"61":1,"62":3,"63":4,"65":8,"66":42,"68":7,"69":99,"71":7,"72":3,"74":3,"75":4,"76":6,"77":12,"78":10,"79":7,"80":4,"81":8,"82":6,"84":3,"85":3,"86":21,"88":7,"89":2,"90":3,"91":12,"92":14,"93":4,"94":2,"95":8,"96":6,"97":59,"99":5,"100":3,"102":7,"103":51,"105":7,"106":2,"107":6,"108":12,"109":10,"110":7,"111":4,"112":8,"113":6,"115":5,"116":3,"117":6,"118":15,"119":10,"120":7,"121":4,"122":8,"123":6,"126":32,"127":15,"129":4,"131":2,"136":111,"138":2,"139":10,"141":9,"144":3,"145":8,"146":1,"147":5,"151":6,"152":6,"153":12,"155":2,"156":34,"160":4,"161":9,"162":5,"164":9,"167":55,"168":1,"169":21,"170":2,"171":2,"174":2,"176":5,"177":2}}],["o",{"2":{"136":24}}],["odd",{"2":{"97":1}}],["own",{"2":{"57":1,"129":2}}],["occur",{"2":{"54":1}}],["occurs",{"2":{"54":1}}],["occupied",{"2":{"36":1}}],["old",{"2":{"45":8,"136":3}}],["ourselves",{"2":{"152":1}}],["our",{"2":{"24":1,"152":1,"169":4,"170":3,"176":1}}],["out=3",{"2":{"97":1}}],["out=4",{"2":{"53":1}}],["out`",{"2":{"53":1,"97":1}}],["out",{"2":{"6":3,"45":12,"50":23,"54":6,"57":4,"63":1,"65":5,"75":4,"86":1,"89":3,"97":102,"103":2,"106":4,"116":4,"126":1,"136":1,"153":1,"166":2}}],["outside",{"2":{"3":2,"4":1,"6":3,"45":3,"50":1,"52":2,"54":4,"57":3,"65":2,"66":1,"74":1,"85":1,"88":1,"97":12,"103":3,"111":1}}],["outputs",{"2":{"45":1}}],["output",{"2":{"3":8,"4":1,"6":18,"18":1,"23":1,"48":2,"51":1,"53":1,"54":1,"56":1,"57":2,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":2,"156":1,"160":1,"167":1}}],["outermost",{"2":{"136":1}}],["outer",{"2":{"1":1,"6":1,"134":1,"136":2,"175":1,"176":1}}],["omit",{"2":{"6":1,"152":1}}],["obtain",{"2":{"136":1}}],["obtained",{"2":{"23":1}}],["observable",{"2":{"14":2}}],["obs",{"2":{"14":10}}],["obviously",{"2":{"4":1,"6":1,"146":1}}],["objects",{"2":{"1":4,"4":1,"6":17,"131":3,"134":5,"136":8,"146":1,"150":1,"156":2,"162":1}}],["object",{"2":{"1":4,"4":1,"5":1,"6":8,"20":1,"40":1,"65":1,"97":4,"131":1,"134":5,"136":3,"146":1,"148":3,"152":1,"156":1,"162":1}}],["obj",{"2":{"1":4,"4":1,"6":17,"131":3,"136":10,"146":1,"147":2,"152":3,"156":3,"161":1,"162":1}}],["others",{"2":{"41":1,"145":1}}],["otherwise",{"2":{"4":2,"6":3,"41":1,"45":1,"52":1,"54":1,"66":2,"127":1,"147":1,"149":1,"152":1,"167":1}}],["other",{"0":{"4":1,"6":1},"2":{"3":4,"6":12,"34":1,"45":5,"51":1,"53":1,"54":1,"56":2,"57":3,"58":2,"66":2,"69":2,"71":1,"77":1,"97":8,"99":1,"102":1,"103":4,"108":1,"115":2,"116":2,"119":1,"127":1,"131":1,"134":1,"136":1,"142":2,"143":1,"145":2,"156":2,"158":2,"163":1,"164":1,"166":1,"170":1,"175":1,"178":1}}],["ogc",{"0":{"3":1}}],["over=3",{"2":{"53":1}}],["over`",{"2":{"53":1}}],["overflow",{"2":{"48":1}}],["overhead",{"2":{"22":1,"136":2}}],["override",{"2":{"6":1,"40":1}}],["overlapping",{"2":{"45":11,"54":4,"57":6}}],["overlap",{"2":{"3":4,"6":4,"9":1,"45":2,"54":8,"57":2,"75":1,"84":1,"97":2,"102":5,"103":6,"106":1,"143":1}}],["overlaps",{"0":{"101":1,"102":1},"1":{"102":1,"103":1},"2":{"0":10,"3":5,"6":13,"31":1,"54":1,"101":1,"102":3,"103":30,"127":1,"175":1}}],["over",{"2":{"1":1,"6":3,"36":2,"37":1,"44":3,"45":5,"50":1,"53":1,"54":11,"57":1,"62":1,"75":1,"86":1,"89":1,"97":15,"103":2,"106":1,"116":1,"136":22,"169":3}}],["opposed",{"2":{"174":1}}],["opposite",{"2":{"3":5,"6":5,"45":2,"52":1,"54":2,"57":1,"72":2,"75":1,"85":2,"100":2,"106":1}}],["ops",{"2":{"136":1}}],["open",{"2":{"45":1,"138":1,"170":1}}],["operates",{"2":{"136":1,"137":1,"143":1}}],["operate",{"2":{"18":1,"29":1,"136":1}}],["operations",{"0":{"23":1},"2":{"23":1,"26":1,"54":1,"57":1,"129":1}}],["operation",{"2":{"6":3,"45":1,"129":1,"142":2,"145":2,"166":2}}],["optimisation",{"2":{"97":1}}],["optimise",{"2":{"86":1}}],["optimal",{"2":{"6":1,"63":1}}],["options",{"2":{"14":1,"45":1}}],["optional",{"2":{"4":5,"6":6,"34":1,"37":2,"50":1,"66":2}}],["op",{"2":{"1":3,"6":3,"19":2,"44":1,"136":35}}],["on=2",{"2":{"97":1}}],["on`",{"2":{"97":1}}],["once",{"2":{"86":1,"103":1,"127":1}}],["onto",{"2":{"66":1}}],["ones",{"2":{"144":1}}],["oneunit",{"2":{"40":1}}],["one",{"2":{"1":1,"3":9,"6":14,"23":1,"34":4,"37":2,"39":1,"40":1,"44":1,"45":5,"50":3,"51":1,"52":1,"53":1,"54":32,"56":2,"57":2,"58":1,"65":2,"74":1,"81":1,"86":1,"88":1,"97":18,"102":1,"103":18,"105":1,"106":1,"112":1,"115":2,"116":2,"119":3,"120":2,"121":2,"122":1,"123":1,"126":1,"127":5,"136":1,"144":1,"148":1,"152":1,"160":1,"161":1,"170":1,"175":1}}],["on",{"0":{"170":1},"2":{"1":2,"4":3,"6":11,"9":1,"18":1,"20":1,"23":2,"25":3,"27":3,"29":2,"34":5,"37":3,"39":1,"40":2,"44":3,"45":28,"48":1,"50":8,"51":1,"52":5,"53":1,"54":4,"56":1,"57":2,"63":1,"65":1,"66":3,"69":2,"74":1,"75":7,"77":2,"78":3,"79":3,"80":1,"86":4,"89":6,"91":4,"92":1,"93":1,"97":125,"103":9,"106":7,"108":2,"109":1,"110":1,"116":7,"118":2,"127":3,"129":1,"131":1,"136":15,"137":1,"139":1,"142":1,"143":1,"150":1,"152":1,"158":1,"165":2,"168":1,"170":3,"171":1,"173":1,"174":1,"175":4,"176":1,"177":2,"178":2}}],["only",{"2":{"0":1,"5":1,"6":11,"23":1,"37":2,"39":2,"40":1,"41":1,"44":2,"45":4,"48":1,"50":3,"51":1,"53":1,"54":1,"56":1,"63":3,"66":2,"69":3,"102":3,"103":1,"115":1,"127":2,"136":2,"144":1,"150":1,"151":1,"153":2,"163":1,"166":2,"171":1,"177":1,"178":1}}],["often",{"2":{"170":1}}],["offers",{"2":{"169":1}}],["offer",{"2":{"152":1}}],["offset",{"2":{"34":8,"69":1}}],["off",{"2":{"4":1,"6":1,"45":4,"69":1,"97":6,"136":1}}],["of",{"0":{"61":1},"2":{"1":7,"3":29,"4":66,"5":5,"6":194,"7":2,"9":4,"17":3,"18":5,"19":1,"20":2,"22":1,"23":2,"24":2,"25":1,"26":1,"27":1,"29":3,"33":1,"34":38,"36":5,"37":28,"38":9,"39":1,"40":13,"41":1,"43":3,"44":12,"45":84,"48":5,"49":5,"50":31,"51":12,"52":13,"53":10,"54":48,"56":9,"57":20,"58":5,"62":3,"63":3,"65":6,"66":18,"68":2,"69":19,"71":4,"72":5,"74":6,"75":18,"77":1,"78":5,"79":5,"80":1,"81":2,"82":1,"85":5,"86":1,"88":3,"89":14,"91":1,"92":1,"93":1,"95":2,"96":1,"97":85,"99":1,"100":3,"102":1,"103":13,"105":4,"106":18,"108":3,"109":6,"110":6,"111":4,"112":1,"113":1,"115":2,"116":15,"118":3,"119":7,"120":5,"121":1,"122":2,"123":1,"125":2,"126":3,"127":19,"128":2,"129":3,"131":1,"134":5,"135":2,"136":27,"137":1,"138":1,"142":2,"143":4,"145":4,"147":3,"148":1,"150":2,"151":2,"152":5,"153":2,"156":8,"158":4,"159":2,"160":1,"162":1,"164":2,"166":4,"167":2,"169":6,"170":4,"171":2,"172":1,"173":4,"175":3,"176":4,"177":2}}],["org",{"2":{"51":1,"53":1,"56":1,"97":2,"158":1}}],["organise",{"2":{"10":1}}],["orange",{"2":{"47":1,"65":1,"68":2,"71":2,"88":2,"102":2,"105":2}}],["oro",{"2":{"11":2}}],["originate",{"2":{"57":1}}],["originals",{"2":{"22":1}}],["original",{"2":{"6":4,"18":1,"22":1,"45":10,"48":5,"51":1,"53":1,"57":4,"134":1,"136":3,"141":1,"147":2,"153":1,"155":4,"156":1}}],["orient",{"0":{"13":1},"1":{"14":1,"15":1},"2":{"13":7,"14":12,"45":15,"54":53}}],["orientation",{"0":{"124":1},"1":{"125":1,"126":1},"2":{"6":2,"10":1,"31":1,"37":1,"45":10,"50":2,"51":1,"53":2,"54":2,"56":1,"97":16,"125":1,"156":1}}],["ordered",{"2":{"36":1}}],["order",{"0":{"62":1},"2":{"1":4,"3":1,"4":2,"6":7,"34":1,"36":1,"37":2,"40":1,"45":4,"54":1,"57":1,"62":4,"63":1,"66":2,"69":3,"72":1,"75":1,"85":1,"100":1,"136":2,"148":2,"156":1,"175":1}}],["or",{"0":{"24":1},"2":{"1":11,"3":3,"4":10,"6":54,"18":1,"20":1,"22":1,"23":1,"25":1,"27":1,"29":2,"31":1,"34":4,"37":1,"40":1,"41":1,"43":2,"44":4,"45":24,"48":1,"49":1,"51":1,"52":3,"53":2,"54":9,"56":1,"57":2,"58":1,"63":1,"65":2,"66":4,"69":3,"71":1,"75":1,"77":2,"78":1,"79":1,"80":1,"81":1,"82":1,"88":2,"91":2,"92":3,"93":2,"94":1,"95":1,"96":1,"97":26,"99":2,"100":1,"102":1,"103":2,"106":1,"108":2,"112":1,"113":1,"115":1,"116":1,"122":1,"123":1,"125":2,"126":3,"127":7,"129":3,"131":1,"133":2,"135":1,"136":9,"137":1,"139":1,"141":5,"142":2,"148":2,"149":1,"150":2,"152":2,"153":2,"154":1,"156":3,"158":2,"160":2,"162":1,"164":3,"167":2,"175":1,"177":2}}],["est",{"2":{"177":1}}],["essentially",{"2":{"164":1}}],["especially",{"2":{"6":1,"18":1,"23":1,"127":1}}],["effects",{"2":{"136":3}}],["efficiently",{"2":{"20":1}}],["efficient",{"2":{"6":1,"40":1,"51":2,"53":2,"56":2,"63":1,"139":1}}],["e2",{"2":{"97":4}}],["e1",{"2":{"97":8}}],["euclid",{"2":{"50":2,"66":11,"97":1,"157":1}}],["euclidean",{"2":{"4":1,"6":1,"40":13,"66":6,"153":1}}],["everything",{"2":{"156":1}}],["every",{"2":{"45":1,"69":2,"134":1,"166":1}}],["evenly",{"2":{"176":1}}],["eventually",{"2":{"45":1}}],["even",{"2":{"37":2,"50":1,"54":1,"66":1,"69":1,"129":1,"138":1,"143":1}}],["evaluated",{"2":{"175":1}}],["eval",{"2":{"31":2,"136":2}}],["epsg",{"2":{"170":5,"171":8}}],["eps",{"2":{"34":2,"54":14}}],["eponymous",{"2":{"6":1,"152":1}}],["e",{"2":{"9":1,"22":1,"41":1,"127":1,"134":1,"136":2,"169":2,"170":1,"173":1}}],["ellipsoid",{"2":{"174":1}}],["eltype",{"2":{"127":4}}],["elements",{"2":{"81":1,"82":1,"95":1,"96":1,"103":1,"112":1,"113":1,"122":1,"123":1}}],["element",{"2":{"6":6,"33":1,"45":4,"48":2,"51":1,"53":1,"54":1,"56":3,"151":1,"170":1}}],["elsewhere",{"2":{"48":1}}],["elseif",{"2":{"45":5,"50":7,"51":1,"53":1,"54":14,"56":2,"57":1,"86":3,"97":10,"126":1,"127":2,"145":1,"158":2,"160":2}}],["else",{"2":{"3":6,"6":6,"34":1,"40":2,"45":19,"48":1,"50":9,"52":2,"54":9,"56":1,"57":9,"86":2,"97":17,"103":8,"127":20,"136":8,"139":1,"147":1,"149":1,"156":2,"158":4,"160":2,"161":1,"162":1,"166":1}}],["etc",{"2":{"6":1,"20":2,"36":1,"63":1,"164":1,"173":1}}],["empty",{"2":{"4":2,"6":6,"34":2,"45":2,"51":1,"53":1,"54":2,"56":1,"127":2}}],["embedding",{"0":{"135":1,"146":1}}],["embedded",{"0":{"171":1},"2":{"127":1,"135":3,"168":1,"171":1}}],["embed",{"2":{"0":2,"4":1,"6":1,"135":1,"146":2}}],["errors",{"2":{"31":1,"54":1,"153":1}}],["error",{"0":{"149":1},"2":{"4":1,"6":4,"7":1,"18":1,"31":6,"40":1,"41":4,"45":2,"54":2,"55":1,"69":2,"127":1,"134":1,"141":2,"149":3,"152":5,"160":4,"166":3,"167":1}}],["edgekeys",{"2":{"127":3}}],["edge",{"2":{"3":1,"4":3,"6":4,"20":1,"31":1,"37":1,"43":1,"45":25,"50":13,"51":1,"53":1,"54":6,"56":1,"66":4,"69":1,"77":2,"92":2,"93":1,"97":7,"103":21,"108":2,"109":1,"110":1,"127":7,"167":2}}],["edges`",{"2":{"54":1}}],["edges",{"2":{"0":1,"4":2,"6":9,"45":12,"50":8,"52":3,"54":10,"57":3,"66":3,"68":2,"69":1,"71":1,"77":1,"78":3,"79":7,"80":3,"88":1,"91":3,"94":1,"97":3,"103":20,"105":1,"108":1,"127":22,"167":29}}],["earlier",{"2":{"169":3}}],["earth",{"2":{"6":2,"25":1,"27":1,"152":2,"156":1,"170":2,"175":1}}],["easiest",{"2":{"172":1}}],["easier",{"2":{"163":1,"165":1}}],["easily",{"2":{"129":1}}],["east",{"2":{"50":9}}],["easy",{"2":{"1":1,"6":1,"143":1,"161":1}}],["eachindex",{"2":{"34":1,"126":1,"127":3,"136":2,"157":1,"160":1}}],["each",{"2":{"3":2,"4":3,"6":6,"9":1,"18":2,"20":1,"34":4,"37":2,"38":4,"40":1,"45":5,"50":1,"54":3,"66":1,"69":2,"75":1,"89":1,"97":6,"102":1,"103":3,"106":1,"116":1,"126":1,"127":1,"136":1,"143":2,"156":1,"172":1,"173":1,"176":2,"177":2,"178":1}}],["equatorial",{"2":{"6":6,"152":4}}],["equality",{"2":{"45":1,"54":1,"175":1}}],["equal",{"2":{"3":2,"4":16,"6":19,"34":6,"54":1,"65":1,"66":4,"68":3,"69":22,"77":1,"91":1,"97":15,"102":1,"103":2,"108":1,"118":2,"138":1}}],["equals",{"0":{"67":1,"68":1},"1":{"68":1,"69":1},"2":{"0":17,"4":3,"6":19,"31":1,"34":2,"45":4,"48":2,"54":8,"66":1,"67":1,"68":2,"69":50,"77":1,"91":1,"97":10,"103":2,"108":1,"118":3,"175":1}}],["equivalent",{"2":{"3":1,"4":4,"6":6,"37":1,"45":1,"54":1,"57":1,"69":5,"75":1,"97":1}}],["enable",{"2":{"178":1}}],["enabled",{"2":{"175":1}}],["enabling",{"0":{"178":1}}],["enclosed",{"2":{"97":1}}],["encode",{"2":{"24":1}}],["encompasses",{"2":{"18":1,"97":1}}],["encounters",{"2":{"18":1}}],["en",{"2":{"97":1,"158":1}}],["envelope",{"2":{"54":2}}],["envelopes",{"2":{"54":2}}],["enough",{"2":{"45":1}}],["entirely",{"2":{"97":1}}],["entire",{"2":{"50":1,"97":4}}],["entry",{"2":{"45":11,"52":3,"54":4,"57":3,"127":1}}],["ent",{"2":{"45":19,"48":2}}],["enter",{"2":{"45":4}}],["ensuring",{"2":{"6":1,"150":1,"153":1}}],["ensure",{"2":{"6":3,"40":1,"51":1,"53":1,"56":1,"137":2,"140":1}}],["ensures",{"2":{"6":3,"139":1,"142":3,"145":2}}],["enumerate",{"2":{"13":2,"34":1,"45":10,"48":1,"50":1,"52":1,"57":2,"97":1,"127":2,"145":2,"160":1}}],["enum",{"2":{"6":2,"45":3,"53":3,"97":3}}],["endpt",{"2":{"158":3}}],["endpoints",{"2":{"45":3,"50":1,"52":1,"54":6,"57":1,"66":2,"97":11,"103":2,"115":1}}],["endpoint=3",{"2":{"45":1}}],["endpointtype",{"2":{"45":2}}],["endpoint",{"2":{"3":1,"6":2,"45":27,"53":1,"54":16,"66":2,"74":1,"97":3,"103":2,"156":4,"158":4,"169":1}}],["ending",{"2":{"45":1,"50":1}}],["end",{"2":{"1":1,"6":1,"9":1,"13":4,"14":3,"31":4,"34":18,"37":8,"40":35,"41":3,"44":10,"45":130,"48":9,"50":43,"51":8,"52":12,"53":5,"54":31,"55":1,"56":6,"57":24,"63":3,"66":19,"69":20,"81":2,"82":2,"86":20,"95":2,"96":2,"97":104,"103":21,"108":1,"112":2,"113":2,"118":1,"122":2,"123":2,"126":9,"127":44,"128":4,"129":1,"136":49,"137":1,"139":5,"141":3,"145":18,"147":4,"148":1,"149":2,"152":8,"153":8,"156":7,"157":6,"158":30,"159":3,"160":27,"161":4,"162":4,"164":1,"165":3,"166":4,"167":19}}],["enforce",{"2":{"0":1,"6":2,"166":3}}],["exits",{"2":{"45":1}}],["exit",{"2":{"45":32,"48":2,"52":3,"54":3,"57":2}}],["existingnodes",{"2":{"127":3}}],["existing",{"2":{"45":3,"56":1,"127":1,"170":2,"172":1}}],["exists",{"2":{"45":1,"50":1,"54":1}}],["exist",{"2":{"6":1,"45":1,"54":3,"166":1}}],["excluding",{"2":{"94":1,"97":1,"108":2}}],["exclude",{"2":{"86":9}}],["exclusively",{"2":{"120":1}}],["exclusive",{"2":{"50":1,"54":2}}],["exc",{"2":{"41":2,"149":2,"152":2}}],["excellent",{"2":{"23":1}}],["except",{"2":{"18":1,"19":1}}],["excess",{"2":{"5":1,"6":1,"40":1}}],["exp10",{"2":{"152":1,"156":2}}],["expressed",{"2":{"38":2}}],["express",{"2":{"38":1}}],["experimental",{"2":{"31":3}}],["expect",{"2":{"1":1,"99":1,"148":1}}],["explain",{"2":{"26":1}}],["explanations",{"2":{"26":3}}],["explicitly",{"2":{"6":1,"18":1,"24":1,"34":2,"37":1,"40":1,"41":1,"66":2,"69":1,"149":1,"152":1,"153":1}}],["expose",{"2":{"58":1}}],["exposes",{"2":{"17":1}}],["export",{"2":{"38":1,"150":1,"171":1,"173":1}}],["exponential",{"2":{"9":1}}],["ext2",{"2":{"97":3}}],["ext1",{"2":{"97":3}}],["ext",{"2":{"39":15,"45":10,"48":3,"50":2,"51":8,"53":8,"54":18,"56":8,"57":14,"86":7,"97":7}}],["extrema",{"2":{"127":1,"167":1}}],["extreem",{"2":{"34":10}}],["extracts",{"2":{"63":1}}],["extract",{"2":{"63":1,"127":1,"136":3,"156":1}}],["extra",{"2":{"6":3,"45":1,"56":1,"150":1,"152":2,"153":1}}],["external",{"2":{"37":1,"97":2}}],["exteriors",{"2":{"9":1,"53":2,"56":2,"127":1}}],["exterior",{"2":{"3":4,"4":2,"6":10,"34":1,"36":1,"37":1,"39":1,"40":36,"44":2,"45":4,"51":2,"56":3,"57":14,"66":1,"69":2,"71":1,"72":1,"75":3,"85":1,"89":2,"97":9,"105":1,"106":3,"109":3,"110":3,"116":2,"126":6,"127":6,"139":3,"140":1,"142":1,"146":1,"169":2}}],["extending",{"2":{"103":1}}],["extended",{"2":{"66":1}}],["extensions",{"2":{"58":1,"173":1}}],["extension",{"2":{"1":1,"6":1,"40":1,"41":1,"63":1,"74":1,"128":1,"148":3,"149":2,"152":1,"153":1,"154":1,"173":1}}],["extent=true",{"2":{"146":1}}],["extent=nothing",{"2":{"136":1}}],["extent=",{"2":{"136":3}}],["extent=false",{"2":{"136":1,"156":1}}],["extent=gi",{"2":{"127":3}}],["extent`",{"2":{"133":1,"146":1}}],["extents",{"2":{"4":3,"6":3,"31":5,"50":1,"54":3,"97":5,"103":1,"127":3,"136":2,"146":2,"167":2}}],["extent",{"0":{"146":1},"2":{"0":2,"1":4,"4":3,"6":11,"24":1,"31":2,"39":1,"49":1,"50":1,"54":10,"97":4,"103":2,"127":12,"133":3,"135":4,"136":28,"146":2,"156":1,"165":1,"167":7}}],["exactly",{"2":{"160":1}}],["exactpredicates",{"2":{"7":1,"13":2,"14":2,"31":1}}],["exact",{"2":{"3":5,"6":5,"7":2,"12":1,"13":1,"45":36,"48":7,"50":6,"51":5,"53":5,"54":7,"55":1,"56":5,"57":7,"72":2,"75":3,"77":1,"78":3,"79":3,"80":1,"85":2,"86":1,"89":2,"91":1,"92":3,"93":2,"94":1,"97":24,"100":2,"103":3,"106":3,"108":1,"109":3,"110":3,"111":1,"116":2,"118":1,"119":3,"120":1,"121":1,"127":1,"144":1}}],["examples",{"0":{"151":1,"155":1},"2":{"3":8,"4":1,"6":11,"26":2,"69":1,"72":1,"75":1,"85":1,"86":1,"89":1,"103":1,"106":1,"116":1,"126":2,"167":1}}],["example",{"0":{"39":1,"59":1,"138":1,"144":1,"176":1,"177":1},"1":{"60":1},"2":{"1":3,"3":2,"6":13,"11":1,"20":1,"23":2,"33":1,"36":1,"39":1,"43":1,"44":1,"47":1,"48":1,"49":1,"51":1,"53":1,"54":1,"56":1,"65":1,"68":1,"69":1,"71":1,"74":1,"84":1,"86":1,"88":1,"97":1,"99":1,"100":1,"102":1,"105":1,"115":1,"126":1,"127":8,"129":1,"136":2,"138":1,"140":1,"143":1,"144":1,"147":1,"155":1,"156":2,"161":1,"166":1,"176":1,"178":1}}],["either",{"2":{"1":2,"3":1,"6":4,"22":1,"25":1,"27":1,"45":9,"51":1,"53":1,"54":2,"56":1,"57":1,"65":1,"75":1,"97":5,"99":1,"106":1,"115":1,"116":1,"127":1,"136":3,"141":1,"175":1}}],["lj",{"2":{"127":2}}],["lrs",{"2":{"156":2}}],["lr",{"2":{"127":3}}],["lp",{"2":{"97":2}}],["lstart",{"2":{"97":2}}],["ls",{"2":{"97":12}}],["ll",{"2":{"17":1,"39":1,"151":2,"156":1,"170":1,"172":1}}],["l",{"2":{"14":4,"40":6,"86":2,"97":32}}],["lgeos",{"2":{"156":1}}],["lg",{"2":{"13":1,"14":1,"15":2,"62":4,"152":9,"156":17}}],["l305",{"2":{"6":1}}],["loudly",{"2":{"136":1}}],["log10",{"2":{"152":2,"156":4}}],["log",{"2":{"131":3,"132":1,"151":2}}],["location",{"2":{"45":1,"97":6}}],["local",{"2":{"34":3,"37":1,"45":4,"52":1,"57":1,"127":1}}],["loose",{"2":{"137":1}}],["lookup",{"2":{"127":1,"136":1}}],["looks",{"2":{"43":1}}],["look",{"2":{"36":2,"127":2,"138":1,"151":1}}],["looping",{"2":{"127":1}}],["loop",{"2":{"34":1,"40":2,"44":3,"45":8,"50":1,"54":1,"57":1,"97":5,"127":3,"158":1}}],["lower",{"2":{"6":1,"7":1,"127":1,"176":1}}],["lon",{"2":{"6":2,"151":1,"152":2}}],["longitude",{"2":{"170":2}}],["long",{"2":{"6":1,"54":1,"152":1,"177":1}}],["longer",{"2":{"6":3,"150":1,"152":2,"153":1}}],["lots",{"2":{"170":1}}],["lot",{"2":{"6":1,"23":1,"34":1,"37":1,"44":1,"50":1,"66":1,"69":1,"103":1,"129":1,"151":1,"166":2}}],["load",{"2":{"136":2,"156":1,"168":2}}],["loading",{"2":{"41":1,"149":1,"152":1}}],["loads",{"2":{"5":1,"6":1,"40":1}}],["loaded",{"2":{"1":1,"41":3,"148":1,"149":2,"152":2}}],["laptop",{"2":{"177":1}}],["land",{"2":{"170":8}}],["layers",{"2":{"134":1}}],["label",{"2":{"14":4,"15":2,"60":2,"62":1,"65":1,"127":3,"151":2,"155":2,"156":2}}],["labels",{"2":{"13":2,"127":1}}],["lazily",{"2":{"6":1,"131":1,"136":1}}],["latitude",{"2":{"170":2}}],["later",{"2":{"37":1,"62":1,"127":1}}],["lat",{"2":{"6":3,"151":1,"152":3}}],["larger",{"2":{"45":1,"56":1,"160":1}}],["large",{"2":{"6":8,"40":1,"156":2,"173":1,"177":1}}],["lastindex",{"2":{"160":1}}],["last",{"2":{"4":3,"6":3,"9":1,"34":11,"37":2,"39":2,"45":9,"50":4,"66":7,"69":5,"97":20,"118":1,"127":8,"138":1,"145":2,"158":1}}],["lt",{"2":{"6":6,"54":4,"151":1}}],["len",{"2":{"158":7}}],["length",{"2":{"0":1,"5":1,"6":5,"9":1,"18":1,"40":32,"42":1,"43":1,"44":22,"45":11,"48":2,"50":1,"51":2,"53":1,"54":1,"56":1,"57":1,"97":1,"127":10,"136":3,"145":2,"151":1,"157":1,"158":1,"159":1,"160":7}}],["legend",{"2":{"156":4}}],["le",{"2":{"97":10}}],["leaving",{"2":{"138":1}}],["leaf",{"2":{"136":4}}],["leading",{"2":{"169":1}}],["lead",{"2":{"54":1,"138":1}}],["least",{"2":{"3":4,"6":4,"45":1,"54":1,"57":2,"97":14,"103":6,"106":1,"112":1,"116":1,"119":3,"120":2,"121":2,"122":1,"123":1,"126":1}}],["leftover",{"2":{"45":1}}],["left=1",{"2":{"45":1}}],["left",{"2":{"40":1,"45":5,"126":1,"127":2,"158":17,"160":5,"175":1}}],["lets",{"2":{"37":1}}],["let",{"2":{"36":1,"43":1,"97":1,"127":3,"151":1,"169":6,"170":4,"171":3,"172":2,"173":2,"178":1}}],["levels",{"2":{"6":1,"127":1,"134":1,"164":1}}],["level",{"2":{"6":1,"7":1,"9":1,"18":2,"20":1,"29":1,"134":1,"136":2,"137":1,"139":1,"141":4,"142":1,"143":1,"145":2,"171":2}}],["less",{"2":{"3":1,"6":7,"34":1,"37":1,"40":1,"44":1,"50":1,"66":1,"69":1,"86":1,"103":1,"127":1,"156":1,"157":1}}],["l289",{"2":{"6":1}}],["l2",{"2":{"3":4,"4":4,"6":8,"68":4,"69":12,"71":8,"85":2,"88":5,"102":4,"105":8,"115":3,"116":2}}],["l195",{"2":{"6":1}}],["l177",{"2":{"6":1}}],["l1",{"2":{"3":6,"4":4,"6":10,"68":4,"69":12,"71":8,"74":4,"75":2,"84":4,"85":2,"88":5,"102":4,"105":8,"115":3,"116":2}}],["li",{"2":{"127":2}}],["lie",{"2":{"54":1}}],["lies",{"2":{"45":3,"176":1}}],["limitations",{"2":{"54":1}}],["limits",{"2":{"39":1}}],["limited",{"2":{"6":1,"150":1,"153":1}}],["library",{"2":{"48":1,"173":1}}],["libraries",{"2":{"37":1,"143":1,"173":1}}],["libgeos",{"2":{"6":2,"13":1,"14":1,"15":1,"23":1,"37":1,"41":5,"62":1,"128":1,"152":7,"156":4,"166":2}}],["little",{"2":{"26":1}}],["literate",{"2":{"26":1,"31":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"48":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"147":1,"149":1,"153":1,"160":1,"161":1,"162":1,"166":1,"167":1}}],["lift",{"2":{"14":2}}],["lin",{"2":{"152":5}}],["linked",{"2":{"58":1}}],["linrange",{"2":{"13":2,"14":5,"39":2,"65":1,"127":2,"152":1,"156":2}}],["linering",{"2":{"170":1}}],["linewidth",{"2":{"36":1,"169":1}}],["linesegment",{"2":{"126":2,"153":1}}],["lines",{"0":{"78":1,"92":1,"109":1,"119":1},"2":{"3":1,"4":4,"6":5,"45":3,"47":1,"54":9,"60":1,"61":2,"62":2,"65":1,"68":4,"69":4,"71":3,"74":1,"75":1,"84":2,"86":1,"88":3,"97":2,"99":3,"102":4,"103":2,"105":3,"106":1,"115":4,"127":3,"154":1,"169":4,"174":2}}],["linestrings",{"2":{"4":2,"6":2,"9":1,"69":2,"125":1,"137":1,"169":1}}],["linestringtrait",{"2":{"3":2,"4":4,"6":9,"11":3,"34":1,"44":4,"53":2,"66":2,"69":8,"77":1,"78":4,"79":1,"86":6,"91":1,"92":5,"103":4,"108":1,"109":4,"110":1,"118":1,"119":4,"120":1,"134":1,"141":2,"142":1,"153":2,"164":2}}],["linestring",{"2":{"3":5,"4":6,"6":15,"18":1,"20":1,"34":2,"44":2,"66":4,"68":2,"69":2,"71":2,"72":1,"77":1,"78":3,"85":2,"88":2,"89":1,"91":1,"92":4,"97":2,"102":2,"105":2,"106":1,"108":1,"109":4,"110":1,"118":1,"119":3,"120":1,"126":7,"136":4,"167":3,"169":5,"174":1}}],["linetrait",{"2":{"3":2,"4":4,"6":6,"34":1,"45":2,"48":2,"53":2,"66":2,"69":8,"77":1,"78":4,"79":1,"91":1,"92":5,"103":4,"108":1,"109":4,"110":1,"118":1,"119":4,"120":1}}],["line2",{"2":{"3":3,"6":7,"53":2,"54":2,"86":5,"99":3,"100":2,"103":3,"126":5}}],["line1",{"2":{"3":4,"6":8,"53":2,"54":2,"86":5,"99":3,"100":2,"103":5,"126":5}}],["linea",{"2":{"1":1,"6":1,"161":1}}],["linearmap",{"2":{"156":1}}],["linearalgebra",{"2":{"31":1}}],["linear",{"2":{"4":7,"6":10,"9":1,"37":2,"40":1,"43":1,"44":3,"50":1,"54":1,"66":5,"69":8,"79":1,"97":2,"109":1,"119":1,"120":2,"125":1,"136":2,"139":3,"151":5,"152":3,"153":4}}],["linearr",{"2":{"1":1,"6":1,"161":1}}],["linearrings",{"2":{"9":1,"93":1,"127":6,"137":1,"169":1}}],["linearringtrait",{"2":{"4":4,"6":6,"11":3,"34":3,"37":2,"44":4,"45":4,"53":2,"66":2,"69":8,"77":1,"78":1,"79":4,"91":1,"92":2,"93":3,"108":1,"109":1,"110":4,"118":1,"119":1,"120":4,"141":1,"153":2,"156":1,"164":2}}],["linearring",{"2":{"1":10,"3":2,"4":1,"6":15,"34":2,"44":2,"45":1,"63":1,"66":1,"77":1,"79":3,"91":1,"92":1,"93":2,"97":2,"103":4,"108":1,"110":4,"118":1,"119":1,"120":3,"126":1,"127":3,"136":5,"137":1,"138":6,"139":1,"144":13,"156":1,"161":8,"169":24,"170":6,"171":8,"176":2}}],["linearsegments",{"2":{"0":1,"6":4,"150":1,"151":1,"152":3,"153":5}}],["line",{"0":{"97":1},"2":{"0":1,"3":13,"4":9,"6":52,"23":1,"33":2,"34":7,"43":3,"44":10,"45":12,"47":6,"48":18,"50":8,"53":8,"54":67,"57":6,"66":11,"69":5,"72":2,"74":2,"75":1,"77":2,"78":11,"79":8,"84":1,"86":11,"89":2,"91":1,"92":9,"93":4,"97":141,"99":2,"100":2,"102":3,"103":12,"106":2,"108":2,"109":10,"110":7,"115":2,"116":2,"118":1,"119":10,"120":3,"126":6,"127":2,"153":1,"156":1,"157":1,"158":4,"159":1,"167":3,"169":3}}],["lineorientation",{"2":{"0":1,"6":2,"53":2}}],["lists",{"2":{"20":1,"45":3,"103":1}}],["listed",{"2":{"6":1,"34":1,"156":1}}],["list",{"2":{"6":16,"9":1,"34":20,"45":233,"48":20,"51":14,"52":8,"53":13,"54":5,"56":13,"57":1,"177":2}}],["likely",{"2":{"134":1}}],["like",{"0":{"55":1},"2":{"1":2,"6":9,"17":1,"18":2,"19":1,"20":1,"23":1,"24":1,"29":1,"37":1,"39":1,"40":1,"43":1,"50":1,"51":1,"53":1,"56":1,"63":1,"65":1,"66":1,"69":1,"129":2,"136":2,"141":2,"142":1,"150":1,"151":1,"164":2,"170":2}}],["iah",{"2":{"174":2}}],["image",{"2":{"127":1}}],["impossible",{"2":{"48":1,"102":1}}],["important",{"2":{"151":1}}],["import",{"2":{"1":3,"6":5,"13":2,"14":2,"15":1,"31":7,"33":1,"36":1,"41":1,"43":1,"48":1,"49":1,"51":1,"53":1,"54":1,"56":1,"65":1,"68":1,"69":1,"71":1,"72":1,"74":1,"75":1,"84":1,"85":1,"86":1,"88":1,"89":1,"99":1,"100":1,"102":1,"103":1,"105":1,"106":1,"115":1,"116":1,"126":3,"136":2,"149":1,"152":2,"155":2,"156":3,"161":2,"167":1,"168":5}}],["implements",{"2":{"166":1}}],["implementing",{"2":{"6":1,"156":1}}],["implement",{"2":{"6":1,"17":1,"23":1,"34":1,"37":1,"40":1,"44":1,"50":1,"63":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1,"129":1,"140":1,"141":3,"142":1}}],["implementation",{"0":{"34":1,"37":1,"44":1,"48":1,"50":1,"63":1,"66":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"133":1,"139":1,"145":1,"153":1},"2":{"6":1,"34":3,"37":3,"40":1,"44":3,"50":3,"56":1,"66":3,"69":3,"72":1,"75":2,"85":1,"89":2,"100":1,"103":3,"106":2,"116":2,"127":2,"128":1,"148":1,"156":1,"166":1}}],["implementations",{"2":{"6":1,"75":1,"89":1,"106":1,"116":1,"128":1,"154":1,"166":3}}],["implemented",{"0":{"128":1},"2":{"1":1,"6":2,"31":1,"37":1,"40":3,"48":2,"52":2,"54":2,"57":2,"63":1,"66":2,"128":1,"129":2,"141":2,"148":1,"154":1}}],["improvements",{"2":{"9":2,"10":1}}],["improve",{"2":{"4":1,"6":1,"146":1}}],["i=2",{"2":{"126":1}}],["ipoints",{"2":{"97":4}}],["ip",{"2":{"69":2}}],["ipt",{"2":{"45":8}}],["ihole",{"2":{"69":2}}],["ih",{"2":{"57":20}}],["i2",{"2":{"50":2}}],["i1",{"2":{"50":2}}],["ii",{"2":{"45":8}}],["io",{"2":{"41":5,"149":5,"152":5}}],["i+1",{"2":{"40":8,"127":1,"158":2,"160":1}}],["i",{"2":{"9":1,"13":4,"22":1,"34":14,"37":1,"40":16,"45":28,"50":4,"52":2,"56":2,"57":4,"66":2,"69":8,"86":7,"97":28,"126":14,"127":17,"136":14,"153":2,"157":3,"158":12,"160":28,"167":2,"169":2,"170":1,"177":3}}],["id",{"2":{"172":1}}],["identical",{"2":{"136":1,"144":1}}],["identity",{"2":{"127":4,"136":2,"146":1}}],["ideal",{"2":{"127":1}}],["idea",{"2":{"6":1,"20":1,"25":1,"27":1,"40":1,"129":1}}],["idx`",{"2":{"45":1}}],["idx",{"2":{"34":6,"45":167,"48":23,"50":9,"51":5,"53":5,"56":2,"145":34,"158":51}}],["id=",{"2":{"6":2}}],["ignored",{"2":{"6":1,"127":1}}],["ignore",{"2":{"6":1,"127":2}}],["i>",{"2":{"6":2}}],["i>method",{"2":{"6":2}}],["innerjoin",{"2":{"176":1,"177":1}}],["inner",{"2":{"97":6,"136":3,"175":1}}],["inline",{"2":{"97":4,"126":1,"136":21,"165":2}}],["in=1",{"2":{"97":1}}],["in`",{"2":{"97":1}}],["inject",{"0":{"55":1},"2":{"149":1}}],["inaccuracies",{"2":{"54":1}}],["ind",{"2":{"177":2}}],["individual",{"2":{"171":1}}],["indicate",{"2":{"136":1}}],["indicates",{"2":{"20":1}}],["indices",{"2":{"45":4,"136":4,"160":16}}],["indeed",{"2":{"138":1}}],["index",{"2":{"40":8,"45":11,"97":1,"136":1,"158":1}}],["inds",{"2":{"127":3}}],["inplace",{"2":{"40":1}}],["inputs",{"2":{"6":1,"45":1,"69":1,"72":1,"85":1,"100":1,"160":1}}],["input",{"2":{"6":12,"34":1,"48":1,"51":1,"53":1,"54":1,"56":1,"127":1,"129":1,"152":3,"153":2,"157":1,"158":1,"159":1,"170":1}}],["inbounds",{"2":{"40":16,"66":5,"97":1}}],["inspiration",{"2":{"48":1}}],["inspired",{"2":{"47":1,"48":2}}],["inside",{"2":{"34":3,"43":1,"45":3,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":2,"65":3,"66":1,"77":1,"97":1,"105":1,"108":1,"127":2}}],["insertion",{"2":{"45":1}}],["insert",{"2":{"34":1,"158":1}}],["instability",{"2":{"24":2}}],["instantiating",{"2":{"20":1}}],["instead",{"2":{"18":1,"24":1}}],["instructs",{"2":{"6":1,"166":2}}],["init=nothing",{"2":{"136":1}}],["init=typemax",{"2":{"66":2}}],["init=zero",{"2":{"37":1,"50":1}}],["initial",{"2":{"54":2,"152":1}}],["initially",{"2":{"45":1}}],["initialize",{"2":{"40":3,"44":2,"45":1,"54":1}}],["init",{"2":{"19":1,"31":1,"34":1,"44":2,"136":30,"152":4}}],["incorrect",{"2":{"137":1,"138":1}}],["increase",{"2":{"45":1,"97":1}}],["increasing",{"2":{"6":1,"156":1}}],["increment",{"2":{"40":5}}],["including",{"2":{"34":1,"45":2,"54":1,"66":1,"77":1,"78":1,"79":1,"80":1,"97":2}}],["include",{"2":{"31":41,"34":1,"45":1,"58":1,"66":2,"156":2,"165":1,"171":2,"172":1}}],["included",{"2":{"6":2,"57":2,"142":2,"145":2,"171":1}}],["includes",{"2":{"4":2,"6":2,"57":1,"66":2,"69":1,"97":1}}],["incircle",{"0":{"16":1}}],["investigate",{"2":{"127":1}}],["investigating",{"0":{"62":1}}],["inverted",{"2":{"6":1,"63":1}}],["invalid",{"2":{"20":1,"52":2,"138":1,"143":1,"144":1}}],["invoke",{"2":{"20":1}}],["involved",{"2":{"129":1}}],["involve",{"2":{"20":1}}],["involving",{"2":{"6":3,"51":1,"53":1,"56":1}}],["invocation",{"2":{"18":1}}],["ing",{"2":{"1":1,"6":2,"40":1,"161":1}}],["intr",{"2":{"45":28,"48":16,"50":9,"54":8}}],["intr2",{"2":{"45":2,"54":14}}],["intr1",{"2":{"45":3,"54":21,"97":2}}],["intrs",{"2":{"45":10,"54":5}}],["introduction",{"0":{"27":1},"1":{"28":1,"29":1,"30":1}}],["introducing",{"2":{"24":1}}],["introduces",{"2":{"24":1}}],["int",{"2":{"45":6,"57":7,"86":7,"153":1,"156":1,"158":5,"159":1,"160":1}}],["integrate",{"2":{"37":1}}],["integrating",{"2":{"37":1}}],["integrals",{"2":{"36":1}}],["integral",{"2":{"36":1}}],["intended",{"2":{"6":1,"141":2,"142":1}}],["intermediate",{"2":{"50":1}}],["inter2",{"2":{"50":15}}],["inter1",{"2":{"50":23}}],["interpreted",{"2":{"40":1}}],["interpolation",{"2":{"5":1,"6":1,"39":1,"40":2,"150":1}}],["interpolated",{"2":{"5":3,"6":3,"40":17,"150":1}}],["interpolate",{"2":{"0":2,"5":2,"6":4,"38":1,"39":2,"40":25}}],["interest",{"2":{"40":1,"66":1}}],["internal",{"2":{"39":1}}],["internals",{"2":{"24":1}}],["inter",{"2":{"6":3,"45":21,"48":1,"51":1,"53":5,"54":4}}],["interface",{"0":{"141":1},"2":{"6":3,"20":1,"58":1,"63":1,"136":1,"140":1,"141":4,"142":1,"156":1,"170":1}}],["interacted",{"2":{"97":1}}],["interaction",{"0":{"97":1},"2":{"97":2}}],["interactions",{"2":{"45":1,"57":3,"97":15}}],["interactive",{"2":{"13":1,"14":1}}],["interacting",{"2":{"6":1,"53":1,"97":2}}],["interacts",{"2":{"3":1,"6":1,"97":3,"115":1,"116":1,"119":3,"120":1,"121":1}}],["interact",{"2":{"3":2,"6":2,"56":1,"57":1,"88":1,"97":5,"100":1,"115":1,"116":1,"118":1,"119":2,"120":2,"121":1}}],["interior",{"2":{"3":6,"6":7,"34":9,"36":1,"40":7,"44":5,"45":1,"57":18,"71":1,"72":1,"74":1,"75":3,"78":5,"79":1,"80":2,"84":2,"85":1,"86":1,"89":2,"91":2,"92":6,"93":3,"97":15,"105":1,"106":3,"111":2,"115":1,"116":3,"119":1,"120":2,"121":2,"126":2,"139":1,"142":1}}],["interiors",{"2":{"3":6,"6":7,"40":20,"71":1,"72":1,"74":1,"84":1,"85":1,"88":1,"89":1,"94":1,"97":5,"99":1,"100":1,"105":1,"106":1,"109":3,"110":3,"115":1,"116":1,"118":1,"119":2,"120":1}}],["intersectingpolygons",{"2":{"6":3}}],["intersecting",{"0":{"143":1},"1":{"144":1,"145":1},"2":{"6":4,"31":1,"45":2,"57":2,"142":4,"143":1,"145":4}}],["intersections",{"0":{"54":1},"2":{"45":2,"50":2,"52":1,"53":2,"54":1,"57":1,"97":2}}],["intersection",{"0":{"53":1,"98":1},"1":{"99":1,"100":1},"2":{"0":2,"3":3,"6":19,"9":1,"15":4,"23":1,"31":1,"45":38,"48":3,"50":6,"51":4,"52":4,"53":15,"54":73,"56":2,"57":2,"86":2,"97":6,"99":1,"103":5}}],["intersect",{"2":{"3":8,"6":11,"45":4,"50":3,"51":2,"53":1,"54":1,"56":1,"57":5,"71":1,"72":2,"74":1,"75":1,"85":1,"89":1,"92":1,"94":1,"97":4,"99":2,"103":1,"105":1,"106":2,"109":3,"110":3,"144":1,"145":4}}],["intersects",{"0":{"99":1},"2":{"0":2,"3":3,"6":6,"31":1,"45":1,"54":2,"57":2,"86":2,"98":1,"99":4,"100":4,"103":5,"111":1,"145":2,"175":1}}],["into",{"2":{"5":1,"6":7,"17":1,"26":1,"34":1,"37":1,"40":1,"44":4,"45":2,"48":1,"51":1,"53":1,"97":1,"127":4,"131":1,"136":6,"145":1,"156":1,"164":1,"167":2,"169":2,"175":1}}],["int64",{"2":{"1":6,"6":6,"138":6,"157":1,"158":1,"160":1,"161":6,"169":14}}],["info",{"2":{"150":1}}],["information",{"0":{"171":1},"2":{"6":1,"29":1,"40":1,"45":2,"49":1,"54":1,"63":1,"97":1,"168":1,"171":3,"173":2}}],["infinity",{"2":{"97":1,"103":1}}],["inf",{"2":{"1":1,"9":1,"48":2,"157":1,"160":3}}],["in",{"0":{"23":1},"2":{"1":6,"3":3,"4":1,"5":4,"6":51,"7":1,"9":2,"13":6,"14":2,"17":2,"18":4,"20":1,"23":3,"24":2,"25":1,"26":3,"27":1,"29":1,"30":1,"31":2,"34":7,"36":1,"37":3,"38":2,"40":22,"41":1,"43":2,"44":5,"45":72,"48":6,"50":31,"51":9,"52":3,"53":5,"54":29,"56":11,"57":28,"62":1,"63":3,"65":6,"66":6,"68":1,"69":17,"71":2,"72":1,"75":10,"78":1,"79":1,"80":1,"81":1,"82":1,"85":1,"86":7,"89":9,"91":1,"92":1,"93":1,"95":1,"96":1,"97":135,"99":2,"100":1,"102":1,"103":11,"105":1,"106":10,"109":3,"110":3,"112":1,"113":1,"115":1,"116":11,"120":1,"122":1,"123":1,"126":4,"127":10,"128":3,"129":1,"131":3,"134":2,"135":1,"136":12,"140":1,"141":1,"142":2,"143":1,"145":7,"146":1,"147":2,"148":3,"149":1,"150":2,"151":2,"152":14,"153":7,"154":1,"156":5,"157":2,"158":4,"159":1,"160":5,"161":2,"162":1,"163":4,"164":1,"165":1,"166":4,"167":8,"168":1,"169":2,"170":6,"173":2,"175":4,"176":3,"177":1,"178":1}}],["itererable",{"2":{"167":1}}],["iter",{"2":{"136":31}}],["iterate",{"2":{"40":2,"134":1,"136":5}}],["iteration",{"2":{"37":1}}],["iterators",{"2":{"13":1,"40":1,"45":5,"50":3,"53":1,"57":2,"127":1,"136":11,"145":6,"153":1}}],["iterator",{"2":{"6":2,"45":4,"53":2,"131":2,"136":2}}],["iterabletype",{"2":{"136":10}}],["iterable",{"2":{"4":1,"6":3,"18":1,"37":1,"50":1,"63":1,"131":1,"136":37,"169":1}}],["iterables",{"2":{"1":2,"6":2,"22":1,"136":6}}],["ith",{"2":{"45":3,"57":7}}],["itself",{"2":{"50":1,"126":1,"134":1}}],["its",{"2":{"5":1,"6":10,"18":1,"36":1,"40":1,"45":2,"50":4,"57":1,"78":1,"131":1,"136":1,"140":1,"156":1,"157":1,"158":1,"159":3,"175":1}}],["it",{"2":{"1":4,"4":1,"6":19,"9":1,"18":11,"19":2,"20":1,"22":1,"29":3,"30":1,"33":1,"34":1,"36":2,"37":3,"39":1,"41":1,"44":2,"45":2,"49":1,"50":2,"51":1,"52":1,"53":1,"54":4,"56":1,"57":3,"62":2,"63":2,"66":3,"69":1,"74":2,"77":3,"91":3,"97":14,"102":1,"103":1,"108":3,"118":2,"125":1,"126":2,"127":4,"129":3,"131":3,"134":3,"135":1,"136":15,"138":1,"139":1,"140":1,"142":1,"143":1,"148":5,"151":2,"152":1,"156":1,"158":1,"163":1,"164":2,"165":1,"166":7,"170":3,"171":3,"173":3,"177":2,"178":2}}],["iff",{"2":{"136":1}}],["if",{"0":{"55":1},"2":{"1":5,"3":17,"4":19,"5":1,"6":74,"18":1,"22":2,"33":1,"34":15,"36":1,"37":6,"40":5,"41":3,"44":1,"45":95,"48":8,"50":36,"51":13,"52":12,"53":9,"54":44,"56":10,"57":22,"63":3,"65":2,"66":8,"68":2,"69":35,"71":1,"72":1,"74":1,"75":2,"77":4,"78":3,"79":3,"80":2,"81":1,"82":1,"84":1,"85":1,"86":9,"88":1,"89":3,"91":5,"92":4,"93":2,"94":2,"95":1,"96":1,"97":132,"99":1,"100":1,"102":4,"103":16,"105":1,"106":2,"108":5,"109":3,"110":3,"111":1,"112":1,"113":1,"115":1,"116":2,"118":4,"119":3,"120":2,"121":2,"122":1,"123":1,"126":5,"127":35,"131":1,"134":1,"136":21,"139":1,"141":1,"142":2,"143":1,"145":12,"146":1,"147":1,"148":3,"149":2,"152":6,"153":2,"156":1,"158":12,"160":12,"161":1,"162":1,"165":1,"166":2,"170":1,"173":1,"176":2,"177":1}}],["isolate",{"2":{"156":1}}],["isodd",{"2":{"48":1}}],["istable",{"2":{"136":2}}],["isequal",{"2":{"127":1}}],["iseven",{"2":{"97":1}}],["isempty",{"2":{"37":1,"40":4,"50":1,"51":1,"52":2,"53":1,"127":1,"141":1,"158":1}}],["isparallel",{"2":{"97":1,"126":8}}],["is3d",{"2":{"69":1,"136":1,"147":1,"161":1,"162":1,"167":10}}],["issue",{"2":{"45":1}}],["issues",{"2":{"25":1,"27":1}}],["isa",{"2":{"18":1,"40":9,"136":4,"167":1}}],["isnothing",{"2":{"41":1,"45":9,"48":1,"52":2,"54":2,"57":2,"69":1,"127":1,"149":1,"152":1,"156":1,"157":1,"158":5,"159":1,"160":6}}],["isn",{"2":{"6":1,"37":1,"45":4,"48":1,"50":1,"52":1,"54":3,"57":2,"66":3,"69":1,"74":1,"97":9,"103":1,"156":1,"166":1}}],["isconcave",{"0":{"126":1},"2":{"0":1,"6":2,"62":1,"124":1,"126":3}}],["isclockwise",{"0":{"125":1},"2":{"0":1,"6":2,"50":1,"124":1,"126":5,"127":2}}],["is",{"0":{"25":1,"33":1,"36":2,"43":1,"47":1,"49":1,"65":2,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"134":1},"2":{"0":1,"1":10,"3":8,"4":43,"5":1,"6":108,"9":3,"11":1,"13":1,"14":1,"18":3,"19":1,"20":1,"22":3,"23":2,"25":2,"27":2,"33":1,"34":19,"36":7,"37":19,"38":2,"39":2,"40":15,"41":3,"43":2,"44":5,"45":82,"47":1,"48":2,"49":3,"50":22,"51":4,"52":13,"53":4,"54":40,"56":7,"57":20,"58":1,"62":5,"63":4,"65":8,"66":23,"69":13,"71":2,"72":3,"74":4,"75":4,"77":7,"78":3,"79":3,"80":1,"81":1,"82":1,"85":3,"86":3,"88":1,"89":5,"91":9,"92":4,"93":2,"94":1,"95":1,"96":1,"97":91,"100":2,"102":3,"103":12,"105":4,"106":5,"108":8,"109":3,"110":3,"111":1,"112":2,"113":1,"116":4,"118":2,"125":2,"126":7,"127":11,"128":1,"129":2,"131":1,"134":3,"135":1,"136":24,"137":7,"138":2,"139":1,"140":3,"141":2,"142":1,"143":4,"144":1,"145":2,"147":1,"148":7,"149":2,"150":3,"151":3,"152":9,"153":6,"155":1,"156":4,"157":1,"158":2,"159":1,"161":2,"163":1,"164":1,"165":1,"166":3,"169":4,"170":5,"171":3,"172":1,"173":3,"175":2,"176":5,"177":2}}],["cpu",{"2":{"177":1}}],["cp",{"2":{"174":1}}],["cy",{"2":{"126":2}}],["cyan",{"2":{"41":1,"149":1,"152":1}}],["cx",{"2":{"126":2}}],["cdot",{"2":{"126":1}}],["cs",{"2":{"97":9}}],["cshape",{"2":{"43":3}}],["cw",{"2":{"50":2}}],["cb",{"2":{"39":1,"62":1,"127":1}}],["cgrad",{"2":{"39":1}}],["cgal",{"2":{"39":1}}],["c",{"2":{"37":1,"43":1,"48":5,"50":4,"55":3,"97":24,"152":1}}],["cleaner",{"2":{"63":1}}],["cleanest",{"2":{"63":1}}],["clear",{"2":{"49":1}}],["clearly",{"2":{"33":1,"36":1,"65":1}}],["clamped",{"2":{"54":18}}],["clamp",{"2":{"34":1,"54":1}}],["classified",{"2":{"45":1}}],["classify",{"2":{"45":4}}],["class",{"2":{"6":1,"127":1}}],["clipping",{"0":{"45":1,"51":1,"52":1,"54":1,"56":1,"57":1},"2":{"6":1,"9":1,"31":8,"45":9,"48":3,"51":1,"53":1,"56":1,"143":1}}],["closure",{"2":{"136":2}}],["closing",{"2":{"34":1}}],["close",{"2":{"34":5,"45":2,"48":1,"50":1,"54":1,"66":9,"127":1,"138":1,"139":4}}],["closest",{"2":{"4":3,"6":3,"54":2,"65":1,"66":6}}],["closed2",{"2":{"69":2}}],["closed1",{"2":{"69":2}}],["closed",{"0":{"137":1},"1":{"138":1,"139":1},"2":{"4":4,"6":11,"9":1,"31":1,"34":6,"37":3,"44":3,"45":1,"50":1,"54":1,"57":3,"69":21,"77":2,"78":5,"79":5,"91":2,"92":5,"93":3,"97":52,"108":3,"109":5,"110":5,"119":5,"120":1,"126":1,"127":1,"137":1,"138":1,"139":2,"140":1,"142":1,"169":1}}],["closedring",{"2":{"0":1,"6":1,"137":1,"138":1,"139":4,"140":1,"141":1,"142":1}}],["clockwise",{"2":{"4":1,"6":4,"9":1,"36":1,"37":1,"50":7,"62":1,"125":2,"126":3,"127":1}}],["ceil",{"2":{"153":1}}],["ce",{"2":{"97":11}}],["certainly",{"2":{"54":1}}],["certain",{"2":{"17":1,"18":1,"26":1,"29":1}}],["central",{"2":{"45":1}}],["centroids",{"2":{"43":1,"44":1}}],["centroid",{"0":{"42":1,"43":1},"1":{"43":1,"44":1},"2":{"0":4,"4":2,"6":6,"31":1,"42":3,"43":4,"44":38,"129":1,"156":4}}],["cent",{"2":{"43":2}}],["centered",{"2":{"45":1}}],["center",{"2":{"6":1,"43":1,"127":1}}],["cells",{"2":{"127":1}}],["cell",{"2":{"6":4,"49":3,"50":28,"127":2}}],["chunks",{"2":{"136":8}}],["chunk",{"2":{"136":12}}],["chose",{"2":{"24":1,"127":1}}],["choose",{"2":{"6":1,"63":1,"127":2}}],["changes",{"2":{"45":1}}],["changed",{"2":{"45":1}}],["change",{"2":{"24":1,"45":1,"62":1}}],["chain=2",{"2":{"45":1}}],["chain=1",{"2":{"45":1}}],["chain",{"2":{"45":66,"52":3,"54":4,"57":4,"62":2}}],["chains",{"2":{"20":1,"45":1}}],["chairmarks",{"2":{"13":1,"152":1,"156":1}}],["children",{"2":{"156":1}}],["child",{"2":{"6":2,"131":2,"136":7}}],["checkargs",{"2":{"157":1,"158":1,"159":1,"160":1}}],["checking",{"2":{"69":1,"158":1}}],["checks",{"0":{"86":1,"98":1},"1":{"99":1,"100":1},"2":{"41":1,"45":1,"54":1,"68":1,"71":1,"74":1,"84":1,"88":1,"97":5,"99":1,"102":1,"103":1,"105":1,"115":1,"176":1}}],["check",{"2":{"4":1,"6":1,"7":1,"44":1,"45":8,"48":1,"50":3,"51":1,"54":4,"55":1,"56":1,"69":8,"97":11,"127":5,"131":3,"132":1,"144":1,"146":1,"151":2,"158":1,"160":1}}],["checked",{"2":{"4":1,"6":1,"45":1,"54":1,"62":1,"97":1,"146":1}}],["c2",{"2":{"6":3,"15":2,"66":3,"69":14,"127":21}}],["c1",{"2":{"6":3,"15":2,"66":4,"69":13,"127":26}}],["ctor",{"2":{"1":1,"6":1,"161":1}}],["categorize",{"2":{"48":1}}],["categorical",{"2":{"39":1}}],["came",{"2":{"48":1}}],["case",{"2":{"34":1,"38":2,"44":1,"45":1,"51":1,"54":2,"57":1,"97":16,"136":1,"178":1}}],["cases",{"2":{"6":1,"40":1,"48":2,"97":3,"134":1,"136":5}}],["cause",{"2":{"18":1,"23":1,"158":1}}],["careful",{"2":{"40":1,"134":1}}],["care",{"2":{"17":1}}],["carried",{"2":{"6":1,"166":1}}],["cairomakie",{"2":{"13":1,"33":1,"36":1,"39":2,"43":1,"47":1,"49":1,"60":1,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"151":1,"152":1,"156":1,"168":1,"174":1,"176":1,"177":1}}],["california",{"2":{"177":1}}],["callable",{"2":{"127":4,"141":1}}],["calling",{"2":{"45":2,"136":1}}],["calls",{"2":{"45":1,"54":1,"57":1,"66":1,"75":1,"89":1,"106":1,"116":1,"134":1,"136":1,"153":1}}],["call",{"2":{"18":1,"24":1,"37":1,"44":1,"136":4,"154":1}}],["called",{"2":{"6":2,"44":3,"45":1,"136":1,"139":1,"141":1,"142":1,"166":1,"170":1}}],["calculation",{"2":{"54":1}}],["calculations",{"2":{"6":1,"25":2,"27":2,"54":1,"152":1}}],["calculating",{"2":{"4":1,"6":1,"18":1,"45":1,"146":1}}],["calculated",{"2":{"6":1,"43":2,"50":1,"54":2,"66":1,"136":4}}],["calculates",{"2":{"4":2,"6":6,"37":1,"40":2,"50":1,"54":2,"56":1,"66":2,"152":1,"159":1}}],["calculate",{"2":{"1":2,"5":1,"6":6,"11":1,"34":3,"40":3,"44":1,"50":1,"54":1,"97":1,"127":1,"133":1,"136":3}}],["calc",{"2":{"1":2,"6":4,"24":1,"34":4,"133":1,"135":1,"136":15,"146":1,"156":2,"165":1}}],["cache",{"2":{"6":1,"40":1}}],["cant",{"2":{"69":1,"127":1,"167":1}}],["cannot",{"2":{"3":3,"4":2,"6":5,"37":1,"69":1,"77":1,"80":1,"103":2,"111":1,"116":1,"118":2,"120":1}}],["can",{"2":{"1":1,"4":2,"6":16,"7":2,"9":1,"13":1,"14":1,"24":1,"26":1,"31":1,"34":1,"37":1,"38":2,"39":1,"40":3,"41":1,"44":1,"45":3,"50":1,"51":3,"53":3,"54":1,"56":3,"57":1,"62":1,"63":2,"68":1,"69":3,"71":1,"74":1,"86":1,"88":1,"97":23,"99":2,"102":2,"103":3,"105":1,"108":1,"109":1,"110":1,"115":1,"119":1,"120":1,"127":1,"128":1,"129":1,"131":1,"135":1,"136":7,"138":2,"139":1,"142":1,"143":2,"144":1,"146":1,"149":1,"151":1,"152":2,"156":2,"166":1,"169":6,"170":1,"171":3,"173":3,"175":3,"176":3}}],["creation",{"2":{"169":1,"171":1}}],["creating",{"0":{"168":1,"169":1,"172":1},"1":{"169":1,"170":1,"171":1,"172":1,"173":1},"2":{"97":1}}],["creates",{"2":{"7":1,"45":3}}],["create",{"0":{"171":1},"2":{"6":2,"13":2,"14":1,"45":1,"48":1,"54":2,"63":1,"127":2,"136":1,"142":2,"143":3,"145":2,"168":2,"169":4,"170":5,"171":3,"172":1,"173":1,"176":1}}],["created",{"2":{"4":2,"6":2,"45":1,"66":3}}],["criteria",{"2":{"75":2,"89":2,"106":2,"116":2,"158":3}}],["cropping",{"2":{"39":2}}],["cross=1",{"2":{"53":1}}],["cross`",{"2":{"53":1}}],["crossings",{"2":{"45":3,"97":1}}],["crossing",{"0":{"86":1},"2":{"6":2,"45":81,"51":1,"52":7,"53":3,"54":7,"56":1,"57":6,"75":1,"86":1,"97":1,"106":1}}],["cross",{"0":{"123":1},"2":{"6":1,"9":1,"34":3,"45":13,"48":14,"51":2,"52":1,"53":2,"54":10,"55":4,"56":2,"57":1,"75":1,"86":2,"89":1,"97":17,"103":2,"106":1,"116":1,"126":3}}],["crosses",{"2":{"0":2,"3":2,"6":3,"31":1,"45":1,"48":1,"86":26,"97":2,"175":1}}],["crc",{"2":{"6":1,"40":1}}],["crs2",{"2":{"170":2}}],["crs1",{"2":{"170":2,"171":1}}],["crs`",{"2":{"148":6}}],["crs=nothing",{"2":{"136":1,"146":1,"156":1}}],["crs=gi",{"2":{"136":7}}],["crs",{"0":{"170":1},"2":{"1":16,"4":2,"6":10,"63":1,"127":10,"133":2,"135":3,"136":27,"146":1,"148":7,"156":1,"168":1,"170":13,"171":7,"173":1}}],["customize",{"2":{"136":2}}],["custom",{"0":{"178":1},"2":{"6":1,"40":1,"178":2}}],["curr^2",{"2":{"34":2}}],["curr",{"2":{"34":8,"45":114,"48":9,"57":3,"145":26}}],["currentnode",{"2":{"127":8}}],["current",{"2":{"34":1,"40":8,"45":3,"48":2,"52":1,"54":1,"57":6,"127":2,"145":3}}],["currently",{"2":{"5":1,"6":3,"23":1,"40":1,"45":1,"48":1,"52":2,"127":1,"136":1}}],["curve",{"0":{"97":1},"2":{"3":1,"4":7,"6":18,"34":6,"37":7,"45":5,"50":3,"53":7,"65":1,"66":22,"69":6,"75":2,"77":4,"78":9,"79":9,"89":1,"91":4,"92":6,"93":3,"97":152,"103":1,"106":1,"108":4,"109":6,"110":6,"116":1,"119":6,"121":3}}],["curves",{"2":{"0":1,"3":1,"6":5,"37":3,"50":3,"54":1,"65":1,"66":1,"69":13,"80":1,"97":1,"103":1,"111":1,"156":2}}],["cutpolygon",{"2":{"47":1}}],["cuts",{"2":{"47":1}}],["cutting",{"0":{"46":1},"1":{"47":1,"48":1},"2":{"45":1,"48":2}}],["cut",{"0":{"47":1},"2":{"0":1,"6":6,"31":1,"40":1,"46":1,"47":5,"48":22,"97":1}}],["coastlines",{"2":{"174":1}}],["coarse",{"2":{"6":1,"150":1,"153":1}}],["cos",{"2":{"169":3,"170":1,"171":2}}],["copy",{"2":{"141":1,"160":1}}],["coors1",{"2":{"126":2}}],["coors2",{"2":{"126":3}}],["coord",{"2":{"153":6}}],["coords",{"2":{"48":9,"153":8}}],["coordinatetransformations",{"2":{"1":2,"6":2,"156":1,"161":2,"168":1,"169":5,"171":2}}],["coordinate",{"0":{"40":1,"147":1,"170":1,"171":1},"2":{"1":4,"5":5,"6":7,"25":1,"27":1,"39":2,"40":10,"136":1,"148":4,"153":1,"168":3,"170":1}}],["coordinates",{"0":{"5":1,"38":1},"1":{"39":1,"40":1},"2":{"0":4,"1":1,"4":2,"5":7,"6":20,"37":2,"38":8,"40":25,"45":2,"48":2,"49":1,"51":1,"53":1,"56":1,"66":1,"69":2,"129":1,"147":2,"148":1,"151":1,"152":3,"170":2}}],["co",{"2":{"97":2}}],["corner",{"2":{"50":4,"127":1}}],["corners",{"2":{"50":1}}],["correspondent",{"2":{"126":1}}],["correspond",{"2":{"45":1}}],["corresponding",{"2":{"34":3,"52":2}}],["correctly",{"2":{"151":1}}],["corrected",{"2":{"141":1}}],["correctness",{"2":{"137":1,"166":1}}],["correcting",{"2":{"20":1,"141":1}}],["corrections",{"0":{"140":1,"142":1},"1":{"141":1,"142":1},"2":{"138":1,"141":6,"144":1}}],["correction",{"2":{"6":10,"31":4,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"137":1,"139":2,"140":2,"141":8,"142":7,"143":1,"145":2}}],["correct",{"2":{"6":3,"24":1,"34":1,"37":1,"44":1,"45":1,"50":1,"51":1,"53":1,"56":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1,"137":1,"138":2,"140":1}}],["cov",{"2":{"50":16}}],["cover",{"2":{"77":1,"81":1}}],["covering",{"2":{"6":2,"84":1,"142":2,"145":2}}],["covered",{"0":{"79":1,"80":1,"110":1},"2":{"3":1,"6":1,"52":1,"57":1,"74":1,"75":1,"79":2,"80":2,"81":1,"82":2,"84":1,"96":2,"97":3,"145":1}}],["coveredby",{"0":{"73":1,"74":1,"77":1,"78":1,"81":1,"82":1,"96":1},"1":{"74":1,"75":1},"2":{"0":2,"3":4,"6":4,"31":1,"45":1,"73":1,"74":3,"75":10,"76":6,"77":13,"78":15,"79":13,"80":5,"81":2,"82":2,"85":3,"175":1}}],["covers",{"0":{"83":1,"84":1},"1":{"84":1,"85":1},"2":{"0":2,"3":5,"6":5,"31":1,"83":1,"84":4,"85":5,"127":1,"175":1}}],["coverages",{"2":{"6":1,"50":1}}],["coverage",{"0":{"49":1},"2":{"0":1,"6":2,"31":1,"49":3,"50":16}}],["code",{"2":{"7":1,"10":1,"26":5,"40":1,"75":1,"89":1,"97":1,"106":1,"116":1,"126":1,"163":1,"165":1,"177":1}}],["colname",{"2":{"136":3}}],["col",{"2":{"136":3}}],["column",{"2":{"22":1,"136":16,"172":2,"175":2}}],["colored",{"2":{"176":1}}],["color=",{"2":{"170":2}}],["colors",{"2":{"60":1,"61":1,"174":1,"176":2}}],["colorrange",{"2":{"39":2,"65":1}}],["colorbar",{"2":{"39":1,"62":1,"65":1,"127":1}}],["colormap",{"2":{"14":1,"39":3,"65":1}}],["color",{"2":{"6":3,"36":1,"39":2,"40":1,"41":1,"43":1,"47":3,"60":1,"61":1,"62":2,"65":2,"68":4,"71":4,"74":1,"84":1,"88":4,"102":4,"105":4,"149":1,"152":1,"169":1,"170":1,"174":1,"176":5}}],["collect",{"2":{"11":3,"13":1,"33":1,"36":2,"40":1,"43":1,"47":2,"49":2,"63":2,"65":1,"127":3,"136":3,"151":4,"167":2}}],["collections",{"0":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1},"2":{"1":2,"6":10,"22":1,"135":1,"136":7,"156":2,"173":1}}],["collection",{"2":{"1":1,"4":7,"6":13,"18":2,"29":2,"34":2,"37":3,"50":2,"66":2,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"129":1,"136":3,"156":1,"162":1,"167":1}}],["collinear",{"2":{"3":1,"6":2,"45":5,"51":2,"53":3,"54":12,"56":2,"102":1,"103":2}}],["commonly",{"2":{"173":1}}],["common",{"2":{"68":1,"153":1,"168":1,"170":1,"171":1}}],["commented",{"2":{"126":1}}],["comments",{"2":{"97":1}}],["comment",{"2":{"30":1}}],["combos",{"2":{"52":1,"54":1,"57":1}}],["combines",{"2":{"44":1}}],["combine",{"2":{"44":2,"45":5,"145":1}}],["combined",{"2":{"6":1,"45":4,"57":1,"142":1,"145":2,"169":1}}],["combination",{"2":{"6":1,"45":1,"131":1,"136":1}}],["coming",{"2":{"50":1}}],["com",{"2":{"6":2,"54":1,"63":1}}],["compilation",{"2":{"165":1}}],["compiled",{"2":{"24":1}}],["compiler",{"2":{"24":1,"136":2,"165":2}}],["complex",{"2":{"129":1,"156":1,"175":1}}],["complexity",{"2":{"6":1,"129":1,"153":1}}],["complete",{"2":{"37":1}}],["completely",{"2":{"1":1,"3":4,"6":5,"45":2,"52":1,"57":1,"71":2,"72":1,"75":1,"84":1,"85":1,"97":1,"106":1,"136":1}}],["component",{"2":{"6":1,"37":3,"44":11,"50":8,"54":1,"131":1,"136":3}}],["components",{"2":{"6":2,"43":1,"44":2,"131":2,"136":24}}],["composed",{"2":{"4":4,"6":5,"69":5,"169":2}}],["comprised",{"2":{"6":3,"51":1,"53":1,"56":1}}],["computing",{"2":{"41":1,"58":1}}],["computational",{"2":{"6":1,"40":1}}],["computation",{"2":{"6":6,"40":1,"44":1,"51":1,"53":1,"56":1,"157":2,"158":2,"159":2}}],["computer",{"2":{"6":1,"40":1}}],["computes",{"2":{"6":1,"63":1}}],["compute",{"2":{"4":1,"6":3,"37":1,"40":1,"63":3,"153":1}}],["computed",{"2":{"4":4,"6":5,"34":1,"37":3,"40":3,"50":1,"174":1}}],["compact",{"2":{"177":3}}],["comparisons",{"2":{"175":1}}],["comparing",{"2":{"57":1,"69":1}}],["compares",{"2":{"127":1}}],["compared",{"2":{"69":1}}],["compare",{"2":{"3":1,"4":1,"6":2,"34":1,"57":1,"69":2,"103":1}}],["compatibility",{"2":{"37":1}}],["compatible",{"2":{"1":3,"6":1,"22":1,"25":1,"27":1,"34":1,"37":1,"40":2,"44":1,"50":1,"66":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"134":1,"136":1,"148":2}}],["couple",{"2":{"172":1}}],["course",{"2":{"135":1}}],["country",{"2":{"177":8}}],["countries",{"2":{"11":1,"61":1,"156":1}}],["counted",{"2":{"54":2}}],["counters",{"2":{"40":8}}],["counter",{"2":{"6":1,"45":7,"97":1,"125":1,"126":1}}],["counterclockwise",{"2":{"4":1,"6":2,"9":1,"36":2,"37":1,"62":1,"63":1}}],["count",{"2":{"45":16,"127":1,"160":1}}],["couldn",{"2":{"9":1,"165":1}}],["could",{"2":{"4":1,"6":1,"37":3,"54":4,"57":1,"58":1,"66":1,"97":2,"148":1}}],["conditions",{"2":{"175":1}}],["connected",{"2":{"97":5}}],["connect",{"2":{"50":11}}],["connecting",{"2":{"34":1,"158":1,"169":2}}],["connections",{"2":{"6":2,"142":2,"145":2}}],["context",{"2":{"152":4,"170":2}}],["contents",{"2":{"136":1,"137":1}}],["contours",{"2":{"127":1}}],["contour",{"2":{"127":4}}],["continue",{"2":{"37":1,"45":7,"50":1,"52":2,"54":1,"97":1,"141":1,"145":3,"160":1,"177":1}}],["contributions",{"2":{"25":1,"27":1}}],["controlled",{"2":{"24":1}}],["control",{"2":{"23":1}}],["containing",{"2":{"49":1,"176":1}}],["contain",{"2":{"3":1,"6":1,"26":1,"57":1,"71":1,"103":1,"169":1}}],["contained",{"2":{"3":1,"6":1,"9":1,"57":4,"72":1,"84":1,"102":1,"103":1,"136":1,"176":1}}],["contains",{"0":{"70":1,"71":1},"1":{"71":1,"72":1},"2":{"0":2,"3":4,"6":4,"26":1,"31":1,"45":1,"57":1,"58":1,"70":1,"71":5,"72":4,"134":1,"144":1,"175":1,"176":1}}],["consistent",{"2":{"45":1,"129":1}}],["consistency",{"2":{"22":1}}],["considered",{"2":{"34":1,"40":1}}],["consider",{"2":{"33":1,"36":1,"43":1,"47":1,"49":1,"50":3,"65":2,"68":1,"71":1,"74":1,"84":1,"88":1,"97":3,"99":1,"102":1,"105":1,"115":1}}],["constprop",{"2":{"86":1}}],["constants",{"2":{"45":1}}],["const",{"2":{"31":4,"45":1,"75":4,"89":3,"106":4,"116":4,"133":3,"136":1,"156":4}}],["constrained",{"2":{"6":3,"51":1,"53":1,"56":1}}],["constructing",{"2":{"171":1}}],["construct",{"2":{"164":1}}],["constructors",{"2":{"6":2,"164":2}}],["constructed",{"2":{"1":1,"20":1,"148":1}}],["concepts",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"26":1}}],["concieve",{"2":{"9":1}}],["concavehull",{"2":{"128":1}}],["concave",{"2":{"6":1,"34":2,"43":2,"126":2}}],["convention",{"2":{"43":1}}],["convenience",{"2":{"40":1,"166":1}}],["conversely",{"2":{"45":1}}],["conversion",{"0":{"162":1},"2":{"22":1}}],["converted",{"2":{"22":1,"40":3}}],["converts",{"2":{"6":1,"167":1}}],["convert",{"0":{"76":1,"90":1,"107":1,"117":1},"2":{"6":3,"40":6,"63":1,"65":1,"127":2,"152":1,"156":3,"162":1,"166":1,"167":1}}],["convexhull",{"2":{"128":1}}],["convexity",{"2":{"62":2}}],["convex",{"0":{"58":1,"61":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1},"2":{"0":1,"6":7,"31":2,"34":3,"58":4,"60":2,"61":1,"62":4,"63":11,"126":1}}],["vw",{"2":{"156":3}}],["von",{"2":{"127":1}}],["v2",{"2":{"97":9}}],["v1",{"2":{"97":9}}],["v`",{"2":{"40":2}}],["vcat",{"2":{"34":1,"40":1,"136":1}}],["vararg",{"2":{"40":1}}],["vary",{"2":{"34":1}}],["variables",{"2":{"24":1,"40":8,"72":1,"85":1,"100":1}}],["variable",{"2":{"24":1,"52":2}}],["vals",{"2":{"158":9}}],["valign",{"2":{"156":1}}],["validated",{"2":{"52":2,"54":2,"57":2}}],["validate",{"2":{"9":1}}],["valid",{"2":{"1":1,"6":8,"44":1,"51":2,"53":2,"54":3,"56":2,"127":1,"137":3,"138":1,"143":1,"144":1,"160":1,"161":1}}],["val",{"2":{"34":2,"45":2,"54":8,"97":30,"103":4}}],["values=",{"2":{"127":2}}],["values=sort",{"2":{"127":1}}],["values",{"2":{"1":1,"5":3,"6":16,"34":2,"39":3,"40":40,"44":2,"45":5,"50":5,"54":1,"66":2,"97":4,"127":19,"136":2,"158":2,"160":1,"165":1}}],["value",{"2":{"0":1,"4":7,"5":2,"6":15,"14":1,"24":1,"34":1,"36":2,"37":4,"40":45,"45":5,"50":2,"54":7,"65":1,"66":3,"127":6,"158":11,"166":2,"175":1}}],["vs",{"0":{"15":1},"2":{"12":1,"54":2}}],["vᵢ",{"2":{"6":1}}],["v0",{"2":{"6":2}}],["v",{"2":{"5":2,"6":6,"14":4,"40":23,"66":8}}],["visvalingam",{"2":{"154":1}}],["visvalingamwhyatt",{"0":{"159":1},"2":{"0":1,"6":3,"156":4,"159":5}}],["visualized",{"2":{"138":1}}],["visualize",{"2":{"99":1,"170":1}}],["visa",{"2":{"45":1}}],["visited",{"2":{"45":4}}],["view",{"2":{"45":2,"63":1,"127":1,"145":1,"158":3,"177":1}}],["viewport",{"2":{"14":1}}],["views",{"2":{"1":1,"45":1,"56":1,"148":1}}],["via",{"2":{"6":1,"41":1,"58":1,"128":1,"149":1,"152":1,"166":2}}],["vec",{"2":{"63":2}}],["vect",{"2":{"136":2}}],["vectypes",{"2":{"40":5}}],["vector",{"2":{"1":12,"4":6,"5":1,"6":46,"18":1,"23":1,"29":1,"33":1,"34":10,"40":14,"45":7,"48":6,"51":4,"52":1,"53":2,"54":3,"56":4,"97":1,"103":2,"126":3,"127":4,"129":1,"136":6,"138":8,"139":1,"144":22,"150":1,"151":1,"153":1,"157":1,"158":4,"159":1,"160":2,"161":10,"167":15,"169":18,"170":6,"171":9}}],["vectors",{"2":{"1":1,"4":2,"6":5,"22":1,"34":4,"40":3,"45":1,"63":1,"66":1,"125":1,"127":1,"136":2,"156":1}}],["ve",{"2":{"17":1,"153":1}}],["vein",{"2":{"7":1}}],["version",{"2":{"166":1}}],["versa",{"2":{"45":1}}],["vert",{"2":{"160":21}}],["verts",{"2":{"156":2}}],["vertical",{"2":{"39":1,"50":1,"54":1,"127":1}}],["vertices",{"2":{"6":7,"9":1,"38":4,"40":5,"45":1,"48":2,"63":1,"77":1,"79":5,"88":1,"91":3,"94":1,"97":1,"108":1,"138":1,"150":2,"151":1,"152":3,"153":3,"156":1,"159":1}}],["vertex",{"2":{"5":1,"6":2,"34":1,"38":2,"40":2,"45":19,"54":12,"62":1,"77":2,"92":2,"93":1,"97":1,"108":3}}],["very",{"2":{"0":1,"151":1,"177":2}}],["ty",{"2":{"127":3}}],["typing",{"2":{"41":1,"149":1,"152":1}}],["typically",{"2":{"38":1,"172":1}}],["typemax",{"2":{"66":1,"127":9}}],["typeof",{"2":{"19":1,"40":3,"136":2,"164":1,"178":1}}],["type2",{"2":{"6":2,"69":4}}],["type1",{"2":{"6":2,"69":5}}],["types",{"0":{"132":1,"163":1},"1":{"164":1,"165":1,"166":1},"2":{"6":4,"23":1,"24":1,"31":1,"40":3,"48":1,"50":1,"97":3,"156":1,"163":3,"165":1,"175":1}}],["type",{"2":{"4":11,"5":1,"6":62,"11":1,"22":2,"23":1,"24":2,"30":2,"34":9,"37":11,"39":1,"40":8,"44":8,"45":21,"48":6,"50":8,"51":7,"52":6,"53":8,"54":19,"56":7,"57":5,"66":28,"69":2,"131":2,"136":42,"140":1,"141":6,"142":6,"147":1,"152":1,"153":1,"156":3,"162":1,"164":3,"165":5,"166":1,"167":3,"174":1}}],["tx",{"2":{"127":3}}],["tᵢ",{"2":{"40":1}}],["temporary",{"2":{"45":1}}],["term",{"2":{"37":1}}],["terms",{"2":{"6":1,"40":1}}],["teach",{"2":{"26":1}}],["technically",{"2":{"23":1,"137":1}}],["technique",{"2":{"11":1}}],["tell",{"2":{"18":1,"97":1,"165":1,"178":1}}],["test",{"2":{"45":1,"156":2,"166":1}}],["testing",{"0":{"15":1}}],["tests",{"2":{"9":2}}],["tutorial",{"2":{"168":1,"175":1}}],["tutorials",{"2":{"26":2}}],["tups",{"2":{"139":4}}],["tuplepoint",{"2":{"31":3,"167":1}}],["tuple",{"0":{"162":1},"2":{"4":1,"6":19,"31":2,"40":2,"44":3,"45":5,"48":1,"50":3,"54":31,"97":17,"126":2,"127":5,"136":2,"138":6,"144":13,"151":1,"156":2,"158":1,"160":2,"167":6,"169":99,"176":2}}],["tuples",{"2":{"0":1,"6":2,"31":1,"41":1,"44":1,"45":1,"48":1,"51":3,"52":1,"53":2,"54":1,"56":4,"57":5,"63":2,"139":2,"145":2,"156":2,"162":2,"177":2}}],["turf",{"2":{"126":1}}],["turned",{"2":{"127":1,"136":1}}],["turning",{"2":{"127":8}}],["turn",{"2":{"6":1,"127":1}}],["t2",{"2":{"6":5,"40":47,"76":1,"86":2,"107":1,"117":1}}],["t1",{"2":{"6":6,"40":51,"86":2}}],["t=float64",{"2":{"4":1,"6":3,"44":3}}],["two",{"2":{"3":5,"4":10,"6":23,"23":2,"34":2,"36":1,"40":1,"44":1,"45":6,"50":3,"51":2,"53":1,"54":14,"56":4,"57":3,"66":5,"68":3,"69":12,"71":2,"72":1,"74":1,"84":1,"85":1,"86":1,"88":1,"97":2,"99":2,"100":2,"102":4,"103":5,"105":2,"115":3,"116":1,"127":3,"141":2,"142":1,"144":2,"145":2,"151":1,"166":1,"169":1,"175":3,"176":3}}],["task",{"2":{"136":6}}],["tasks",{"2":{"136":10}}],["taskrange",{"2":{"136":10}}],["tags",{"2":{"45":4}}],["taget",{"2":{"6":2}}],["taylor",{"2":{"6":1,"40":1}}],["table2",{"2":{"175":1}}],["table1",{"2":{"175":3}}],["tables",{"2":{"22":4,"31":1,"136":11}}],["table",{"0":{"172":1},"2":{"6":1,"18":1,"29":2,"136":12,"156":1,"172":1,"173":1,"175":1}}],["taking",{"2":{"6":3,"44":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"143":1}}],["takes",{"2":{"45":3,"175":1}}],["taken",{"2":{"20":1,"39":1}}],["take",{"2":{"1":1,"6":2,"29":1,"45":3,"51":1,"52":1,"53":1,"54":1,"57":1,"126":2,"127":2,"129":1,"148":1}}],["target=nothing",{"2":{"51":1,"53":1,"56":1}}],["target=gi",{"2":{"45":1}}],["targets",{"2":{"23":1,"34":2,"37":3,"50":3,"66":3}}],["target",{"0":{"23":1},"2":{"1":14,"6":28,"15":3,"22":2,"23":2,"40":1,"44":2,"45":1,"51":5,"52":11,"53":6,"54":10,"56":4,"57":13,"127":1,"129":1,"131":4,"134":5,"135":1,"136":142,"145":2,"148":3,"156":2,"164":3}}],["tilted",{"2":{"50":1}}],["tie",{"2":{"34":1}}],["timings",{"2":{"13":5}}],["timing",{"2":{"13":2}}],["times",{"2":{"4":1,"6":1,"146":1}}],["time",{"2":{"1":5,"13":3,"24":1,"39":1,"127":1,"148":4,"166":1,"169":1,"170":1,"171":2,"176":1,"177":1}}],["title",{"2":{"13":2,"39":2,"62":2,"127":1,"152":1,"156":2}}],["tip",{"2":{"1":1,"5":1,"6":1,"40":1,"148":1,"175":1}}],["tree",{"2":{"175":1}}],["treating",{"2":{"156":1}}],["treated",{"2":{"97":5,"169":1}}],["treats",{"2":{"37":1,"66":1}}],["trials",{"2":{"152":2,"156":2}}],["triangles",{"2":{"38":1}}],["triangle",{"2":{"6":1,"38":4,"159":4,"176":1}}],["triangulation",{"2":{"6":1,"31":1,"63":1}}],["trivially",{"2":{"129":1}}],["try",{"2":{"55":3,"127":1,"134":1,"136":9,"177":1}}],["tr",{"2":{"37":3}}],["trues",{"2":{"145":3}}],["true",{"0":{"24":1},"2":{"1":5,"3":25,"4":3,"6":42,"34":7,"37":1,"39":2,"41":1,"45":30,"48":1,"50":6,"51":1,"52":2,"53":1,"54":1,"56":2,"57":3,"66":4,"69":21,"71":1,"72":1,"74":2,"75":6,"77":1,"78":1,"79":4,"81":1,"82":1,"84":2,"85":1,"86":9,"88":2,"89":2,"91":1,"92":1,"93":3,"95":1,"96":1,"97":78,"99":3,"100":1,"102":2,"103":18,"105":2,"106":7,"108":1,"109":1,"110":4,"112":1,"113":1,"115":2,"116":6,"119":1,"120":1,"122":1,"123":1,"126":4,"127":5,"136":8,"145":1,"149":1,"152":1,"156":1,"165":2,"175":1,"178":1}}],["traditional",{"2":{"127":1}}],["traverse",{"2":{"45":1}}],["traced",{"2":{"45":1}}],["traces",{"2":{"45":1}}],["trace",{"2":{"45":2,"51":1,"53":1,"56":1}}],["track",{"2":{"45":3,"145":2}}],["tracing",{"2":{"6":1,"45":4,"50":1,"52":5,"54":2,"57":2}}],["transverse",{"2":{"170":1}}],["translate",{"2":{"39":2}}],["translation",{"2":{"1":2,"6":2,"156":2,"161":2,"169":3,"171":1}}],["transformations",{"2":{"31":10}}],["transformation",{"0":{"161":1},"2":{"6":1,"127":1,"140":1,"148":1,"168":1}}],["transform",{"2":{"0":2,"1":6,"6":3,"15":2,"31":1,"129":1,"148":2,"156":1,"161":4,"169":4,"171":1}}],["trait`",{"2":{"136":1}}],["trait2",{"2":{"66":10,"69":2,"91":2,"92":2,"103":2,"118":2,"120":2,"121":2}}],["trait1",{"2":{"66":12,"69":2,"91":2,"92":2,"103":2,"118":2,"120":2,"121":2}}],["traits",{"2":{"6":2,"18":1,"103":1,"134":2,"141":2,"156":2,"164":3}}],["trait",{"2":{"1":5,"3":2,"4":2,"6":17,"18":7,"20":1,"22":1,"31":1,"34":2,"37":5,"40":6,"44":7,"48":3,"50":2,"51":2,"52":2,"53":6,"54":4,"56":2,"57":2,"66":7,"69":11,"75":3,"86":2,"89":3,"97":4,"103":10,"106":3,"116":3,"126":1,"129":1,"131":2,"134":3,"136":49,"141":9,"142":1,"153":1,"156":2,"164":8,"167":7,"169":1}}],["traittarget",{"0":{"164":1},"2":{"0":1,"1":2,"6":8,"34":1,"37":1,"44":1,"50":1,"51":2,"52":4,"53":3,"54":4,"56":2,"57":4,"66":1,"129":2,"132":1,"136":10,"153":1,"156":1,"163":1,"164":20}}],["thus",{"2":{"34":1,"37":1,"45":3,"52":1,"54":1,"57":1}}],["those",{"2":{"34":1,"45":1,"54":1,"77":1,"108":1}}],["though",{"2":{"20":1,"138":1}}],["thing",{"0":{"30":1}}],["things",{"2":{"9":1}}],["this",{"0":{"30":1},"2":{"0":1,"1":1,"3":1,"4":6,"5":1,"6":30,"7":1,"18":1,"23":3,"24":2,"25":2,"27":2,"29":1,"31":1,"33":2,"34":6,"36":2,"37":9,"39":3,"40":11,"41":2,"43":1,"44":4,"45":26,"47":1,"48":5,"49":1,"50":4,"52":1,"54":5,"55":1,"56":1,"57":2,"63":5,"65":4,"66":6,"69":4,"71":1,"72":2,"74":3,"75":3,"82":1,"84":1,"85":2,"86":1,"89":3,"96":1,"97":3,"100":2,"102":1,"103":4,"105":1,"106":3,"113":1,"116":3,"123":1,"125":1,"126":3,"127":8,"128":2,"129":2,"134":2,"136":17,"137":3,"139":3,"140":1,"141":6,"142":7,"143":4,"145":3,"146":2,"147":2,"148":4,"149":3,"150":3,"151":5,"152":5,"153":4,"154":2,"156":3,"160":9,"161":1,"162":1,"163":3,"164":2,"165":3,"166":2,"167":1,"168":1,"169":2,"170":4,"171":3,"172":3,"173":1,"175":3,"176":3,"177":3,"178":1}}],["three",{"2":{"26":1,"38":1,"54":1}}],["thread",{"2":{"136":6}}],["threading",{"0":{"136":1},"2":{"136":7,"165":1}}],["threads",{"2":{"1":1,"6":1,"136":10}}],["threaded=",{"2":{"136":8}}],["threaded=true",{"2":{"136":1}}],["threaded=false",{"2":{"37":1,"44":4,"50":2,"66":8,"136":2,"146":1,"156":1}}],["threaded==true",{"2":{"1":1,"6":1,"136":1}}],["threaded",{"2":{"1":3,"4":1,"6":7,"24":1,"34":2,"37":1,"44":3,"50":3,"66":5,"133":1,"136":47,"146":1,"153":6,"156":1,"165":2}}],["through",{"2":{"6":4,"34":1,"40":1,"45":3,"47":1,"48":2,"50":1,"63":1,"75":1,"97":5,"106":1,"127":1,"134":1,"136":1,"142":2,"145":2,"158":1,"166":1,"169":1}}],["thrown",{"2":{"134":1}}],["throws",{"2":{"6":1,"166":1}}],["throw",{"2":{"4":1,"6":1,"57":1,"69":1,"127":1,"136":5}}],["than",{"2":{"1":1,"3":1,"6":11,"11":1,"45":2,"77":1,"86":1,"103":1,"108":1,"126":1,"127":2,"135":1,"136":1,"142":2,"143":1,"144":1,"145":2,"150":1,"152":2,"153":1,"157":1,"166":2}}],["that",{"2":{"1":1,"3":3,"4":8,"6":44,"9":1,"17":1,"18":4,"19":3,"20":1,"22":3,"25":1,"26":1,"27":1,"34":4,"36":2,"37":4,"40":4,"41":2,"43":2,"44":3,"45":17,"49":3,"50":5,"51":4,"52":5,"53":4,"54":14,"56":3,"57":5,"58":1,"62":3,"63":4,"66":2,"68":1,"69":11,"71":4,"72":1,"74":2,"75":1,"85":1,"88":1,"89":1,"97":3,"99":1,"100":1,"102":2,"103":10,"105":3,"106":1,"108":3,"115":2,"116":2,"118":2,"126":1,"127":4,"129":1,"131":2,"136":4,"137":3,"138":2,"139":1,"140":3,"141":2,"142":4,"143":2,"144":3,"145":4,"148":1,"150":2,"151":2,"152":3,"153":2,"156":2,"158":1,"160":1,"164":1,"165":1,"166":1,"170":4,"171":1,"172":2,"173":3,"175":1,"176":2}}],["theorem",{"2":{"66":1}}],["themselves",{"2":{"40":1}}],["them",{"2":{"6":1,"25":1,"27":1,"45":1,"127":2,"128":2,"131":1,"136":1,"138":2,"143":1,"144":1,"156":1,"169":1,"171":1,"173":3}}],["thereof",{"2":{"129":1}}],["therefore",{"2":{"65":1,"137":1}}],["there",{"2":{"6":3,"22":1,"34":1,"40":2,"41":1,"45":3,"48":2,"50":1,"52":1,"54":6,"55":1,"57":1,"97":1,"103":2,"127":3,"128":1,"129":1,"136":4,"138":1,"151":1,"160":1,"164":1,"166":1,"170":2,"173":3}}],["then",{"2":{"6":5,"18":1,"22":1,"29":1,"34":3,"40":2,"45":6,"50":1,"51":1,"53":2,"54":6,"55":2,"56":2,"57":2,"63":1,"97":1,"127":2,"134":1,"136":3,"143":1,"152":2,"156":1,"170":1,"175":1,"176":1}}],["their",{"2":{"3":1,"4":1,"6":2,"40":1,"43":2,"57":1,"66":2,"94":1,"103":1,"109":3,"110":3,"115":1,"119":1,"120":1,"129":1,"136":1,"138":1,"144":1,"146":1}}],["they",{"2":{"3":3,"4":11,"6":25,"20":2,"22":1,"23":1,"24":1,"38":1,"44":2,"45":8,"50":2,"51":2,"53":1,"54":6,"56":2,"57":3,"62":1,"68":3,"69":16,"75":1,"88":1,"92":2,"93":1,"94":1,"97":2,"99":1,"102":2,"103":4,"109":1,"110":1,"118":1,"120":1,"121":1,"127":6,"136":1,"137":1,"142":2,"145":2,"151":1,"160":1,"163":1,"176":1}}],["these",{"2":{"1":2,"6":5,"24":1,"34":1,"40":5,"45":3,"57":1,"68":1,"69":1,"71":1,"75":1,"84":1,"86":2,"88":1,"89":1,"99":1,"102":1,"103":1,"105":1,"106":1,"115":2,"116":1,"126":1,"127":3,"134":1,"136":2,"148":1,"152":1,"156":2,"166":1,"173":1,"175":1}}],["the",{"0":{"26":1,"29":1,"43":1,"61":1,"62":1},"2":{"1":28,"3":64,"4":112,"5":12,"6":403,"7":5,"9":3,"10":1,"11":3,"17":5,"18":10,"19":2,"20":4,"22":4,"23":5,"24":3,"25":3,"26":4,"27":3,"29":3,"33":1,"34":63,"36":12,"37":43,"38":15,"39":12,"40":71,"41":6,"43":6,"44":25,"45":116,"47":2,"48":7,"49":7,"50":47,"51":27,"52":23,"53":27,"54":82,"55":1,"56":29,"57":70,"58":6,"62":11,"63":16,"65":11,"66":81,"68":5,"69":47,"71":9,"72":11,"74":8,"75":25,"78":8,"79":9,"80":3,"81":3,"82":2,"84":4,"85":11,"86":5,"88":2,"89":21,"91":8,"92":6,"93":4,"95":3,"96":2,"97":123,"99":5,"100":6,"102":5,"103":26,"105":7,"106":24,"108":2,"109":9,"110":9,"111":6,"112":2,"113":2,"115":5,"116":21,"118":6,"119":10,"120":7,"121":3,"122":3,"123":2,"125":1,"126":8,"127":47,"128":1,"129":8,"131":4,"133":2,"134":11,"136":85,"137":5,"138":5,"139":4,"140":2,"141":13,"142":10,"143":4,"144":8,"145":6,"146":1,"147":5,"148":14,"149":2,"150":3,"151":5,"152":26,"153":17,"154":3,"156":18,"157":3,"158":6,"159":3,"160":2,"161":3,"162":1,"163":2,"165":5,"166":21,"169":10,"170":11,"171":10,"172":2,"173":4,"175":10,"176":17,"177":3}}],["t",{"2":{"0":1,"4":28,"6":56,"9":1,"23":1,"31":8,"34":32,"37":41,"40":26,"44":38,"45":74,"48":18,"50":44,"51":12,"52":12,"53":12,"54":156,"56":10,"57":20,"66":87,"69":17,"74":1,"92":1,"97":24,"103":1,"115":1,"119":2,"120":1,"127":14,"136":10,"142":2,"145":2,"152":3,"153":5,"156":1,"162":7,"164":14,"165":2,"166":3,"167":10,"169":4,"177":1}}],["tokyo",{"2":{"177":1}}],["toy",{"2":{"175":1}}],["together",{"2":{"54":1,"57":1,"169":1,"176":1}}],["touching",{"0":{"119":1},"2":{"54":1,"57":1}}],["touch",{"0":{"120":1,"121":1,"122":1},"2":{"45":1,"115":1,"118":2,"120":1,"122":1}}],["touches",{"0":{"114":1,"115":1,"118":1},"1":{"115":1,"116":1},"2":{"0":2,"3":3,"6":3,"31":1,"114":1,"115":3,"116":11,"117":6,"118":11,"119":15,"120":9,"121":8,"122":3,"123":4,"175":1}}],["totally",{"2":{"56":1}}],["total",{"2":{"37":1,"40":2,"45":2,"50":1}}],["towards",{"2":{"25":1,"27":1}}],["topright",{"2":{"156":1}}],["topologypreserve",{"2":{"154":1}}],["topology",{"2":{"154":1}}],["top",{"2":{"20":1,"26":1,"45":1,"127":1}}],["took",{"2":{"177":1}}],["tools",{"2":{"17":1}}],["too",{"2":{"6":1,"54":1,"150":1,"153":1}}],["tol^2",{"2":{"157":1,"158":1}}],["tolerances",{"2":{"159":1,"160":29}}],["tolerance",{"2":{"157":1,"158":1,"159":1,"160":17}}],["tol",{"2":{"6":12,"152":2,"156":18,"157":7,"158":15,"159":8,"160":18}}],["todo",{"2":{"3":2,"6":2,"45":1,"54":1,"63":2,"86":4,"103":1,"127":1,"136":1,"139":1,"156":1,"165":1}}],["to",{"0":{"9":1,"23":1,"26":1,"55":1,"76":1,"90":1,"107":1,"117":1},"2":{"0":2,"1":22,"3":1,"4":33,"5":4,"6":142,"7":2,"9":3,"10":2,"11":2,"13":1,"17":2,"18":9,"19":1,"20":2,"22":3,"23":4,"24":2,"25":3,"26":2,"27":3,"29":4,"30":1,"33":1,"34":8,"36":1,"37":4,"38":4,"39":1,"40":26,"41":2,"43":2,"44":5,"45":32,"47":1,"48":3,"49":1,"50":12,"51":8,"52":4,"53":8,"54":27,"56":7,"57":11,"58":1,"60":1,"61":1,"62":4,"63":6,"65":6,"66":32,"68":2,"69":17,"71":1,"72":1,"74":2,"75":7,"84":3,"85":1,"86":2,"88":1,"89":7,"97":21,"99":2,"100":1,"102":3,"103":7,"105":1,"106":7,"115":1,"116":7,"118":1,"126":4,"127":16,"129":4,"131":4,"133":7,"134":6,"135":1,"136":51,"137":2,"138":3,"140":4,"141":8,"142":5,"143":3,"144":1,"145":4,"146":3,"147":1,"148":4,"149":1,"150":3,"151":3,"152":9,"153":7,"154":1,"156":4,"157":1,"158":15,"159":1,"160":2,"161":4,"162":1,"163":2,"164":2,"165":6,"166":9,"167":28,"168":4,"169":6,"170":10,"171":6,"172":7,"173":5,"174":1,"175":7,"176":5,"177":2,"178":8}}],["rd",{"2":{"156":3}}],["rdbu",{"2":{"65":1}}],["rhumb",{"2":{"126":2}}],["runner",{"2":{"170":1}}],["running",{"2":{"136":3}}],["run",{"2":{"136":8,"177":1}}],["runs",{"2":{"54":2,"125":1}}],["rule",{"2":{"45":1}}],["rules",{"2":{"45":1}}],["right=2",{"2":{"45":1}}],["right",{"2":{"40":1,"45":4,"48":1,"66":1,"126":1,"158":19,"160":5,"169":1,"175":1}}],["ring4",{"2":{"171":2}}],["ring3",{"2":{"170":1}}],["ring2",{"2":{"169":2}}],["ring1",{"2":{"169":2}}],["rings",{"0":{"79":1,"93":1,"110":1,"120":1,"137":1},"1":{"138":1,"139":1},"2":{"4":4,"6":6,"9":2,"37":1,"44":1,"45":3,"54":1,"69":7,"125":1,"127":5,"139":1,"142":1,"156":1}}],["ring",{"2":{"4":7,"6":13,"9":1,"31":1,"34":3,"37":2,"40":1,"43":1,"44":4,"45":12,"50":13,"57":3,"66":5,"69":4,"77":1,"78":2,"79":5,"91":1,"93":1,"97":2,"108":1,"109":2,"110":4,"118":1,"119":1,"120":3,"126":3,"127":11,"137":2,"138":1,"139":14,"140":1,"169":1}}],["rtrees",{"2":{"20":1}}],["r+y",{"2":{"13":2,"14":1}}],["r+x",{"2":{"13":2,"14":1}}],["ry",{"2":{"13":3,"14":3}}],["rx",{"2":{"13":3,"14":3}}],["round",{"2":{"156":1,"158":1,"160":1}}],["routines",{"2":{"11":1}}],["row",{"2":{"136":3}}],["rows",{"2":{"136":2}}],["robust",{"0":{"15":1},"2":{"62":1}}],["rotate",{"2":{"50":1}}],["rotation",{"2":{"1":1,"6":1,"161":1}}],["rotations",{"2":{"1":3,"6":3,"161":3}}],["rotmatrix2d",{"2":{"156":1}}],["rotmatrix",{"2":{"1":1,"6":1,"161":1}}],["r",{"2":{"6":1,"9":1,"13":11,"14":12,"152":1,"160":2,"169":6,"170":2,"171":4}}],["rᵢ₋₁",{"2":{"40":20}}],["rᵢ∗rᵢ₊₁+sᵢ⋅sᵢ₊₁",{"2":{"6":1}}],["rᵢ₊₁",{"2":{"6":1,"40":29}}],["rᵢ",{"2":{"6":2,"40":49}}],["ramer",{"2":{"158":1}}],["raster",{"0":{"127":1},"2":{"127":4}}],["ray",{"2":{"97":4}}],["raw",{"2":{"18":1}}],["range",{"2":{"13":8,"14":4,"127":1,"136":4}}],["ranges",{"2":{"6":1,"127":2}}],["randomly",{"2":{"176":2}}],["random",{"2":{"156":2}}],["randn",{"2":{"60":1}}],["rand",{"2":{"6":1,"62":1,"127":1,"176":2}}],["rather",{"2":{"6":1,"127":1,"144":1}}],["ratio",{"2":{"6":7,"54":1,"152":1,"156":1,"157":4,"158":6,"159":4,"160":11}}],["radii",{"2":{"6":1,"152":1}}],["radius`",{"2":{"152":1}}],["radius",{"2":{"6":7,"40":13,"152":4}}],["radialdistance",{"0":{"157":1},"2":{"0":1,"6":2,"154":1,"156":4,"157":4}}],["rrayscore",{"2":{"1":1,"6":1,"161":1}}],["rring",{"2":{"1":1,"6":1,"161":1}}],["rewrap",{"2":{"136":3}}],["req",{"2":{"97":44}}],["requirement",{"2":{"137":1,"143":1}}],["requirements",{"2":{"97":5}}],["required",{"2":{"63":1,"75":3,"89":3,"106":3,"116":3,"151":1,"168":1}}],["require",{"2":{"63":1,"74":2,"75":6,"89":3,"97":32,"106":3,"116":3}}],["requires",{"2":{"41":1,"69":1,"71":1,"75":2,"78":3,"79":3,"80":1,"89":1,"92":3,"93":2,"94":1,"105":1,"106":1,"109":3,"110":3,"111":1,"116":1,"119":3,"120":1,"121":1,"149":1,"152":1,"166":1}}],["requests",{"2":{"25":1,"27":1}}],["reflected",{"2":{"156":3}}],["ref",{"2":{"65":1}}],["referring",{"2":{"97":1}}],["refer",{"2":{"6":1,"127":1}}],["references",{"2":{"6":1,"40":1}}],["reference",{"0":{"170":1,"171":1},"2":{"0":1,"1":2,"148":2,"168":2,"170":1}}],["reveal",{"2":{"57":1}}],["reveals",{"2":{"57":1}}],["reverse",{"2":{"36":1,"39":1,"40":1,"45":2,"169":2}}],["rev",{"2":{"56":1}}],["render",{"2":{"39":1}}],["rendering",{"2":{"39":3,"40":1}}],["rename",{"2":{"10":1}}],["regardless",{"2":{"54":1,"97":1}}],["regions",{"2":{"52":3,"54":5,"56":1,"57":3,"97":2,"177":1}}],["region",{"2":{"41":2,"54":3,"57":2,"177":1}}],["register",{"2":{"31":3,"40":3}}],["regular",{"0":{"15":1}}],["readable",{"2":{"173":1}}],["readability",{"2":{"45":1}}],["read",{"2":{"170":2}}],["reached",{"2":{"136":4}}],["reaches",{"2":{"134":1}}],["reach",{"2":{"134":1}}],["reasons",{"2":{"166":1}}],["reason",{"2":{"24":1,"137":1,"143":1,"165":1}}],["real`",{"2":{"152":1,"153":1}}],["reality",{"2":{"62":1}}],["really",{"2":{"37":1,"97":1,"127":1,"165":1}}],["real=1",{"2":{"6":2,"152":2}}],["real=6378137`",{"2":{"152":1}}],["real=6378137",{"2":{"6":2,"152":1}}],["real",{"0":{"177":1},"2":{"5":1,"6":13,"34":1,"40":45,"44":2,"54":1,"152":3,"153":1,"160":5,"175":1}}],["related",{"2":{"129":1}}],["relation",{"2":{"45":2}}],["relations",{"2":{"31":10,"86":1,"103":1}}],["relationship",{"2":{"23":1,"175":2}}],["relative",{"2":{"40":3}}],["relevant",{"2":{"6":1,"10":1,"63":1}}],["reducing",{"2":{"136":2}}],["reduced",{"2":{"157":1,"158":1,"159":1}}],["reduces",{"2":{"19":1,"57":1}}],["reduce",{"2":{"1":1,"6":1,"127":1,"136":2,"141":1}}],["redundant",{"2":{"45":1}}],["red",{"2":{"14":1,"43":2,"65":1,"74":1,"84":1,"99":1,"169":1,"170":1,"176":2}}],["removal",{"2":{"45":1}}],["removes",{"2":{"45":1,"129":1}}],["removed",{"2":{"45":3,"52":5,"127":1}}],["remove",{"2":{"37":1,"45":33,"48":2,"50":1,"51":5,"53":5,"56":2,"145":2,"157":1,"158":3,"160":4}}],["removing",{"2":{"6":3,"45":1,"52":1,"157":1,"158":1,"159":1}}],["remainingnode",{"2":{"127":3}}],["remaining",{"2":{"45":1,"69":1,"97":2,"158":1}}],["remain",{"2":{"1":1,"6":9,"136":1,"156":2}}],["resolution",{"2":{"170":1}}],["resolved",{"2":{"127":1}}],["reset",{"2":{"45":1}}],["resize",{"2":{"13":1,"14":1,"45":2}}],["resampled",{"2":{"6":1,"153":1}}],["respectively",{"2":{"45":1,"103":1,"136":1,"169":1}}],["respect",{"2":{"6":2,"53":1,"54":1,"63":1,"97":6}}],["rest",{"2":{"6":1,"40":2,"56":1}}],["resulting",{"2":{"48":1,"57":1,"127":1,"176":1}}],["results",{"2":{"3":2,"6":2,"54":1,"86":1,"103":1,"136":2,"138":1,"158":25,"169":3}}],["result",{"2":{"1":2,"3":5,"4":5,"6":13,"19":1,"34":1,"37":2,"50":1,"54":15,"63":1,"66":2,"72":1,"75":1,"85":1,"100":1,"106":1,"136":2,"152":3,"160":6}}],["receives",{"2":{"136":2}}],["recent",{"2":{"45":1,"52":1,"54":1,"57":1}}],["recalculate",{"2":{"135":1}}],["recursive",{"2":{"134":1}}],["recursively",{"2":{"4":1,"6":1,"134":1,"146":1}}],["rect",{"2":{"33":3,"36":5,"49":3,"65":7}}],["rectangle",{"2":{"33":2,"36":2,"39":2,"49":2,"50":1,"65":2,"151":5,"152":8,"176":2}}],["recommended",{"2":{"22":1}}],["reconstructing",{"2":{"156":1}}],["reconstructed",{"2":{"18":1}}],["reconstruct",{"2":{"0":2,"1":1,"6":3,"18":1,"131":2,"136":29}}],["replace",{"2":{"45":1,"127":2,"158":1}}],["replaced",{"2":{"22":1}}],["repl",{"2":{"41":1,"149":1,"152":1}}],["repeat",{"2":{"44":1,"45":3,"69":6}}],["repeating",{"2":{"37":1,"57":1}}],["repeated",{"2":{"4":3,"6":3,"9":1,"34":2,"40":1,"45":2,"57":2,"66":2,"69":4,"97":1}}],["represented",{"2":{"176":1}}],["represent",{"2":{"17":1,"40":1,"45":4,"69":1}}],["representing",{"2":{"6":2,"52":1,"54":1,"57":1,"63":1,"65":1,"69":1,"177":1}}],["represents",{"2":{"6":1,"141":2,"142":1}}],["reprojects",{"2":{"148":1}}],["reprojection",{"0":{"148":1},"1":{"149":1}}],["reproject",{"2":{"0":1,"1":4,"31":2,"129":1,"148":6,"149":2}}],["re",{"2":{"1":1,"6":1,"17":1,"63":1,"161":1,"168":1,"170":1}}],["retrievable",{"2":{"1":1,"148":1}}],["returnval",{"2":{"97":9}}],["returntype",{"2":{"19":1}}],["returning",{"2":{"18":1,"41":1,"52":2}}],["return",{"0":{"22":1},"2":{"1":1,"3":18,"4":2,"6":37,"13":3,"14":3,"23":2,"30":1,"34":5,"37":5,"40":20,"41":1,"44":4,"45":36,"48":12,"50":12,"51":5,"52":4,"53":4,"54":18,"56":6,"57":9,"63":2,"66":8,"69":30,"72":1,"75":1,"81":2,"82":2,"85":1,"86":18,"89":2,"95":2,"96":2,"97":71,"99":1,"100":1,"103":28,"106":1,"112":2,"113":2,"116":1,"118":2,"122":2,"123":2,"126":10,"127":12,"136":26,"137":1,"139":4,"141":6,"142":2,"145":2,"147":2,"148":1,"153":4,"156":3,"157":1,"158":5,"159":3,"160":7,"161":2,"162":2,"166":3,"167":8}}],["returned",{"2":{"1":1,"6":11,"22":2,"23":1,"45":3,"48":1,"51":2,"53":2,"54":2,"56":2,"62":1,"63":1,"127":1,"131":1,"136":2,"148":1,"156":1,"165":1}}],["returns",{"2":{"1":1,"3":5,"4":4,"5":3,"6":24,"18":1,"22":2,"34":1,"37":2,"40":6,"44":3,"45":4,"48":1,"50":6,"51":1,"54":1,"56":1,"63":1,"66":8,"68":1,"71":2,"72":1,"75":1,"84":2,"85":1,"88":1,"97":4,"100":1,"103":2,"106":1,"127":2,"136":2,"153":1,"162":1,"175":1}}],["rebuilt",{"2":{"1":1,"6":2,"131":1,"136":2}}],["rebuild",{"2":{"0":2,"6":4,"131":4,"134":1,"136":10,"153":1,"156":2}}],["psa",{"2":{"136":2}}],["pb",{"2":{"86":2}}],["p0",{"2":{"66":9}}],["p3",{"2":{"45":8,"159":4}}],["ptm",{"2":{"126":3}}],["ptj",{"2":{"126":5}}],["pti",{"2":{"126":3}}],["ptrait",{"2":{"66":2}}],["pts",{"2":{"45":22,"48":7}}],["pt",{"2":{"45":114,"48":2,"54":26,"97":8,"158":4}}],["pt2",{"2":{"45":14,"54":2}}],["pt1",{"2":{"45":18,"54":2}}],["pn",{"2":{"118":3}}],["pn2",{"2":{"45":4}}],["pn1",{"2":{"45":4}}],["pfirst",{"2":{"37":3}}],["pu",{"2":{"176":2}}],["purpose",{"2":{"136":1}}],["pure",{"2":{"6":1,"63":1,"127":1}}],["purely",{"2":{"6":1,"18":1,"152":1}}],["push",{"2":{"45":15,"48":5,"51":2,"53":2,"54":2,"56":4,"57":5,"127":3,"139":1,"153":3,"158":3}}],["pulling",{"2":{"63":1}}],["pull",{"2":{"25":1,"27":1}}],["public",{"2":{"24":1}}],["pick",{"2":{"170":2}}],["piece",{"2":{"45":6,"145":6}}],["pieces",{"2":{"45":12,"48":1,"52":2,"56":4,"97":1,"145":9}}],["pi",{"2":{"13":2}}],["pixels",{"2":{"127":1}}],["pixel",{"2":{"6":2,"127":7}}],["pythagorean",{"2":{"66":1}}],["py",{"2":{"13":2,"14":2}}],["px",{"2":{"13":2,"14":2}}],["peucker",{"2":{"154":2,"156":3,"158":2}}],["peaks",{"2":{"127":2}}],["peculiarities",{"0":{"21":1},"1":{"22":1,"23":1,"24":1}}],["people",{"2":{"9":1}}],["performed",{"2":{"176":1}}],["performs",{"2":{"40":1,"153":1}}],["perform",{"2":{"26":1,"39":1,"40":2,"45":1,"129":1,"175":3,"176":2,"178":1}}],["performing",{"2":{"6":3,"23":1,"40":1,"51":1,"53":1,"56":1,"176":1}}],["performance",{"2":{"4":1,"6":2,"22":1,"127":1,"143":1,"146":1,"156":1,"173":1}}],["per",{"2":{"5":2,"6":2,"39":1,"40":2,"45":5,"127":1,"136":4,"153":1}}],["pl",{"2":{"176":2}}],["plt",{"2":{"169":1}}],["please",{"2":{"45":1}}],["plan",{"2":{"150":1}}],["plane",{"2":{"40":1,"174":1}}],["place",{"2":{"54":1,"175":1}}],["placement",{"2":{"45":1}}],["plottable",{"2":{"127":1}}],["plotted",{"2":{"43":1}}],["plotting",{"0":{"169":1},"2":{"6":1,"127":1,"150":1,"153":1,"168":1,"169":4,"170":1}}],["plots",{"2":{"39":2}}],["plot",{"0":{"170":1},"2":{"13":1,"39":3,"60":2,"61":1,"62":1,"68":1,"102":1,"127":1,"152":2,"156":4,"168":2,"169":9,"170":5,"171":1,"173":1,"176":1}}],["plus",{"2":{"5":1,"6":1,"40":1}}],["p2y",{"2":{"167":3}}],["p2x",{"2":{"167":3}}],["p2box",{"2":{"39":1}}],["p2",{"2":{"3":2,"4":2,"6":6,"15":12,"34":12,"37":9,"45":18,"50":19,"56":2,"62":1,"66":15,"69":11,"75":2,"84":2,"97":12,"103":2,"126":3,"151":1,"159":4,"167":3,"169":2}}],["p1y",{"2":{"167":3}}],["p1x",{"2":{"167":3}}],["p1",{"2":{"3":3,"4":2,"6":7,"15":12,"34":21,"37":8,"39":4,"45":9,"47":1,"50":25,"56":2,"62":2,"66":15,"69":14,"74":5,"75":3,"84":5,"97":4,"103":2,"118":3,"126":3,"159":4,"167":3,"169":1}}],["practice",{"2":{"171":1}}],["pred",{"2":{"175":2,"176":1,"177":2,"178":1}}],["predicate",{"2":{"7":1,"86":1,"175":3,"176":1,"178":5}}],["predicates",{"0":{"12":1,"15":1,"178":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"7":4,"12":1,"31":1,"45":5,"54":4,"55":3,"97":1,"175":1,"177":1}}],["pretty",{"2":{"148":1}}],["prettytime",{"2":{"13":2}}],["prevent",{"2":{"52":2,"54":2,"57":2}}],["prev^2",{"2":{"34":2}}],["prev",{"2":{"34":14,"45":69,"126":4}}],["previously",{"2":{"151":1}}],["previous",{"2":{"19":1,"34":1,"136":1,"157":3}}],["preparations",{"2":{"20":1}}],["prepared",{"2":{"20":1,"127":2}}],["prepare",{"0":{"20":1},"2":{"17":1,"20":1}}],["precision",{"2":{"11":1}}],["preserve",{"2":{"156":4,"158":3}}],["preserving",{"2":{"154":1}}],["presentation",{"2":{"6":1,"40":1}}],["present",{"2":{"6":1,"166":1}}],["presence",{"2":{"6":1,"166":1}}],["prescribes",{"2":{"20":1}}],["press",{"2":{"6":1,"40":1}}],["pre",{"2":{"6":1,"56":1,"156":1,"158":2}}],["prefilter",{"2":{"6":1,"156":7}}],["protters",{"2":{"136":2}}],["progressively",{"2":{"134":1}}],["program",{"2":{"17":1}}],["programming",{"2":{"17":1,"26":1}}],["promote",{"2":{"40":5}}],["property",{"2":{"136":2}}],["properties=gi",{"2":{"136":1}}],["properties=namedtuple",{"2":{"136":1}}],["properties=",{"2":{"127":1}}],["properties",{"2":{"6":1,"136":9,"156":1,"160":1}}],["propagate",{"2":{"40":16,"66":4}}],["probably",{"2":{"37":1,"136":1}}],["prod",{"2":{"34":4}}],["product",{"2":{"34":1}}],["process",{"2":{"77":3,"78":3,"79":3,"80":1,"86":1,"91":3,"92":3,"93":2,"94":1,"97":11,"108":3,"109":3,"110":3,"111":1,"118":1,"119":3,"120":1,"121":1,"136":2,"158":1}}],["processed",{"2":{"45":6}}],["processors",{"2":{"31":1,"75":2,"89":2,"106":2,"116":2}}],["processor",{"2":{"31":1}}],["processing",{"2":{"23":1}}],["profile",{"2":{"9":1}}],["providers",{"2":{"138":1,"144":1}}],["provide",{"0":{"23":1},"2":{"6":6,"33":1,"36":1,"38":1,"43":1,"47":1,"49":1,"51":2,"53":2,"56":2,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"97":2,"99":1,"102":1,"105":1,"115":1,"127":1,"160":1}}],["provides",{"2":{"6":1,"58":1,"63":1,"170":1}}],["provided",{"2":{"4":1,"6":3,"11":1,"45":1,"66":1,"69":1,"144":1,"152":2,"166":1}}],["projecting",{"2":{"170":1}}],["projection",{"2":{"66":2,"168":1,"170":1}}],["project",{"2":{"9":1}}],["projects",{"2":{"9":1}}],["proj",{"2":{"1":2,"6":3,"148":2,"149":4,"151":1,"152":6,"168":1}}],["prints",{"2":{"149":1}}],["printstyled",{"2":{"41":1,"149":1,"152":1}}],["println",{"2":{"41":1,"149":1,"152":1,"156":2}}],["print",{"2":{"41":2,"149":2,"152":2}}],["primitives",{"2":{"31":1}}],["primitive",{"0":{"129":1},"1":{"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1},"2":{"29":1}}],["primarily",{"2":{"6":1,"25":2,"27":2,"164":1}}],["primary",{"2":{"3":2,"6":3,"75":1,"106":1,"156":1}}],["priority",{"2":{"1":1,"148":1}}],["pay",{"2":{"136":1}}],["paper",{"2":{"97":2}}],["pa",{"2":{"86":2}}],["paths",{"0":{"174":1},"2":{"165":1,"174":2}}],["pathof",{"2":{"156":2}}],["path",{"2":{"36":3,"170":2}}],["padding",{"2":{"6":2}}],["parquet",{"2":{"173":3}}],["parent",{"2":{"165":1}}],["parse",{"2":{"97":1,"103":1}}],["part",{"2":{"50":2,"57":2,"97":3,"135":1}}],["partition",{"2":{"136":4}}],["partialsort",{"2":{"160":1}}],["partial",{"2":{"50":4}}],["partially",{"2":{"45":2,"57":2}}],["particularly",{"2":{"40":1}}],["particular",{"2":{"30":1,"34":1,"127":1,"170":2}}],["parallel",{"2":{"97":1,"126":1}}],["paradigm",{"0":{"29":1}}],["paradigms",{"0":{"17":1},"1":{"18":1,"19":1,"20":1},"2":{"17":2,"20":1}}],["parameters",{"2":{"6":1,"136":1,"164":2}}],["parameter",{"2":{"6":2,"164":3}}],["params",{"2":{"6":2,"166":10}}],["parlance",{"2":{"5":1,"6":1,"40":1}}],["passes",{"2":{"50":2,"97":1}}],["passed",{"2":{"1":2,"6":7,"63":1,"127":1,"131":1,"136":2,"148":1,"152":2,"161":1,"166":2,"178":1}}],["passable",{"2":{"40":18}}],["passing",{"2":{"18":1,"136":1,"154":1}}],["pass",{"2":{"5":1,"6":4,"18":1,"40":1,"72":1,"85":1,"97":2,"100":1,"152":1,"153":1,"156":1,"165":1}}],["pairs",{"2":{"54":1,"169":1}}],["pair",{"2":{"3":2,"6":2,"50":1,"103":2,"136":3}}],["packages",{"2":{"6":1,"25":1,"27":1,"58":1,"131":1,"136":1,"137":1,"163":1,"168":3,"170":1,"173":1}}],["package",{"2":{"1":2,"6":1,"22":1,"25":2,"27":2,"41":1,"58":2,"63":1,"127":1,"148":3,"149":1,"152":1,"170":1,"173":2}}],["page",{"2":{"0":1,"9":1,"26":1,"29":1,"31":1,"34":1,"37":1,"39":1,"40":1,"41":1,"44":1,"45":1,"48":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"147":1,"149":1,"153":1,"160":1,"161":1,"162":1,"166":1,"167":1}}],["p",{"2":{"1":5,"6":5,"13":13,"14":12,"15":2,"33":1,"36":1,"43":1,"45":5,"49":1,"50":5,"52":2,"56":2,"60":1,"61":1,"65":3,"68":1,"71":1,"74":1,"84":1,"86":4,"88":1,"97":20,"99":1,"102":1,"105":1,"115":1,"126":4,"127":3,"129":3,"136":3,"147":7,"151":1,"155":1,"156":1,"160":3,"161":9,"162":7,"167":11,"175":1,"176":1}}],["poylgon",{"2":{"97":1}}],["potential",{"2":{"50":1}}],["potentially",{"2":{"6":2,"45":1,"142":2,"145":2}}],["post",{"2":{"158":2}}],["possibly",{"2":{"136":1}}],["possiblenodes",{"2":{"127":2}}],["possible",{"2":{"6":3,"51":1,"53":1,"56":1,"127":1,"136":2}}],["possibility",{"2":{"134":1}}],["possibilities",{"2":{"54":1}}],["position=",{"2":{"156":1}}],["position",{"2":{"6":1,"126":1,"151":1}}],["positive",{"2":{"4":4,"6":4,"36":3,"37":1,"65":3,"66":3,"153":1,"160":1}}],["polgons",{"2":{"127":1}}],["polgontrait",{"2":{"1":1,"6":1}}],["polar",{"2":{"6":1,"152":1}}],["polynodes",{"2":{"45":7,"51":1,"53":1,"56":1}}],["polynode",{"2":{"45":36}}],["polypoints",{"2":{"40":46}}],["polys",{"2":{"6":2,"45":39,"47":3,"48":10,"51":14,"52":14,"53":9,"54":6,"56":14,"57":28,"145":26}}],["polys1",{"2":{"3":2,"6":2,"103":6}}],["polys2",{"2":{"3":2,"6":2,"103":6}}],["poly",{"2":{"3":2,"6":16,"15":2,"33":1,"36":1,"37":6,"39":2,"40":3,"43":1,"45":107,"47":4,"48":20,"49":2,"50":4,"51":22,"52":12,"53":15,"54":10,"56":19,"57":79,"60":2,"65":1,"66":3,"69":4,"86":10,"97":21,"103":8,"126":5,"127":5,"145":18,"151":2,"155":2,"156":8,"167":8,"169":2,"176":5}}],["poly2",{"2":{"3":3,"4":2,"6":7,"51":2,"69":2,"97":19,"103":7}}],["poly1",{"2":{"3":3,"4":2,"6":7,"51":2,"69":2,"97":14,"103":7}}],["polygon3",{"2":{"169":2,"170":1}}],["polygon2",{"2":{"169":6}}],["polygon1",{"2":{"169":4}}],["polygonization",{"2":{"127":1}}],["polygonizing",{"0":{"127":1}}],["polygonized",{"2":{"127":1}}],["polygonize",{"2":{"0":1,"6":6,"9":1,"31":1,"127":31}}],["polygon`",{"2":{"40":3,"63":1}}],["polygons",{"0":{"80":1,"111":1,"121":1,"143":1},"1":{"144":1,"145":1},"2":{"3":4,"4":3,"5":1,"6":18,"9":1,"23":5,"31":1,"37":5,"38":1,"40":2,"43":1,"44":1,"45":14,"48":2,"50":1,"51":9,"52":5,"53":3,"54":8,"56":6,"57":19,"65":1,"66":1,"69":5,"80":1,"103":5,"111":1,"126":1,"127":19,"134":1,"138":2,"142":3,"143":2,"144":2,"145":10,"154":1,"156":1,"169":3,"170":1,"176":5,"177":3}}],["polygontrait",{"2":{"1":1,"3":4,"4":6,"6":14,"15":3,"23":1,"34":2,"37":3,"40":3,"44":2,"45":2,"48":1,"50":2,"51":5,"52":5,"53":3,"54":5,"56":4,"57":8,"66":2,"69":10,"77":2,"78":1,"79":1,"80":3,"81":1,"86":4,"91":2,"92":2,"93":1,"94":2,"95":1,"103":8,"108":2,"109":1,"110":1,"111":3,"112":1,"118":2,"119":1,"120":1,"121":3,"122":1,"129":1,"134":2,"136":1,"139":2,"141":2,"142":1,"145":2,"156":2,"167":1}}],["polygon",{"0":{"45":1,"46":1,"51":1,"52":1,"54":1,"56":1,"57":1,"94":1},"1":{"47":1,"48":1},"2":{"0":1,"1":4,"3":4,"4":21,"5":9,"6":65,"9":2,"11":3,"15":4,"20":1,"23":1,"33":1,"34":5,"36":2,"37":5,"38":5,"39":16,"40":57,"43":2,"44":4,"45":39,"47":3,"48":10,"49":3,"50":4,"51":5,"52":7,"53":5,"54":6,"56":6,"57":34,"58":1,"62":1,"63":3,"65":3,"66":14,"69":12,"75":1,"77":3,"78":3,"79":4,"80":8,"86":1,"91":3,"92":4,"93":4,"94":4,"97":66,"103":4,"106":1,"108":3,"109":4,"110":4,"111":8,"116":1,"118":3,"119":4,"120":5,"121":7,"126":5,"127":4,"136":1,"137":4,"138":8,"139":5,"140":1,"142":4,"143":3,"144":12,"145":7,"151":1,"152":4,"155":1,"156":9,"161":3,"167":6,"169":12,"170":5,"171":7,"172":2,"176":6}}],["pointwise",{"0":{"161":1},"2":{"148":1}}],["point1",{"2":{"66":4}}],["point`",{"2":{"54":1}}],["pointedgeside",{"2":{"45":1}}],["point₂",{"2":{"44":13}}],["point₁",{"2":{"44":13}}],["point3s",{"2":{"40":10}}],["point3f",{"2":{"39":1}}],["pointrait",{"2":{"6":1}}],["point2f",{"2":{"39":4,"40":2,"60":1,"65":1}}],["point2d",{"2":{"39":1}}],["point2",{"2":{"6":2,"40":5,"62":1,"66":4}}],["pointtrait",{"2":{"1":1,"4":4,"6":9,"18":1,"34":2,"37":1,"40":3,"50":1,"53":2,"63":1,"66":17,"69":8,"77":6,"81":1,"91":6,"95":1,"108":6,"112":1,"118":6,"122":1,"129":2,"134":1,"136":21,"141":2,"142":1,"146":1,"147":2,"156":2,"161":2,"162":2,"164":2,"167":1}}],["point",{"0":{"91":1,"118":1},"2":{"1":4,"3":10,"4":37,"5":7,"6":83,"9":2,"20":1,"34":12,"37":3,"38":3,"39":1,"40":126,"44":6,"45":97,"48":13,"50":50,"52":9,"53":1,"54":71,"57":9,"63":3,"65":17,"66":73,"69":27,"72":3,"74":1,"75":2,"77":8,"86":21,"89":2,"91":10,"97":138,"99":1,"102":2,"103":21,"106":4,"108":11,"115":1,"116":3,"118":10,"119":1,"121":1,"126":1,"127":3,"136":1,"137":1,"138":2,"142":2,"143":1,"145":2,"148":1,"150":1,"156":2,"157":3,"158":9,"159":1,"161":2,"167":4,"169":111,"170":7,"171":8,"176":2}}],["points2",{"2":{"3":1,"6":1,"103":3}}],["points1",{"2":{"3":1,"6":1,"103":3}}],["points",{"0":{"77":1,"108":1},"2":{"0":1,"1":3,"3":1,"4":11,"5":1,"6":53,"9":3,"13":1,"34":2,"36":3,"37":3,"39":8,"40":32,"44":1,"45":55,"48":3,"50":5,"51":5,"52":1,"53":8,"54":28,"56":4,"57":1,"58":3,"60":4,"62":4,"63":6,"65":2,"66":8,"68":2,"69":13,"71":1,"75":6,"77":3,"78":4,"89":6,"91":1,"92":7,"93":3,"97":10,"103":5,"105":1,"106":5,"108":3,"109":3,"110":3,"111":1,"116":5,"118":1,"119":2,"120":4,"121":3,"125":1,"127":3,"136":1,"146":2,"148":1,"151":2,"152":2,"156":11,"157":11,"158":26,"159":10,"160":33,"161":2,"162":2,"167":25,"169":8,"170":1,"175":1,"176":11}}],["pointorientation",{"2":{"0":1,"6":2,"97":2}}],["my",{"2":{"177":1,"178":2}}],["moore",{"2":{"127":1}}],["moved",{"2":{"45":1,"148":1}}],["move",{"2":{"44":1,"97":1}}],["mode",{"2":{"178":3}}],["model",{"2":{"175":1}}],["modify",{"2":{"169":1}}],["modified",{"2":{"136":2}}],["module",{"2":{"148":1,"153":1}}],["modules",{"2":{"6":1,"40":1}}],["mod1",{"2":{"40":5}}],["mod",{"2":{"40":1,"45":1}}],["most",{"2":{"25":1,"27":1,"45":1,"52":1,"54":1,"57":1,"62":1,"97":1,"156":1,"173":2}}],["monotone",{"2":{"20":1,"62":2}}],["monotonechainmethod",{"2":{"0":1,"6":1,"58":1,"62":2,"63":4}}],["moment",{"2":{"6":1,"151":1,"153":1}}],["more",{"2":{"6":3,"7":1,"9":1,"10":1,"11":1,"23":1,"26":1,"29":1,"45":1,"51":1,"53":1,"56":1,"63":1,"97":1,"103":1,"136":4,"139":1,"149":1,"151":1,"153":1,"169":2,"175":1}}],["mistakenly",{"2":{"143":1}}],["missing",{"2":{"131":6,"132":2,"151":4}}],["missed",{"2":{"127":1}}],["mid",{"2":{"50":2,"97":3}}],["midpoint",{"2":{"45":2}}],["middle",{"2":{"45":2}}],["mining",{"2":{"177":1}}],["minimal",{"2":{"177":1}}],["minimize",{"2":{"54":1}}],["minimum",{"2":{"4":7,"6":12,"49":1,"50":2,"66":12,"156":1,"157":1,"159":1}}],["mind",{"2":{"151":1,"176":1}}],["minmax",{"2":{"54":4}}],["min",{"2":{"50":1,"54":16,"66":15,"156":1,"158":3,"159":1,"160":28}}],["minus",{"2":{"36":1}}],["minpoints=0",{"2":{"127":1}}],["minpoints",{"2":{"6":2}}],["might",{"2":{"6":3,"25":1,"27":1,"37":1,"51":1,"53":1,"54":1,"56":1,"140":1,"158":1}}],["mixed",{"2":{"6":4,"156":1}}],["m",{"2":{"5":1,"6":1,"15":10,"40":2,"50":6,"126":2,"170":1}}],["mp",{"2":{"86":2}}],["mp1",{"2":{"4":2,"6":2,"69":7}}],["mp2",{"2":{"4":2,"6":2,"69":8}}],["manner",{"2":{"175":1}}],["manipulate",{"2":{"173":1}}],["manually",{"2":{"137":1}}],["many",{"2":{"4":1,"5":1,"6":2,"23":1,"26":1,"40":1,"45":1,"48":1,"52":1,"54":2,"57":1,"69":1,"138":1,"146":1}}],["mason",{"2":{"136":2}}],["markersize",{"2":{"169":2}}],["marker",{"2":{"169":2}}],["marked",{"2":{"45":6,"52":1,"54":1,"57":1}}],["marking",{"2":{"52":2,"54":2,"57":2}}],["mark",{"2":{"45":2}}],["marks",{"2":{"45":1}}],["mag",{"2":{"34":4}}],["making",{"2":{"45":1,"127":1,"134":1,"144":1,"169":1,"171":2}}],["makie",{"2":{"13":1,"14":1,"33":1,"36":1,"39":3,"43":1,"47":4,"49":1,"60":1,"61":1,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"127":3,"155":1,"156":1,"174":1}}],["makevalid",{"2":{"156":2}}],["makes",{"2":{"37":1,"45":1,"66":1,"136":1,"138":1,"143":1,"144":1}}],["make",{"2":{"9":1,"25":1,"27":1,"34":1,"45":3,"54":1,"66":1,"103":1,"127":2,"134":1,"139":1,"151":1,"160":1,"163":1,"169":2,"171":1}}],["mainly",{"2":{"40":1,"65":1,"129":1}}],["maintain",{"2":{"37":1}}],["main",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"7":1,"26":1,"45":1,"127":1,"136":1,"152":1}}],["mapped",{"2":{"173":1}}],["maptasks",{"2":{"136":6}}],["mapreducetasks",{"2":{"136":5}}],["mapreduce",{"2":{"52":1,"127":2,"136":8}}],["map",{"0":{"170":1},"2":{"6":1,"13":1,"18":3,"19":1,"29":1,"40":1,"45":1,"54":1,"103":2,"127":17,"136":24,"139":1,"156":1,"164":1,"168":1,"170":1,"171":1,"173":1}}],["matlab",{"2":{"47":1}}],["materializer`",{"2":{"136":1}}],["materializer",{"2":{"22":1,"136":1}}],["mathrm",{"2":{"40":1}}],["math",{"2":{"7":1}}],["mathematically",{"2":{"6":1,"126":1}}],["matches",{"2":{"69":1,"127":1}}],["match",{"2":{"6":1,"69":12,"103":3,"127":1,"131":1,"136":2}}],["matching",{"2":{"3":1,"6":1,"22":1,"69":3,"103":1,"134":2}}],["matrix",{"2":{"6":1,"14":2,"40":1}}],["maximal",{"2":{"54":1}}],["maximum",{"2":{"3":1,"6":4,"14":1,"49":1,"50":4,"86":1,"127":1,"152":1,"153":1,"158":4}}],["max",{"2":{"6":9,"34":2,"50":1,"127":1,"136":2,"151":5,"152":8,"153":7,"158":36,"160":1,"174":1}}],["made",{"2":{"6":2,"44":1,"45":1,"54":1,"120":1,"134":1,"142":1,"145":1,"159":1}}],["maybe",{"2":{"6":1,"97":4,"131":1,"136":6}}],["may",{"2":{"1":1,"6":5,"23":2,"24":1,"40":2,"45":1,"54":1,"62":1,"126":1,"128":1,"134":1,"136":4,"143":1,"144":1,"152":1,"164":1}}],["mercator",{"2":{"170":1}}],["merge",{"2":{"136":1}}],["measure",{"2":{"136":1,"150":1}}],["meant",{"2":{"26":1}}],["meaning",{"2":{"3":3,"4":1,"6":4,"24":1,"37":1,"41":1,"103":4,"126":1}}],["means",{"2":{"3":1,"6":2,"36":1,"37":1,"41":1,"74":1,"97":3,"102":1,"103":1,"126":1,"134":1}}],["mean",{"2":{"0":1,"6":5,"17":1,"39":2,"40":5,"136":1}}],["meanvalue",{"2":{"0":1,"5":2,"6":3,"38":1,"39":2,"40":15}}],["meets",{"2":{"97":9,"103":1,"158":1}}],["meet",{"2":{"54":3,"74":1,"75":1,"89":1,"97":7,"106":1,"116":1}}],["memory",{"2":{"40":1,"171":1}}],["mesh",{"2":{"39":1,"136":1}}],["message",{"2":{"6":1,"166":1}}],["me",{"0":{"23":1}}],["mentioned",{"2":{"19":1}}],["mentions",{"2":{"6":1,"166":1}}],["menu",{"2":{"14":3}}],["median",{"2":{"13":4,"136":1}}],["mechanics",{"2":{"6":1,"40":1}}],["met",{"2":{"97":44}}],["meters",{"2":{"6":4,"151":1,"152":4,"170":1}}],["methoderror",{"2":{"31":3}}],["methods",{"0":{"2":1,"3":1,"4":1,"6":1},"1":{"3":1,"4":1},"2":{"1":1,"6":9,"9":1,"25":1,"27":1,"31":27,"40":3,"58":1,"75":1,"89":1,"106":1,"116":1,"127":1,"131":1,"134":1,"136":2,"151":1,"156":2,"161":1,"164":1,"169":1}}],["method",{"0":{"149":1},"2":{"1":1,"4":1,"5":10,"6":97,"24":1,"34":1,"37":1,"40":37,"41":2,"44":1,"50":1,"54":1,"57":1,"62":3,"63":2,"66":4,"69":1,"75":2,"89":2,"103":1,"106":2,"116":2,"127":1,"136":5,"148":1,"149":2,"151":2,"152":9,"153":14,"154":2,"165":1,"166":3,"175":1,"178":1}}],["mutation",{"2":{"172":1}}],["mutlipolygon",{"2":{"4":1,"6":1,"44":1}}],["muladd",{"2":{"40":2}}],["multifloats",{"2":{"13":1,"14":1,"15":1}}],["multifloat",{"2":{"7":1}}],["multilinestringtrait",{"2":{"141":1}}],["multilinestring",{"2":{"6":1,"136":1,"167":2}}],["multi",{"0":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1},"2":{"4":2,"6":3,"34":1,"37":1,"50":1,"69":2,"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["multicurves",{"2":{"37":1,"50":1}}],["multicurve",{"2":{"4":1,"6":1,"37":1}}],["multigeometry",{"2":{"4":2,"6":2,"66":2}}],["multiplication",{"2":{"153":1}}],["multiplied",{"2":{"40":3}}],["multiple",{"2":{"4":1,"6":1,"40":1,"97":1,"146":1,"160":1,"169":1,"173":1}}],["multiply",{"2":{"1":1,"6":1,"161":1}}],["multipolys",{"2":{"57":3}}],["multipoly`",{"2":{"51":2,"53":2,"56":2}}],["multipoly",{"2":{"6":9,"15":3,"51":1,"52":27,"53":1,"54":26,"56":1,"57":24,"145":21,"156":9}}],["multipolygon`",{"2":{"127":1}}],["multipolygons",{"2":{"3":1,"4":1,"6":11,"44":1,"51":3,"53":3,"54":3,"56":3,"65":1,"69":1,"103":2,"144":1,"169":1,"170":1}}],["multipolygon",{"2":{"3":2,"4":5,"6":16,"37":2,"43":1,"51":1,"52":7,"53":1,"54":5,"56":1,"57":6,"69":4,"103":2,"127":7,"136":1,"142":2,"143":7,"144":8,"145":2,"156":3,"169":8,"170":1}}],["multipolygontrait",{"2":{"1":1,"3":4,"4":2,"6":7,"23":1,"52":4,"54":4,"57":4,"69":6,"81":1,"82":1,"95":1,"96":1,"103":8,"112":1,"113":1,"122":1,"123":1,"136":1,"141":1,"145":4}}],["multipoint",{"2":{"4":5,"6":5,"37":1,"69":5,"86":6,"136":4,"156":1,"169":5}}],["multipoints",{"2":{"3":2,"4":1,"6":3,"37":1,"50":1,"69":2,"103":2,"156":1,"169":1}}],["multipointtrait",{"2":{"1":1,"3":2,"4":4,"6":8,"34":2,"37":1,"50":1,"69":8,"81":1,"82":1,"86":4,"95":1,"96":1,"103":4,"112":1,"113":1,"122":1,"123":1,"134":1,"141":1,"156":2,"167":1}}],["multithreading",{"2":{"1":2,"4":1,"6":5,"133":1}}],["must",{"2":{"1":1,"3":8,"4":2,"5":1,"6":23,"9":1,"34":1,"40":5,"41":1,"45":2,"48":1,"50":3,"54":2,"69":5,"72":2,"75":1,"84":1,"85":1,"89":1,"97":13,"103":1,"106":2,"115":1,"116":1,"127":1,"131":1,"136":1,"140":1,"141":3,"142":1,"148":1,"152":1,"153":1,"156":1,"160":4,"166":1}}],["much",{"2":{"0":1,"6":3,"51":1,"53":1,"56":1}}],["mdash",{"2":{"1":4,"3":9,"4":8,"5":3,"6":89,"131":3,"141":1,"142":4}}],["df",{"2":{"172":3,"173":4,"176":10,"177":12}}],["dp",{"2":{"156":3}}],["dy",{"2":{"126":2,"153":3}}],["dy2",{"2":{"126":2}}],["dy1",{"2":{"86":10,"126":2}}],["dyc",{"2":{"86":2}}],["dx",{"2":{"126":2,"153":3}}],["dx2",{"2":{"126":2}}],["dx1",{"2":{"86":10,"126":2}}],["dxc",{"2":{"86":2}}],["drop",{"2":{"57":1,"145":1,"153":1}}],["driven",{"2":{"25":1,"27":1}}],["driving",{"2":{"25":1,"27":1}}],["duplicated",{"2":{"54":2}}],["during",{"2":{"45":1}}],["due",{"2":{"44":1,"45":1,"54":3}}],["date",{"2":{"62":1}}],["datas",{"2":{"178":1}}],["datasets",{"2":{"170":1,"175":1,"176":1}}],["dataset",{"2":{"170":1,"175":1}}],["datainterpolations",{"2":{"150":1}}],["dataframes",{"2":{"172":3,"176":2,"177":1}}],["dataframe",{"2":{"29":1,"172":1,"175":1,"176":5,"177":2}}],["data",{"0":{"127":1,"173":1},"2":{"23":1,"25":1,"27":1,"61":1,"127":2,"156":10,"168":1,"170":2,"171":2,"172":2,"173":6,"176":1}}],["dataaspect",{"2":{"13":1,"14":1,"33":1,"36":1,"39":2,"43":1,"49":1,"65":2,"127":2,"151":1,"156":1}}],["dashboard",{"0":{"14":1},"2":{"13":1,"14":1}}],["d",{"2":{"1":2,"5":1,"6":1,"40":1,"148":1,"158":3}}],["deu",{"2":{"177":2}}],["demonstrates",{"2":{"176":1}}],["densify",{"2":{"152":3}}],["densifying",{"2":{"152":1}}],["densifies",{"2":{"150":1}}],["denoted",{"2":{"97":1}}],["denotes",{"2":{"45":1}}],["debug",{"2":{"141":1}}],["debugging",{"2":{"40":1,"45":1}}],["de",{"2":{"97":2,"175":1}}],["derivation",{"2":{"54":1}}],["dealing",{"2":{"50":1}}],["delete",{"2":{"86":1,"103":1,"127":1,"158":1}}],["deleteat",{"2":{"45":6,"158":1,"160":2}}],["deltri",{"2":{"63":1}}],["delayed",{"2":{"45":10,"52":2,"54":2,"57":2}}],["delay",{"2":{"45":14,"51":2,"52":2,"53":2,"54":2,"56":2,"57":2}}],["delaunay",{"2":{"6":1,"63":1}}],["delaunaytriangulation",{"2":{"6":1,"31":1,"58":1,"63":6}}],["depend",{"2":{"45":2}}],["depends",{"2":{"45":1,"48":1}}],["depending",{"2":{"1":1,"6":1,"23":1,"54":1,"136":1}}],["depth",{"2":{"40":2}}],["desktop",{"2":{"173":1}}],["dest",{"2":{"170":2}}],["destination",{"2":{"170":5}}],["desired",{"2":{"56":1,"173":1}}],["despite",{"2":{"34":1}}],["describe",{"2":{"17":1}}],["described",{"2":{"6":1,"40":1,"44":1,"45":1}}],["deconstruct",{"2":{"129":1}}],["decomposition",{"2":{"18":1,"129":1}}],["decomposing",{"2":{"18":1}}],["decompose",{"2":{"18":2,"29":1,"40":4,"137":1}}],["decrementing",{"2":{"127":1}}],["decrease",{"2":{"44":1}}],["decreasing",{"2":{"6":1,"156":1}}],["decide",{"2":{"62":1,"127":1}}],["decision",{"2":{"24":1}}],["degeneracies",{"2":{"9":1}}],["degenerate",{"2":{"6":1,"40":1,"48":2}}],["degrees",{"2":{"6":1,"33":1,"126":1,"152":1}}],["defines",{"2":{"45":1,"129":1,"140":1,"163":1}}],["define",{"2":{"39":1,"54":2,"68":1,"127":2,"129":1,"134":1,"136":1,"163":1,"178":2}}],["defined",{"2":{"4":1,"5":1,"6":3,"7":1,"22":1,"34":2,"40":1,"49":1,"50":4,"54":4,"66":2,"125":1,"136":1,"153":1,"163":1}}],["definitions",{"2":{"166":1}}],["definition",{"2":{"4":4,"6":6,"69":8,"74":1,"153":1}}],["default",{"2":{"1":2,"4":5,"6":14,"34":1,"37":2,"50":1,"51":1,"52":2,"53":1,"54":5,"56":1,"57":2,"63":1,"66":2,"127":5,"131":1,"136":2,"148":2,"156":2}}],["defaults",{"2":{"1":6,"4":2,"6":14,"133":3,"136":1}}],["deeper",{"2":{"1":1,"6":1,"135":1,"136":2}}],["detrimental",{"2":{"143":1}}],["detector",{"2":{"62":1}}],["detection",{"2":{"62":1,"127":1}}],["determined",{"2":{"45":1,"50":1}}],["determine",{"2":{"45":10,"50":3,"51":2,"53":2,"54":9,"56":2,"75":1,"89":1,"97":9,"103":1,"106":1,"116":1,"158":3,"175":1}}],["determines",{"2":{"37":1,"45":3,"54":1,"97":10}}],["determinant",{"2":{"6":1,"40":1}}],["details",{"2":{"131":3,"132":1,"151":2}}],["detail",{"2":{"26":1}}],["det",{"2":{"0":1,"6":2,"40":4}}],["dirname",{"2":{"156":4}}],["dirty",{"2":{"155":1}}],["directive",{"2":{"136":1}}],["direction",{"2":{"6":1,"45":1,"69":5,"127":3}}],["directly",{"2":{"6":1,"63":3,"127":1,"152":1}}],["dig",{"2":{"136":1}}],["dict",{"2":{"127":5}}],["didn",{"2":{"57":1,"97":1,"165":1}}],["division",{"2":{"39":1}}],["divided",{"2":{"26":1}}],["div",{"2":{"6":2}}],["div>",{"2":{"6":2}}],["ditance",{"2":{"4":1,"6":1,"66":1}}],["dimensional",{"2":{"5":1,"6":3,"36":1,"40":1,"63":2}}],["dimensions",{"2":{"3":1,"6":1,"103":2}}],["dimension",{"2":{"1":1,"3":4,"6":4,"86":2,"102":1,"103":4,"148":1}}],["discouraged",{"2":{"171":1}}],["discussion",{"2":{"25":1,"27":1,"48":1}}],["distributed",{"2":{"176":2}}],["distinct",{"2":{"54":1,"127":1}}],["dist",{"2":{"54":40,"66":19,"97":2,"152":8,"158":40}}],["distance`",{"2":{"152":3,"153":1,"166":1}}],["distances",{"2":{"54":1,"65":1,"152":1,"157":5}}],["distance",{"0":{"64":2,"65":2},"1":{"65":2,"66":2},"2":{"0":4,"4":26,"6":47,"31":1,"40":13,"41":3,"50":3,"54":32,"64":2,"65":17,"66":92,"97":1,"129":1,"150":1,"151":5,"152":13,"153":14,"156":1,"157":3,"158":6,"159":1,"174":1,"178":2}}],["disagree",{"2":{"37":1}}],["disparate",{"2":{"25":1,"27":1}}],["dispatches",{"2":{"6":1,"34":1,"37":1,"40":1,"44":1,"50":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1}}],["dispatch",{"2":{"4":1,"6":5,"24":1,"40":1,"69":1,"131":1,"136":2,"164":1,"166":1}}],["displaying",{"2":{"170":1}}],["display",{"2":{"13":1,"39":1,"170":1}}],["disjoint",{"0":{"87":1,"88":1,"91":1,"92":1,"93":1,"94":1,"95":1},"1":{"88":1,"89":1},"2":{"0":2,"3":5,"6":7,"23":1,"31":1,"57":2,"87":1,"88":3,"89":11,"90":6,"91":15,"92":18,"93":10,"94":5,"95":4,"96":2,"97":16,"100":3,"142":2,"143":2,"145":7,"175":1}}],["diffs",{"2":{"34":4}}],["diff",{"2":{"6":2,"34":17,"51":5,"52":3,"103":3,"145":8}}],["differs",{"2":{"170":1}}],["differ",{"2":{"4":1,"6":1,"66":1}}],["differently",{"2":{"4":3,"6":4,"34":1,"37":2,"50":1}}],["different",{"2":{"3":1,"4":4,"6":6,"20":1,"23":1,"34":1,"37":4,"45":3,"50":1,"54":2,"62":1,"103":3,"127":1,"134":1,"136":1,"143":2,"170":2,"173":1}}],["differences",{"0":{"52":1},"2":{"54":1,"158":1}}],["difference",{"0":{"51":1},"2":{"0":1,"6":7,"11":1,"23":1,"31":1,"45":3,"51":12,"52":14,"54":1,"56":1,"57":3,"142":1,"145":1,"152":1}}],["diffintersectingpolygons",{"2":{"0":1,"6":1,"142":1,"145":4}}],["doi",{"2":{"51":2,"53":2,"56":2,"97":1}}],["doing",{"2":{"17":1,"22":1,"136":1,"171":1}}],["dot",{"2":{"34":2,"40":1}}],["doable",{"2":{"9":1}}],["documenter",{"2":{"131":3,"132":1,"151":2}}],["documentation",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"26":1,"39":1}}],["docstring",{"2":{"131":6,"132":2,"151":4}}],["docstrings",{"0":{"130":1},"1":{"131":1},"2":{"7":1}}],["docs",{"0":{"26":1},"2":{"26":1,"127":1}}],["doc",{"2":{"9":1,"10":1}}],["does",{"0":{"22":1},"2":{"7":1,"19":1,"43":1,"54":2,"71":1,"74":3,"97":1}}],["doesn",{"2":{"4":1,"6":2,"37":1,"48":1,"69":1,"152":1,"166":1,"177":1}}],["download",{"2":{"170":1}}],["down",{"2":{"6":1,"18":1,"29":1,"40":1,"136":1}}],["doublets",{"2":{"177":2}}],["double",{"2":{"159":4}}],["doubled",{"2":{"6":1,"159":1}}],["douglas",{"2":{"154":2,"156":2,"158":1}}],["douglaspeucker",{"0":{"158":1},"2":{"0":1,"6":5,"154":1,"156":5,"158":6}}],["done",{"0":{"10":1},"2":{"13":1,"14":1,"97":2,"127":1,"129":1,"143":1,"169":1,"175":1}}],["don",{"2":{"4":2,"6":3,"45":4,"51":1,"57":1,"69":6,"92":1,"97":1,"115":1,"119":1,"127":2,"136":3,"153":1,"166":1}}],["do",{"0":{"9":1,"23":1,"55":1},"2":{"1":1,"6":2,"14":1,"23":1,"31":1,"34":1,"37":2,"40":2,"41":1,"44":1,"48":1,"50":1,"57":3,"66":2,"68":1,"69":1,"84":1,"92":2,"93":1,"94":2,"97":1,"127":4,"129":1,"136":9,"138":1,"139":1,"144":1,"147":2,"149":1,"152":1,"156":1,"161":2,"162":2,"170":2,"171":2,"172":3,"176":1,"177":1}}],["ay",{"2":{"126":2}}],["azimuth",{"2":{"126":2}}],["automatically",{"2":{"103":1,"170":1}}],["a3",{"2":{"61":1}}],["against",{"2":{"69":1,"97":2,"152":1,"156":1}}],["again",{"2":{"54":1,"136":1}}],["a``",{"2":{"52":2}}],["a`",{"2":{"52":7,"54":3,"57":2}}],["away",{"2":{"41":1,"86":1,"178":1}}],["a2y",{"2":{"54":4}}],["a2x",{"2":{"54":4}}],["a2",{"2":{"39":4,"54":54,"62":1,"103":6}}],["a1y",{"2":{"54":7}}],["a1x",{"2":{"54":7}}],["a1",{"2":{"39":2,"45":9,"54":66,"62":1,"103":6}}],["ams",{"2":{"174":2}}],["america",{"2":{"156":1}}],["am",{"2":{"97":1}}],["ambiguity",{"2":{"66":2,"136":5}}],["amounts",{"2":{"173":1}}],["amount",{"2":{"36":1,"49":1}}],["amp",{"2":{"6":1,"9":1}}],["axes",{"2":{"127":6}}],["ax",{"2":{"13":3,"14":3,"126":2,"169":5}}],["axislegend",{"2":{"60":1,"151":1,"155":1}}],["axis",{"2":{"13":2,"14":1,"33":1,"36":1,"39":4,"43":1,"49":1,"62":2,"65":1,"127":2,"151":1,"156":1,"174":1}}],["axs",{"2":{"13":2}}],["a>",{"2":{"6":2}}],["adjust",{"2":{"54":1}}],["adjacent",{"2":{"45":1,"52":1,"54":1,"57":1}}],["adaptivity",{"0":{"55":1}}],["adaptive",{"2":{"7":1,"13":3,"14":2,"55":1}}],["adapted",{"2":{"51":1,"53":1,"56":1,"126":1}}],["advance",{"2":{"44":2}}],["advised",{"2":{"6":1,"164":1}}],["administrative",{"2":{"177":1}}],["admin",{"2":{"11":1,"61":1,"156":2}}],["adm0",{"2":{"11":7,"61":4}}],["additional",{"2":{"173":1}}],["additionally",{"2":{"45":3,"69":1}}],["addition",{"2":{"39":1,"57":1}}],["adding",{"2":{"4":1,"6":4,"7":1,"57":2,"127":1,"146":1,"150":1,"152":2,"153":1}}],["added",{"2":{"6":1,"34":1,"45":6,"50":1,"57":2,"131":1,"136":1,"145":2,"158":1}}],["add",{"2":{"3":1,"6":1,"7":2,"40":1,"41":1,"45":16,"48":4,"50":1,"51":3,"53":1,"54":2,"56":2,"57":9,"63":1,"86":1,"127":4,"136":1,"150":1,"152":1,"158":10,"165":1,"170":1,"172":2,"175":1}}],["average",{"2":{"38":3,"44":4,"54":1}}],["available",{"0":{"142":1},"2":{"6":3,"31":1,"44":1,"141":3,"150":1,"151":1,"153":1,"156":1,"160":1,"164":1}}],["avoid",{"2":{"5":1,"6":7,"40":1,"51":1,"53":1,"54":1,"56":1,"57":1,"127":2,"136":5,"153":1,"157":1,"158":1,"159":1,"169":3}}],["achieve",{"2":{"143":1}}],["across",{"2":{"134":1}}],["acos",{"2":{"34":1}}],["activate",{"2":{"151":1}}],["action",{"2":{"20":2}}],["actions",{"2":{"20":2}}],["actual",{"2":{"10":1,"40":1,"126":1,"139":1,"148":1,"152":1}}],["actually",{"2":{"1":1,"6":1,"9":1,"40":4,"54":1,"57":3,"97":1,"127":1,"161":1,"173":1}}],["access",{"2":{"170":1}}],["accessed",{"2":{"166":1}}],["acceptable",{"2":{"97":1}}],["accepts",{"2":{"63":1}}],["accept",{"2":{"6":1,"166":1}}],["according",{"2":{"138":1,"143":1,"144":1,"176":1}}],["accordingly",{"2":{"45":1}}],["account",{"2":{"51":1,"53":1}}],["accurary",{"2":{"54":1}}],["accuratearithmetic",{"2":{"11":2}}],["accurate",{"0":{"11":1},"2":{"11":3,"151":1}}],["accumulators",{"2":{"40":1}}],["accumulator",{"2":{"40":1}}],["accumulate",{"2":{"37":1,"44":3}}],["accumulation",{"0":{"11":1},"2":{"40":1}}],["after",{"2":{"6":8,"34":1,"45":3,"136":1,"156":2}}],["ab",{"2":{"45":3,"51":1,"53":1,"54":5,"56":1}}],["able",{"2":{"20":1,"54":1}}],["ability",{"2":{"17":1}}],["about",{"2":{"6":1,"24":2,"30":1,"40":2,"97":1,"137":1}}],["above",{"2":{"4":1,"6":1,"34":1,"44":1,"45":1,"54":1,"57":1,"141":1}}],["abs",{"2":{"34":1,"37":4,"44":1,"50":2,"86":8,"103":2,"127":1,"159":1,"178":1}}],["absolute",{"2":{"4":1,"6":1,"36":1,"37":2}}],["abstractpolygon",{"2":{"136":1}}],["abstractpolygontrait",{"2":{"66":1}}],["abstractpoint",{"2":{"136":1}}],["abstractface",{"2":{"136":1}}],["abstractfloat",{"2":{"31":1,"34":1,"37":2,"45":1,"48":1,"50":2,"51":1,"53":1,"54":1,"56":1,"66":8}}],["abstractrange",{"2":{"127":6}}],["abstractmesh",{"2":{"136":1}}],["abstractmulticurvetrait",{"2":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["abstractmatrix",{"2":{"6":5,"127":13}}],["abstractcurvetrait",{"2":{"34":1,"37":1,"50":1,"77":1,"80":1,"81":1,"86":1,"91":1,"95":1,"108":1,"111":1,"112":1,"118":1,"121":1,"122":1,"126":1,"156":2,"167":3}}],["abstractarrays",{"2":{"134":1}}],["abstractarray",{"2":{"6":1,"131":1,"136":6,"167":2}}],["abstract",{"2":{"6":3,"40":3,"140":1,"141":4,"142":1,"156":3,"165":1}}],["abstractvector",{"2":{"5":1,"6":1,"40":26,"127":8}}],["abstractgeometrytrait`",{"2":{"141":1}}],["abstractgeometrytrait",{"2":{"6":3,"37":2,"50":1,"66":1,"82":1,"96":1,"113":1,"123":1,"131":1,"134":1,"141":4,"142":2,"167":5}}],["abstractgeometry",{"2":{"3":4,"6":4,"72":2,"85":2,"136":1}}],["abstracttrait",{"2":{"1":2,"3":2,"6":8,"48":1,"52":2,"54":4,"57":2,"103":4,"129":1,"131":2,"136":9,"164":3}}],["abstractbarycentriccoordinatemethod",{"2":{"0":1,"5":1,"6":7,"40":18}}],["attribute",{"2":{"173":1}}],["attributed",{"2":{"172":1}}],["attributes",{"0":{"172":1},"2":{"168":1,"172":3}}],["attempts",{"2":{"97":1}}],["attach",{"2":{"1":2,"4":1,"6":5,"133":1}}],["atomic",{"2":{"7":1}}],["at",{"2":{"3":4,"5":1,"6":6,"9":1,"18":1,"20":1,"24":1,"26":1,"34":2,"36":1,"37":1,"39":1,"40":2,"45":4,"50":2,"54":8,"57":2,"62":1,"97":17,"103":6,"106":1,"112":1,"115":1,"116":1,"119":3,"120":2,"121":2,"122":1,"123":1,"126":1,"134":1,"136":1,"151":1,"153":1,"158":1,"160":1,"170":1,"171":2}}],["arbitrarily",{"2":{"134":1}}],["arbitrary",{"2":{"38":1,"129":1,"169":1}}],["around",{"2":{"39":1,"40":2,"48":1,"65":1,"69":1,"127":1,"156":1,"176":1}}],["argmin",{"2":{"160":1}}],["argtypes",{"2":{"41":2,"149":1,"152":1}}],["args",{"2":{"13":2}}],["argumenterror",{"2":{"57":1,"127":1,"136":5}}],["argument",{"2":{"4":5,"6":10,"34":1,"37":2,"44":1,"50":1,"51":1,"53":1,"56":1,"66":2,"136":2,"166":2,"170":1,"171":1}}],["arguments",{"2":{"1":1,"3":1,"6":5,"45":1,"75":2,"89":1,"106":1,"116":1,"148":1,"152":2,"153":1,"166":1}}],["arithmetic",{"2":{"11":1}}],["archgdal",{"2":{"23":1}}],["arc",{"2":{"6":1,"152":1}}],["array",{"2":{"4":1,"6":2,"37":1,"50":1,"127":5,"136":7,"157":1,"160":1}}],["arrays",{"2":{"1":1,"6":2,"22":1,"127":1,"136":2}}],["aren",{"2":{"4":3,"6":5,"48":1,"52":1,"54":2,"57":4,"69":3,"142":2,"145":2}}],["are",{"2":{"1":1,"3":4,"4":18,"5":2,"6":50,"9":2,"20":2,"22":3,"24":1,"25":1,"26":2,"27":1,"33":1,"34":8,"36":1,"37":2,"38":6,"40":11,"43":1,"44":3,"45":31,"48":3,"50":6,"51":3,"52":15,"53":2,"54":16,"56":5,"57":9,"62":3,"65":1,"66":1,"68":3,"69":26,"71":1,"75":7,"77":1,"78":3,"79":3,"80":1,"82":1,"88":1,"89":5,"91":1,"92":1,"93":1,"95":1,"96":1,"97":12,"103":7,"105":1,"106":5,"108":1,"109":3,"110":3,"111":1,"113":1,"116":5,"118":1,"120":2,"126":1,"127":14,"128":1,"131":1,"134":1,"136":4,"137":1,"138":1,"139":1,"141":1,"142":3,"143":1,"144":1,"145":2,"146":1,"151":1,"152":1,"153":1,"156":4,"158":1,"160":2,"162":1,"163":2,"164":1,"166":1,"169":1,"172":2,"173":2,"174":1,"175":3,"176":6,"177":1,"178":1}}],["area2",{"2":{"44":4}}],["area1",{"2":{"44":4}}],["areas",{"2":{"4":2,"6":2,"37":3,"159":2}}],["area",{"0":{"35":2,"36":2},"1":{"36":2,"37":2},"2":{"0":5,"4":15,"6":25,"11":6,"31":1,"35":2,"36":9,"37":61,"42":1,"43":3,"44":49,"49":2,"50":44,"56":2,"57":1,"103":1,"129":1,"142":2,"145":2,"156":2,"159":4,"170":1}}],["ask",{"2":{"23":1}}],["aspect",{"2":{"13":1,"14":1,"33":1,"36":1,"39":2,"43":1,"49":1,"65":2,"127":2,"151":1,"156":1}}],["assign",{"2":{"168":1}}],["assigned",{"2":{"45":1,"127":7,"176":1}}],["assets",{"2":{"170":1}}],["assetpath",{"2":{"170":1}}],["assemble",{"2":{"139":1}}],["assert",{"2":{"40":23,"44":1,"45":1,"48":1,"52":1,"54":1,"153":1,"167":1}}],["assume",{"2":{"103":2,"136":3,"138":1,"145":1}}],["assumed",{"2":{"37":1,"69":1,"97":1}}],["assumes",{"2":{"6":1,"45":1,"66":1,"152":1,"160":1}}],["associativity",{"2":{"19":1}}],["associated",{"0":{"1":1},"2":{"38":2}}],["as",{"2":{"1":8,"3":18,"4":6,"5":1,"6":80,"7":1,"11":2,"13":3,"14":3,"15":3,"17":2,"18":2,"20":1,"22":1,"23":2,"24":1,"25":1,"27":1,"33":2,"34":4,"36":2,"37":3,"38":4,"39":1,"40":4,"41":3,"43":2,"44":1,"45":15,"47":3,"48":5,"49":2,"50":5,"51":8,"52":2,"53":7,"54":8,"56":7,"57":5,"58":1,"60":2,"61":2,"62":3,"63":3,"65":3,"66":1,"68":2,"69":2,"71":2,"72":2,"74":3,"75":3,"84":2,"85":2,"86":2,"88":2,"89":3,"97":7,"99":2,"100":2,"102":2,"103":2,"105":2,"106":3,"115":2,"116":3,"118":1,"126":8,"127":3,"129":3,"131":1,"134":2,"135":2,"136":15,"138":2,"139":2,"141":1,"142":1,"144":2,"146":1,"148":3,"150":2,"151":2,"152":3,"154":2,"155":2,"156":7,"158":2,"161":3,"164":2,"165":2,"166":2,"167":2,"168":3,"169":2,"170":1,"171":1,"173":3,"174":3,"175":2,"176":3,"177":2}}],["alone",{"2":{"136":1}}],["along",{"2":{"4":4,"6":5,"45":3,"50":2,"54":4,"69":4,"97":1}}],["although",{"2":{"109":1,"110":1}}],["alternate",{"2":{"45":1}}],["alternative",{"2":{"45":1}}],["already",{"2":{"69":1,"97":2,"158":1}}],["almost",{"2":{"54":1}}],["alg=nothing",{"2":{"156":1}}],["alg`",{"2":{"156":1}}],["alg",{"2":{"6":4,"156":21,"157":3,"158":8,"159":3,"160":7,"166":9}}],["algorithms",{"2":{"6":3,"58":1,"62":1,"138":1,"153":1,"154":1,"156":4,"158":1,"160":1}}],["algorithm",{"0":{"157":1,"158":1,"159":1},"2":{"6":12,"39":1,"45":2,"48":3,"50":1,"51":1,"53":1,"56":1,"58":1,"63":4,"97":1,"154":1,"156":8,"157":1,"158":3,"159":1,"166":4}}],["allocating",{"2":{"63":1}}],["allocations",{"2":{"5":1,"6":1,"40":1}}],["allocate",{"2":{"63":1}}],["allow=",{"2":{"97":1}}],["allows",{"2":{"11":1,"18":1,"23":1,"24":1,"29":1,"75":2,"77":3,"78":3,"79":3,"80":1,"89":2,"91":3,"92":3,"93":2,"94":1,"106":3,"108":3,"109":3,"110":3,"111":1,"116":1,"119":1,"120":1,"121":1,"129":1,"154":1,"170":1,"172":1,"175":1}}],["allowed",{"2":{"6":1,"75":3,"89":3,"97":6,"106":3,"116":5,"118":1,"119":2,"156":1}}],["allow",{"2":{"1":1,"6":1,"23":1,"54":1,"75":7,"86":3,"89":7,"97":73,"106":10,"116":10,"161":1}}],["all",{"2":{"1":3,"3":2,"4":3,"6":14,"9":1,"11":7,"22":1,"25":1,"27":1,"31":2,"34":5,"37":3,"40":1,"45":13,"50":3,"51":1,"52":3,"54":3,"57":5,"58":1,"61":3,"63":1,"65":1,"69":2,"71":1,"78":3,"79":3,"82":1,"95":1,"96":1,"97":7,"103":4,"105":1,"113":1,"126":1,"127":3,"128":1,"131":1,"134":2,"135":1,"136":8,"139":1,"141":1,"143":1,"146":1,"147":1,"156":1,"161":2,"162":1,"163":1,"169":1,"171":1,"173":1,"175":1}}],["always",{"2":{"1":7,"4":6,"6":10,"25":1,"27":1,"36":1,"37":4,"50":2,"62":1,"65":1,"66":1,"69":1,"136":2,"148":4,"175":1}}],["also",{"2":{"1":2,"6":11,"23":1,"34":1,"37":2,"44":2,"45":3,"50":1,"51":1,"53":1,"54":2,"56":1,"58":1,"62":1,"63":1,"65":1,"66":2,"69":3,"103":1,"127":1,"134":1,"136":1,"139":1,"142":3,"145":2,"149":1,"150":1,"151":1,"152":1,"154":1,"161":1,"164":1,"169":2,"172":1}}],["a",{"0":{"23":1,"170":1,"172":1},"2":{"1":13,"3":5,"4":79,"5":1,"6":196,"7":3,"9":1,"11":1,"15":2,"17":1,"18":6,"20":3,"22":3,"23":4,"24":2,"25":2,"27":2,"29":2,"30":2,"33":3,"34":22,"36":11,"37":20,"38":13,"39":4,"40":11,"41":2,"43":5,"44":8,"45":281,"47":3,"48":4,"49":2,"50":17,"51":39,"52":30,"53":38,"54":91,"55":3,"56":36,"57":45,"58":3,"60":3,"61":2,"62":1,"63":4,"65":15,"66":27,"68":2,"69":54,"71":2,"74":1,"75":3,"77":5,"78":3,"79":2,"81":2,"82":2,"84":2,"86":1,"88":1,"89":3,"91":4,"92":3,"93":1,"95":2,"96":2,"97":52,"99":2,"102":5,"103":27,"105":1,"106":3,"108":5,"109":2,"110":2,"112":2,"113":2,"115":2,"116":4,"118":4,"119":2,"120":2,"121":1,"122":2,"123":2,"125":1,"126":4,"127":79,"129":4,"131":2,"134":4,"136":34,"137":6,"138":2,"139":2,"140":5,"141":5,"142":9,"143":8,"145":6,"146":2,"147":3,"148":8,"149":3,"150":5,"151":4,"152":8,"153":10,"155":3,"156":5,"159":3,"160":1,"161":2,"162":1,"164":6,"165":1,"166":12,"167":2,"168":1,"169":21,"170":12,"171":5,"172":5,"173":11,"174":1,"175":5,"176":8,"177":3,"178":3}}],["annotation",{"2":{"165":1}}],["annotated",{"2":{"26":1}}],["angels",{"2":{"34":1}}],["angle",{"2":{"34":35,"126":1}}],["angles",{"0":{"32":1,"33":1},"1":{"33":1,"34":1},"2":{"0":2,"4":10,"6":10,"31":1,"32":1,"33":4,"34":42}}],["answers",{"2":{"143":1}}],["answer",{"2":{"6":3,"51":1,"53":1,"54":1,"56":1}}],["another",{"2":{"3":1,"6":1,"45":2,"54":1,"63":1,"65":1,"71":1,"74":1,"77":1,"79":1,"80":1,"84":1,"88":1,"91":1,"92":1,"93":1,"94":1,"97":1,"99":1,"102":1,"103":1,"105":1,"108":1,"109":1,"110":1,"111":1,"115":1,"118":1,"119":1,"120":1,"121":1,"127":1,"148":1}}],["anonymous",{"2":{"1":1,"6":1,"161":1}}],["an",{"2":{"1":3,"4":11,"5":1,"6":29,"9":1,"13":1,"14":1,"18":1,"20":1,"23":2,"33":1,"34":4,"36":1,"37":2,"39":1,"40":3,"41":2,"43":1,"45":15,"47":1,"48":1,"49":2,"50":2,"51":2,"52":5,"53":2,"54":9,"56":2,"57":2,"63":3,"65":2,"66":5,"68":1,"69":1,"71":1,"74":2,"77":2,"84":1,"88":1,"97":13,"99":1,"102":1,"103":1,"105":1,"108":2,"109":1,"110":1,"115":1,"127":3,"128":1,"131":1,"134":1,"135":1,"136":8,"139":1,"146":1,"148":1,"152":1,"161":2,"166":3,"167":1,"169":2,"170":2,"172":1,"174":1,"176":1}}],["anything",{"2":{"39":1,"97":1}}],["any",{"2":{"1":3,"3":1,"4":2,"6":19,"18":1,"24":1,"25":1,"27":1,"29":1,"38":2,"44":1,"45":7,"48":1,"50":1,"52":1,"54":4,"57":1,"66":2,"76":2,"77":1,"80":1,"88":1,"90":2,"91":1,"92":2,"93":1,"94":2,"97":8,"103":2,"107":2,"111":1,"117":2,"127":2,"129":2,"131":1,"136":2,"139":1,"140":1,"141":3,"142":4,"145":4,"148":2,"150":1,"152":1,"153":1,"158":1,"167":1,"175":2,"176":2}}],["and",{"0":{"1":1,"20":1,"22":1,"24":1,"35":1,"52":1,"54":1,"57":1,"64":1,"169":1,"170":1,"172":1},"1":{"36":1,"37":1,"65":1,"66":1},"2":{"0":2,"1":8,"3":11,"4":18,"6":84,"7":1,"9":2,"17":4,"18":4,"20":2,"22":1,"23":2,"24":3,"25":2,"26":5,"27":2,"29":2,"30":1,"31":2,"34":13,"36":1,"37":7,"38":2,"39":2,"40":20,"41":1,"42":2,"43":1,"44":29,"45":71,"47":1,"48":4,"49":2,"50":18,"51":4,"52":16,"53":4,"54":38,"56":6,"57":15,"62":1,"63":2,"65":2,"66":13,"68":2,"69":13,"71":3,"72":2,"74":2,"75":3,"78":3,"79":4,"80":1,"84":2,"85":2,"86":1,"89":3,"92":3,"93":1,"94":1,"97":36,"99":1,"102":2,"103":3,"105":3,"106":4,"108":2,"109":3,"110":3,"111":1,"116":2,"120":2,"121":2,"126":2,"127":16,"129":8,"131":1,"134":2,"135":3,"136":22,"137":1,"138":2,"139":1,"140":1,"141":4,"142":2,"143":1,"146":2,"147":2,"148":2,"151":1,"152":5,"153":4,"154":2,"155":1,"156":8,"158":8,"159":1,"160":1,"161":1,"164":1,"165":3,"166":4,"168":3,"169":9,"170":7,"171":2,"173":5,"175":2,"176":4,"177":2}}],["apart",{"2":{"145":1}}],["april",{"0":{"7":1}}],["appears",{"2":{"138":1}}],["append",{"2":{"34":1,"45":5,"51":1,"52":2,"54":2,"56":1,"57":5,"145":2}}],["approximately",{"2":{"45":1,"151":1}}],["approach",{"2":{"19":1}}],["appropriately",{"2":{"176":1}}],["appropriate",{"2":{"6":1,"166":2}}],["applies",{"2":{"134":2}}],["applied",{"2":{"6":3,"20":1,"131":1,"136":2,"140":2,"141":2,"142":1}}],["application",{"2":{"1":1,"6":3,"136":1,"139":1,"141":3,"142":1,"145":2,"150":1,"153":1}}],["apply`",{"2":{"136":1}}],["applys",{"2":{"37":1,"50":1}}],["applyreduce",{"0":{"19":1},"2":{"0":2,"1":1,"6":1,"17":1,"19":2,"29":1,"34":1,"37":1,"44":2,"50":1,"66":2,"129":3,"131":1,"136":39,"165":1}}],["apply",{"0":{"1":1,"18":1,"22":1,"29":1,"134":1},"1":{"19":1},"2":{"0":2,"1":4,"6":7,"17":1,"18":5,"20":1,"22":1,"24":1,"29":3,"129":5,"131":1,"133":1,"134":4,"135":1,"136":56,"141":4,"142":1,"146":1,"147":3,"148":1,"152":1,"153":1,"156":2,"161":3,"162":2,"165":1}}],["apis",{"2":{"17":1}}],["api",{"0":{"0":1,"40":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"6":3,"24":1,"40":1,"152":1,"156":1,"166":1}}],["snapped",{"2":{"127":1}}],["s3",{"2":{"45":3}}],["scratch",{"2":{"173":1}}],["sciences",{"2":{"170":1}}],["scalefactor",{"2":{"152":3}}],["scattered",{"2":{"176":1}}],["scatter",{"2":{"43":1,"65":2,"68":2,"71":2,"74":1,"84":1,"88":2,"102":2,"105":2,"176":1}}],["schema",{"2":{"136":6}}],["scheme",{"2":{"44":1}}],["scenario",{"2":{"97":2}}],["scene",{"2":{"14":1}}],["skipmissing",{"2":{"127":1}}],["skipped",{"2":{"127":1}}],["skip",{"2":{"37":1,"97":14,"127":1,"160":4}}],["skygering",{"2":{"7":1}}],["square",{"2":{"66":1,"157":1,"158":1}}],["squared",{"2":{"6":2,"50":2,"66":12,"157":2,"158":7}}],["sqrt",{"2":{"34":2,"44":1,"66":3}}],["sgn",{"2":{"34":5}}],["smallest",{"2":{"34":2,"54":1,"58":1}}],["sᵢ₋₁",{"2":{"40":25}}],["sᵢ₊₁",{"2":{"6":2,"40":41}}],["sᵢ",{"2":{"6":4,"40":46}}],["src",{"2":{"6":2}}],["syntax",{"2":{"172":1}}],["symdifference",{"2":{"128":1}}],["sym10100477",{"2":{"97":1}}],["symbol=",{"2":{"86":1}}],["symbol",{"2":{"6":1,"166":2}}],["system",{"0":{"170":1,"171":1},"2":{"1":2,"148":2,"168":2,"170":1}}],["switches",{"2":{"54":1,"57":1}}],["switch",{"2":{"45":1,"57":1,"165":1}}],["switching",{"2":{"6":1,"50":1}}],["swap",{"2":{"6":1,"57":1,"66":2,"147":1}}],["swapped",{"2":{"3":1,"6":1,"72":1,"75":1,"85":1,"86":1,"100":1,"103":1}}],["swapping",{"2":{"1":1,"6":1,"136":1}}],["s2",{"2":{"6":4,"40":6,"45":3}}],["s1",{"2":{"6":3,"40":6,"45":3}}],["saving",{"0":{"173":1}}],["saved",{"2":{"69":1}}],["save",{"2":{"34":1,"168":1,"173":3}}],["samples",{"2":{"13":1}}],["sample",{"2":{"13":1}}],["same",{"2":{"3":2,"4":12,"6":23,"18":1,"34":3,"37":1,"45":15,"48":1,"50":1,"51":3,"53":1,"54":1,"56":1,"57":1,"62":1,"65":1,"68":2,"69":30,"97":2,"102":1,"103":8,"131":1,"134":1,"136":6,"137":1,"142":2,"144":1,"145":2,"151":1,"169":1,"170":1,"173":1}}],["says",{"2":{"62":1}}],["say",{"2":{"6":1,"40":1,"152":1}}],["span",{"2":{"176":1}}],["spatial",{"0":{"175":1},"1":{"176":1,"177":1,"178":1},"2":{"175":6,"176":3,"178":1}}],["spawn",{"2":{"136":5}}],["space",{"2":{"6":2,"25":1,"27":1,"34":1,"36":1,"97":1,"152":1,"153":1}}],["sp",{"2":{"97":2}}],["split",{"2":{"48":1}}],["specialized",{"2":{"25":1,"27":1,"63":1}}],["specify",{"2":{"6":1,"131":1,"136":1,"170":1,"171":1,"175":1}}],["specification",{"2":{"138":1,"141":1,"143":1,"144":1}}],["specifically",{"2":{"6":2,"40":3,"154":1,"175":1}}],["specific",{"2":{"45":1,"75":1,"89":1,"106":1,"116":1,"136":5}}],["specified",{"2":{"3":1,"6":2,"45":1,"52":2,"54":2,"57":2,"103":1,"134":1,"156":1}}],["slow",{"2":{"177":1}}],["slower",{"2":{"6":1,"166":2}}],["slope2",{"2":{"126":2}}],["slope1",{"2":{"126":2}}],["slidergrid",{"2":{"14":1}}],["sliders",{"2":{"14":3}}],["slightly",{"2":{"4":2,"6":2,"37":2}}],["suite",{"2":{"152":5,"156":13}}],["suggestion",{"2":{"149":1}}],["sun",{"2":{"97":1}}],["surrounds",{"2":{"97":1}}],["sure",{"2":{"9":1,"34":1,"45":2,"66":1,"103":1,"160":1}}],["suppose",{"2":{"177":1,"178":1}}],["support",{"2":{"41":1,"150":1,"178":1}}],["supports",{"2":{"39":1,"40":1,"58":1,"173":1,"178":2}}],["supported",{"2":{"23":1,"173":1}}],["supertype",{"2":{"6":1,"40":1}}],["sukumar",{"2":{"6":1,"40":1}}],["such",{"2":{"4":1,"6":1,"36":1,"47":1,"58":1,"134":1,"146":1}}],["sum=1",{"2":{"40":1}}],["sum",{"2":{"4":2,"6":3,"11":6,"36":1,"37":2,"38":2,"40":8,"50":1,"66":2,"126":5,"160":1,"167":4}}],["sublevel",{"2":{"177":1}}],["subsequent",{"2":{"169":1}}],["substituted",{"2":{"1":1,"6":1,"136":1}}],["subgeom1",{"2":{"136":2}}],["subgeom",{"2":{"136":3}}],["subject",{"2":{"45":1}}],["subtype",{"2":{"136":1}}],["subtypes",{"2":{"6":2,"40":2}}],["subtracted",{"2":{"126":1}}],["subtitle",{"2":{"13":1,"39":2,"152":1,"156":2}}],["sub",{"2":{"4":6,"6":7,"34":1,"37":3,"50":1,"52":6,"54":3,"57":4,"66":2,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"136":3,"143":4,"144":2,"145":4}}],["series",{"2":{"169":1}}],["serve",{"2":{"6":1,"40":1}}],["searchsortedfirst",{"2":{"158":1}}],["seg2",{"2":{"126":2}}],["seg1",{"2":{"126":3}}],["seg",{"2":{"97":23,"103":9}}],["segmentation",{"2":{"151":1}}],["segments",{"2":{"23":1,"31":1,"33":2,"34":1,"43":1,"44":2,"45":3,"50":1,"54":6,"97":18,"152":1,"153":3}}],["segmentization",{"2":{"150":1}}],["segmentizing",{"2":{"6":3,"151":1,"152":2,"153":1}}],["segmentized",{"2":{"151":1}}],["segmentizes",{"2":{"150":1}}],["segmentizemethod",{"2":{"6":1,"152":3,"153":2}}],["segmentize",{"0":{"150":1},"1":{"151":1,"152":1,"153":1},"2":{"0":1,"6":4,"31":1,"41":1,"129":1,"150":1,"151":5,"152":11,"153":13,"174":1}}],["segment",{"2":{"4":4,"6":7,"34":1,"44":5,"45":6,"47":1,"50":3,"54":17,"66":2,"86":3,"97":43,"103":3,"126":2,"150":1,"152":2,"153":1}}],["seperate",{"2":{"54":1}}],["separates",{"2":{"97":1}}],["separate",{"2":{"45":1,"127":1,"136":1,"165":1,"173":1,"176":1}}],["separately",{"2":{"40":1,"127":1}}],["sense",{"2":{"37":1,"66":1}}],["several",{"2":{"20":2,"37":1,"137":1,"145":1}}],["section",{"2":{"26":1,"97":3,"102":1}}],["sections",{"2":{"10":1,"26":1}}],["seconds=1",{"2":{"152":3,"156":8}}],["secondisleft",{"2":{"127":4}}],["secondisstraight",{"2":{"127":7}}],["secondary",{"2":{"3":3,"6":3,"72":1,"75":1,"106":1}}],["second",{"2":{"3":8,"6":9,"45":1,"54":4,"69":1,"71":2,"72":1,"74":1,"75":1,"78":1,"79":1,"80":1,"85":2,"89":2,"97":2,"105":1,"106":1,"109":1,"110":1,"111":2,"116":1,"158":1,"171":1,"175":1}}],["self",{"2":{"9":2}}],["selected",{"2":{"127":1}}],["selectednode",{"2":{"127":3}}],["selection",{"2":{"14":1}}],["select",{"2":{"6":1,"164":1}}],["seem",{"2":{"25":1,"27":1}}],["see",{"2":{"6":4,"7":1,"29":1,"43":1,"63":1,"66":1,"68":1,"71":1,"74":1,"88":1,"97":5,"99":1,"102":1,"105":1,"115":1,"127":2,"138":1,"139":1,"141":1,"142":3,"144":1,"145":2,"151":2,"158":1,"176":2}}],["setup=",{"2":{"75":1,"89":1,"106":1,"116":1}}],["sets",{"2":{"45":1,"62":1}}],["setting",{"2":{"23":1}}],["set",{"0":{"23":1},"2":{"3":2,"4":7,"6":19,"23":1,"34":1,"38":2,"40":8,"45":3,"51":2,"53":2,"54":7,"56":2,"58":2,"68":2,"69":10,"75":1,"86":1,"89":1,"97":2,"103":1,"106":1,"116":1,"126":1,"127":1,"142":2,"145":2,"158":2,"169":1,"173":1,"176":3}}],["sve",{"2":{"1":1,"6":1,"161":1}}],["svector",{"2":{"1":14,"6":14,"45":5,"51":1,"54":2,"57":6,"97":1,"127":1,"161":13,"169":6,"171":4}}],["solution",{"2":{"97":1}}],["solid",{"2":{"6":2}}],["south",{"2":{"50":7}}],["source",{"2":{"1":10,"3":19,"4":22,"5":3,"6":91,"26":4,"86":2,"131":3,"141":1,"142":4,"148":3,"170":13,"171":1}}],["sort",{"2":{"45":4,"48":2,"54":2,"56":2,"97":1,"103":2,"127":1,"158":1}}],["sorted",{"2":{"20":1,"45":1,"158":7,"175":1}}],["someone",{"2":{"63":1,"166":1}}],["something",{"0":{"55":1},"2":{"10":1}}],["some",{"2":{"3":1,"6":3,"9":1,"17":1,"40":4,"69":1,"97":3,"103":1,"127":1,"128":1,"129":2,"134":2,"136":2,"140":1,"141":2,"142":1,"160":1,"163":2,"168":2,"175":1,"178":1}}],["so",{"2":{"1":1,"4":4,"6":10,"9":1,"17":1,"19":1,"25":1,"27":1,"31":1,"39":1,"40":1,"45":1,"49":1,"54":1,"56":2,"57":2,"65":1,"66":1,"68":1,"69":4,"71":1,"88":1,"97":2,"99":1,"105":1,"127":3,"131":1,"136":6,"150":1,"151":1,"152":3,"153":1,"160":1,"161":1,"166":2,"170":1,"171":1}}],["step",{"2":{"45":7,"51":1,"52":3,"53":1,"54":3,"56":1,"57":3,"127":4,"167":1}}],["storing",{"2":{"173":1}}],["stored",{"2":{"45":2,"176":1}}],["stores",{"2":{"45":1}}],["store",{"2":{"40":1,"173":1}}],["stopping",{"2":{"158":2}}],["stops",{"2":{"134":1}}],["stop",{"2":{"18":2,"86":3,"97":4,"103":3}}],["style",{"2":{"6":2}}],["style=",{"2":{"6":2}}],["stay",{"2":{"57":1}}],["stackoverflow",{"2":{"54":1}}],["stack",{"2":{"48":1}}],["states",{"2":{"156":1}}],["state",{"2":{"56":1,"177":9}}],["status",{"2":{"45":31,"52":4,"54":5,"57":4,"127":1}}],["static",{"2":{"165":1}}],["staticarray",{"2":{"40":1}}],["staticarrays",{"2":{"31":1,"45":5,"51":1,"54":2,"57":6,"97":1,"127":1,"161":2}}],["staticarraysco",{"2":{"1":1,"6":1,"161":1}}],["staticarrayscore",{"2":{"1":10,"6":10,"40":1,"161":10,"169":6,"171":4}}],["statica",{"2":{"1":1,"6":1,"161":1}}],["statistics",{"2":{"13":2,"31":1}}],["stability",{"2":{"23":1,"30":1}}],["stable",{"2":{"13":1,"24":1,"153":1}}],["stage",{"2":{"7":1}}],["standardized",{"2":{"97":1}}],["standards",{"2":{"97":1}}],["standard",{"2":{"6":1,"63":1}}],["started",{"2":{"45":1}}],["starting",{"2":{"44":2,"45":1,"50":1,"54":1,"145":4}}],["startvalue",{"2":{"14":4}}],["start",{"2":{"6":1,"18":1,"34":7,"40":1,"45":76,"50":17,"52":4,"54":4,"57":5,"69":1,"86":4,"97":44,"103":3,"108":1,"127":2,"137":1,"158":16,"169":1}}],["straightline",{"2":{"127":3}}],["straight",{"2":{"127":6}}],["strait",{"2":{"127":1}}],["structs",{"2":{"20":1,"141":1}}],["structures",{"2":{"129":1}}],["structure",{"2":{"6":2,"131":1,"136":1,"147":1}}],["struct",{"2":{"6":3,"40":2,"45":2,"63":1,"139":1,"145":2,"152":2,"157":1,"158":1,"159":1,"164":3,"165":2,"166":4}}],["strings",{"2":{"6":1,"44":1,"54":1}}],["string",{"2":{"1":2,"14":1,"43":1,"44":1,"148":2}}],["still",{"2":{"0":1,"37":1,"44":1,"45":3,"74":1,"158":1}}],["shp",{"2":{"173":1}}],["ships",{"2":{"170":1}}],["shifting",{"2":{"171":1}}],["shift",{"2":{"169":3}}],["shewchuck",{"2":{"7":1}}],["short",{"2":{"136":1}}],["shorthand",{"2":{"63":1}}],["show",{"2":{"9":1,"11":1,"13":1,"14":1,"39":1,"170":1,"173":1,"175":2}}],["shoelace",{"2":{"4":1,"6":1,"37":2,"50":1}}],["shouldn",{"2":{"54":1}}],["should",{"2":{"1":1,"4":1,"6":14,"17":1,"18":1,"20":2,"25":1,"27":1,"34":3,"37":1,"44":1,"45":3,"49":1,"69":1,"97":4,"127":2,"131":1,"136":2,"138":1,"141":4,"142":2,"153":1,"156":2,"165":1}}],["sharing",{"2":{"88":1}}],["shares",{"2":{"54":1}}],["share",{"2":{"4":7,"6":8,"68":2,"69":8,"92":2,"93":1,"94":1,"103":1,"121":1}}],["shared",{"0":{"160":1},"2":{"3":1,"6":1,"45":2,"54":2,"103":3}}],["shapes",{"2":{"66":1,"173":7}}],["shape",{"2":{"43":1,"52":1,"54":1,"68":1,"144":1,"169":1}}],["shaped",{"2":{"39":1}}],["shapefiles",{"2":{"173":1}}],["shapefile",{"2":{"29":1,"173":4}}],["shallower",{"2":{"1":1,"6":1,"136":1}}],["sites",{"2":{"177":1}}],["sides",{"2":{"45":3,"138":1}}],["side",{"2":{"34":4,"45":26}}],["signals",{"2":{"135":1}}],["sign",{"2":{"13":2,"14":2,"34":7,"37":2,"126":3}}],["signed",{"0":{"35":1,"36":1,"64":1,"65":1},"1":{"36":1,"37":1,"65":1,"66":1},"2":{"0":4,"4":15,"6":18,"11":3,"35":1,"36":5,"37":23,"50":3,"64":1,"65":7,"66":19}}],["six",{"2":{"6":1,"156":1}}],["size=",{"2":{"170":1}}],["sizehint",{"2":{"45":2,"52":1,"153":1}}],["size",{"2":{"6":4,"13":2,"14":5,"39":1,"57":1,"127":2,"136":4,"156":1}}],["sin",{"2":{"169":3,"170":1,"171":2}}],["singed",{"2":{"66":1}}],["singular",{"2":{"54":1}}],["singlepoly",{"2":{"156":6}}],["single",{"2":{"4":6,"6":10,"23":1,"34":2,"37":1,"50":1,"69":5,"102":2,"127":2,"142":2,"143":1,"145":2,"169":3,"173":1}}],["since",{"2":{"1":1,"6":2,"26":1,"34":1,"37":1,"44":1,"50":2,"56":1,"66":1,"69":1,"97":1,"103":2,"120":1,"148":1,"165":1,"166":2,"177":1}}],["simulation",{"2":{"23":1}}],["simultaneously",{"2":{"20":1}}],["simply",{"2":{"7":1,"36":1,"41":1,"45":1,"54":1,"57":1,"72":1,"85":1,"100":1,"127":1,"140":1,"148":1,"149":1,"152":1,"169":1,"172":1}}],["simpler",{"2":{"6":1,"127":1}}],["simple",{"0":{"60":1,"176":1},"2":{"6":3,"40":1,"63":1,"129":3,"147":1,"148":1,"155":2,"156":2,"165":1}}],["simplifier",{"2":{"156":4}}],["simplified",{"2":{"23":1,"155":1}}],["simplifies",{"2":{"6":3,"157":1,"158":1,"159":1}}],["simplification",{"0":{"154":1},"1":{"155":1,"156":1},"2":{"6":2,"154":2,"156":3}}],["simplifying",{"2":{"154":1}}],["simplify",{"0":{"157":1,"158":1,"159":1},"2":{"0":1,"6":15,"9":1,"31":1,"45":1,"129":1,"155":1,"156":41,"157":1,"158":2,"159":1}}],["simplifyalgs",{"2":{"160":1}}],["simplifyalg",{"2":{"0":1,"6":8,"156":5,"157":2,"158":2,"159":2}}],["similarly",{"2":{"129":1}}],["similar",{"2":{"1":1,"6":4,"18":1,"25":1,"27":1,"29":1,"41":1,"58":1,"63":1,"127":2,"136":1,"152":2,"153":1,"162":1}}],["s",{"0":{"30":1},"2":{"0":1,"3":1,"6":10,"7":1,"9":1,"18":1,"19":1,"29":1,"34":1,"36":1,"37":4,"38":1,"39":2,"40":5,"43":3,"44":3,"45":3,"47":1,"50":1,"52":1,"54":2,"57":3,"62":1,"66":1,"69":1,"84":2,"91":3,"92":4,"93":2,"97":9,"103":1,"115":1,"116":1,"121":1,"127":5,"129":2,"131":3,"132":1,"136":1,"139":1,"142":4,"143":1,"145":3,"151":4,"152":1,"154":1,"156":2,"160":4,"164":2,"165":1,"166":6,"169":6,"170":4,"171":4,"172":2,"173":5,"178":2}}],["fn",{"2":{"173":8}}],["fc",{"2":{"136":22,"156":3,"167":14}}],["fj",{"2":{"127":2}}],["f2",{"2":{"45":2}}],["f1",{"2":{"45":2}}],["f64",{"2":{"13":2,"14":2}}],["few",{"2":{"138":1}}],["fetch",{"2":{"136":2}}],["fetched",{"2":{"127":1}}],["feb",{"0":{"8":1},"1":{"9":1,"10":1}}],["featurecollection",{"2":{"6":2,"11":1,"18":1,"127":4,"136":7,"170":2}}],["featurecollectiontrait",{"2":{"1":1,"6":2,"131":1,"134":1,"136":14,"167":5}}],["features",{"0":{"76":1,"90":1,"107":1,"117":1},"2":{"1":1,"6":3,"11":1,"22":1,"63":1,"127":3,"135":1,"136":19,"170":1}}],["featuretrait",{"2":{"1":2,"6":3,"76":4,"86":2,"90":4,"107":4,"117":4,"131":1,"134":3,"136":15,"167":5}}],["feature",{"2":{"1":6,"4":1,"6":10,"18":2,"22":1,"37":1,"50":1,"127":2,"129":1,"135":1,"136":49,"156":2,"167":2,"173":1}}],["fra",{"2":{"177":2}}],["frame",{"2":{"172":1}}],["framework",{"2":{"129":4}}],["fracs",{"2":{"45":20,"48":1}}],["frac",{"2":{"40":1,"45":2,"54":17,"156":2}}],["fractional",{"2":{"45":1,"54":3}}],["fractions",{"2":{"45":1,"54":4}}],["fraction",{"2":{"6":4,"54":2,"66":1,"156":1}}],["front",{"2":{"34":1}}],["from",{"2":{"1":3,"3":4,"4":16,"6":29,"7":1,"11":1,"20":1,"22":1,"26":1,"31":1,"37":2,"39":1,"40":4,"41":1,"44":1,"45":6,"48":1,"50":11,"51":1,"52":3,"53":1,"54":11,"56":1,"57":6,"63":1,"66":25,"89":2,"91":5,"92":4,"93":2,"94":1,"95":2,"97":6,"103":2,"126":2,"127":7,"131":3,"136":3,"145":1,"148":4,"150":1,"156":1,"157":1,"158":3,"159":1,"167":1,"168":1,"170":5,"173":1,"175":1,"176":1,"178":1}}],["footprint",{"2":{"171":1}}],["foldable",{"2":{"136":3}}],["follows",{"2":{"45":2,"75":1,"89":1,"106":1,"116":1,"127":1}}],["followed",{"2":{"26":1}}],["following",{"2":{"6":1,"40":1,"47":1,"138":1,"144":1,"156":1,"175":1}}],["focusing",{"2":{"25":1,"27":1}}],["foundational",{"2":{"17":1}}],["found",{"2":{"6":8,"26":1,"48":1,"50":1,"51":2,"53":2,"54":1,"56":2,"69":1,"127":5,"134":3,"136":7,"153":1}}],["forward",{"2":{"54":1}}],["forwards",{"2":{"45":1,"52":1,"57":1}}],["formats",{"2":{"168":1,"171":1,"173":3}}],["format",{"2":{"48":1,"173":3}}],["form",{"2":{"18":1,"45":3,"54":8,"57":3,"136":1}}],["formed",{"2":{"4":2,"6":3,"33":1,"34":4,"40":1,"45":8,"56":1,"57":1,"158":1}}],["formula",{"2":{"4":1,"6":1,"37":2,"50":1}}],["force",{"2":{"1":1,"136":1,"148":1,"156":1}}],["for",{"0":{"52":1,"54":1,"57":1},"2":{"0":2,"1":3,"3":1,"4":4,"5":3,"6":46,"7":4,"9":2,"13":5,"14":1,"18":1,"20":1,"22":1,"23":5,"25":3,"26":1,"27":3,"29":1,"31":2,"34":5,"37":8,"38":1,"39":1,"40":19,"41":3,"44":7,"45":35,"48":5,"50":11,"51":2,"52":3,"53":1,"54":7,"56":1,"57":9,"58":2,"61":1,"63":3,"65":2,"66":7,"69":13,"75":3,"81":1,"82":1,"84":1,"86":6,"89":2,"95":1,"96":1,"97":22,"102":1,"103":11,"106":3,"112":1,"113":1,"116":2,"122":1,"123":1,"125":1,"126":5,"127":13,"128":1,"129":3,"131":6,"132":2,"136":6,"137":3,"138":2,"140":1,"141":5,"143":3,"144":1,"145":5,"146":1,"148":3,"150":4,"151":7,"152":6,"153":8,"154":4,"156":12,"157":2,"158":2,"159":1,"160":6,"164":1,"165":2,"166":5,"167":7,"168":1,"170":4,"171":1,"173":3,"175":1,"177":2,"178":1}}],["fi",{"2":{"127":2}}],["fine",{"2":{"151":1}}],["final",{"2":{"57":1,"141":4,"152":1}}],["finally",{"2":{"39":2,"54":1,"127":1,"136":3,"173":1}}],["findmin",{"2":{"160":1}}],["findmax",{"2":{"156":1,"158":1}}],["findall",{"2":{"141":1}}],["finding",{"2":{"54":1}}],["findfirst",{"2":{"45":6,"48":2,"61":1,"156":1}}],["findnext",{"2":{"45":3}}],["findlast",{"2":{"45":2}}],["findprev",{"2":{"45":2}}],["finds",{"2":{"45":1,"50":1}}],["find",{"2":{"34":6,"37":1,"45":12,"48":2,"50":3,"51":4,"53":2,"54":8,"56":1,"66":3,"69":1,"97":7,"127":2,"158":5,"177":1}}],["finish",{"2":{"9":1}}],["fill",{"2":{"45":1,"127":1,"153":3}}],["filled",{"2":{"45":5,"50":3,"65":1,"66":2,"97":16}}],["files",{"2":{"163":1,"173":2}}],["file",{"2":{"26":1,"45":1,"75":3,"89":3,"106":3,"116":3,"127":1,"128":1,"129":1,"140":1,"148":1,"153":1,"154":1,"163":2,"168":1,"173":2}}],["filters",{"2":{"45":1}}],["filtering",{"2":{"6":1,"156":1}}],["filter",{"2":{"4":1,"6":2,"45":2,"136":3,"145":2,"146":1,"156":1}}],["fit",{"2":{"17":1}}],["field",{"2":{"13":2,"45":2}}],["figure",{"2":{"13":1,"14":1,"36":1,"39":2,"62":1,"170":3}}],["fig",{"2":{"13":6,"14":6,"62":5,"169":7,"170":4,"174":2}}],["fix1",{"2":{"136":2,"153":1}}],["fixme",{"2":{"126":1}}],["fix2",{"2":{"45":2}}],["fixed",{"2":{"6":3,"51":1,"53":1,"56":1}}],["fix",{"0":{"20":1},"2":{"6":9,"9":3,"15":3,"17":1,"20":1,"51":1,"52":11,"53":1,"54":11,"56":1,"57":10,"62":2,"138":1,"140":1,"141":1,"144":1}}],["firstisright",{"2":{"127":2}}],["firstisleft",{"2":{"127":4}}],["firstisstraight",{"2":{"127":4}}],["firstnode",{"2":{"127":9}}],["first",{"2":{"3":9,"6":10,"34":14,"37":7,"39":1,"40":9,"41":1,"44":1,"45":17,"48":1,"50":2,"51":2,"53":1,"54":5,"56":3,"66":8,"69":4,"71":2,"72":2,"74":1,"75":2,"78":1,"79":1,"80":1,"85":2,"89":3,"97":22,"103":1,"105":1,"106":2,"109":1,"110":1,"111":2,"116":2,"118":1,"126":1,"127":16,"136":6,"138":1,"153":3,"157":1,"158":2,"167":2,"168":1,"169":1,"170":1,"171":1,"175":1,"176":1}}],["fancy",{"2":{"169":1}}],["fancis",{"2":{"6":1,"40":1}}],["fair",{"2":{"151":1}}],["fail",{"2":{"1":1,"6":2,"136":6,"152":1}}],["fallback",{"2":{"136":1}}],["falses",{"2":{"45":2,"48":1,"51":1,"53":1}}],["false",{"0":{"24":1},"2":{"1":29,"3":7,"4":3,"6":55,"34":2,"37":1,"39":5,"45":26,"48":1,"50":5,"51":1,"52":3,"54":1,"56":4,"66":2,"68":2,"69":27,"71":2,"75":8,"77":2,"78":4,"79":1,"80":1,"81":1,"82":1,"84":2,"86":11,"89":9,"91":1,"92":4,"95":1,"96":1,"97":39,"103":22,"105":1,"106":7,"108":2,"109":4,"110":1,"111":1,"112":1,"113":1,"116":8,"118":3,"119":4,"120":1,"122":1,"123":1,"126":10,"127":5,"136":18,"138":16,"144":44,"145":4,"153":2,"156":1,"160":2,"161":20,"165":2,"167":2,"169":242,"170":12,"171":18,"175":1}}],["fashion",{"2":{"36":1}}],["faster",{"2":{"40":1,"136":1}}],["fast",{"2":{"12":1}}],["f",{"2":{"1":12,"6":25,"15":1,"18":3,"19":1,"22":2,"33":1,"36":2,"39":4,"41":1,"43":2,"45":19,"47":2,"49":2,"51":2,"52":2,"53":2,"54":2,"56":2,"57":2,"60":2,"61":2,"65":5,"68":2,"71":2,"74":2,"84":2,"88":2,"97":7,"99":2,"102":2,"105":2,"115":2,"127":30,"131":2,"134":2,"136":168,"149":1,"151":2,"152":1,"155":2,"156":1,"160":6,"161":6,"166":5,"167":16,"169":6,"171":2,"176":3}}],["fulfilled",{"2":{"158":1}}],["fully",{"2":{"6":1,"45":4,"48":1,"103":4}}],["full",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"50":5,"141":1,"177":4}}],["furthest",{"2":{"127":1}}],["further",{"2":{"43":1,"136":1}}],["furthermore",{"2":{"3":2,"6":5,"45":1,"51":1,"53":1,"56":1,"75":1,"106":1}}],["fun",{"2":{"169":1}}],["fundamental",{"2":{"26":1,"163":1}}],["func",{"2":{"13":5}}],["funcs",{"2":{"13":2,"14":3}}],["functionality",{"2":{"54":1,"129":1,"147":1,"148":1,"153":1,"166":1}}],["functionalities",{"2":{"45":1}}],["functionally",{"2":{"1":1,"6":1,"18":1,"29":1,"136":1}}],["function",{"2":{"1":8,"3":9,"4":9,"5":3,"6":14,"7":2,"9":1,"13":3,"14":2,"18":2,"29":1,"31":1,"34":5,"37":3,"40":13,"44":6,"45":18,"47":2,"48":4,"50":7,"51":3,"52":3,"53":2,"54":7,"55":1,"56":2,"57":4,"63":2,"66":6,"68":1,"69":8,"71":1,"74":1,"75":1,"81":1,"82":1,"84":1,"86":5,"88":1,"89":1,"95":1,"96":1,"97":9,"99":1,"102":1,"103":7,"105":1,"106":1,"112":1,"113":1,"115":1,"116":1,"122":1,"123":1,"126":4,"127":16,"128":3,"131":3,"134":2,"136":29,"139":2,"141":7,"142":2,"145":2,"147":2,"148":1,"150":2,"152":2,"153":7,"156":3,"157":2,"158":3,"159":2,"160":7,"161":3,"162":1,"166":6,"167":12,"169":1,"175":1,"178":4}}],["functions",{"0":{"1":1,"52":1,"54":1,"57":1,"129":1,"131":1,"167":1},"1":{"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1},"2":{"6":1,"9":3,"17":1,"26":1,"29":1,"37":1,"40":1,"44":1,"45":2,"47":1,"50":1,"97":1,"128":1,"129":2,"134":1,"141":2,"142":1}}],["future",{"2":{"23":1,"58":1,"66":1,"150":2}}],["flexijoins",{"2":{"175":1,"176":3,"177":1,"178":5}}],["flags",{"2":{"45":5}}],["flag",{"2":{"45":12,"48":1}}],["flat",{"2":{"6":1,"160":2,"167":1}}],["flattened",{"2":{"18":1}}],["flattening",{"2":{"6":4,"152":2}}],["flatten",{"2":{"0":2,"6":4,"11":3,"13":1,"18":1,"40":1,"45":2,"50":3,"53":1,"57":1,"63":2,"86":1,"131":4,"136":27,"145":1}}],["floating",{"2":{"6":1,"45":1,"54":5,"127":2}}],["float",{"2":{"6":3,"51":1,"53":1,"56":1}}],["float64x2",{"2":{"13":6,"14":6,"15":2}}],["float64",{"2":{"1":6,"4":10,"6":30,"13":1,"33":1,"34":3,"37":6,"44":1,"48":2,"50":4,"51":2,"53":1,"54":3,"56":1,"62":1,"66":12,"97":4,"103":2,"126":4,"138":6,"144":26,"151":2,"152":2,"153":1,"157":4,"158":9,"159":2,"160":6,"161":6,"162":1,"167":8,"169":190,"170":7,"171":10}}],["flipping",{"0":{"147":1},"2":{"147":1}}],["flipped",{"2":{"1":2,"6":2,"136":2}}],["flipaxis",{"2":{"39":1}}],["flip",{"2":{"0":1,"6":1,"31":1,"129":2,"136":1,"147":2}}],["wgs84",{"2":{"170":1}}],["wglmakie",{"2":{"14":1}}],["wₜₒₜ",{"2":{"40":8}}],["wᵢ",{"2":{"40":18}}],["wt",{"2":{"40":3}}],["w",{"2":{"13":13,"14":7,"66":4,"127":1}}],["wrong",{"2":{"143":1,"160":1}}],["writing",{"2":{"173":1}}],["written",{"2":{"69":1}}],["write",{"2":{"7":1,"30":1,"127":1,"173":7}}],["wrap",{"2":{"4":1,"6":1,"146":1,"152":1}}],["wrapped",{"2":{"22":1,"127":2,"134":1,"136":1}}],["wrapper",{"0":{"30":1},"2":{"30":1,"34":1,"37":1,"44":1,"50":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1}}],["wrappers`",{"2":{"136":1}}],["wrappers",{"2":{"1":10,"6":12,"22":1,"126":2,"127":1,"131":1,"138":8,"139":1,"144":22,"151":1,"152":1,"156":1,"161":10,"167":1,"169":121,"170":5,"171":9}}],["wrappergeometry`",{"2":{"148":1}}],["wrappergeometry",{"2":{"1":1}}],["wrapping",{"2":{"1":1,"6":1,"69":1,"148":1,"162":1}}],["web",{"2":{"173":1}}],["west",{"2":{"50":8}}],["were",{"2":{"45":1,"127":1,"176":1}}],["welcome",{"2":{"25":1,"27":1}}],["well",{"2":{"17":1,"45":1,"50":1,"63":1,"150":1,"154":1,"165":1}}],["we",{"0":{"55":2},"2":{"7":1,"11":1,"13":1,"17":3,"19":1,"23":3,"24":1,"25":2,"26":1,"27":2,"34":1,"36":2,"37":2,"39":4,"40":8,"41":2,"44":1,"45":7,"50":4,"52":8,"53":2,"54":3,"57":1,"58":1,"62":3,"63":2,"66":1,"68":1,"69":5,"71":1,"72":1,"74":1,"75":1,"85":1,"88":1,"89":1,"97":2,"99":3,"100":1,"102":1,"103":2,"105":1,"106":1,"115":1,"116":1,"127":21,"128":1,"134":1,"136":20,"137":1,"149":1,"150":2,"151":2,"152":3,"153":1,"156":5,"160":2,"163":1,"165":4,"166":1,"168":2,"169":4,"170":6,"171":4,"172":1,"173":3,"175":3,"176":7}}],["weighting",{"2":{"43":2,"44":1}}],["weights",{"2":{"38":4}}],["weight",{"2":{"6":5,"40":14,"44":1}}],["weighted",{"2":{"0":1,"6":2,"38":3,"40":4,"44":4}}],["wall2",{"2":{"50":7}}],["wall1",{"2":{"50":12}}],["walls",{"2":{"50":3}}],["wall",{"2":{"50":69}}],["walk",{"2":{"48":1}}],["wachspress",{"2":{"40":1}}],["wasincreasing",{"2":{"127":10}}],["wasn",{"2":{"45":1}}],["was",{"2":{"31":1,"34":1,"37":1,"39":1,"40":4,"41":1,"44":1,"45":1,"48":1,"50":1,"51":1,"52":3,"53":1,"54":2,"55":1,"56":1,"57":3,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"134":1,"136":1,"139":1,"142":1,"145":1,"146":1,"147":1,"149":1,"151":1,"153":1,"160":1,"161":1,"162":1,"166":2,"167":1}}],["wanted",{"2":{"178":1}}],["wants",{"2":{"63":1,"136":1}}],["want",{"0":{"23":1,"55":1},"2":{"13":1,"18":1,"23":1,"40":1,"45":1,"126":1,"170":2,"172":1,"177":1,"178":1}}],["ways",{"2":{"143":1}}],["way",{"2":{"6":1,"17":1,"18":1,"24":1,"29":1,"38":1,"129":1,"140":1,"153":1,"164":1,"166":2,"172":1}}],["warn",{"2":{"127":2}}],["warned",{"2":{"6":1,"166":1}}],["warning",{"2":{"0":1,"5":1,"6":3,"24":1,"40":1,"63":1,"136":1,"152":1,"163":1,"177":1}}],["wong",{"2":{"60":1,"61":1,"174":1}}],["won",{"2":{"23":1,"45":1,"136":1}}],["wouldn",{"2":{"54":1}}],["would",{"0":{"55":1},"2":{"6":3,"23":1,"51":1,"53":1,"54":1,"56":1,"63":4,"127":1,"165":2,"170":1,"177":1,"178":1}}],["wound",{"2":{"6":1,"63":1}}],["world",{"0":{"177":1},"2":{"175":1}}],["worrying",{"2":{"24":1}}],["words",{"2":{"3":1,"6":1,"71":1,"99":1,"115":1,"116":1}}],["workflow",{"2":{"86":1,"103":1}}],["workflows",{"2":{"23":1,"25":1,"27":1}}],["works",{"2":{"26":1,"148":1,"150":1}}],["working",{"2":{"3":1,"6":1,"86":1,"170":1}}],["work",{"2":{"1":3,"6":3,"9":1,"34":1,"37":2,"44":1,"48":2,"50":2,"58":1,"66":1,"69":1,"97":1,"103":1,"126":1,"136":2,"148":1,"161":1,"177":1}}],["whole",{"2":{"97":1}}],["whose",{"2":{"3":1,"6":1,"86":1}}],["white",{"2":{"39":1}}],["while",{"2":{"34":1,"43":1,"44":1,"45":5,"54":2,"62":2,"65":1,"69":1,"86":1,"97":1,"127":3,"145":1,"158":1,"160":2,"176":1}}],["whichever",{"2":{"6":1,"156":1}}],["which",{"2":{"1":1,"4":2,"5":1,"6":8,"7":1,"11":1,"13":1,"14":1,"17":1,"18":4,"20":1,"23":2,"36":1,"37":1,"38":1,"39":2,"40":5,"41":1,"45":11,"50":2,"54":2,"58":1,"63":1,"69":2,"97":3,"127":3,"128":1,"129":1,"136":1,"137":2,"138":1,"141":1,"143":1,"144":1,"149":1,"150":1,"151":1,"152":3,"153":2,"156":1,"158":2,"161":1,"164":1,"166":4,"173":3,"175":3,"176":6,"178":1}}],["what",{"0":{"22":1,"25":1,"30":1,"33":1,"36":2,"43":1,"47":1,"49":1,"65":2,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"134":1},"2":{"13":1,"14":1,"24":1,"43":1,"126":1,"127":1,"151":1,"165":1,"170":1,"177":1}}],["whatever",{"2":{"1":1,"6":1,"22":1,"136":1}}],["whyatt",{"2":{"154":1}}],["why",{"0":{"22":1,"23":1},"2":{"9":1,"17":1,"30":1,"37":1}}],["wheel",{"2":{"17":1}}],["whether",{"2":{"1":4,"4":1,"6":10,"125":1,"126":1,"133":2,"137":1}}],["when",{"2":{"1":1,"4":2,"5":1,"6":5,"18":1,"20":1,"23":2,"24":1,"37":1,"40":3,"44":1,"45":2,"52":5,"54":6,"57":7,"97":1,"127":1,"134":3,"136":1,"138":1,"141":1,"146":2,"156":1,"170":1,"171":2,"173":1,"178":1}}],["wherever",{"2":{"6":1,"162":1}}],["where",{"2":{"1":2,"4":5,"6":11,"20":1,"31":2,"34":8,"37":12,"38":2,"40":24,"44":8,"45":14,"48":5,"50":8,"51":2,"52":5,"53":3,"54":18,"56":2,"57":9,"66":25,"69":1,"97":9,"127":3,"136":52,"143":1,"148":1,"151":1,"162":1,"163":1,"164":5,"167":3,"169":4}}],["widely",{"2":{"173":1}}],["widths",{"2":{"14":1}}],["width",{"2":{"6":2}}],["wiki",{"2":{"97":1,"158":1}}],["wikipedia",{"2":{"97":1,"158":2}}],["wind",{"2":{"4":1,"6":2,"37":1,"69":1}}],["winding",{"0":{"62":1},"2":{"4":2,"6":3,"37":3,"45":7,"62":4,"63":1,"69":1,"127":1}}],["without",{"2":{"1":2,"6":1,"17":1,"24":1,"45":1,"88":1,"103":1,"136":3,"148":1,"161":1}}],["with",{"0":{"52":1,"54":1,"57":1,"157":1,"158":1,"159":1,"171":1,"172":1},"2":{"1":5,"3":5,"4":7,"6":27,"11":1,"20":1,"22":2,"23":1,"33":1,"34":2,"37":7,"38":4,"39":1,"40":2,"44":1,"45":14,"50":6,"52":8,"53":5,"54":15,"56":1,"57":12,"65":1,"66":2,"75":1,"88":1,"92":1,"97":28,"99":1,"102":2,"103":5,"111":1,"115":1,"116":1,"119":3,"120":2,"121":2,"127":7,"129":1,"131":2,"134":1,"136":17,"138":1,"143":1,"146":1,"148":1,"150":1,"153":2,"156":2,"158":2,"159":1,"161":1,"165":1,"166":1,"168":1,"169":4,"170":6,"171":2,"172":2,"173":2,"175":1,"176":1,"177":1}}],["within",{"0":{"104":1,"105":1,"108":1,"109":1,"111":1,"112":1,"113":1},"1":{"105":1,"106":1},"2":{"0":2,"3":9,"4":3,"5":1,"6":13,"7":1,"9":1,"31":1,"34":2,"37":1,"38":3,"40":1,"44":1,"45":9,"49":2,"50":5,"52":1,"54":2,"56":1,"57":6,"65":1,"66":5,"71":2,"72":3,"74":2,"91":1,"97":9,"102":1,"103":9,"104":1,"105":6,"106":11,"107":6,"108":14,"109":15,"110":15,"111":7,"112":4,"113":4,"129":1,"175":1,"176":4,"177":2}}],["will",{"2":{"1":8,"4":7,"5":1,"6":44,"11":1,"18":3,"23":2,"24":1,"34":4,"37":3,"40":2,"44":1,"45":5,"48":1,"50":1,"51":4,"52":4,"53":4,"54":4,"56":4,"57":4,"63":1,"65":2,"66":4,"69":1,"86":1,"126":1,"127":2,"131":2,"134":1,"135":2,"136":8,"138":1,"142":2,"143":1,"145":2,"148":3,"150":2,"152":3,"156":2,"158":1,"160":1,"161":2,"166":1,"170":1,"173":1,"175":2,"177":1,"178":1}}],["wip",{"2":{"0":1}}]],"serializationVersion":2}';export{e as default}; +const e='{"documentCount":179,"nextId":179,"documentIds":{"0":"/GeometryOps.jl/dev/api#Full-GeometryOps-API-documentation","1":"/GeometryOps.jl/dev/api#apply-and-associated-functions","2":"/GeometryOps.jl/dev/api#General-geometry-methods","3":"/GeometryOps.jl/dev/api#OGC-methods","4":"/GeometryOps.jl/dev/api#Other-general-methods","5":"/GeometryOps.jl/dev/api#Barycentric-coordinates","6":"/GeometryOps.jl/dev/api#Other-methods","7":"/GeometryOps.jl/dev/call_notes#20th-April,-2024","8":"/GeometryOps.jl/dev/call_notes#29th-Feb,-2024","9":"/GeometryOps.jl/dev/call_notes#To-do","10":"/GeometryOps.jl/dev/call_notes#done","11":"/GeometryOps.jl/dev/experiments/accurate_accumulators#Accurate-accumulation","12":"/GeometryOps.jl/dev/experiments/predicates#predicates","13":"/GeometryOps.jl/dev/experiments/predicates#orient","14":"/GeometryOps.jl/dev/experiments/predicates#dashboard","15":"/GeometryOps.jl/dev/experiments/predicates#Testing-robust-vs-regular-predicates","16":"/GeometryOps.jl/dev/experiments/predicates#incircle","17":"/GeometryOps.jl/dev/explanations/paradigms#paradigms","18":"/GeometryOps.jl/dev/explanations/paradigms#apply","19":"/GeometryOps.jl/dev/explanations/paradigms#applyreduce","20":"/GeometryOps.jl/dev/explanations/paradigms#fix-and-prepare","21":"/GeometryOps.jl/dev/explanations/peculiarities#peculiarities","22":"/GeometryOps.jl/dev/explanations/peculiarities#What-does-apply-return-and-why?","23":"/GeometryOps.jl/dev/explanations/peculiarities#Why-do-you-want-me-to-provide-a-target-in-set-operations?","24":"/GeometryOps.jl/dev/explanations/peculiarities#_True-and-_False-(or-BoolsAsTypes)","25":"/GeometryOps.jl/dev/#what-is-geometryops-jl","26":"/GeometryOps.jl/dev/#how-to-navigate-the-docs","27":"/GeometryOps.jl/dev/introduction#introduction","28":"/GeometryOps.jl/dev/introduction#Main-concepts","29":"/GeometryOps.jl/dev/introduction#The-apply-paradigm","30":"/GeometryOps.jl/dev/introduction#What\'s-this-GeoInterface.Wrapper-thing?","31":"/GeometryOps.jl/dev/source/GeometryOps#geometryops-jl","32":"/GeometryOps.jl/dev/source/methods/angles#angles","33":"/GeometryOps.jl/dev/source/methods/angles#What-is-angles?","34":"/GeometryOps.jl/dev/source/methods/angles#implementation","35":"/GeometryOps.jl/dev/source/methods/area#Area-and-signed-area","36":"/GeometryOps.jl/dev/source/methods/area#What-is-area?-What-is-signed-area?","37":"/GeometryOps.jl/dev/source/methods/area#implementation","38":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinates","39":"/GeometryOps.jl/dev/source/methods/barycentric#example","40":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinate-API","41":"/GeometryOps.jl/dev/source/methods/buffer#buffer","42":"/GeometryOps.jl/dev/source/methods/centroid#centroid","43":"/GeometryOps.jl/dev/source/methods/centroid#What-is-the-centroid?","44":"/GeometryOps.jl/dev/source/methods/centroid#implementation","45":"/GeometryOps.jl/dev/source/methods/clipping/clipping_processor#Polygon-clipping-helpers","46":"/GeometryOps.jl/dev/source/methods/clipping/coverage#What-is-coverage?","47":"/GeometryOps.jl/dev/source/methods/clipping/coverage#implementation","48":"/GeometryOps.jl/dev/source/methods/clipping/cut#Polygon-cutting","49":"/GeometryOps.jl/dev/source/methods/clipping/cut#What-is-cut?","50":"/GeometryOps.jl/dev/source/methods/clipping/cut#implementation","51":"/GeometryOps.jl/dev/source/methods/clipping/difference#Difference-Polygon-Clipping","52":"/GeometryOps.jl/dev/source/methods/clipping/difference#Helper-functions-for-Differences-with-Greiner-and-Hormann-Polygon-Clipping","53":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Geometry-Intersection","54":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Helper-functions-for-Intersections-with-Greiner-and-Hormann-Polygon-Clipping","55":"/GeometryOps.jl/dev/source/methods/clipping/predicates#If-we-want-to-inject-adaptivity,-we-would-do-something-like:","56":"/GeometryOps.jl/dev/source/methods/clipping/union#Union-Polygon-Clipping","57":"/GeometryOps.jl/dev/source/methods/clipping/union#Helper-functions-for-Unions-with-Greiner-and-Hormann-Polygon-Clipping","58":"/GeometryOps.jl/dev/source/methods/convex_hull#Convex-hull","59":"/GeometryOps.jl/dev/source/methods/convex_hull#example","60":"/GeometryOps.jl/dev/source/methods/convex_hull#Simple-hull","61":"/GeometryOps.jl/dev/source/methods/convex_hull#Convex-hull-of-the-USA","62":"/GeometryOps.jl/dev/source/methods/convex_hull#Investigating-the-winding-order","63":"/GeometryOps.jl/dev/source/methods/convex_hull#implementation","64":"/GeometryOps.jl/dev/source/methods/distance#Distance-and-signed-distance","65":"/GeometryOps.jl/dev/source/methods/distance#What-is-distance?-What-is-signed-distance?","66":"/GeometryOps.jl/dev/source/methods/distance#implementation","67":"/GeometryOps.jl/dev/source/methods/equals#equals","68":"/GeometryOps.jl/dev/source/methods/equals#What-is-equals?","69":"/GeometryOps.jl/dev/source/methods/equals#implementation","70":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#contains","71":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#What-is-contains?","72":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#implementation","73":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#coveredby","74":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#What-is-coveredby?","75":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#implementation","76":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Convert-features-to-geometries","77":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Points-coveredby-geometries","78":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Lines-coveredby-geometries","79":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Rings-covered-by-geometries","80":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Polygons-covered-by-geometries","81":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Geometries-coveredby-multi-geometry/geometry-collections","82":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Multi-geometry/geometry-collections-coveredby-geometries","83":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#covers","84":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#What-is-covers?","85":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#implementation","86":"/GeometryOps.jl/dev/source/methods/geom_relations/crosses#Crossing-checks","87":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#disjoint","88":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#What-is-disjoint?","89":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#implementation","90":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Convert-features-to-geometries","91":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Point-disjoint-geometries","92":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Lines-disjoint-geometries","93":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Rings-disjoint-geometries","94":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Polygon-disjoint-geometries","95":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Geometries-disjoint-multi-geometry/geometry-collections","96":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Multi-geometry/geometry-collections-coveredby-geometries","97":"/GeometryOps.jl/dev/source/methods/geom_relations/geom_geom_processors#Line-curve-interaction","98":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#Intersection-checks","99":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#What-is-intersects?","100":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#implementation","101":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#overlaps","102":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#What-is-overlaps?","103":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#implementation","104":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#touches","105":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#What-is-touches?","106":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#implementation","107":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Convert-features-to-geometries","108":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Point-touches-geometries","109":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Lines-touching-geometries","110":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Rings-touch-geometries","111":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Polygons-touch-geometries","112":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Geometries-touch-multi-geometry/geometry-collections","113":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Multi-geometry/geometry-collections-cross-geometries","114":"/GeometryOps.jl/dev/source/methods/geom_relations/within#within","115":"/GeometryOps.jl/dev/source/methods/geom_relations/within#What-is-within?","116":"/GeometryOps.jl/dev/source/methods/geom_relations/within#implementation","117":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Convert-features-to-geometries","118":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Points-within-geometries","119":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Lines-within-geometries","120":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Rings-covered-by-geometries","121":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Polygons-within-geometries","122":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Geometries-within-multi-geometry/geometry-collections","123":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Multi-geometry/geometry-collections-within-geometries","124":"/GeometryOps.jl/dev/source/methods/orientation#orientation","125":"/GeometryOps.jl/dev/source/methods/orientation#isclockwise","126":"/GeometryOps.jl/dev/source/methods/orientation#isconcave","127":"/GeometryOps.jl/dev/source/methods/polygonize#Polygonizing-raster-data","128":"/GeometryOps.jl/dev/source/not_implemented_yet#Not-implemented-yet","129":"/GeometryOps.jl/dev/source/primitives#Primitive-functions","130":"/GeometryOps.jl/dev/source/primitives#docstrings","131":"/GeometryOps.jl/dev/source/primitives#functions","132":"/GeometryOps.jl/dev/source/primitives#types","133":"/GeometryOps.jl/dev/source/primitives#implementation","134":"/GeometryOps.jl/dev/source/primitives#What-is-apply?","135":"/GeometryOps.jl/dev/source/primitives#embedding","136":"/GeometryOps.jl/dev/source/primitives#threading","137":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#Closed-Rings","138":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#example","139":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#implementation","140":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Geometry-Corrections","141":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#interface","142":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Available-corrections","143":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#Intersecting-Polygons","144":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#example","145":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#implementation","146":"/GeometryOps.jl/dev/source/transformations/extent#Extent-embedding","147":"/GeometryOps.jl/dev/source/transformations/reproject#Geometry-reprojection","148":"/GeometryOps.jl/dev/source/transformations/reproject#Method-error-handling","149":"/GeometryOps.jl/dev/source/transformations/flip#Coordinate-flipping","150":"/GeometryOps.jl/dev/source/transformations/segmentize#segmentize","151":"/GeometryOps.jl/dev/source/transformations/segmentize#examples","152":"/GeometryOps.jl/dev/source/transformations/segmentize#benchmark","153":"/GeometryOps.jl/dev/source/transformations/segmentize#implementation","154":"/GeometryOps.jl/dev/source/transformations/simplify#Geometry-simplification","155":"/GeometryOps.jl/dev/source/transformations/simplify#examples","156":"/GeometryOps.jl/dev/source/transformations/simplify#benchmark","157":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-RadialDistance-Algorithm","158":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-DouglasPeucker-Algorithm","159":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-VisvalingamWhyatt-Algorithm","160":"/GeometryOps.jl/dev/source/transformations/simplify#Shared-utils","161":"/GeometryOps.jl/dev/source/transformations/transform#Pointwise-transformation","162":"/GeometryOps.jl/dev/source/transformations/tuples#Tuple-conversion","163":"/GeometryOps.jl/dev/source/types#types","164":"/GeometryOps.jl/dev/source/types#TraitTarget","165":"/GeometryOps.jl/dev/source/types#BoolsAsTypes","166":"/GeometryOps.jl/dev/source/types#GEOS","167":"/GeometryOps.jl/dev/source/utils#Utility-functions","168":"/GeometryOps.jl/dev/tutorials/creating_geometry#Creating-Geometry","169":"/GeometryOps.jl/dev/tutorials/creating_geometry#creating-geometry","170":"/GeometryOps.jl/dev/tutorials/creating_geometry#plot-geometry","171":"/GeometryOps.jl/dev/tutorials/creating_geometry#geom-crs","172":"/GeometryOps.jl/dev/tutorials/creating_geometry#attributes","173":"/GeometryOps.jl/dev/tutorials/creating_geometry#save-geometry","174":"/GeometryOps.jl/dev/tutorials/geodesic_paths#Geodesic-paths","175":"/GeometryOps.jl/dev/tutorials/spatial_joins#Spatial-joins","176":"/GeometryOps.jl/dev/tutorials/spatial_joins#Simple-example","177":"/GeometryOps.jl/dev/tutorials/spatial_joins#Real-world-example","178":"/GeometryOps.jl/dev/tutorials/spatial_joins#Enabling-custom-predicates"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,91],"1":[4,4,248],"2":[3,4,1],"3":[2,7,208],"4":[3,7,258],"5":[2,4,84],"6":[2,4,1086],"7":[3,1,55],"8":[3,1,1],"9":[2,3,107],"10":[1,3,17],"11":[2,1,74],"12":[1,1,5],"13":[1,1,128],"14":[1,2,116],"15":[5,2,72],"16":[1,1,1],"17":[1,1,53],"18":[1,1,109],"19":[1,2,35],"20":[3,1,79],"21":[1,1,1],"22":[7,1,71],"23":[13,1,101],"24":[6,1,66],"25":[5,1,72],"26":[5,1,61],"27":[1,1,72],"28":[2,1,1],"29":[3,3,50],"30":[8,3,18],"31":[2,1,120],"32":[1,1,3],"33":[4,1,57],"34":[1,1,268],"35":[4,1,4],"36":[5,4,100],"37":[1,4,246],"38":[2,1,65],"39":[1,2,211],"40":[3,2,414],"41":[1,1,110],"42":[1,1,6],"43":[5,1,91],"44":[1,1,199],"45":[3,1,609],"46":[4,1,70],"47":[1,1,327],"48":[2,1,3],"49":[4,2,57],"50":[1,2,200],"51":[3,1,214],"52":[10,1,190],"53":[2,1,250],"54":[10,1,480],"55":[11,1,25],"56":[3,1,235],"57":[10,1,283],"58":[2,1,56],"59":[1,2,1],"60":[2,3,32],"61":[5,2,40],"62":[4,2,100],"63":[1,2,166],"64":[4,1,4],"65":[5,4,128],"66":[1,4,260],"67":[1,1,3],"68":[4,1,68],"69":[1,1,265],"70":[1,1,3],"71":[4,1,79],"72":[1,1,79],"73":[1,1,3],"74":[4,1,81],"75":[1,1,128],"76":[4,1,11],"77":[3,1,56],"78":[3,1,46],"79":[4,1,48],"80":[4,1,40],"81":[5,1,40],"82":[5,1,44],"83":[1,1,3],"84":[4,1,67],"85":[1,1,78],"86":[2,1,149],"87":[1,1,3],"88":[4,1,68],"89":[1,1,110],"90":[4,1,10],"91":[3,1,57],"92":[3,1,58],"93":[3,1,47],"94":[3,1,33],"95":[5,1,39],"96":[5,1,44],"97":[3,1,432],"98":[2,1,3],"99":[4,2,80],"100":[1,2,76],"101":[1,1,3],"102":[4,1,82],"103":[1,1,244],"104":[1,1,3],"105":[4,1,70],"106":[1,1,125],"107":[4,1,11],"108":[3,1,69],"109":[3,1,52],"110":[3,1,61],"111":[3,1,40],"112":[5,1,39],"113":[5,1,42],"114":[1,1,3],"115":[4,1,72],"116":[1,1,129],"117":[4,1,11],"118":[3,1,63],"119":[3,1,53],"120":[4,1,53],"121":[3,1,38],"122":[5,1,39],"123":[5,1,42],"124":[1,1,4],"125":[1,1,21],"126":[1,1,206],"127":[3,1,511],"128":[3,1,47],"129":[2,1,113],"130":[1,2,1],"131":[1,3,106],"132":[1,2,12],"133":[1,2,33],"134":[4,2,114],"135":[2,2,36],"136":[1,2,536],"137":[2,1,54],"138":[1,2,87],"139":[1,2,83],"140":[2,1,41],"141":[1,2,112],"142":[2,2,109],"143":[2,1,77],"144":[1,2,70],"145":[1,2,135],"146":[2,1,71],"147":[2,1,132],"148":[3,2,77],"149":[2,1,56],"150":[1,1,76],"151":[1,1,147],"152":[1,1,268],"153":[1,1,188],"154":[2,1,44],"155":[1,2,67],"156":[1,2,391],"157":[4,1,75],"158":[4,1,186],"159":[4,1,85],"160":[2,1,149],"161":[2,1,111],"162":[2,1,58],"163":[1,1,38],"164":[1,1,74],"165":[1,1,82],"166":[1,1,147],"167":[2,1,136],"168":[2,1,60],"169":[4,2,287],"170":[13,2,280],"171":[9,2,199],"172":[7,2,63],"173":[4,2,140],"174":[2,1,52],"175":[2,1,138],"176":[2,2,137],"177":[3,2,117],"178":[3,2,68]},"averageFieldLength":[2.860335195530726,1.4692737430167604,108.19553072625699],"storedFields":{"0":{"title":"Full GeometryOps API documentation","titles":[]},"1":{"title":"apply and associated functions","titles":["Full GeometryOps API documentation"]},"2":{"title":"General geometry methods","titles":["Full GeometryOps API documentation"]},"3":{"title":"OGC methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"4":{"title":"Other general methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"5":{"title":"Barycentric coordinates","titles":["Full GeometryOps API documentation"]},"6":{"title":"Other methods","titles":["Full GeometryOps API documentation"]},"7":{"title":"20th April, 2024","titles":[]},"8":{"title":"29th Feb, 2024","titles":[]},"9":{"title":"To do","titles":["29th Feb, 2024"]},"10":{"title":"Done","titles":["29th Feb, 2024"]},"11":{"title":"Accurate accumulation","titles":[]},"12":{"title":"Predicates","titles":[]},"13":{"title":"Orient","titles":["Predicates"]},"14":{"title":"Dashboard","titles":["Predicates","Orient"]},"15":{"title":"Testing robust vs regular predicates","titles":["Predicates","Orient"]},"16":{"title":"Incircle","titles":["Predicates"]},"17":{"title":"Paradigms","titles":[]},"18":{"title":"apply","titles":["Paradigms"]},"19":{"title":"applyreduce","titles":["Paradigms","apply"]},"20":{"title":"fix and prepare","titles":["Paradigms"]},"21":{"title":"Peculiarities","titles":[]},"22":{"title":"What does apply return and why?","titles":["Peculiarities"]},"23":{"title":"Why do you want me to provide a target in set operations?","titles":["Peculiarities"]},"24":{"title":"_True and _False (or BoolsAsTypes)","titles":["Peculiarities"]},"25":{"title":"What is GeometryOps.jl?","titles":[]},"26":{"title":"How to navigate the docs","titles":[]},"27":{"title":"Introduction","titles":[]},"28":{"title":"Main concepts","titles":["Introduction"]},"29":{"title":"The apply paradigm","titles":["Introduction","Main concepts"]},"30":{"title":"What's this GeoInterface.Wrapper thing?","titles":["Introduction","Main concepts"]},"31":{"title":"GeometryOps.jl","titles":[]},"32":{"title":"Angles","titles":[]},"33":{"title":"What is angles?","titles":["Angles"]},"34":{"title":"Implementation","titles":["Angles"]},"35":{"title":"Area and signed area","titles":[]},"36":{"title":"What is area? What is signed area?","titles":["Area and signed area"]},"37":{"title":"Implementation","titles":["Area and signed area"]},"38":{"title":"Barycentric coordinates","titles":[]},"39":{"title":"Example","titles":["Barycentric coordinates"]},"40":{"title":"Barycentric-coordinate API","titles":["Barycentric coordinates"]},"41":{"title":"Buffer","titles":[]},"42":{"title":"Centroid","titles":[]},"43":{"title":"What is the centroid?","titles":["Centroid"]},"44":{"title":"Implementation","titles":["Centroid"]},"45":{"title":"Polygon clipping helpers","titles":[]},"46":{"title":"What is coverage?","titles":[]},"47":{"title":"Implementation","titles":[]},"48":{"title":"Polygon cutting","titles":[]},"49":{"title":"What is cut?","titles":["Polygon cutting"]},"50":{"title":"Implementation","titles":["Polygon cutting"]},"51":{"title":"Difference Polygon Clipping","titles":[]},"52":{"title":"Helper functions for Differences with Greiner and Hormann Polygon Clipping","titles":[]},"53":{"title":"Geometry Intersection","titles":[]},"54":{"title":"Helper functions for Intersections with Greiner and Hormann Polygon Clipping","titles":[]},"55":{"title":"If we want to inject adaptivity, we would do something like:","titles":[]},"56":{"title":"Union Polygon Clipping","titles":[]},"57":{"title":"Helper functions for Unions with Greiner and Hormann Polygon Clipping","titles":[]},"58":{"title":"Convex hull","titles":[]},"59":{"title":"Example","titles":["Convex hull"]},"60":{"title":"Simple hull","titles":["Convex hull","Example"]},"61":{"title":"Convex hull of the USA","titles":["Convex hull"]},"62":{"title":"Investigating the winding order","titles":["Convex hull"]},"63":{"title":"Implementation","titles":["Convex hull"]},"64":{"title":"Distance and signed distance","titles":[]},"65":{"title":"What is distance? What is signed distance?","titles":["Distance and signed distance"]},"66":{"title":"Implementation","titles":["Distance and signed distance"]},"67":{"title":"Equals","titles":[]},"68":{"title":"What is equals?","titles":["Equals"]},"69":{"title":"Implementation","titles":["Equals"]},"70":{"title":"Contains","titles":[]},"71":{"title":"What is contains?","titles":["Contains"]},"72":{"title":"Implementation","titles":["Contains"]},"73":{"title":"CoveredBy","titles":[]},"74":{"title":"What is coveredby?","titles":["CoveredBy"]},"75":{"title":"Implementation","titles":["CoveredBy"]},"76":{"title":"Convert features to geometries","titles":[]},"77":{"title":"Points coveredby geometries","titles":[]},"78":{"title":"Lines coveredby geometries","titles":[]},"79":{"title":"Rings covered by geometries","titles":[]},"80":{"title":"Polygons covered by geometries","titles":[]},"81":{"title":"Geometries coveredby multi-geometry/geometry collections","titles":[]},"82":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"83":{"title":"Covers","titles":[]},"84":{"title":"What is covers?","titles":["Covers"]},"85":{"title":"Implementation","titles":["Covers"]},"86":{"title":"Crossing checks","titles":[]},"87":{"title":"Disjoint","titles":[]},"88":{"title":"What is disjoint?","titles":["Disjoint"]},"89":{"title":"Implementation","titles":["Disjoint"]},"90":{"title":"Convert features to geometries","titles":[]},"91":{"title":"Point disjoint geometries","titles":[]},"92":{"title":"Lines disjoint geometries","titles":[]},"93":{"title":"Rings disjoint geometries","titles":[]},"94":{"title":"Polygon disjoint geometries","titles":[]},"95":{"title":"Geometries disjoint multi-geometry/geometry collections","titles":[]},"96":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"97":{"title":"Line-curve interaction","titles":[]},"98":{"title":"Intersection checks","titles":[]},"99":{"title":"What is intersects?","titles":["Intersection checks"]},"100":{"title":"Implementation","titles":["Intersection checks"]},"101":{"title":"Overlaps","titles":[]},"102":{"title":"What is overlaps?","titles":["Overlaps"]},"103":{"title":"Implementation","titles":["Overlaps"]},"104":{"title":"Touches","titles":[]},"105":{"title":"What is touches?","titles":["Touches"]},"106":{"title":"Implementation","titles":["Touches"]},"107":{"title":"Convert features to geometries","titles":[]},"108":{"title":"Point touches geometries","titles":[]},"109":{"title":"Lines touching geometries","titles":[]},"110":{"title":"Rings touch geometries","titles":[]},"111":{"title":"Polygons touch geometries","titles":[]},"112":{"title":"Geometries touch multi-geometry/geometry collections","titles":[]},"113":{"title":"Multi-geometry/geometry collections cross geometries","titles":[]},"114":{"title":"Within","titles":[]},"115":{"title":"What is within?","titles":["Within"]},"116":{"title":"Implementation","titles":["Within"]},"117":{"title":"Convert features to geometries","titles":[]},"118":{"title":"Points within geometries","titles":[]},"119":{"title":"Lines within geometries","titles":[]},"120":{"title":"Rings covered by geometries","titles":[]},"121":{"title":"Polygons within geometries","titles":[]},"122":{"title":"Geometries within multi-geometry/geometry collections","titles":[]},"123":{"title":"Multi-geometry/geometry collections within geometries","titles":[]},"124":{"title":"Orientation","titles":[]},"125":{"title":"isclockwise","titles":["Orientation"]},"126":{"title":"isconcave","titles":["Orientation"]},"127":{"title":"Polygonizing raster data","titles":[]},"128":{"title":"Not implemented yet","titles":[]},"129":{"title":"Primitive functions","titles":[]},"130":{"title":"Docstrings","titles":["Primitive functions"]},"131":{"title":"Functions","titles":["Primitive functions","Docstrings"]},"132":{"title":"Types","titles":["Primitive functions"]},"133":{"title":"Implementation","titles":["Primitive functions"]},"134":{"title":"What is apply?","titles":["Primitive functions"]},"135":{"title":"Embedding:","titles":["Primitive functions"]},"136":{"title":"Threading","titles":["Primitive functions"]},"137":{"title":"Closed Rings","titles":[]},"138":{"title":"Example","titles":["Closed Rings"]},"139":{"title":"Implementation","titles":["Closed Rings"]},"140":{"title":"Geometry Corrections","titles":[]},"141":{"title":"Interface","titles":["Geometry Corrections"]},"142":{"title":"Available corrections","titles":["Geometry Corrections"]},"143":{"title":"Intersecting Polygons","titles":[]},"144":{"title":"Example","titles":["Intersecting Polygons"]},"145":{"title":"Implementation","titles":["Intersecting Polygons"]},"146":{"title":"Extent embedding","titles":[]},"147":{"title":"Geometry reprojection","titles":[]},"148":{"title":"Method error handling","titles":["Geometry reprojection"]},"149":{"title":"Coordinate flipping","titles":[]},"150":{"title":"Segmentize","titles":[]},"151":{"title":"Examples","titles":["Segmentize"]},"152":{"title":"Benchmark","titles":["Segmentize"]},"153":{"title":"Implementation","titles":["Segmentize"]},"154":{"title":"Geometry simplification","titles":[]},"155":{"title":"Examples","titles":["Geometry simplification"]},"156":{"title":"Benchmark","titles":["Geometry simplification"]},"157":{"title":"Simplify with RadialDistance Algorithm","titles":[]},"158":{"title":"Simplify with DouglasPeucker Algorithm","titles":[]},"159":{"title":"Simplify with VisvalingamWhyatt Algorithm","titles":[]},"160":{"title":"Shared utils","titles":[]},"161":{"title":"Pointwise transformation","titles":[]},"162":{"title":"Tuple conversion","titles":[]},"163":{"title":"Types","titles":[]},"164":{"title":"TraitTarget","titles":["Types"]},"165":{"title":"BoolsAsTypes","titles":["Types"]},"166":{"title":"GEOS","titles":["Types"]},"167":{"title":"Utility functions","titles":[]},"168":{"title":"Creating Geometry","titles":[]},"169":{"title":"Creating and plotting geometries","titles":["Creating Geometry"]},"170":{"title":"Plot geometries on a map using GeoMakie and coordinate reference system (CRS)","titles":["Creating Geometry"]},"171":{"title":"Create geospatial geometries with embedded coordinate reference system information","titles":["Creating Geometry"]},"172":{"title":"Creating a table with attributes and geometry","titles":["Creating Geometry"]},"173":{"title":"Saving your geospatial data","titles":["Creating Geometry"]},"174":{"title":"Geodesic paths","titles":[]},"175":{"title":"Spatial joins","titles":[]},"176":{"title":"Simple example","titles":["Spatial joins"]},"177":{"title":"Real-world example","titles":["Spatial joins"]},"178":{"title":"Enabling custom predicates","titles":["Spatial joins"]}},"dirtCount":0,"index":[["⋮",{"2":{"170":1}}],["θ",{"2":{"169":7,"170":3,"171":5}}],["☁",{"2":{"169":1}}],["✈",{"2":{"169":1}}],["÷",{"2":{"136":2}}],["ϵ",{"2":{"54":5}}],["∘",{"2":{"54":1,"103":2,"127":2,"141":1,"156":2,"178":2}}],["⊻",{"2":{"45":1,"52":2}}],["≥",{"2":{"45":1,"97":2,"145":1,"158":1}}],["α≈1",{"2":{"54":1}}],["α≈0",{"2":{"54":1}}],["α2",{"2":{"45":4,"54":2}}],["α",{"2":{"45":3,"54":28,"97":7}}],["α1",{"2":{"45":4,"54":2}}],["β2",{"2":{"45":4,"54":2}}],["β",{"2":{"45":4,"54":28,"97":7}}],["β1",{"2":{"45":4,"54":2}}],["≤",{"2":{"45":5,"47":14,"97":6,"158":1,"160":1,"167":4}}],["^",{"2":{"170":1}}],["^3",{"2":{"170":1}}],["^n",{"2":{"126":1}}],["^2",{"2":{"44":2,"66":2}}],["^hormannpresentation",{"2":{"40":2}}],["∑λ",{"2":{"40":2}}],["∑i=2n",{"2":{"6":1}}],["`$",{"2":{"166":1}}],["`libgeos",{"2":{"166":1}}],["`linearring`",{"2":{"153":1}}],["`linearsegments`",{"2":{"153":1}}],["`linestring`",{"2":{"153":1}}],["`linestringtrait`",{"2":{"141":1}}],["`line2`",{"2":{"126":1}}],["`line1`",{"2":{"126":1}}],["`line",{"2":{"53":4}}],["`equatorial",{"2":{"152":2}}],["`extents",{"2":{"146":1}}],["`inf`",{"2":{"147":1}}],["`intersects`",{"2":{"100":1}}],["`intersectingpolygons`",{"2":{"51":1,"53":1,"56":1}}],["`prefilter",{"2":{"156":1}}],["`proj",{"2":{"147":1,"152":2}}],["`polgontrait`",{"2":{"136":1}}],["`polygontrait`",{"2":{"136":1,"141":1}}],["`polygonize`",{"2":{"127":2}}],["`polygon`",{"2":{"40":3}}],["`polys`",{"2":{"52":1}}],["`poly",{"2":{"52":3,"54":1,"57":1}}],["`pointrait`",{"2":{"156":1}}],["`pointtrait`",{"2":{"136":3,"141":1}}],["`point",{"2":{"97":3}}],["`point`",{"2":{"40":4,"66":1}}],["`point2f`",{"2":{"39":1}}],["`obj`",{"2":{"136":1,"161":1,"162":1}}],["`op`",{"2":{"136":2}}],["`+`",{"2":{"136":1}}],["`alg",{"2":{"166":1}}],["`alg`",{"2":{"160":1}}],["`always",{"2":{"147":1}}],["`application",{"2":{"141":1}}],["`apply`",{"2":{"136":1,"164":1}}],["`abstractgeometrytrait`",{"2":{"136":1}}],["`abstractarray`",{"2":{"136":1}}],["`abstractmatrix`",{"2":{"127":1}}],["`calc",{"2":{"133":1}}],["`crs`",{"2":{"133":1}}],["`components`",{"2":{"136":1}}],["`collect`",{"2":{"136":1}}],["`covers`",{"2":{"75":1,"85":1}}],["`coveredby`",{"2":{"75":1,"85":1}}],["`contains`",{"2":{"72":1,"116":1}}],["`convex",{"2":{"63":2}}],["`union",{"2":{"127":2}}],["`unionintersectingpolygons`",{"2":{"145":1}}],["`unionintersectingpolygons",{"2":{"51":1,"52":2,"53":1,"54":2,"56":1,"57":2}}],["`ys`",{"2":{"127":1}}],["`flattening`",{"2":{"152":1}}],["`flattening",{"2":{"152":1}}],["`flatten`",{"2":{"136":1}}],["`f",{"2":{"136":1}}],["`featurecollectiontrait`",{"2":{"136":2}}],["`featurecollection`",{"2":{"127":2}}],["`featuretrait`",{"2":{"136":3}}],["`feature`s",{"2":{"127":1}}],["`f`",{"2":{"127":5,"136":6,"161":2,"166":1}}],["`false`",{"2":{"126":1,"127":1,"133":4,"147":1}}],["`fix",{"2":{"51":2,"52":2,"53":2,"54":2,"56":2,"57":2}}],["`douglaspeucker`",{"2":{"156":1}}],["`d`",{"2":{"147":1}}],["`difference`",{"2":{"145":1}}],["`disjoint`",{"2":{"100":1}}],["`delaunaytriangulation",{"2":{"63":1}}],["`within`",{"2":{"72":1,"116":1}}],["`weight`",{"2":{"40":1}}],["`geos`",{"2":{"166":3}}],["`geodesic`",{"2":{"152":1}}],["`geodesicsegments`",{"2":{"151":1,"152":1,"153":1}}],["`geointerface`",{"2":{"141":1}}],["`geointerface",{"2":{"136":2,"147":2}}],["`geom`",{"2":{"66":3,"136":1,"153":1}}],["`geometrycorrection`",{"2":{"139":1,"141":1,"145":2}}],["`geometry`",{"2":{"136":1,"147":2}}],["`geometrybasics",{"2":{"40":3}}],["`geometries`",{"2":{"63":1}}],["`g1`",{"2":{"66":1}}],["`gi",{"2":{"63":1,"127":1}}],["`tuple",{"2":{"167":1}}],["`tuple`s",{"2":{"162":1}}],["`tuple`",{"2":{"127":1,"162":1}}],["`time`",{"2":{"147":1}}],["`transform`",{"2":{"147":1}}],["`true`",{"2":{"75":1,"86":1,"89":2,"106":1,"116":1,"126":2,"127":1,"133":2,"147":1}}],["`threaded==true`",{"2":{"136":1}}],["`threaded`",{"2":{"133":1}}],["`tol`",{"2":{"156":2,"157":3,"158":2,"159":3,"160":4}}],["`to",{"2":{"54":1}}],["`target",{"2":{"147":3}}],["`target`",{"2":{"53":1,"136":4,"164":1}}],["`tables",{"2":{"136":1}}],["`taget`",{"2":{"51":1,"56":1}}],["`method",{"2":{"153":1}}],["`method`",{"2":{"40":3,"153":1}}],["`max",{"2":{"152":4,"153":2,"166":1}}],["`makie",{"2":{"127":1}}],["`multipointtrait`",{"2":{"136":1,"156":1}}],["`multipolygontrait`",{"2":{"136":1}}],["`multipolygon`",{"2":{"127":3}}],["`multipolygon",{"2":{"52":3,"54":3,"57":2}}],["`multipoly",{"2":{"52":7,"54":3,"57":3}}],["`minpoints`",{"2":{"127":2}}],["`number`",{"2":{"156":2,"160":3}}],["`namedtuple`",{"2":{"136":1}}],["`nothing`",{"2":{"45":1,"133":1}}],["`next",{"2":{"45":1}}],["`bool`",{"2":{"127":2}}],["`buffer`",{"2":{"41":1}}],["`barycentric",{"2":{"40":3}}],["`radialdistance`",{"2":{"156":1}}],["`ratio`",{"2":{"156":2,"160":3}}],["`reproject`",{"2":{"148":1}}],["`rebuild`",{"2":{"136":1}}],["`r`",{"2":{"40":1}}],["`rᵢ`",{"2":{"40":1}}],["`segmentize`",{"2":{"166":1}}],["`svector`",{"2":{"161":3}}],["`simplifyalg`",{"2":{"156":2}}],["`simplify",{"2":{"156":1}}],["`simplify`",{"2":{"156":2}}],["`source",{"2":{"147":3}}],["`s`",{"2":{"40":1}}],["`sᵢ`",{"2":{"40":2}}],["`s2`",{"2":{"40":1}}],["`s1`",{"2":{"40":1}}],["`hcat`",{"2":{"40":1}}],["`x`",{"2":{"136":1}}],["`xs`",{"2":{"127":1}}],["`x1",{"2":{"40":1}}],["`x1`",{"2":{"40":2}}],["`x2`",{"2":{"40":1}}],["`visvalingamwhyatt`",{"2":{"156":1}}],["`vector",{"2":{"147":1}}],["`vector`",{"2":{"127":1,"136":1}}],["`vᵢ`",{"2":{"40":1}}],["`v`",{"2":{"40":1}}],["`values`",{"2":{"40":1,"127":1}}],["`λs`",{"2":{"40":2}}],["`",{"2":{"40":2,"51":1,"52":2,"53":1,"54":3,"56":1,"57":2,"127":3,"136":1,"141":2,"147":2,"153":1,"156":3,"166":2,"167":1}}],["```jldoctest",{"2":{"50":1,"51":1,"53":1,"54":1,"56":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":1,"156":1}}],["```julia",{"2":{"6":2,"40":1,"86":1,"126":1,"136":1,"161":2,"164":1}}],["```math",{"2":{"40":1,"126":1}}],["```",{"2":{"11":1,"40":3,"50":1,"51":1,"53":1,"56":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":3,"127":11,"136":1,"156":1,"161":2,"167":1}}],["λ₁",{"2":{"40":2}}],["λn",{"2":{"38":1}}],["λ3",{"2":{"38":1}}],["λ2",{"2":{"38":2}}],["λ1",{"2":{"38":2}}],["λs",{"2":{"5":3,"6":4,"40":27}}],["π",{"2":{"34":1,"156":1}}],["δbay",{"2":{"54":3}}],["δbax",{"2":{"54":3}}],["δby",{"2":{"54":5}}],["δbx",{"2":{"54":5}}],["δb",{"2":{"54":2}}],["δay",{"2":{"54":5}}],["δax",{"2":{"54":5}}],["δa",{"2":{"54":2}}],["δintrs",{"2":{"45":2}}],["δy2",{"2":{"126":2}}],["δy1",{"2":{"126":2}}],["δyl",{"2":{"103":4}}],["δy",{"2":{"34":8,"47":3,"97":7}}],["δys",{"2":{"34":1}}],["δx2",{"2":{"126":2}}],["δx1",{"2":{"126":2}}],["δxl",{"2":{"103":4}}],["δx",{"2":{"34":9,"47":3,"97":7}}],["∈",{"2":{"14":1}}],["~",{"2":{"14":3}}],["$ratio",{"2":{"160":1}}],["$rectangle",{"2":{"152":2}}],["$number",{"2":{"160":1}}],["$name",{"2":{"31":2}}],["$min",{"2":{"160":1}}],["$douglas",{"2":{"156":1,"158":1}}],["$simplify",{"2":{"156":1,"157":1,"159":1}}],["$lg",{"2":{"152":1}}],["$lin",{"2":{"152":2}}],["$geom",{"2":{"156":8}}],["$geo",{"2":{"152":1}}],["$apply",{"2":{"136":1,"147":1,"149":1,"156":1}}],["$calc",{"2":{"133":1}}],["$crs",{"2":{"133":1,"146":1}}],["$tol",{"2":{"160":1}}],["$threaded",{"2":{"133":1}}],["$t",{"2":{"69":1,"136":4}}],["$target",{"2":{"52":1,"54":1,"57":1,"136":3}}],["$trait",{"2":{"50":1,"52":2,"54":2,"57":2}}],["$",{"2":{"13":4,"14":1,"40":4,"45":2,"127":3,"141":4,"153":1,"156":12,"166":1}}],["|=",{"2":{"97":4,"103":1}}],["||",{"2":{"34":2,"45":13,"47":8,"50":1,"53":1,"54":5,"56":1,"69":18,"86":2,"97":8,"103":1,"108":1,"127":7,"158":1,"160":3}}],["|",{"2":{"11":4,"97":1}}],["|>",{"2":{"11":8,"13":2,"136":1,"151":1,"152":1,"156":3,"177":2}}],["↩︎",{"2":{"6":1}}],["ᵢᵢᵢ₊₁ᵢᵢ₊₁ᵢᵢ₊₁tᵢ=det",{"2":{"6":1}}],["⋅",{"2":{"6":1,"40":1}}],["qy",{"2":{"13":2,"14":2}}],["qx",{"2":{"13":2,"14":2}}],["q",{"2":{"13":13,"14":12,"45":4}}],["qhull",{"2":{"6":1,"63":1}}],["queue",{"2":{"158":41}}],["questions",{"2":{"54":1}}],["quite",{"2":{"138":1,"177":1}}],["quickhull",{"2":{"6":1,"58":1,"63":2}}],["quick",{"2":{"4":1,"6":1,"40":1,"146":1,"155":1}}],["quality",{"2":{"6":1,"156":1}}],["quantity",{"2":{"6":1,"152":1}}],["quot",{"2":{"1":4,"6":10,"20":2,"45":8,"65":2,"66":2,"69":2,"84":4,"97":10,"134":2,"136":8,"150":6,"169":2,"176":2}}],["zone",{"2":{"170":1}}],["zoom",{"2":{"14":1}}],["zs",{"2":{"127":5}}],["zip",{"2":{"13":1,"14":1,"169":4,"170":1,"171":1}}],["zeros",{"2":{"40":1,"47":1}}],["zero",{"2":{"4":6,"6":8,"37":11,"44":3,"45":4,"47":11,"54":22,"65":1,"66":3,"126":1,"136":1,"158":4}}],["z",{"2":{"4":1,"5":1,"6":2,"40":3,"69":3,"127":3,"149":1,"161":1,"162":1}}],["0e6",{"2":{"170":6}}],["0example",{"2":{"6":1}}],["097075198097933",{"2":{"171":1}}],["09707519809793252",{"2":{"171":2}}],["091887951911644",{"2":{"171":3}}],["0999933334666654",{"2":{"169":1}}],["09801605542096",{"2":{"169":1}}],["098016055420953",{"2":{"169":3}}],["09297443860091348",{"2":{"169":4}}],["09",{"2":{"39":1}}],["08506974233813636",{"2":{"171":2}}],["08",{"2":{"39":1}}],["062749678615475",{"2":{"171":1}}],["06274967861547665",{"2":{"171":2}}],["06592462566760626",{"2":{"169":1}}],["0650624499034016",{"2":{"169":4}}],["06",{"2":{"39":1}}],["02017324484778",{"2":{"171":1}}],["020173244847778715",{"2":{"171":2}}],["027886421973952302",{"2":{"169":4}}],["02",{"2":{"39":3}}],["04500741774392",{"2":{"171":1}}],["045007417743918",{"2":{"171":2}}],["049999166670833324",{"2":{"169":1}}],["0438052480035",{"2":{"169":1}}],["043805248003498",{"2":{"169":3}}],["04",{"2":{"39":6}}],["07518688541961",{"2":{"171":1}}],["075186885419612",{"2":{"171":2}}],["071",{"2":{"151":2,"152":2}}],["07",{"2":{"39":6,"151":6,"152":6}}],["009176636029576",{"2":{"171":1}}],["0091766360295773",{"2":{"171":2}}],["003135308800957",{"2":{"171":1}}],["0031353088009582475",{"2":{"171":2}}],["0035114210915891397",{"2":{"169":4}}],["006784125578492062",{"2":{"171":2}}],["0020133807972559925",{"2":{"171":2}}],["00839489109211",{"2":{"171":3}}],["008696",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["005465967083412071",{"2":{"169":4}}],["00111595449914",{"2":{"169":1}}],["001115954499138",{"2":{"169":3}}],["0010075412835199304",{"2":{"169":4}}],["001",{"2":{"156":1}}],["00085222666982",{"2":{"171":3}}],["000577332369005",{"2":{"171":1}}],["0005773323690041465",{"2":{"171":2}}],["000510363870095e6",{"2":{"170":2}}],["00025191811248184703",{"2":{"171":2}}],["000215611503127e6",{"2":{"170":2}}],["0007260527263e6",{"2":{"170":2}}],["000342160541625e6",{"2":{"170":2}}],["000124843834609e6",{"2":{"170":2}}],["000063948817746e6",{"2":{"170":2}}],["000026987852369e6",{"2":{"170":2}}],["000008144045314",{"2":{"171":1}}],["000007998400139e6",{"2":{"170":2}}],["000000999950001e6",{"2":{"170":2}}],["00001e6",{"2":{"170":1}}],["0004397316773170068",{"2":{"169":4}}],["000",{"2":{"156":1,"174":1}}],["00",{"2":{"39":2}}],["053798628882221644",{"2":{"171":2}}],["05877989361332",{"2":{"169":1}}],["058779893613323",{"2":{"169":3}}],["05416726609360478",{"2":{"169":4}}],["05",{"2":{"39":1}}],["052704767595",{"2":{"15":1}}],["037564867762832",{"2":{"171":1}}],["03756486776283019",{"2":{"171":2}}],["031245035570328428",{"2":{"171":2}}],["033518309870985",{"2":{"171":3}}],["03503632062070827",{"2":{"169":4}}],["03",{"2":{"39":4}}],["01458815628695",{"2":{"171":3}}],["016044338630866517",{"2":{"171":2}}],["01592650896568995",{"2":{"169":1}}],["01597247419241532",{"2":{"169":4}}],["01908693278165",{"2":{"169":1}}],["019086932781654",{"2":{"169":3}}],["01098781325325",{"2":{"169":1}}],["010987813253244",{"2":{"169":3}}],["011814947665167774",{"2":{"169":4}}],["01362848005",{"2":{"15":1}}],["01",{"2":{"14":1,"39":1,"151":1,"152":1,"169":1,"170":1,"171":1}}],["0^",{"2":{"13":2,"14":2}}],["0+2",{"2":{"13":2,"14":2}}],["0",{"2":{"3":35,"4":12,"6":190,"11":1,"13":5,"14":8,"15":32,"33":20,"34":3,"36":9,"37":4,"39":155,"40":2,"43":6,"44":6,"45":49,"46":13,"47":5,"49":22,"50":49,"51":42,"53":2,"54":21,"56":46,"57":2,"61":1,"65":20,"66":2,"68":13,"69":18,"71":16,"74":6,"75":6,"84":6,"85":12,"86":9,"88":15,"97":37,"102":13,"103":9,"105":12,"106":11,"115":16,"126":21,"127":7,"138":24,"144":64,"145":4,"151":16,"152":13,"153":1,"156":11,"158":7,"160":4,"167":2,"169":129,"170":2,"171":46,"176":13}}],[">=",{"2":{"40":6,"86":4,"103":1,"160":1}}],[">",{"2":{"1":1,"6":6,"11":2,"13":1,"15":2,"34":1,"40":1,"45":17,"47":3,"50":5,"51":1,"52":1,"54":2,"56":1,"57":3,"65":1,"69":1,"86":8,"97":10,"103":2,"126":4,"127":12,"136":5,"141":1,"145":3,"153":2,"156":1,"158":12,"160":3,"161":1,"167":1,"177":1}}],["914930257661865",{"2":{"171":1}}],["96875496442967",{"2":{"171":1}}],["961329",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["983955661369134",{"2":{"171":1}}],["9833",{"2":{"15":1}}],["9877550012664",{"2":{"169":1}}],["9840085315131",{"2":{"169":1}}],["98271048511609",{"2":{"169":1}}],["98661575256801",{"2":{"169":1}}],["99321587442151",{"2":{"171":1}}],["99375130197483",{"2":{"169":1}}],["997986619202745",{"2":{"171":1}}],["997750168744936",{"2":{"169":1}}],["997247091122496",{"2":{"169":1}}],["99600053330489",{"2":{"169":1}}],["991002699676024",{"2":{"169":1}}],["990022362600165",{"2":{"169":1}}],["99292997455441",{"2":{"169":1}}],["99533829767195",{"2":{"169":1}}],["99865616402829",{"2":{"169":1}}],["999999967681458e6",{"2":{"170":2}}],["999997707902938e6",{"2":{"170":2}}],["999987539891298e6",{"2":{"170":2}}],["999963474314044e6",{"2":{"170":2}}],["999919535736425e6",{"2":{"170":2}}],["999974634566875",{"2":{"169":1}}],["999849768598615e6",{"2":{"170":2}}],["999748081887518",{"2":{"171":1}}],["999748243174828e6",{"2":{"170":2}}],["999750002083324",{"2":{"169":1}}],["999609061508909e6",{"2":{"170":2}}],["999426363321033e6",{"2":{"170":2}}],["999194331880103e6",{"2":{"170":2}}],["99900003333289",{"2":{"169":1}}],["999565375483215",{"2":{"169":1}}],["9im",{"2":{"97":2,"175":1}}],["97976366505997",{"2":{"169":1}}],["9783069507679",{"2":{"169":1}}],["97",{"2":{"39":1}}],["946201371117777",{"2":{"171":1}}],["94",{"2":{"39":1}}],["92",{"2":{"39":1}}],["95770326033",{"2":{"15":1}}],["95",{"2":{"13":1,"14":1,"174":1}}],["900",{"2":{"152":1}}],["90063612163",{"2":{"11":2}}],["90",{"2":{"33":9,"39":1}}],["909318372607",{"2":{"11":3}}],["9",{"2":{"1":1,"6":1,"97":2,"126":12,"151":1,"161":1}}],["897070",{"2":{"174":1}}],["873633668827033",{"2":{"171":1}}],["8135804051007",{"2":{"169":1}}],["813580405100698",{"2":{"169":3}}],["88",{"2":{"39":1}}],["86641841658641",{"2":{"169":1}}],["866418416586406",{"2":{"169":3}}],["86",{"2":{"39":1}}],["868447876892",{"2":{"15":2}}],["84",{"2":{"39":1}}],["821068835162155",{"2":{"171":1}}],["82",{"2":{"39":1}}],["800",{"2":{"39":1}}],["80000",{"2":{"15":5}}],["80",{"2":{"39":1}}],["80869813739",{"2":{"15":2}}],["856614689791036e",{"2":{"15":2}}],["83572303404496",{"2":{"6":2,"53":1,"54":1}}],["8",{"2":{"1":3,"6":9,"13":1,"14":1,"51":2,"56":4,"97":1,"127":3,"151":1,"161":3,"171":2}}],["karnataka",{"2":{"177":1}}],["kbn",{"2":{"11":2}}],["kinds",{"2":{"23":1}}],["kind",{"2":{"9":1,"127":1}}],["k",{"2":{"6":1,"14":6,"40":1,"45":5,"97":5,"169":5,"171":5}}],["kernel",{"2":{"153":4}}],["keepat",{"2":{"56":1,"145":2}}],["keep",{"2":{"45":3,"127":1,"145":14,"151":1,"176":1}}],["keeping",{"2":{"6":1,"136":1,"149":1}}],["keys",{"2":{"127":4}}],["key",{"2":{"6":1,"127":4,"166":5}}],["keyword",{"2":{"6":8,"23":1,"51":1,"53":1,"56":1,"133":6,"136":1,"146":2,"152":2,"166":4,"170":1,"171":1}}],["keywords",{"2":{"1":2,"4":1,"6":10,"97":2,"127":1,"133":1,"136":1,"146":1,"147":3,"149":2,"156":8,"157":1,"158":1,"159":1,"160":1,"162":2}}],["known",{"2":{"47":2}}],["know",{"2":{"6":3,"34":2,"45":1,"47":1,"51":1,"53":1,"54":2,"56":1,"57":1,"136":1,"176":1}}],["kwargs",{"2":{"41":3,"47":1,"50":1,"51":3,"52":3,"53":4,"54":5,"56":3,"57":5,"141":2,"148":1,"152":1}}],["kwdef",{"2":{"31":1,"45":1,"152":1,"157":1,"158":1,"159":1}}],["kw",{"2":{"1":1,"6":11,"97":10,"127":20,"136":21,"149":3,"156":15,"159":1,"161":3,"162":3,"166":6}}],["json",{"2":{"173":3}}],["jstep",{"2":{"69":3}}],["jstart",{"2":{"69":7}}],["joined",{"2":{"176":4}}],["joins",{"0":{"175":1},"1":{"176":1,"177":1,"178":1},"2":{"175":3}}],["joinpath",{"2":{"156":2}}],["join",{"2":{"136":2,"175":4,"176":5,"178":1}}],["joining",{"2":{"6":2,"156":1,"175":1}}],["jpn",{"2":{"177":2}}],["jp",{"2":{"69":2}}],["jhole",{"2":{"69":2}}],["jh",{"2":{"57":5}}],["j+1",{"2":{"45":1,"127":1,"160":1}}],["j",{"2":{"45":24,"69":8,"86":9,"97":12,"126":2,"127":8,"160":2}}],["jet",{"2":{"39":1}}],["just",{"2":{"4":1,"6":1,"44":1,"45":2,"54":4,"57":1,"62":1,"66":2,"127":1,"134":1,"136":3,"152":1,"175":1}}],["julialand",{"2":{"170":2}}],["julialines",{"2":{"36":1}}],["julialinearsegments",{"2":{"6":1}}],["juliahole",{"2":{"169":1}}],["juliaplot",{"2":{"170":2}}],["juliap1",{"2":{"169":1}}],["juliapoly",{"2":{"170":1}}],["juliapolygon3",{"2":{"170":1}}],["juliapolygon1",{"2":{"169":1}}],["juliapolygonize",{"2":{"6":1}}],["juliapolygon",{"2":{"6":1}}],["juliapoints",{"2":{"176":1}}],["juliapoint",{"2":{"169":1}}],["juliaxoffset",{"2":{"169":3,"171":1}}],["juliax",{"2":{"169":2}}],["juliaxrange",{"2":{"65":1}}],["julia$apply",{"2":{"162":1}}],["julia$threaded",{"2":{"146":1}}],["julia6",{"2":{"156":1}}],["julia```jldoctest",{"2":{"167":1}}],["julia```julia",{"2":{"127":1}}],["julia```",{"2":{"86":1,"164":1}}],["julia1",{"2":{"51":1,"53":1,"54":1,"56":1}}],["julia2",{"2":{"50":1}}],["juliabase",{"2":{"40":1,"66":4,"136":1,"166":1}}],["juliabarycentric",{"2":{"5":3,"6":3}}],["juliafig",{"2":{"169":1,"170":1}}],["juliafalse",{"2":{"126":1}}],["juliafunction",{"2":{"34":2,"40":3,"41":2,"44":1,"45":11,"47":2,"50":1,"52":1,"54":2,"57":1,"63":1,"66":8,"97":6,"103":2,"108":1,"128":1,"136":5,"148":1,"152":1,"160":2}}],["juliafor",{"2":{"31":1,"136":2}}],["juliaflexijoins",{"2":{"178":1}}],["juliaflipped",{"2":{"129":1}}],["juliaflip",{"2":{"6":1}}],["juliaflatten",{"2":{"6":1,"131":1}}],["juliagi",{"2":{"11":2}}],["juliago",{"2":{"11":1,"33":1,"36":1,"46":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"175":1}}],["juliageopoly1",{"2":{"171":1}}],["juliageointerface",{"2":{"167":1}}],["juliageometry",{"2":{"63":1}}],["juliageo",{"2":{"6":2}}],["juliageodesicsegments",{"2":{"6":1}}],["juliageos",{"2":{"6":1}}],["juliaweighted",{"2":{"6":1}}],["juliawithin",{"2":{"3":1,"6":1}}],["juliaunwrap",{"2":{"6":1,"136":6}}],["juliaunion",{"2":{"6":1}}],["juliaunionintersectingpolygons",{"2":{"6":1,"142":1}}],["juliausing",{"2":{"6":1,"13":1,"14":1,"39":1,"151":2,"152":1,"155":1,"156":1,"172":1}}],["juliascatter",{"2":{"176":1}}],["juliasource",{"2":{"170":2}}],["juliasimplify",{"2":{"6":1,"156":3}}],["juliasigned",{"2":{"4":2,"6":2}}],["juliasegmentize",{"2":{"6":1}}],["julias1",{"2":{"6":1}}],["juliavisvalingamwhyatt",{"2":{"6":1}}],["juliaring3",{"2":{"170":1}}],["juliaring1",{"2":{"169":1}}],["juliar",{"2":{"169":2,"170":1,"171":1}}],["juliareconstruct",{"2":{"6":1,"131":1}}],["juliarebuild",{"2":{"6":1,"131":1}}],["juliareproject",{"2":{"1":1}}],["juliaradialdistance",{"2":{"6":1}}],["juliamy",{"2":{"178":1}}],["juliamultipoly",{"2":{"156":1}}],["juliamodule",{"2":{"31":1}}],["juliamonotonechainmethod",{"2":{"6":1}}],["juliameanvalue",{"2":{"6":1}}],["juliadf",{"2":{"172":1}}],["juliadestination",{"2":{"170":1}}],["juliadouglaspeucker",{"2":{"6":1}}],["juliadifference",{"2":{"6":1}}],["juliadiffintersectingpolygons",{"2":{"6":1,"142":1}}],["juliadistance",{"2":{"4":1,"6":1}}],["juliadisjoint",{"2":{"3":1,"6":1}}],["juliaexport",{"2":{"32":1,"35":1,"38":1,"42":1,"48":1,"51":1,"53":1,"56":1,"64":1,"67":1,"70":1,"73":1,"83":1,"87":1,"98":1,"101":1,"104":1,"114":1,"124":1,"127":1,"129":1,"137":1,"140":1,"143":1,"147":1,"150":1,"156":1,"163":1}}],["juliaend",{"2":{"66":1}}],["juliaenforce",{"2":{"6":1}}],["juliaenum",{"2":{"6":2}}],["juliaembed",{"2":{"4":1,"6":1}}],["juliaequals",{"2":{"4":15,"6":15,"45":1}}],["juliaaccuratearithmetic",{"2":{"11":2}}],["juliaabstract",{"2":{"6":3,"141":1,"142":1,"152":1,"165":1}}],["juliaangles",{"2":{"4":1,"6":1}}],["juliaarea",{"2":{"4":1,"6":1}}],["juliaapplyreduce",{"2":{"1":1,"6":1}}],["juliaapply",{"2":{"1":1,"6":1,"18":1}}],["juliacent",{"2":{"43":1}}],["juliacentroid",{"2":{"4":1,"6":3}}],["juliacut",{"2":{"6":1}}],["juliaclosedring",{"2":{"6":1,"142":1}}],["juliaconst",{"2":{"34":1,"37":1,"40":1,"45":1,"47":2,"66":1,"75":1,"89":1,"106":1,"116":1,"133":1}}],["juliaconvex",{"2":{"6":1,"63":1}}],["juliacontains",{"2":{"3":1,"6":1}}],["juliacoverage",{"2":{"6":1}}],["juliacovers",{"2":{"3":1,"6":1}}],["juliacoveredby",{"2":{"3":1,"6":1}}],["juliatrue",{"2":{"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":1}}],["juliatraittarget",{"2":{"6":2,"164":1}}],["juliatransform",{"2":{"1":1,"6":1}}],["juliatuples",{"2":{"6":1}}],["juliat",{"2":{"6":1}}],["juliatouches",{"2":{"3":1,"6":1}}],["juliaoverlaps",{"2":{"3":9,"6":9}}],["juliainnerjoin",{"2":{"177":1}}],["juliaintersection",{"2":{"6":2}}],["juliaintersects",{"2":{"3":1}}],["juliaisconcave",{"2":{"6":1}}],["juliaisclockwise",{"2":{"6":1}}],["juliaimport",{"2":{"1":1,"3":9,"4":1,"6":18,"11":1,"33":1,"36":1,"43":1,"46":1,"49":1,"60":1,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"138":2,"144":2,"151":1,"173":4,"174":1,"176":1,"177":1}}],["julia",{"2":{"3":1,"6":5,"9":1,"15":1,"25":1,"27":1,"31":1,"34":4,"37":10,"40":8,"44":19,"45":60,"47":18,"50":10,"51":6,"52":1,"53":5,"54":29,"56":6,"57":4,"58":1,"63":5,"65":1,"66":4,"69":15,"72":1,"76":1,"77":5,"78":1,"79":1,"80":2,"81":1,"82":1,"85":1,"86":3,"90":1,"91":3,"92":1,"93":1,"94":1,"95":1,"96":1,"97":50,"100":1,"103":7,"107":1,"108":3,"109":1,"110":1,"111":1,"112":1,"113":1,"117":1,"118":3,"119":1,"120":1,"121":2,"122":1,"123":1,"126":9,"127":40,"128":2,"136":63,"139":5,"141":1,"145":3,"146":1,"147":1,"149":1,"152":1,"153":2,"156":1,"157":2,"158":15,"159":3,"161":1,"162":1,"163":1,"164":1,"166":4,"167":1,"168":2,"170":2,"173":2,"175":1,"176":1}}],["julia>",{"2":{"1":5,"6":7,"126":3,"161":7}}],["juliajulia>",{"2":{"1":2,"6":3}}],["jl`",{"2":{"63":1,"147":1,"166":1}}],["jldoctest",{"2":{"6":1}}],["jl",{"0":{"25":1,"31":1},"2":{"1":10,"4":1,"6":16,"10":2,"11":1,"22":2,"25":2,"27":2,"31":42,"34":1,"37":1,"40":1,"41":3,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"58":3,"63":6,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":2,"127":1,"128":1,"131":1,"136":3,"139":1,"142":1,"145":1,"146":2,"147":4,"148":3,"149":1,"150":1,"152":3,"153":2,"156":2,"160":1,"161":6,"162":2,"165":1,"166":2,"167":1,"170":1,"175":1}}],["+5000000",{"2":{"170":1}}],["+proj=natearth2",{"2":{"170":2}}],["+=",{"2":{"37":2,"40":11,"44":6,"45":17,"47":10,"50":1,"69":1,"86":1,"97":5,"126":1,"145":2,"158":4,"167":3}}],["+",{"2":{"1":1,"6":2,"13":1,"14":1,"34":4,"37":1,"40":20,"44":10,"45":15,"47":7,"50":1,"54":10,"66":3,"69":2,"86":2,"97":6,"126":6,"127":2,"145":3,"153":2,"158":3,"159":2,"160":2,"169":6,"170":1,"171":4}}],["yticklabelsvisible",{"2":{"170":1}}],["york",{"2":{"177":1}}],["yoffset",{"2":{"169":7,"171":2}}],["your",{"0":{"173":1},"2":{"18":1,"41":1,"127":1,"129":1,"148":1,"152":1,"172":1,"173":1,"178":2}}],["you",{"0":{"23":1},"2":{"1":1,"4":1,"5":2,"6":11,"9":1,"11":1,"17":1,"18":5,"23":1,"29":2,"34":1,"37":1,"40":8,"41":1,"44":1,"51":1,"53":1,"56":1,"62":1,"63":1,"129":1,"138":1,"144":1,"148":1,"151":1,"152":1,"153":1,"161":1,"164":1,"170":1,"172":2,"173":3,"176":2,"177":3,"178":4}}],["y=y",{"2":{"167":1}}],["yvec",{"2":{"127":4}}],["ybounds",{"2":{"127":4}}],["yhalf",{"2":{"127":3}}],["ylast",{"2":{"66":3}}],["yfirst",{"2":{"66":5}}],["y0",{"2":{"66":5}}],["yw",{"2":{"47":4}}],["ye",{"2":{"47":4}}],["yet",{"0":{"128":1},"2":{"31":1,"40":1,"50":1,"52":1,"54":1,"57":1,"69":1,"127":1,"128":1,"141":2,"177":1}}],["y2",{"2":{"44":2,"47":18,"66":7,"86":10,"97":5,"103":4,"127":5,"153":6,"167":2}}],["y1",{"2":{"44":2,"47":22,"66":7,"86":11,"97":6,"103":5,"127":5,"153":7,"167":2}}],["yind+1",{"2":{"127":1}}],["yind",{"2":{"127":2}}],["yinterior",{"2":{"44":2}}],["yield",{"2":{"54":1,"152":1}}],["yi+yi−1",{"2":{"6":1}}],["ycentroid",{"2":{"44":13}}],["yrange",{"2":{"39":3,"65":3}}],["yautolimits",{"2":{"39":2}}],["yp2",{"2":{"34":4}}],["ys",{"2":{"6":3,"127":30}}],["ymax",{"2":{"6":1,"46":2,"47":48}}],["ymin",{"2":{"6":1,"46":2,"47":49}}],["y",{"2":{"1":2,"4":1,"6":4,"13":9,"14":10,"34":8,"37":2,"39":8,"43":1,"44":10,"45":6,"46":1,"47":8,"52":6,"54":8,"65":2,"66":7,"69":3,"86":21,"97":16,"103":7,"126":10,"129":2,"136":1,"147":1,"149":4,"153":2,"160":1,"161":2,"162":2,"167":7,"169":8,"170":2,"171":2,"175":1}}],["75",{"2":{"65":2,"71":1,"88":1,"115":1}}],["78",{"2":{"39":1}}],["749907",{"2":{"174":1}}],["74",{"2":{"39":1}}],["72",{"2":{"39":1}}],["726711609794",{"2":{"15":1}}],["76",{"2":{"39":1}}],["76085",{"2":{"15":1}}],["768946",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["70440582002419",{"2":{"169":1}}],["704405820024185",{"2":{"169":3}}],["704377648755",{"2":{"15":2}}],["700",{"2":{"14":1}}],["700454",{"2":{"6":1,"155":1,"156":1}}],["701141",{"2":{"6":1,"155":1,"156":1}}],["70",{"2":{"6":20,"39":1,"155":20,"156":20,"169":20}}],["738281",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["7",{"2":{"1":5,"6":5,"97":1,"136":1,"151":4,"152":4,"161":4,"171":1}}],["65533525026046",{"2":{"169":1}}],["655335250260467",{"2":{"169":3}}],["659942",{"2":{"6":1,"155":1,"156":1}}],["6area",{"2":{"44":2}}],["66",{"2":{"39":1}}],["668869",{"2":{"6":1,"155":1,"156":1}}],["64744840486518",{"2":{"171":3}}],["64",{"2":{"39":1,"151":2,"152":2}}],["646209",{"2":{"6":1,"155":1,"156":1}}],["629",{"2":{"170":1}}],["62",{"2":{"39":1}}],["624923",{"2":{"6":1,"155":1,"156":1}}],["61366192682",{"2":{"15":1}}],["614624",{"2":{"6":1,"155":1,"156":1}}],["605000000000004",{"2":{"151":2}}],["60",{"2":{"39":1,"151":2}}],["60000",{"2":{"15":3}}],["609817",{"2":{"6":1,"155":1,"156":1}}],["603637",{"2":{"6":2,"155":2,"156":2}}],["68",{"2":{"39":1}}],["682601",{"2":{"6":1,"155":1,"156":1}}],["683975",{"2":{"6":1,"155":1,"156":1}}],["69159119078359",{"2":{"171":3}}],["694274",{"2":{"6":1,"155":1,"156":1}}],["697021",{"2":{"6":1,"155":1,"156":1}}],["639343",{"2":{"6":1,"155":1,"156":1}}],["6",{"2":{"1":12,"3":4,"6":23,"51":3,"56":3,"97":1,"103":4,"136":3,"156":1,"161":9,"171":2}}],["51695367760999",{"2":{"171":1}}],["516953677609987",{"2":{"171":2}}],["51030066635026",{"2":{"169":4}}],["5e6",{"2":{"170":2}}],["55715336218991",{"2":{"171":1}}],["557153362189904",{"2":{"171":2}}],["55",{"2":{"169":3}}],["55494217175954",{"2":{"169":4}}],["57",{"2":{"151":4,"152":4}}],["57725",{"2":{"15":2}}],["5x",{"2":{"136":1}}],["563198",{"2":{"54":1}}],["56",{"2":{"39":1}}],["54",{"2":{"39":1,"169":19}}],["50",{"2":{"39":1,"151":4,"152":4,"169":3}}],["500000",{"2":{"170":1}}],["50000",{"2":{"15":1}}],["500",{"2":{"14":1,"170":1}}],["5d",{"2":{"25":1,"27":1}}],["52",{"2":{"39":1,"174":1}}],["52521",{"2":{"15":1}}],["52709",{"2":{"15":2}}],["594711",{"2":{"6":1,"155":1,"156":1}}],["590591",{"2":{"6":1,"155":1,"156":1}}],["595397",{"2":{"6":1,"155":1,"156":1}}],["535",{"2":{"151":4}}],["5355",{"2":{"151":2}}],["53333",{"2":{"15":4}}],["53",{"2":{"6":10,"151":2,"167":10}}],["58",{"2":{"39":1}}],["58059",{"2":{"15":2}}],["587158",{"2":{"6":2,"155":2,"156":2}}],["58375366067548",{"2":{"6":2,"53":1,"54":1}}],["584961",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["5",{"2":{"1":29,"3":4,"4":8,"6":84,"13":1,"39":1,"49":5,"50":8,"51":16,"56":18,"65":8,"69":8,"97":1,"103":4,"127":1,"136":2,"151":1,"152":1,"161":27,"169":32,"170":25,"178":1}}],["4983491639274692e6",{"2":{"170":2}}],["4986507085647392e6",{"2":{"170":2}}],["497205585568957e6",{"2":{"170":2}}],["4976022389592e6",{"2":{"170":2}}],["4957639801366436e6",{"2":{"170":2}}],["4940253560034204e6",{"2":{"170":2}}],["4946113281484335e6",{"2":{"170":2}}],["491990928929295e6",{"2":{"170":2}}],["4904357734399722e6",{"2":{"170":2}}],["4926709788709967e6",{"2":{"170":2}}],["4962554647802354e6",{"2":{"170":2}}],["499984780817334e6",{"2":{"170":2}}],["4997392479570867e6",{"2":{"170":2}}],["4991939151049731e6",{"2":{"170":2}}],["4994001399837343e6",{"2":{"170":2}}],["4998500087497458e6",{"2":{"170":2}}],["49",{"2":{"127":1}}],["43541888381864",{"2":{"171":3}}],["4326",{"2":{"170":2,"171":3}}],["43787",{"2":{"15":1}}],["439295815226",{"2":{"15":1}}],["434306",{"2":{"6":1,"155":1,"156":1}}],["4896621210021754e6",{"2":{"170":2}}],["489271",{"2":{"6":4,"167":4}}],["4870405593989636e6",{"2":{"170":2}}],["4879072738504685e6",{"2":{"170":2}}],["484003",{"2":{"126":4}}],["482551",{"2":{"126":4}}],["48268",{"2":{"15":1}}],["48",{"2":{"39":1}}],["48001",{"2":{"15":1}}],["45",{"2":{"39":2,"126":12,"169":2}}],["450",{"2":{"13":1}}],["458369",{"2":{"6":2,"155":2,"156":2}}],["42004014766201",{"2":{"169":1}}],["420040147662014",{"2":{"169":3}}],["4219350464667047e",{"2":{"169":4}}],["42",{"2":{"13":1,"14":1,"39":3}}],["426283",{"2":{"6":1,"155":1,"156":1}}],["400",{"2":{"39":3}}],["40000",{"2":{"15":1}}],["40",{"2":{"14":1,"39":3}}],["406224",{"2":{"6":1,"155":1,"156":1}}],["404504",{"2":{"6":1,"155":1,"156":1}}],["41544701408748197",{"2":{"169":1}}],["41",{"2":{"39":1,"171":20}}],["41878",{"2":{"15":1}}],["414248",{"2":{"6":1,"155":1,"156":1}}],["419406",{"2":{"6":1,"155":1,"156":1}}],["4493927459900552",{"2":{"169":1}}],["44121252392",{"2":{"15":1}}],["44",{"2":{"14":1,"39":2}}],["442901",{"2":{"6":1,"155":1,"156":1}}],["446339",{"2":{"6":1,"155":1,"156":1}}],["477985",{"2":{"126":4}}],["47",{"2":{"39":3}}],["473835",{"2":{"6":1,"155":1,"156":1}}],["472117",{"2":{"6":2,"155":2,"156":2}}],["46525251631344455",{"2":{"169":1}}],["465816",{"2":{"6":1,"155":1,"156":1}}],["46",{"2":{"39":3}}],["468107",{"2":{"6":1,"155":1,"156":1}}],["464547",{"2":{"6":6,"167":6}}],["4",{"2":{"1":11,"3":4,"6":15,"9":2,"13":2,"14":1,"33":1,"47":1,"72":1,"85":1,"89":1,"97":2,"116":1,"126":1,"136":3,"151":1,"158":1,"161":8,"170":20,"173":2,"174":1}}],["358421",{"2":{"174":1}}],["3585",{"2":{"151":1}}],["35",{"2":{"39":3}}],["354492",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["38042741557976",{"2":{"169":1}}],["380427415579764",{"2":{"169":3}}],["38",{"2":{"39":3}}],["3655999675063154",{"2":{"169":1}}],["36",{"2":{"39":2}}],["360",{"2":{"34":1}}],["36022",{"2":{"15":1}}],["327284472232776",{"2":{"171":3}}],["32610",{"2":{"170":3}}],["32",{"2":{"39":3}}],["377956",{"2":{"174":1}}],["37",{"2":{"39":5}}],["3497142366876638",{"2":{"169":1}}],["34",{"2":{"39":3}}],["31571636123306385",{"2":{"169":1}}],["31",{"2":{"39":2}}],["30151010318639",{"2":{"169":4}}],["30527612515520186",{"2":{"169":4}}],["300",{"2":{"65":1}}],["30",{"2":{"14":2,"39":3,"169":2}}],["3376428491230612",{"2":{"169":4}}],["3390",{"2":{"97":1}}],["33333333333",{"2":{"15":1}}],["333333333336",{"2":{"15":3}}],["33",{"2":{"6":20,"155":20,"156":20}}],["3d",{"2":{"4":1,"6":1,"40":2,"69":1,"136":1,"150":1}}],["3",{"2":{"1":13,"3":4,"5":1,"6":29,"14":2,"40":13,"43":6,"45":1,"51":6,"56":5,"68":1,"72":1,"85":1,"89":1,"97":2,"102":1,"116":1,"127":7,"136":3,"144":16,"151":4,"156":3,"158":2,"160":1,"161":11,"170":1,"171":1,"176":1}}],["39945867303846",{"2":{"171":3}}],["3995734698458635",{"2":{"169":1}}],["399918",{"2":{"6":2,"155":2,"156":2}}],["394759",{"2":{"6":1,"155":1,"156":1}}],["392466",{"2":{"6":1,"155":1,"156":1}}],["395332",{"2":{"6":1,"155":1,"156":1}}],["39",{"0":{"30":1},"2":{"0":1,"3":1,"4":5,"6":21,"7":1,"9":2,"17":2,"18":1,"19":1,"23":1,"29":1,"34":1,"36":1,"37":1,"38":1,"39":3,"40":2,"43":6,"44":3,"45":28,"47":1,"49":1,"50":1,"52":1,"53":4,"54":1,"57":2,"62":2,"66":4,"69":7,"74":1,"84":2,"91":2,"97":19,"103":1,"105":2,"108":2,"127":3,"129":2,"131":3,"132":1,"136":5,"142":6,"143":1,"151":6,"152":1,"154":1,"156":2,"164":2,"165":3,"166":6,"168":1,"169":6,"170":6,"171":4,"172":4,"173":5,"175":1,"177":1,"178":2}}],["2upvc",{"2":{"170":1}}],["2pi",{"2":{"169":1,"170":1,"171":1}}],["2nd",{"2":{"54":6}}],["2335447787454",{"2":{"171":1}}],["233544778745394",{"2":{"171":2}}],["23",{"2":{"39":3,"97":1}}],["23699059147",{"2":{"15":1}}],["28",{"2":{"39":2}}],["28083",{"2":{"15":2}}],["2658011835867806",{"2":{"169":1}}],["26745668457025",{"2":{"169":1}}],["267456684570245",{"2":{"169":3}}],["26",{"2":{"39":5,"97":2}}],["24989584635339165",{"2":{"169":1}}],["24279488312757858",{"2":{"169":4}}],["24",{"2":{"39":7,"97":1,"171":9}}],["274364",{"2":{"51":1,"53":1,"56":1}}],["274363",{"2":{"51":1,"53":1,"56":1}}],["27",{"2":{"39":2}}],["275543",{"2":{"6":6,"167":6}}],["2d",{"2":{"25":1,"27":1,"150":1}}],["2^",{"2":{"14":1}}],["2158594260436434",{"2":{"169":1}}],["215118",{"2":{"6":4,"167":4}}],["21664550952386064",{"2":{"169":4}}],["21",{"2":{"39":4,"97":2,"171":40}}],["21427",{"2":{"11":5}}],["295828190107045",{"2":{"171":1}}],["29582819010705",{"2":{"171":2}}],["299820032397223",{"2":{"169":1}}],["29",{"2":{"39":3,"174":1}}],["29th",{"0":{"8":1},"1":{"9":1,"10":1}}],["298",{"2":{"6":2,"152":2}}],["20340",{"2":{"173":1}}],["20682326747054",{"2":{"171":1}}],["206823267470536",{"2":{"171":2}}],["20093817218219",{"2":{"169":1}}],["200938172182195",{"2":{"169":3}}],["2018",{"2":{"97":1}}],["2017",{"2":{"6":1,"40":1}}],["20",{"2":{"39":3,"97":2,"169":60,"171":1}}],["2024",{"0":{"7":1,"8":1},"1":{"9":1,"10":1}}],["20th",{"0":{"7":1}}],["25",{"2":{"39":3,"71":1,"97":1,"115":1,"171":12}}],["258",{"2":{"11":1}}],["25px",{"2":{"6":2}}],["257223563`",{"2":{"152":1}}],["257223563",{"2":{"6":2,"152":1}}],["22",{"2":{"39":3,"97":1}}],["22168",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["224758",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["2",{"2":{"1":19,"3":9,"5":1,"6":50,"13":1,"14":1,"15":3,"25":2,"27":2,"34":3,"37":1,"39":6,"40":32,"43":2,"44":4,"45":10,"46":6,"47":7,"49":1,"50":2,"54":2,"56":1,"60":1,"61":1,"62":3,"63":1,"65":1,"66":3,"69":4,"72":2,"85":2,"86":2,"88":2,"89":3,"97":11,"116":2,"126":2,"127":23,"136":5,"145":1,"153":1,"156":5,"158":7,"159":7,"160":5,"161":18,"167":11,"169":7,"170":6,"171":10,"172":1,"174":1}}],["1st",{"2":{"54":6}}],["198232937815632",{"2":{"171":1}}],["19823293781563178",{"2":{"171":2}}],["1999466709331708",{"2":{"169":1}}],["1998",{"2":{"51":1,"53":1,"56":1}}],["19",{"2":{"39":2,"97":2}}],["11591614996189725",{"2":{"169":1}}],["11966707868197",{"2":{"169":1}}],["119667078681967",{"2":{"169":3}}],["110m",{"2":{"170":2}}],["110",{"2":{"61":1,"170":1}}],["11",{"2":{"15":2,"39":2,"97":1}}],["1145",{"2":{"51":1,"53":1,"56":1}}],["114",{"2":{"7":1}}],["16589608273778408",{"2":{"169":1}}],["165644",{"2":{"126":2}}],["16692537029320365",{"2":{"169":4}}],["166644",{"2":{"126":2}}],["163434",{"2":{"126":2}}],["169356",{"2":{"126":2}}],["164434",{"2":{"126":2}}],["16111",{"2":{"15":1}}],["16",{"2":{"13":1,"14":1,"39":2,"97":2}}],["180",{"2":{"34":1,"126":1}}],["18593721105",{"2":{"15":1}}],["18",{"2":{"13":1,"14":1,"39":3,"97":2}}],["1em",{"2":{"6":2}}],["1px",{"2":{"6":2}}],["13309630561615",{"2":{"171":3}}],["13401805979",{"2":{"15":2}}],["13",{"2":{"6":3,"39":1,"51":1,"56":2,"97":1}}],["10n",{"2":{"170":1}}],["10832215707812454",{"2":{"169":4}}],["10^9",{"2":{"13":1}}],["1000000",{"2":{"170":1}}],["1000",{"2":{"13":2,"151":2,"170":1,"176":2}}],["100",{"2":{"6":2,"14":3,"60":1,"62":1,"127":2,"174":1}}],["10",{"2":{"6":14,"11":1,"36":1,"39":5,"49":4,"50":10,"51":2,"53":1,"56":2,"68":2,"97":3,"102":2,"152":1,"156":4,"169":1}}],["14182952335953",{"2":{"171":1}}],["14182952335952814",{"2":{"171":2}}],["14404531208901e",{"2":{"171":2}}],["1499775010124783",{"2":{"169":1}}],["1464721641710074",{"2":{"169":4}}],["14",{"2":{"3":1,"6":5,"39":2,"53":2,"54":2,"97":1,"99":1,"100":1,"151":2,"152":2}}],["15488729606723",{"2":{"171":3}}],["15",{"2":{"3":1,"6":4,"39":1,"49":1,"50":1,"53":1,"54":1,"97":1,"99":1,"100":1}}],["17893116483784577",{"2":{"171":2}}],["17289902010158",{"2":{"169":1}}],["172899020101585",{"2":{"169":3}}],["170356",{"2":{"126":2}}],["17",{"2":{"3":1,"6":3,"39":3,"53":1,"54":1,"97":2,"99":1,"100":1}}],["125",{"2":{"6":2,"53":1,"54":1}}],["127",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1,"170":1}}],["123",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["12636633117296836",{"2":{"171":2}}],["126",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["12",{"2":{"3":1,"6":3,"39":2,"53":1,"54":1,"97":1,"99":1,"100":1,"177":1}}],["124",{"2":{"3":1,"6":3,"53":1,"54":1,"99":1,"100":1}}],["1",{"2":{"1":8,"3":38,"6":63,"13":1,"14":4,"15":1,"33":4,"34":15,"36":7,"38":2,"39":11,"40":16,"43":4,"44":7,"45":72,"46":9,"47":15,"49":1,"50":10,"52":3,"54":9,"56":4,"57":11,"62":6,"65":7,"66":6,"69":16,"71":2,"72":6,"74":2,"75":2,"84":2,"85":8,"86":12,"88":2,"89":5,"97":38,"103":6,"105":4,"106":5,"108":1,"115":2,"116":6,"126":16,"127":25,"136":9,"138":12,"139":2,"145":9,"152":1,"153":4,"156":8,"158":15,"159":3,"160":15,"161":6,"167":9,"169":8,"170":44,"171":12,"172":1,"176":8,"177":3}}],["bx",{"2":{"126":2}}],["b2y",{"2":{"54":4}}],["b2x",{"2":{"54":4}}],["b2",{"2":{"54":47,"66":3,"103":6}}],["b``",{"2":{"52":1}}],["b`",{"2":{"52":3,"54":4,"57":4}}],["bigger",{"2":{"45":1}}],["bit",{"2":{"25":1,"27":1,"160":8,"169":2}}],["b1y",{"2":{"54":7}}],["b1x",{"2":{"54":7}}],["b1",{"2":{"45":8,"54":63,"103":6}}],["building",{"2":{"169":1}}],["build",{"2":{"45":13,"50":1,"51":1,"53":1,"56":1,"131":3,"132":1,"151":2,"159":1,"160":1}}],["built",{"2":{"17":1,"20":1}}],["buffers",{"2":{"127":1}}],["buffered",{"2":{"41":2}}],["buffering",{"2":{"40":1,"41":1}}],["buffer",{"0":{"41":1},"2":{"31":2,"41":5,"44":2,"45":1,"128":1}}],["but",{"2":{"1":2,"3":5,"4":3,"6":15,"18":1,"22":1,"25":1,"27":1,"34":1,"36":1,"37":1,"47":1,"54":2,"57":2,"62":2,"63":2,"69":4,"74":2,"97":1,"102":1,"103":5,"105":1,"106":1,"109":2,"110":1,"115":1,"126":1,"127":1,"128":1,"131":1,"134":1,"136":16,"147":1,"149":1,"153":1,"156":1,"164":1,"166":2,"170":2,"171":2,"173":1,"175":1,"176":1,"177":2}}],["b>",{"2":{"6":4}}],["bloat",{"2":{"171":1}}],["block",{"2":{"169":1}}],["blob",{"2":{"6":2,"156":1}}],["blue",{"2":{"14":1,"49":1,"68":2,"71":2,"88":2,"102":2,"115":2,"176":2}}],["black",{"2":{"6":2,"49":1,"170":1}}],["breaks",{"2":{"145":1}}],["break",{"2":{"45":3,"47":1,"52":2,"69":4,"97":11,"103":1,"127":6,"145":2}}],["brevity",{"2":{"40":1}}],["br>",{"2":{"6":2}}],["broadcasting",{"2":{"6":1,"40":1}}],["broken",{"2":{"3":1,"6":1,"86":1}}],["balancing",{"2":{"136":2}}],["barrier",{"2":{"136":1}}],["barycentric",{"0":{"5":1,"38":1,"40":1},"1":{"39":1,"40":1},"2":{"0":6,"5":10,"6":17,"9":1,"31":1,"38":9,"39":4,"40":52}}],["basicsgeoms",{"2":{"136":1}}],["basic",{"2":{"127":1}}],["base",{"2":{"31":4,"40":15,"41":1,"45":2,"127":6,"136":5,"148":1,"152":2,"153":1,"164":1,"166":3}}],["based",{"2":{"4":2,"6":3,"19":1,"34":2,"37":2,"39":2,"44":1,"47":1,"66":2,"69":1,"75":1,"89":1,"97":2,"103":1,"106":1,"116":1,"164":1,"173":1,"175":1,"176":1}}],["backs",{"2":{"50":4}}],["backwards",{"2":{"45":1,"52":1,"54":1,"57":1}}],["backing",{"2":{"45":1}}],["backend",{"2":{"41":2,"166":1}}],["back",{"2":{"6":1,"18":1,"22":1,"23":1,"50":4,"166":1}}],["b",{"2":{"3":2,"4":7,"6":13,"45":206,"47":9,"51":26,"52":18,"53":26,"54":77,"55":3,"56":27,"57":39,"69":29,"97":2,"103":22,"172":1}}],["box",{"2":{"46":2,"47":3,"176":1}}],["bounce",{"2":{"45":8,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1}}],["bouncings",{"2":{"45":1}}],["bouncing",{"2":{"45":13,"52":3,"54":4,"57":4}}],["bound",{"2":{"55":1}}],["bounding",{"2":{"45":1,"46":2,"47":3}}],["boundscheck",{"2":{"40":14}}],["bounds",{"2":{"6":1,"127":4}}],["boundaries",{"2":{"3":2,"6":2,"84":2,"88":1,"89":1,"97":2,"99":1,"100":1,"127":1}}],["boundary",{"2":{"3":7,"6":7,"65":1,"71":1,"72":1,"74":1,"75":3,"78":4,"85":2,"86":9,"89":2,"91":1,"92":6,"93":3,"97":18,"105":2,"106":4,"108":3,"109":5,"110":3,"111":3,"115":1,"116":3}}],["bold",{"2":{"41":1,"148":1,"152":1}}],["border",{"2":{"6":8}}],["both",{"2":{"3":5,"6":6,"45":2,"54":4,"56":1,"57":1,"62":2,"65":1,"69":3,"72":1,"86":4,"89":1,"97":2,"103":1,"110":1,"116":1,"151":1,"153":1}}],["booltype",{"2":{"136":3,"153":1,"165":3}}],["booleans",{"2":{"45":1,"97":2}}],["boolean",{"2":{"24":2,"45":1,"52":1,"54":1,"57":1,"136":1,"165":1,"175":1}}],["boolsastypes",{"0":{"24":1,"165":1},"2":{"153":2,"165":6}}],["bools",{"2":{"10":1}}],["bool",{"2":{"3":17,"4":14,"6":40,"45":3,"69":17,"72":1,"75":1,"85":2,"86":13,"89":1,"97":2,"100":1,"103":10,"106":2,"116":1,"126":7,"127":6,"153":2,"165":2,"167":5}}],["bypred",{"2":{"178":1}}],["by",{"0":{"79":1,"80":1,"120":1},"2":{"1":3,"3":2,"4":8,"6":31,"7":1,"17":1,"18":2,"19":1,"22":1,"24":1,"25":1,"26":1,"27":1,"33":1,"34":6,"36":1,"37":1,"40":4,"41":1,"43":5,"44":4,"45":14,"46":1,"47":6,"49":1,"50":6,"51":1,"53":1,"54":5,"56":4,"57":3,"63":2,"66":5,"69":8,"72":1,"74":1,"75":1,"79":2,"80":2,"81":1,"82":2,"84":1,"96":2,"97":10,"126":2,"127":4,"131":2,"136":7,"142":2,"143":1,"145":3,"147":2,"148":1,"149":1,"150":1,"152":3,"153":1,"154":1,"156":1,"157":1,"158":3,"159":1,"161":1,"169":1,"170":1,"171":1,"173":1,"175":2,"176":1,"177":2,"178":1}}],["berlin",{"2":{"177":1}}],["bearing",{"2":{"126":4}}],["beauty",{"2":{"9":1}}],["better",{"2":{"86":1,"136":2,"156":1}}],["between",{"2":{"4":4,"6":18,"23":1,"34":2,"40":13,"45":1,"47":18,"51":1,"52":4,"53":1,"54":11,"56":2,"57":4,"66":8,"69":1,"97":4,"103":4,"127":1,"152":3,"153":1,"157":2,"158":2,"159":1,"170":1,"175":2,"176":1}}],["been",{"2":{"52":1,"127":1,"129":2,"165":1}}],["because",{"2":{"45":1,"63":1,"129":1,"163":1}}],["become",{"2":{"22":1}}],["being",{"2":{"34":1,"54":1,"97":1,"103":1,"143":1}}],["behind",{"2":{"25":1,"26":1,"27":1,"39":1,"129":1}}],["behaviour",{"2":{"6":1,"18":1,"23":1,"156":1}}],["best",{"2":{"19":1,"136":2,"156":1}}],["beware",{"2":{"18":1}}],["benchmarking",{"2":{"152":1,"156":1}}],["benchmarkgroup",{"2":{"152":2,"156":3}}],["benchmark",{"0":{"152":1,"156":1},"2":{"152":1,"156":1}}],["benchmarktools",{"2":{"13":1,"152":1,"156":1}}],["benchmarks",{"2":{"9":2}}],["beginning",{"2":{"47":1,"169":1}}],["begin+1",{"2":{"40":5}}],["begin",{"2":{"9":1,"40":7,"136":2,"157":1,"173":1}}],["before",{"2":{"6":4,"40":1,"51":1,"53":1,"54":1,"56":1,"156":1,"170":1}}],["below",{"2":{"6":2,"17":1,"41":1,"141":1,"158":1,"159":1,"160":1,"173":1}}],["be",{"2":{"1":7,"3":3,"4":11,"5":4,"6":66,"7":1,"9":1,"13":2,"20":3,"23":2,"24":1,"25":3,"26":1,"27":3,"34":8,"37":7,"38":2,"39":1,"40":10,"41":2,"43":1,"44":3,"45":14,"46":1,"47":2,"50":1,"51":7,"52":4,"53":7,"54":12,"56":6,"57":5,"63":6,"65":2,"66":4,"69":15,"75":6,"84":2,"85":1,"89":6,"97":21,"103":2,"106":6,"116":6,"118":1,"119":1,"120":1,"121":1,"126":2,"127":1,"131":2,"134":2,"135":2,"136":12,"138":1,"139":1,"140":1,"141":3,"142":4,"143":2,"145":2,"146":1,"147":3,"148":1,"150":1,"152":8,"153":2,"156":10,"158":1,"160":3,"161":1,"165":1,"166":2,"169":2,"171":1,"175":4}}],["human",{"2":{"173":1}}],["hull`",{"2":{"63":2}}],["hulls",{"2":{"6":1,"58":1,"63":1}}],["hull",{"0":{"58":1,"60":1,"61":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1},"2":{"0":1,"6":8,"31":2,"58":2,"60":4,"61":1,"62":10,"63":15}}],["hypot",{"2":{"153":1}}],["h2",{"2":{"97":6}}],["h1",{"2":{"97":11}}],["hm",{"2":{"39":2}}],["h",{"2":{"34":2,"45":2,"57":8}}],["href=",{"2":{"6":2}}],["https",{"2":{"6":2,"51":1,"53":1,"54":1,"56":1,"63":1,"97":2,"158":1}}],["high",{"2":{"173":1}}],["highest",{"2":{"171":1}}],["higher",{"2":{"6":1,"63":1}}],["hit",{"2":{"45":1,"136":5}}],["hits",{"2":{"18":1}}],["hidedecorations",{"2":{"39":2}}],["hinter",{"2":{"31":3,"41":1,"148":1,"152":1}}],["hint",{"2":{"31":3,"41":1,"152":1}}],["hinge=2",{"2":{"53":1}}],["hinge`",{"2":{"53":1}}],["hinge",{"2":{"6":1,"45":1,"54":13,"97":15}}],["hist",{"2":{"13":1}}],["histogram",{"2":{"13":1}}],["hcat",{"2":{"6":1}}],["heavily",{"2":{"136":1}}],["heatmap",{"2":{"13":5,"14":6,"39":2,"65":2,"127":1}}],["help",{"2":{"165":1}}],["helpers",{"0":{"45":1},"2":{"86":1,"103":1}}],["helper",{"0":{"52":1,"54":1,"57":1},"2":{"44":1,"45":1,"50":1}}],["helps",{"2":{"30":1}}],["held",{"2":{"1":1,"6":1,"136":1}}],["here",{"2":{"6":2,"9":1,"13":1,"14":1,"20":1,"40":1,"54":1,"63":2,"86":1,"127":2,"136":5,"138":1,"152":1,"170":2,"175":2,"176":3}}],["hours",{"2":{"177":1}}],["hood",{"2":{"173":1}}],["hook",{"2":{"6":1,"156":1}}],["home",{"2":{"170":1}}],["horizontal",{"2":{"47":1,"54":1,"127":1,"156":1}}],["hormann",{"0":{"52":1,"54":1,"57":1},"2":{"6":2,"40":2,"45":3,"50":2,"51":1,"53":1,"56":1}}],["how",{"0":{"26":1},"2":{"6":2,"26":2,"36":1,"40":1,"45":1,"54":1,"69":1,"127":2,"131":1,"136":1,"149":1,"156":1,"170":1,"173":1,"175":2,"176":2,"177":1,"178":1}}],["however",{"2":{"3":1,"6":2,"34":1,"40":1,"44":1,"45":1,"54":1,"62":1,"65":1,"69":1,"71":1,"85":1,"143":1}}],["hole",{"2":{"34":1,"37":3,"39":2,"40":9,"44":4,"45":58,"47":3,"51":6,"53":2,"57":15,"66":3,"78":1,"79":1,"80":1,"97":33,"127":5,"139":2,"169":1}}],["holes=",{"2":{"45":1}}],["holes",{"2":{"4":3,"5":1,"6":4,"9":2,"34":2,"36":1,"40":2,"44":1,"45":19,"50":4,"51":2,"53":2,"56":6,"57":29,"66":3,"69":3,"94":1,"97":11,"118":1,"127":17,"139":2,"169":4}}],["holding",{"2":{"6":1,"127":1,"136":2}}],["holds",{"2":{"6":1,"45":1,"154":1,"164":2}}],["hold",{"2":{"6":1,"127":1,"156":1,"165":1,"173":1}}],["halign",{"2":{"156":1}}],["half",{"2":{"46":2}}],["hail",{"2":{"139":1}}],["handling",{"0":{"148":1},"2":{"129":1}}],["handler",{"2":{"41":1,"148":1}}],["handle",{"2":{"31":1,"126":1,"134":2,"136":1,"170":1}}],["handled",{"2":{"18":1}}],["hao",{"2":{"97":1}}],["had",{"2":{"51":1,"53":1,"69":1,"151":1,"165":1}}],["happens",{"2":{"45":1}}],["happen",{"2":{"24":1}}],["have",{"2":{"3":3,"4":9,"6":17,"19":1,"23":1,"34":2,"37":3,"40":6,"41":1,"45":4,"54":1,"63":2,"65":1,"66":2,"69":10,"97":5,"102":1,"103":3,"105":1,"106":1,"127":1,"128":1,"129":2,"131":2,"135":1,"136":4,"156":1,"158":1,"165":1,"166":1,"169":1,"170":1,"175":1,"176":1,"177":3}}],["haskey",{"2":{"166":1}}],["hash",{"2":{"127":1}}],["hasn",{"2":{"127":1}}],["hassle",{"2":{"1":1,"6":1,"161":1}}],["has",{"2":{"1":4,"6":4,"33":1,"36":2,"40":2,"45":2,"52":2,"54":1,"57":1,"65":1,"66":1,"69":11,"108":1,"126":1,"136":4,"137":1,"151":2,"160":1,"170":1}}],["xticklabelsvisible",{"2":{"170":1}}],["xticklabelrotation",{"2":{"13":2}}],["xoffset",{"2":{"169":4,"171":1}}],["x=x",{"2":{"167":1}}],["x`",{"2":{"136":1}}],["xvec",{"2":{"127":4}}],["xbounds",{"2":{"127":4}}],["xhalf",{"2":{"127":3}}],["xlast",{"2":{"66":3}}],["xfirst",{"2":{"66":5}}],["x0",{"2":{"66":5}}],["xn",{"2":{"47":4}}],["xind+1",{"2":{"127":1}}],["xind",{"2":{"127":2}}],["xinterior",{"2":{"44":2}}],["xi−xi−1",{"2":{"6":1}}],["xcentroid",{"2":{"44":13}}],["xrange",{"2":{"39":3,"65":2}}],["xautolimits",{"2":{"39":2}}],["xp2",{"2":{"34":5}}],["x2",{"2":{"6":3,"40":4,"44":2,"47":18,"66":8,"86":10,"97":5,"103":4,"127":5,"153":6,"167":2}}],["x26",{"2":{"6":4,"34":2,"37":6,"40":1,"41":4,"45":58,"47":36,"51":4,"52":4,"54":24,"57":2,"66":3,"69":14,"81":2,"82":2,"86":48,"95":2,"96":2,"97":170,"103":22,"108":2,"112":2,"113":2,"122":2,"123":2,"126":4,"127":12,"141":2,"145":6,"148":2,"152":2,"158":10,"159":2,"167":4,"175":1}}],["x1",{"2":{"6":4,"40":3,"44":2,"47":22,"66":8,"86":11,"97":6,"103":5,"127":5,"153":7,"167":2}}],["xs",{"2":{"6":3,"47":4,"127":30,"167":4}}],["xmax",{"2":{"6":1,"46":2,"47":48}}],["xmin",{"2":{"6":1,"46":2,"47":49}}],["x3c",{"2":{"5":1,"6":36,"31":1,"34":4,"37":2,"40":66,"45":17,"47":11,"50":3,"51":1,"53":1,"54":6,"56":1,"65":1,"66":13,"69":2,"86":33,"97":13,"103":10,"126":1,"127":4,"131":2,"136":19,"139":2,"142":3,"145":5,"152":2,"157":2,"158":6,"159":3,"160":9,"164":4,"165":2,"178":1}}],["xy`",{"2":{"147":1}}],["xy",{"2":{"1":4,"40":1,"147":3}}],["x",{"2":{"1":4,"4":1,"6":6,"7":1,"9":5,"11":6,"13":11,"14":10,"15":4,"34":9,"37":2,"39":8,"43":1,"44":10,"45":21,"46":1,"47":8,"50":6,"52":9,"54":18,"57":9,"65":2,"66":7,"69":3,"86":21,"97":16,"103":7,"126":11,"127":2,"129":2,"136":17,"141":2,"146":2,"147":1,"149":4,"153":2,"156":2,"158":2,"160":1,"161":2,"162":2,"165":4,"167":33,"169":6,"170":2,"171":2,"175":1,"177":2}}],["=>",{"2":{"136":2}}],["=float64",{"2":{"44":3,"53":1,"56":1}}],["=false",{"2":{"34":1}}],["===",{"2":{"86":8,"126":4}}],["==",{"2":{"9":1,"19":1,"34":4,"37":2,"40":9,"41":2,"44":1,"45":34,"47":30,"52":1,"54":20,"56":2,"57":1,"61":1,"65":1,"69":16,"97":44,"103":2,"126":3,"127":18,"136":1,"139":1,"141":1,"145":1,"148":1,"152":2,"156":1,"160":3}}],["=",{"2":{"1":5,"3":17,"4":7,"5":2,"6":62,"11":1,"13":19,"14":33,"15":18,"31":4,"33":4,"34":56,"36":6,"37":25,"39":35,"40":110,"41":3,"43":6,"44":36,"45":323,"46":6,"47":96,"49":7,"50":29,"51":21,"52":30,"53":18,"54":143,"56":21,"57":77,"60":6,"61":4,"62":14,"63":4,"65":15,"66":52,"68":7,"69":40,"71":7,"72":3,"74":4,"75":23,"76":3,"77":7,"78":14,"79":14,"80":4,"81":2,"82":2,"84":5,"85":3,"86":57,"88":7,"89":18,"90":3,"91":11,"92":17,"93":9,"94":3,"95":2,"96":2,"97":189,"99":3,"100":3,"102":7,"103":40,"105":3,"106":22,"107":3,"108":9,"109":14,"110":10,"111":6,"112":2,"113":2,"115":7,"116":22,"117":3,"118":11,"119":14,"120":14,"121":4,"122":2,"123":2,"126":32,"127":106,"129":1,"133":4,"136":90,"138":2,"139":4,"141":9,"144":3,"145":30,"146":1,"148":2,"151":16,"152":21,"153":18,"154":2,"155":5,"156":60,"157":11,"158":49,"159":7,"160":43,"161":2,"162":1,"164":6,"165":2,"166":3,"167":42,"169":45,"170":19,"171":13,"172":3,"173":4,"174":7,"176":12,"177":6,"178":2}}],["utm",{"2":{"170":1}}],["utility",{"0":{"167":1},"2":{"40":1,"136":2}}],["utils",{"0":{"160":1},"2":{"31":1}}],["u2",{"2":{"97":4}}],["u1",{"2":{"97":4}}],["update",{"2":{"45":6,"127":10}}],["updated",{"2":{"45":6,"136":3}}],["updates",{"2":{"40":1}}],["up",{"2":{"45":2,"54":1,"97":1,"110":1,"134":1,"144":1,"158":2,"169":2}}],["upper",{"2":{"6":1,"127":1,"176":1}}],["uv",{"2":{"40":1}}],["u>",{"2":{"6":2}}],["u>geometryops",{"2":{"6":2}}],["usage",{"2":{"177":1}}],["usa",{"0":{"61":1},"2":{"61":4,"156":15,"177":3}}],["us",{"2":{"37":1,"63":1,"170":1,"177":1}}],["usually",{"2":{"6":1,"26":2,"58":1,"131":1,"136":1,"173":1}}],["usual",{"2":{"6":1,"139":1,"142":1}}],["usecases",{"2":{"25":1,"27":1}}],["uses",{"2":{"6":2,"58":1,"63":1,"97":1,"147":1,"152":1,"156":1,"173":1}}],["users",{"2":{"31":1,"129":1,"143":1}}],["user",{"2":{"6":12,"23":1,"44":1,"51":3,"53":3,"56":3,"157":1,"158":1,"159":1,"175":1}}],["useful",{"2":{"6":10,"40":1,"127":1,"150":1,"153":1,"156":2,"166":1}}],["used",{"2":{"1":1,"5":1,"6":8,"34":1,"37":1,"38":1,"40":1,"44":2,"45":7,"47":1,"50":1,"54":1,"65":1,"66":1,"69":1,"103":1,"127":2,"131":1,"136":3,"137":1,"153":1,"156":1,"158":2,"163":2,"164":1,"170":1,"173":1,"175":2,"176":1}}],["use",{"2":{"1":2,"4":1,"5":1,"6":10,"11":1,"20":1,"23":1,"26":1,"40":1,"45":1,"57":1,"63":2,"86":2,"103":1,"127":1,"128":1,"133":1,"136":7,"139":1,"149":1,"151":1,"153":1,"156":1,"158":2,"166":3,"169":1,"173":1,"175":2,"178":2}}],["using",{"0":{"170":1},"2":{"1":4,"4":1,"5":3,"6":12,"11":4,"13":4,"14":1,"15":1,"31":6,"33":1,"34":1,"36":2,"37":2,"39":4,"40":7,"41":3,"43":2,"44":1,"45":5,"46":2,"47":1,"49":2,"50":1,"52":3,"54":4,"55":1,"57":3,"60":1,"61":2,"62":1,"63":2,"65":2,"66":2,"68":2,"69":1,"71":2,"72":1,"74":2,"75":1,"82":1,"84":2,"85":1,"86":1,"88":2,"89":1,"96":1,"97":1,"99":2,"100":1,"102":2,"103":1,"105":2,"106":1,"113":1,"115":2,"116":1,"123":1,"126":1,"127":5,"128":1,"129":2,"134":1,"136":4,"139":1,"142":1,"145":1,"146":2,"147":1,"148":3,"149":1,"151":1,"152":5,"153":1,"156":3,"158":1,"160":1,"161":4,"162":2,"166":2,"167":1,"168":4,"169":1,"171":1,"172":2,"174":1,"175":1,"176":4,"177":2}}],["until",{"2":{"127":3,"134":1,"158":1,"166":1}}],["unprocessed",{"2":{"45":1}}],["unknown",{"2":{"45":4,"47":15}}],["unknown=3",{"2":{"45":1}}],["unmatched",{"2":{"45":9,"47":26}}],["understand",{"2":{"163":1}}],["under",{"2":{"37":2,"173":1}}],["undergrad",{"2":{"9":1}}],["undef",{"2":{"34":2,"45":1,"157":1,"158":1,"160":2,"167":2}}],["unless",{"2":{"22":1,"45":1,"52":2,"54":2,"57":2}}],["unlike",{"2":{"18":1,"163":1}}],["unstable",{"2":{"13":1,"136":1,"165":1}}],["unneeded",{"2":{"6":3,"45":1,"51":2,"53":2,"56":2}}],["unnecessary",{"2":{"6":3,"127":1,"157":1,"158":1,"159":1}}],["universal",{"2":{"170":1}}],["united",{"2":{"156":1}}],["unify",{"2":{"25":1,"27":1}}],["unique",{"2":{"6":2,"54":3,"142":2,"145":2}}],["unioning",{"2":{"57":1}}],["unionintersectingpolygons",{"2":{"0":1,"6":8,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"142":2,"143":2,"144":1,"145":4}}],["unions",{"0":{"57":1},"2":{"18":1,"164":1}}],["union",{"0":{"56":1},"2":{"0":1,"1":2,"3":2,"4":4,"6":22,"11":3,"23":2,"31":1,"34":2,"37":1,"40":1,"44":4,"45":7,"47":1,"53":2,"56":18,"57":30,"66":1,"69":8,"77":2,"78":4,"79":1,"81":2,"82":1,"91":2,"92":6,"95":2,"96":1,"103":4,"108":2,"109":4,"110":1,"112":2,"113":1,"118":2,"119":4,"120":1,"122":2,"123":1,"126":1,"127":5,"129":1,"134":3,"136":6,"142":1,"143":1,"145":9,"153":4,"156":2,"157":3,"158":3,"159":3,"164":4,"167":1}}],["unchanged",{"2":{"1":1,"6":2,"136":1,"156":1}}],["unwrap",{"2":{"0":1,"6":3,"131":1,"136":16}}],["nselected",{"2":{"160":3}}],["nmax",{"2":{"160":2}}],["nice",{"2":{"158":1}}],["null",{"2":{"152":1}}],["numeric",{"2":{"11":1}}],["numbers",{"2":{"6":1,"7":1,"38":2,"40":1,"152":1}}],["number=6",{"2":{"6":1,"155":1,"156":1}}],["number",{"2":{"6":11,"40":1,"45":2,"50":1,"58":1,"62":1,"65":1,"69":2,"97":2,"150":1,"151":1,"153":1,"156":2,"157":4,"158":7,"159":4,"160":12}}],["n+1",{"2":{"138":1}}],["nfeature",{"2":{"136":2}}],["nkeys",{"2":{"127":8}}],["nc",{"2":{"97":13}}],["ncoord",{"2":{"69":2}}],["nl",{"2":{"97":11}}],["nhole",{"2":{"45":2,"51":2,"53":2,"56":2,"57":1,"69":2}}],["nbpts",{"2":{"45":2}}],["nbsp",{"2":{"1":4,"3":9,"4":8,"5":3,"6":89,"131":3,"141":1,"142":4}}],["ngeom",{"2":{"44":1,"136":2,"167":1}}],["nt",{"2":{"166":2}}],["ntasks",{"2":{"136":6}}],["nthreads",{"2":{"136":3}}],["nthe",{"2":{"41":1,"148":1,"152":1}}],["ntuple",{"2":{"40":3,"153":1}}],["n2",{"2":{"40":8,"69":10}}],["n1",{"2":{"40":8,"69":9}}],["np2",{"2":{"86":4}}],["npolygon",{"2":{"52":1,"69":3,"145":2}}],["npoints",{"2":{"34":6,"45":5,"97":3,"152":6,"158":7}}],["npoint",{"2":{"6":1,"34":2,"36":1,"37":1,"47":2,"62":2,"66":1,"69":6,"86":6,"97":6,"108":1,"126":2,"139":1,"152":3,"153":1,"156":14,"160":1,"167":13}}],["npts",{"2":{"45":6,"158":3}}],["np",{"2":{"37":2,"66":5}}],["n",{"2":{"6":1,"9":1,"38":2,"40":36,"41":2,"45":51,"50":10,"56":4,"57":4,"97":11,"108":2,"126":6,"127":5,"138":1,"145":25,"148":2,"152":2,"153":3,"156":2,"160":7,"167":32}}],["naive",{"2":{"55":1}}],["napts",{"2":{"45":3}}],["navigate",{"0":{"26":1}}],["natearth2",{"2":{"170":1}}],["natural",{"2":{"156":1,"170":2,"175":1}}],["naturalearth",{"2":{"11":2,"61":2,"156":3,"170":1}}],["nature",{"2":{"127":1}}],["native",{"2":{"6":1,"128":1,"166":4,"173":1}}],["nan",{"2":{"9":1}}],["named",{"2":{"136":1}}],["namedtuple",{"2":{"22":2,"136":2,"166":2}}],["name",{"2":{"6":1,"31":2,"156":1,"166":1,"172":1,"173":2,"177":1}}],["names",{"2":{"6":1,"31":3,"136":6,"166":1}}],["nodestatus",{"2":{"127":6}}],["nodes",{"2":{"45":1,"127":4}}],["node",{"2":{"45":26,"127":17}}],["north",{"2":{"47":12}}],["nor",{"2":{"41":1,"148":1,"152":1}}],["normalized",{"2":{"40":1}}],["normalize",{"2":{"40":1}}],["norm",{"2":{"6":1,"40":22}}],["now",{"2":{"6":1,"13":1,"25":1,"27":1,"36":1,"39":2,"40":4,"41":1,"45":1,"50":1,"57":1,"58":1,"66":1,"126":1,"127":2,"144":1,"150":1,"151":3,"152":1,"156":1,"169":5,"170":6,"171":2,"172":1,"173":3,"176":2}}],["no",{"2":{"6":6,"34":1,"40":2,"45":4,"51":1,"52":1,"53":1,"54":14,"56":1,"69":2,"75":3,"89":3,"97":2,"106":2,"108":1,"110":1,"111":2,"116":2,"118":1,"119":3,"120":3,"121":1,"127":2,"128":1,"129":1,"136":3,"150":1,"152":2,"153":1,"156":1,"166":1,"173":1}}],["nonzero",{"2":{"153":1}}],["none",{"2":{"6":4,"45":1,"50":1,"51":1,"53":1,"56":1,"57":1,"86":4,"88":1}}],["nondimensional",{"2":{"6":1,"152":1}}],["nonintersecting",{"2":{"6":1,"23":1,"142":1,"145":1}}],["non",{"2":{"3":2,"6":2,"22":1,"38":2,"45":15,"51":2,"52":1,"53":1,"54":4,"56":1,"57":2,"65":1,"103":2,"110":1,"134":1,"165":1}}],["note",{"2":{"4":4,"6":11,"19":1,"29":1,"34":1,"37":2,"40":1,"43":2,"44":2,"45":3,"47":1,"50":2,"52":3,"54":5,"57":3,"63":1,"66":1,"69":5,"97":1,"102":1,"103":1,"147":1,"153":1,"157":1,"158":2,"159":1,"165":1,"170":2,"171":1}}],["not",{"0":{"128":1},"2":{"1":2,"3":8,"4":1,"6":18,"18":1,"19":1,"22":1,"24":1,"31":1,"34":4,"37":1,"40":4,"41":1,"43":1,"45":18,"50":1,"53":1,"54":7,"57":3,"62":1,"68":2,"69":4,"71":2,"72":1,"74":2,"75":2,"84":1,"85":2,"89":3,"91":5,"92":3,"93":2,"94":2,"97":5,"102":1,"103":2,"106":1,"115":2,"116":2,"118":1,"126":4,"127":2,"128":1,"134":1,"135":1,"136":10,"138":2,"141":2,"144":3,"147":1,"148":1,"149":1,"150":1,"152":2,"153":1,"163":1,"164":1,"165":1,"166":2,"170":1,"171":1,"175":1}}],["nothing`",{"2":{"52":2,"54":2,"57":2}}],["nothing",{"2":{"1":34,"4":1,"6":42,"15":3,"45":4,"50":1,"52":2,"53":1,"54":2,"57":2,"69":1,"97":1,"126":9,"127":3,"136":8,"138":24,"141":1,"144":60,"148":1,"153":1,"156":2,"157":6,"158":6,"159":6,"160":1,"161":32,"167":7,"169":252,"170":16,"171":20}}],["ne",{"2":{"170":2}}],["net",{"2":{"141":2}}],["ness",{"2":{"136":1}}],["nesting",{"2":{"134":2}}],["nestedloopfast",{"2":{"178":1}}],["nested",{"2":{"1":2,"4":1,"6":5,"18":1,"34":1,"134":2,"136":4,"156":1,"162":1}}],["never",{"2":{"134":1,"157":1}}],["neumann",{"2":{"127":1}}],["neither",{"2":{"57":1}}],["neighborhood",{"2":{"127":2}}],["neighbor",{"2":{"45":27}}],["neighboring",{"2":{"6":6,"45":1,"156":1,"157":1,"158":1,"159":2}}],["nearly",{"2":{"173":1}}],["nearest",{"2":{"45":1,"54":2}}],["neatly",{"2":{"17":1}}],["nedge",{"2":{"45":2,"167":13}}],["nextnode",{"2":{"127":27}}],["nextnodes",{"2":{"127":6}}],["next",{"2":{"44":1,"45":81,"47":3,"50":4,"97":14,"127":3,"145":13,"158":5}}],["necessarily",{"2":{"6":1,"126":1,"149":1}}],["necessary",{"2":{"6":1,"134":1,"156":1}}],["newfeature",{"2":{"136":2}}],["newnodes",{"2":{"127":2}}],["new",{"2":{"6":1,"41":1,"45":58,"47":9,"51":3,"52":1,"57":16,"97":2,"127":4,"135":1,"136":19,"141":2,"142":1,"143":1,"145":19,"153":8,"157":1,"158":2,"159":1,"171":1,"172":1,"177":1}}],["negative",{"2":{"4":3,"6":3,"36":2,"37":1,"38":2,"65":2,"66":3}}],["needs",{"2":{"44":1}}],["needing",{"2":{"4":1,"6":1,"17":1,"146":1}}],["need",{"2":{"1":1,"3":1,"4":2,"5":1,"6":5,"40":2,"43":1,"45":2,"52":1,"62":1,"69":4,"84":1,"85":1,"97":1,"127":2,"129":1,"146":1,"160":1,"161":1,"170":1,"171":2,"178":2}}],["needed",{"2":{"1":2,"6":4,"34":1,"40":1,"45":4,"47":1,"51":1,"53":1,"56":1,"66":2,"97":5,"127":1,"136":2,"141":1,"147":3,"171":1}}],["gdal",{"2":{"173":1}}],["gml",{"2":{"173":1}}],["gpkg",{"2":{"173":3}}],["gadm",{"2":{"177":4}}],["ga",{"2":{"170":3,"174":2}}],["gaps",{"2":{"127":1}}],["global",{"2":{"170":1}}],["gft",{"2":{"168":1,"170":2}}],["gc",{"2":{"141":6}}],["g",{"2":{"34":3,"37":3,"41":1,"44":3,"47":3,"66":6,"134":1,"136":6,"156":2,"167":2,"173":1}}],["gb",{"2":{"31":1,"136":10}}],["guarantee",{"2":{"19":1,"30":1}}],["guaranteed",{"2":{"1":1,"6":1,"34":1,"136":1}}],["grand",{"2":{"177":1}}],["grained",{"2":{"151":1}}],["grahamscanmethod",{"2":{"63":1}}],["graphics",{"2":{"6":1,"40":1}}],["great",{"2":{"169":1,"171":1,"173":1}}],["greater",{"2":{"6":1,"126":1,"153":1}}],["greiner",{"0":{"52":1,"54":1,"57":1},"2":{"45":3,"50":2,"51":1,"53":1,"56":1}}],["green",{"2":{"14":1,"170":1}}],["grouped",{"2":{"169":1}}],["groups",{"2":{"6":1,"127":1}}],["grouping",{"2":{"1":1,"6":1,"136":2}}],["grid",{"2":{"6":1,"39":1,"47":4}}],["g2",{"2":{"3":5,"6":5,"72":4,"75":12,"76":6,"77":9,"78":6,"79":6,"80":3,"81":4,"82":2,"85":3,"86":21,"89":10,"90":6,"91":10,"92":8,"93":4,"94":2,"95":4,"96":2,"106":10,"107":6,"108":10,"109":6,"110":5,"111":4,"112":4,"113":2,"116":10,"117":6,"118":9,"119":6,"120":6,"121":3,"122":4,"123":2}}],["g1",{"2":{"3":5,"4":1,"6":6,"72":4,"75":12,"76":6,"77":9,"78":6,"79":6,"80":3,"81":2,"82":4,"85":3,"86":21,"89":9,"90":6,"91":10,"92":8,"93":4,"94":2,"95":2,"96":4,"106":10,"107":6,"108":9,"109":6,"110":5,"111":4,"112":2,"113":4,"116":10,"117":6,"118":9,"119":6,"120":6,"121":3,"122":2,"123":4}}],["generic",{"2":{"22":1}}],["generation",{"2":{"156":2}}],["generated",{"2":{"31":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"148":1,"149":1,"153":1,"156":1,"160":1,"161":1,"162":1,"166":1,"167":1,"176":1}}],["generate",{"2":{"7":1,"13":2,"156":1,"176":2}}],["generalization",{"2":{"38":1}}],["generalized",{"2":{"6":1,"38":3,"40":1}}],["generalise",{"2":{"6":4,"156":1}}],["generally",{"2":{"6":2,"166":3}}],["general",{"0":{"2":1,"4":1},"1":{"3":1,"4":1},"2":{"18":1,"20":1,"25":1,"27":1,"129":1,"148":1}}],["getfeature",{"2":{"136":5,"167":5}}],["getcolumn",{"2":{"136":4}}],["getgeom",{"2":{"81":1,"82":1,"95":1,"96":1,"103":2,"112":1,"113":1,"122":1,"123":1,"136":6,"156":3,"167":6}}],["getring",{"2":{"45":1}}],["getindex",{"2":{"40":2}}],["gethole",{"2":{"34":1,"37":1,"44":1,"45":4,"47":1,"50":1,"51":2,"53":2,"57":6,"66":1,"69":2,"97":5,"139":1,"169":1}}],["getexterior",{"2":{"34":1,"37":1,"40":1,"44":1,"45":3,"47":1,"50":1,"51":2,"53":2,"56":3,"57":6,"66":1,"69":2,"97":5,"126":1,"127":1,"139":1,"169":1}}],["getpolygon",{"2":{"52":3,"54":2,"57":2,"69":3}}],["getpoint",{"2":{"33":1,"34":5,"36":2,"37":1,"40":1,"43":1,"44":6,"45":3,"46":2,"47":3,"49":3,"65":1,"66":6,"68":4,"69":13,"71":4,"74":1,"84":1,"86":7,"88":4,"97":28,"99":2,"102":4,"103":2,"105":2,"108":2,"115":4,"126":5,"139":3,"151":4,"153":2,"160":1,"167":3,"169":2}}],["getproperty",{"2":{"13":2,"14":1}}],["get",{"2":{"6":1,"13":1,"36":1,"41":1,"45":9,"51":1,"52":1,"53":1,"54":2,"56":2,"63":2,"127":4,"136":4,"148":1,"152":3,"156":1,"157":1,"159":1,"160":2,"166":5,"167":1,"169":2,"177":2}}],["geoparquet",{"2":{"173":4}}],["geopoly1",{"2":{"171":1,"172":1}}],["geopoly2",{"2":{"171":1,"172":1}}],["geoaxis",{"2":{"170":4,"174":1}}],["geographic",{"2":{"170":1,"173":1}}],["geographiclib",{"2":{"6":1,"152":1}}],["geointeface",{"2":{"134":1}}],["geointerace",{"2":{"22":1}}],["geointerfacemakie",{"2":{"155":1,"176":1,"177":1}}],["geointerface",{"0":{"30":1},"2":{"1":20,"3":9,"4":2,"6":41,"11":1,"13":1,"14":1,"15":1,"22":3,"25":1,"27":1,"30":1,"31":7,"33":1,"34":1,"36":1,"37":1,"40":23,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"60":1,"61":1,"62":1,"65":1,"66":11,"68":1,"69":2,"71":1,"72":2,"74":1,"75":2,"84":1,"85":2,"86":1,"88":1,"89":3,"99":1,"100":2,"102":1,"103":2,"105":1,"106":2,"115":1,"116":2,"126":5,"127":1,"131":3,"134":3,"136":6,"138":9,"141":1,"142":1,"144":23,"146":1,"147":2,"151":1,"152":1,"155":1,"156":2,"161":13,"162":1,"167":1,"168":1,"169":122,"170":5,"171":9,"174":1,"176":1,"177":1}}],["geo",{"2":{"127":1,"152":4,"170":2}}],["geotable",{"2":{"29":1}}],["geojson",{"2":{"11":1,"156":2,"168":1,"170":4,"173":3}}],["geodataframes",{"2":{"173":3}}],["geod",{"2":{"6":2,"152":3}}],["geodesic`",{"2":{"152":2}}],["geodesic",{"0":{"174":1},"2":{"6":5,"31":1,"151":6,"152":8,"153":1,"174":1}}],["geodesicsegments",{"2":{"0":1,"6":2,"150":1,"151":3,"152":6,"153":2,"174":1}}],["geoformattypes",{"2":{"1":2,"147":2,"168":1,"170":2,"171":8}}],["geomakie",{"0":{"170":1},"2":{"168":2,"170":5,"174":2}}],["geomfromgeos",{"2":{"152":1}}],["geomtype",{"2":{"136":2}}],["geoms",{"2":{"6":1,"63":1,"97":1,"131":1,"136":18}}],["geom2",{"2":{"3":8,"4":1,"6":9,"66":6,"69":1,"86":6,"89":1,"100":3,"103":6,"106":1,"116":2}}],["geom1",{"2":{"3":8,"4":1,"6":9,"66":6,"69":1,"86":4,"89":1,"100":3,"103":6,"106":1,"116":2}}],["geometrical",{"2":{"175":1}}],["geometric",{"2":{"25":2,"27":2,"43":1}}],["geometries",{"0":{"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"169":1,"170":1,"171":1},"2":{"1":6,"3":8,"4":14,"6":63,"18":3,"20":1,"22":3,"25":2,"27":2,"29":4,"33":1,"34":3,"37":4,"44":1,"47":2,"50":1,"51":5,"53":5,"54":4,"56":5,"63":6,"65":1,"66":4,"68":1,"69":7,"72":1,"74":1,"75":1,"86":2,"89":2,"97":1,"99":1,"100":1,"102":2,"103":3,"105":2,"106":2,"116":2,"118":1,"129":1,"131":4,"133":1,"135":2,"136":13,"146":1,"147":2,"150":3,"151":1,"152":4,"153":1,"154":1,"157":1,"158":1,"159":1,"162":1,"167":1,"168":5,"170":1,"171":2,"172":2,"173":1,"175":5,"176":1,"178":1}}],["geometry=",{"2":{"172":1}}],["geometrybasics",{"2":{"31":3,"39":2,"40":10,"63":1,"65":1,"75":1,"106":1,"116":1}}],["geometrycolumns",{"2":{"136":3}}],["geometrycollections",{"2":{"175":1}}],["geometrycollection",{"2":{"23":1,"177":1}}],["geometrycollectiontrait",{"2":{"23":1,"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["geometrycorrections",{"2":{"141":1}}],["geometrycorrection",{"2":{"0":1,"6":11,"139":2,"140":2,"141":13,"142":11,"145":4}}],["geometry",{"0":{"2":1,"53":1,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"140":1,"147":1,"154":1,"168":1,"172":1},"1":{"3":1,"4":1,"141":1,"142":1,"148":1,"155":1,"156":1,"169":1,"170":1,"171":1,"172":1,"173":1},"2":{"1":10,"3":24,"4":12,"6":70,"9":1,"11":2,"18":4,"20":1,"23":3,"29":1,"31":1,"34":7,"37":4,"41":4,"44":3,"46":1,"47":4,"50":4,"61":1,"65":4,"66":6,"69":8,"71":5,"72":2,"74":4,"75":5,"76":4,"77":1,"81":3,"82":4,"84":4,"85":4,"86":3,"88":2,"89":5,"90":4,"91":2,"92":2,"95":3,"96":4,"97":2,"99":2,"103":3,"105":3,"106":4,"107":4,"108":2,"112":3,"113":4,"115":4,"116":5,"117":4,"122":3,"123":4,"125":1,"129":3,"131":2,"134":2,"136":43,"138":1,"139":1,"140":2,"141":23,"142":6,"146":1,"147":6,"149":1,"150":3,"151":1,"152":5,"153":8,"156":6,"167":6,"169":1,"170":1,"171":4,"172":2,"173":2,"175":1,"176":7,"177":4,"178":2}}],["geometryopsprojext",{"2":{"147":1,"148":1,"152":1,"153":1}}],["geometryopslibgeosext",{"2":{"41":1}}],["geometryops",{"0":{"0":1,"25":1,"31":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":117,"1":6,"3":18,"4":9,"5":3,"6":114,"7":2,"11":1,"13":1,"14":1,"15":1,"17":2,"25":1,"26":4,"27":1,"31":1,"33":1,"36":1,"39":5,"41":1,"43":1,"46":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"58":1,"60":1,"61":1,"62":3,"65":1,"68":1,"69":1,"71":1,"72":2,"74":1,"75":2,"84":1,"85":2,"86":2,"88":1,"89":2,"99":1,"100":1,"102":1,"103":1,"105":1,"106":2,"115":1,"116":2,"126":3,"127":2,"131":4,"136":1,"138":1,"141":1,"142":4,"144":1,"148":1,"151":1,"152":2,"155":1,"156":2,"161":1,"163":1,"166":2,"167":1,"168":1,"169":3,"174":1,"175":1,"176":2,"177":2}}],["geom",{"2":{"1":7,"4":21,"6":48,"18":3,"31":12,"34":25,"37":17,"44":28,"45":16,"47":6,"50":15,"51":8,"52":2,"53":12,"54":10,"56":9,"57":9,"66":28,"69":45,"75":4,"86":1,"89":4,"97":3,"103":1,"106":4,"116":4,"126":3,"127":1,"129":2,"131":3,"136":91,"145":11,"149":4,"153":13,"156":36,"160":3,"161":7,"162":4,"167":13,"177":6}}],["geospatial",{"0":{"171":1,"173":1},"2":{"168":5,"170":1,"171":3,"173":5}}],["geoscontext",{"2":{"152":1}}],["geosdensify",{"2":{"152":3}}],["geos",{"0":{"166":1},"2":{"0":1,"6":6,"41":4,"58":1,"62":4,"63":1,"154":5,"156":2,"163":1,"166":12}}],["got",{"2":{"160":3}}],["goes",{"2":{"6":2,"126":2}}],["good",{"2":{"6":1,"40":1,"166":2,"171":1}}],["going",{"2":{"4":4,"6":5,"47":2,"62":1,"69":5,"126":1,"127":1,"168":1}}],["go",{"2":{"1":5,"3":17,"4":2,"6":43,"11":9,"13":1,"14":1,"15":6,"18":1,"31":2,"33":1,"36":1,"40":1,"43":2,"46":1,"49":2,"50":2,"51":2,"53":2,"54":2,"56":2,"60":3,"61":2,"62":8,"63":2,"65":6,"68":1,"69":2,"71":2,"72":2,"74":1,"75":2,"84":2,"85":2,"86":1,"88":1,"89":2,"99":1,"100":2,"102":1,"103":2,"105":1,"106":2,"115":2,"116":2,"126":6,"127":2,"129":1,"131":1,"136":3,"138":3,"144":3,"151":7,"152":8,"155":2,"156":49,"161":3,"166":1,"167":2,"168":1,"169":3,"171":1,"173":1,"174":3,"175":9,"176":2,"177":5,"178":1}}],["gtrait",{"2":{"66":2}}],["gt",{"2":{"1":1,"6":2,"9":2,"10":1,"11":5,"45":3,"126":3}}],["gif",{"2":{"158":1}}],["gives",{"2":{"177":1}}],["give",{"2":{"97":1,"173":1}}],["given",{"2":{"4":7,"6":21,"18":2,"29":1,"33":1,"34":1,"37":2,"44":3,"45":8,"47":3,"50":5,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"66":8,"69":4,"71":1,"72":1,"75":1,"84":1,"85":1,"89":1,"97":7,"99":1,"100":1,"106":1,"108":1,"116":1,"129":1,"141":4,"142":1,"144":1,"150":2,"152":2,"153":2,"159":1}}],["github",{"2":{"6":2,"63":1}}],["gis",{"2":{"5":1,"6":1,"25":1,"27":1,"40":1}}],["gi",{"2":{"1":13,"3":42,"4":31,"6":125,"11":8,"13":15,"14":15,"15":8,"18":2,"31":1,"33":3,"34":30,"36":5,"37":21,"39":1,"43":5,"44":38,"45":34,"46":5,"47":17,"49":6,"50":13,"51":19,"52":16,"53":25,"54":24,"56":17,"57":36,"60":1,"61":1,"62":3,"63":4,"65":8,"66":42,"68":7,"69":99,"71":7,"72":3,"74":3,"75":4,"76":6,"77":12,"78":10,"79":7,"80":4,"81":8,"82":6,"84":3,"85":3,"86":21,"88":7,"89":2,"90":3,"91":12,"92":14,"93":4,"94":2,"95":8,"96":6,"97":59,"99":5,"100":3,"102":7,"103":51,"105":5,"106":3,"107":6,"108":15,"109":10,"110":7,"111":4,"112":8,"113":6,"115":7,"116":2,"117":6,"118":12,"119":10,"120":7,"121":4,"122":8,"123":6,"126":32,"127":15,"129":4,"131":2,"136":111,"138":2,"139":10,"141":9,"144":3,"145":8,"146":1,"149":5,"151":6,"152":6,"153":12,"155":2,"156":34,"160":4,"161":9,"162":5,"164":9,"167":55,"168":1,"169":21,"170":2,"171":2,"174":2,"176":5,"177":2}}],["o",{"2":{"136":24}}],["odd",{"2":{"97":1}}],["own",{"2":{"57":1,"129":2}}],["occur",{"2":{"54":1}}],["occurs",{"2":{"54":1}}],["occupied",{"2":{"36":1}}],["old",{"2":{"45":8,"136":3}}],["ourselves",{"2":{"152":1}}],["our",{"2":{"24":1,"152":1,"169":4,"170":3,"176":1}}],["out=3",{"2":{"97":1}}],["out=4",{"2":{"53":1}}],["out`",{"2":{"53":1,"97":1}}],["out",{"2":{"6":3,"45":12,"47":23,"54":6,"57":4,"63":1,"65":5,"75":4,"86":1,"89":3,"97":102,"103":2,"106":4,"116":4,"126":1,"136":1,"153":1,"166":2}}],["outside",{"2":{"3":2,"4":1,"6":3,"45":3,"47":1,"52":2,"54":4,"57":3,"65":2,"66":1,"74":1,"85":1,"88":1,"97":12,"103":3,"121":1}}],["outputs",{"2":{"45":1}}],["output",{"2":{"3":8,"4":1,"6":18,"18":1,"23":1,"50":2,"51":1,"53":1,"54":1,"56":1,"57":2,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"126":2,"156":1,"160":1,"167":1}}],["outermost",{"2":{"136":1}}],["outer",{"2":{"1":1,"6":1,"134":1,"136":2,"175":1,"176":1}}],["omit",{"2":{"6":1,"152":1}}],["obtain",{"2":{"136":1}}],["obtained",{"2":{"23":1}}],["observable",{"2":{"14":2}}],["obs",{"2":{"14":10}}],["obviously",{"2":{"4":1,"6":1,"146":1}}],["objects",{"2":{"1":4,"4":1,"6":17,"131":3,"134":5,"136":8,"146":1,"150":1,"156":2,"162":1}}],["object",{"2":{"1":4,"4":1,"5":1,"6":8,"20":1,"40":1,"65":1,"97":4,"131":1,"134":5,"136":3,"146":1,"147":3,"152":1,"156":1,"162":1}}],["obj",{"2":{"1":4,"4":1,"6":17,"131":3,"136":10,"146":1,"149":2,"152":3,"156":3,"161":1,"162":1}}],["others",{"2":{"41":1,"145":1}}],["otherwise",{"2":{"4":2,"6":3,"41":1,"45":1,"52":1,"54":1,"66":2,"127":1,"148":1,"149":1,"152":1,"167":1}}],["other",{"0":{"4":1,"6":1},"2":{"3":4,"6":12,"34":1,"45":5,"51":1,"53":1,"54":1,"56":2,"57":3,"58":2,"66":2,"69":2,"71":1,"77":1,"97":8,"99":1,"102":1,"103":4,"105":2,"106":2,"109":1,"118":1,"127":1,"131":1,"134":1,"136":1,"142":2,"143":1,"145":2,"156":2,"158":2,"163":1,"164":1,"166":1,"170":1,"175":1,"178":1}}],["ogc",{"0":{"3":1}}],["over=3",{"2":{"53":1}}],["over`",{"2":{"53":1}}],["overflow",{"2":{"50":1}}],["overhead",{"2":{"22":1,"136":2}}],["override",{"2":{"6":1,"40":1}}],["overlapping",{"2":{"45":11,"54":4,"57":6}}],["overlap",{"2":{"3":4,"6":4,"9":1,"45":2,"54":8,"57":2,"75":1,"84":1,"97":2,"102":5,"103":6,"116":1,"143":1}}],["overlaps",{"0":{"101":1,"102":1},"1":{"102":1,"103":1},"2":{"0":10,"3":5,"6":13,"31":1,"54":1,"101":1,"102":3,"103":30,"127":1,"175":1}}],["over",{"2":{"1":1,"6":3,"36":2,"37":1,"44":3,"45":5,"47":1,"53":1,"54":11,"57":1,"62":1,"75":1,"86":1,"89":1,"97":15,"103":2,"106":1,"116":1,"136":22,"169":3}}],["opposed",{"2":{"174":1}}],["opposite",{"2":{"3":5,"6":5,"45":2,"52":1,"54":2,"57":1,"72":2,"75":1,"85":2,"100":2,"116":1}}],["ops",{"2":{"136":1}}],["open",{"2":{"45":1,"138":1,"170":1}}],["operates",{"2":{"136":1,"137":1,"143":1}}],["operate",{"2":{"18":1,"29":1,"136":1}}],["operations",{"0":{"23":1},"2":{"23":1,"26":1,"54":1,"57":1,"129":1}}],["operation",{"2":{"6":3,"45":1,"129":1,"142":2,"145":2,"166":2}}],["optimisation",{"2":{"97":1}}],["optimise",{"2":{"86":1}}],["optimal",{"2":{"6":1,"63":1}}],["options",{"2":{"14":1,"45":1}}],["optional",{"2":{"4":5,"6":6,"34":1,"37":2,"47":1,"66":2}}],["op",{"2":{"1":3,"6":3,"19":2,"44":1,"136":35}}],["on=2",{"2":{"97":1}}],["on`",{"2":{"97":1}}],["once",{"2":{"86":1,"103":1,"127":1}}],["onto",{"2":{"66":1}}],["ones",{"2":{"144":1}}],["oneunit",{"2":{"40":1}}],["one",{"2":{"1":1,"3":9,"6":14,"23":1,"34":4,"37":2,"39":1,"40":1,"44":1,"45":5,"47":3,"51":1,"52":1,"53":1,"54":32,"56":2,"57":2,"58":1,"65":2,"74":1,"81":1,"86":1,"88":1,"97":18,"102":1,"103":18,"105":2,"106":2,"109":3,"110":2,"111":2,"112":1,"113":1,"115":1,"116":1,"122":1,"126":1,"127":5,"136":1,"144":1,"147":1,"152":1,"160":1,"161":1,"170":1,"175":1}}],["on",{"0":{"170":1},"2":{"1":2,"4":3,"6":11,"9":1,"18":1,"20":1,"23":2,"25":3,"27":3,"29":2,"34":5,"37":3,"39":1,"40":2,"44":3,"45":28,"47":8,"50":1,"51":1,"52":5,"53":1,"54":4,"56":1,"57":2,"63":1,"65":1,"66":3,"69":2,"74":1,"75":7,"77":2,"78":3,"79":3,"80":1,"86":4,"89":6,"91":4,"92":1,"93":1,"97":125,"103":9,"106":7,"108":2,"116":7,"118":2,"119":1,"120":1,"127":3,"129":1,"131":1,"136":15,"137":1,"139":1,"142":1,"143":1,"150":1,"152":1,"158":1,"165":2,"168":1,"170":3,"171":1,"173":1,"174":1,"175":4,"176":1,"177":2,"178":2}}],["only",{"2":{"0":1,"5":1,"6":11,"23":1,"37":2,"39":2,"40":1,"41":1,"44":2,"45":4,"47":3,"50":1,"51":1,"53":1,"54":1,"56":1,"63":3,"66":2,"69":3,"102":3,"103":1,"105":1,"127":2,"136":2,"144":1,"150":1,"151":1,"153":2,"163":1,"166":2,"171":1,"177":1,"178":1}}],["often",{"2":{"170":1}}],["offers",{"2":{"169":1}}],["offer",{"2":{"152":1}}],["offset",{"2":{"34":8,"69":1}}],["off",{"2":{"4":1,"6":1,"45":4,"69":1,"97":6,"136":1}}],["of",{"0":{"61":1},"2":{"1":7,"3":29,"4":66,"5":5,"6":194,"7":2,"9":4,"17":3,"18":5,"19":1,"20":2,"22":1,"23":2,"24":2,"25":1,"26":1,"27":1,"29":3,"33":1,"34":38,"36":5,"37":28,"38":9,"39":1,"40":13,"41":1,"43":3,"44":12,"45":84,"46":5,"47":31,"50":5,"51":12,"52":13,"53":10,"54":48,"56":9,"57":20,"58":5,"62":3,"63":3,"65":6,"66":18,"68":2,"69":19,"71":4,"72":5,"74":6,"75":18,"77":1,"78":5,"79":5,"80":1,"81":2,"82":1,"85":5,"86":1,"88":3,"89":14,"91":1,"92":1,"93":1,"95":2,"96":1,"97":85,"99":1,"100":3,"102":1,"103":13,"105":2,"106":15,"108":3,"109":7,"110":5,"111":1,"112":2,"113":1,"115":4,"116":18,"118":3,"119":6,"120":6,"121":4,"122":1,"123":1,"125":2,"126":3,"127":19,"128":2,"129":3,"131":1,"134":5,"135":2,"136":27,"137":1,"138":1,"142":2,"143":4,"145":4,"147":1,"149":3,"150":2,"151":2,"152":5,"153":2,"156":8,"158":4,"159":2,"160":1,"162":1,"164":2,"166":4,"167":2,"169":6,"170":4,"171":2,"172":1,"173":4,"175":3,"176":4,"177":2}}],["org",{"2":{"51":1,"53":1,"56":1,"97":2,"158":1}}],["organise",{"2":{"10":1}}],["orange",{"2":{"49":1,"65":1,"68":2,"71":2,"88":2,"102":2,"115":2}}],["oro",{"2":{"11":2}}],["originate",{"2":{"57":1}}],["originals",{"2":{"22":1}}],["original",{"2":{"6":4,"18":1,"22":1,"45":10,"50":5,"51":1,"53":1,"57":4,"134":1,"136":3,"141":1,"149":2,"153":1,"155":4,"156":1}}],["orient",{"0":{"13":1},"1":{"14":1,"15":1},"2":{"13":7,"14":12,"45":15,"54":53}}],["orientation",{"0":{"124":1},"1":{"125":1,"126":1},"2":{"6":2,"10":1,"31":1,"37":1,"45":10,"47":2,"51":1,"53":2,"54":2,"56":1,"97":16,"125":1,"156":1}}],["ordered",{"2":{"36":1}}],["order",{"0":{"62":1},"2":{"1":4,"3":1,"4":2,"6":7,"34":1,"36":1,"37":2,"40":1,"45":4,"54":1,"57":1,"62":4,"63":1,"66":2,"69":3,"72":1,"75":1,"85":1,"100":1,"136":2,"147":2,"156":1,"175":1}}],["or",{"0":{"24":1},"2":{"1":11,"3":3,"4":10,"6":54,"18":1,"20":1,"22":1,"23":1,"25":1,"27":1,"29":2,"31":1,"34":4,"37":1,"40":1,"41":1,"43":2,"44":4,"45":24,"46":1,"50":1,"51":1,"52":3,"53":2,"54":9,"56":1,"57":2,"58":1,"63":1,"65":2,"66":4,"69":3,"71":1,"75":1,"77":2,"78":1,"79":1,"80":1,"81":1,"82":1,"88":2,"91":2,"92":3,"93":2,"94":1,"95":1,"96":1,"97":26,"99":2,"100":1,"102":1,"103":2,"105":1,"106":1,"112":1,"113":1,"116":1,"118":2,"122":1,"123":1,"125":2,"126":3,"127":7,"129":3,"131":1,"133":2,"135":1,"136":9,"137":1,"139":1,"141":5,"142":2,"147":2,"148":1,"150":2,"152":2,"153":2,"154":1,"156":3,"158":2,"160":2,"162":1,"164":3,"167":2,"175":1,"177":2}}],["est",{"2":{"177":1}}],["essentially",{"2":{"164":1}}],["especially",{"2":{"6":1,"18":1,"23":1,"127":1}}],["effects",{"2":{"136":3}}],["efficiently",{"2":{"20":1}}],["efficient",{"2":{"6":1,"40":1,"51":2,"53":2,"56":2,"63":1,"139":1}}],["e2",{"2":{"97":4}}],["e1",{"2":{"97":8}}],["euclid",{"2":{"47":2,"66":11,"97":1,"157":1}}],["euclidean",{"2":{"4":1,"6":1,"40":13,"66":6,"153":1}}],["everything",{"2":{"156":1}}],["every",{"2":{"45":1,"69":2,"134":1,"166":1}}],["evenly",{"2":{"176":1}}],["eventually",{"2":{"45":1}}],["even",{"2":{"37":2,"47":1,"54":1,"66":1,"69":1,"129":1,"138":1,"143":1}}],["evaluated",{"2":{"175":1}}],["eval",{"2":{"31":2,"136":2}}],["epsg",{"2":{"170":5,"171":8}}],["eps",{"2":{"34":2,"54":14}}],["eponymous",{"2":{"6":1,"152":1}}],["e",{"2":{"9":1,"22":1,"41":1,"127":1,"134":1,"136":2,"169":2,"170":1,"173":1}}],["ellipsoid",{"2":{"174":1}}],["eltype",{"2":{"127":4}}],["elements",{"2":{"81":1,"82":1,"95":1,"96":1,"103":1,"112":1,"113":1,"122":1,"123":1}}],["element",{"2":{"6":6,"33":1,"45":4,"50":2,"51":1,"53":1,"54":1,"56":3,"151":1,"170":1}}],["elsewhere",{"2":{"50":1}}],["elseif",{"2":{"45":5,"47":7,"51":1,"53":1,"54":14,"56":2,"57":1,"86":3,"97":10,"126":1,"127":2,"145":1,"158":2,"160":2}}],["else",{"2":{"3":6,"6":6,"34":1,"40":2,"45":19,"47":9,"50":1,"52":2,"54":9,"56":1,"57":9,"86":2,"97":17,"103":8,"127":20,"136":8,"139":1,"148":1,"149":1,"156":2,"158":4,"160":2,"161":1,"162":1,"166":1}}],["etc",{"2":{"6":1,"20":2,"36":1,"63":1,"164":1,"173":1}}],["empty",{"2":{"4":2,"6":6,"34":2,"45":2,"51":1,"53":1,"54":2,"56":1,"127":2}}],["embedding",{"0":{"135":1,"146":1}}],["embedded",{"0":{"171":1},"2":{"127":1,"135":3,"168":1,"171":1}}],["embed",{"2":{"0":2,"4":1,"6":1,"135":1,"146":2}}],["errors",{"2":{"31":1,"54":1,"153":1}}],["error",{"0":{"148":1},"2":{"4":1,"6":4,"7":1,"18":1,"31":6,"40":1,"41":4,"45":2,"54":2,"55":1,"69":2,"127":1,"134":1,"141":2,"148":3,"152":5,"160":4,"166":3,"167":1}}],["edgekeys",{"2":{"127":3}}],["edge",{"2":{"3":1,"4":3,"6":4,"20":1,"31":1,"37":1,"43":1,"45":25,"47":13,"51":1,"53":1,"54":6,"56":1,"66":4,"69":1,"77":2,"92":2,"93":1,"97":7,"103":21,"118":2,"119":1,"120":1,"127":7,"167":2}}],["edges`",{"2":{"54":1}}],["edges",{"2":{"0":1,"4":2,"6":9,"45":12,"47":8,"52":3,"54":10,"57":3,"66":3,"68":2,"69":1,"71":1,"77":1,"78":3,"79":7,"80":3,"88":1,"91":3,"94":1,"97":3,"103":20,"115":1,"118":1,"127":22,"167":29}}],["earlier",{"2":{"169":3}}],["earth",{"2":{"6":2,"25":1,"27":1,"152":2,"156":1,"170":2,"175":1}}],["easiest",{"2":{"172":1}}],["easier",{"2":{"163":1,"165":1}}],["easily",{"2":{"129":1}}],["east",{"2":{"47":9}}],["easy",{"2":{"1":1,"6":1,"143":1,"161":1}}],["eachindex",{"2":{"34":1,"126":1,"127":3,"136":2,"157":1,"160":1}}],["each",{"2":{"3":2,"4":3,"6":6,"9":1,"18":2,"20":1,"34":4,"37":2,"38":4,"40":1,"45":5,"47":1,"54":3,"66":1,"69":2,"75":1,"89":1,"97":6,"102":1,"103":3,"106":1,"116":1,"126":1,"127":1,"136":1,"143":2,"156":1,"172":1,"173":1,"176":2,"177":2,"178":1}}],["equatorial",{"2":{"6":6,"152":4}}],["equality",{"2":{"45":1,"54":1,"175":1}}],["equal",{"2":{"3":2,"4":16,"6":19,"34":6,"54":1,"65":1,"66":4,"68":3,"69":22,"77":1,"91":1,"97":15,"102":1,"103":2,"108":2,"118":1,"138":1}}],["equals",{"0":{"67":1,"68":1},"1":{"68":1,"69":1},"2":{"0":17,"4":3,"6":19,"31":1,"34":2,"45":4,"50":2,"54":8,"66":1,"67":1,"68":2,"69":50,"77":1,"91":1,"97":10,"103":2,"108":3,"118":1,"175":1}}],["equivalent",{"2":{"3":1,"4":4,"6":6,"37":1,"45":1,"54":1,"57":1,"69":5,"75":1,"97":1}}],["enable",{"2":{"178":1}}],["enabled",{"2":{"175":1}}],["enabling",{"0":{"178":1}}],["enclosed",{"2":{"97":1}}],["encode",{"2":{"24":1}}],["encompasses",{"2":{"18":1,"97":1}}],["encounters",{"2":{"18":1}}],["en",{"2":{"97":1,"158":1}}],["envelope",{"2":{"54":2}}],["envelopes",{"2":{"54":2}}],["enough",{"2":{"45":1}}],["entirely",{"2":{"97":1}}],["entire",{"2":{"47":1,"97":4}}],["entry",{"2":{"45":11,"52":3,"54":4,"57":3,"127":1}}],["ent",{"2":{"45":19,"50":2}}],["enter",{"2":{"45":4}}],["ensuring",{"2":{"6":1,"150":1,"153":1}}],["ensure",{"2":{"6":3,"40":1,"51":1,"53":1,"56":1,"137":2,"140":1}}],["ensures",{"2":{"6":3,"139":1,"142":3,"145":2}}],["enumerate",{"2":{"13":2,"34":1,"45":10,"47":1,"50":1,"52":1,"57":2,"97":1,"127":2,"145":2,"160":1}}],["enum",{"2":{"6":2,"45":3,"53":3,"97":3}}],["endpt",{"2":{"158":3}}],["endpoints",{"2":{"45":3,"47":1,"52":1,"54":6,"57":1,"66":2,"97":11,"103":2,"105":1}}],["endpoint=3",{"2":{"45":1}}],["endpointtype",{"2":{"45":2}}],["endpoint",{"2":{"3":1,"6":2,"45":27,"53":1,"54":16,"66":2,"74":1,"97":3,"103":2,"156":4,"158":4,"169":1}}],["ending",{"2":{"45":1,"47":1}}],["end",{"2":{"1":1,"6":1,"9":1,"13":4,"14":3,"31":4,"34":18,"37":8,"40":35,"41":3,"44":10,"45":130,"47":43,"50":9,"51":8,"52":12,"53":5,"54":31,"55":1,"56":6,"57":24,"63":3,"66":19,"69":20,"81":2,"82":2,"86":20,"95":2,"96":2,"97":104,"103":21,"108":1,"112":2,"113":2,"118":1,"122":2,"123":2,"126":9,"127":44,"128":4,"129":1,"136":49,"137":1,"139":5,"141":3,"145":18,"147":1,"148":2,"149":4,"152":8,"153":8,"156":7,"157":6,"158":30,"159":3,"160":27,"161":4,"162":4,"164":1,"165":3,"166":4,"167":19}}],["enforce",{"2":{"0":1,"6":2,"166":3}}],["exits",{"2":{"45":1}}],["exit",{"2":{"45":32,"50":2,"52":3,"54":3,"57":2}}],["existingnodes",{"2":{"127":3}}],["existing",{"2":{"45":3,"56":1,"127":1,"170":2,"172":1}}],["exists",{"2":{"45":1,"47":1,"54":1}}],["exist",{"2":{"6":1,"45":1,"54":3,"166":1}}],["excluding",{"2":{"94":1,"97":1,"118":2}}],["exclude",{"2":{"86":9}}],["exclusively",{"2":{"110":1}}],["exclusive",{"2":{"47":1,"54":2}}],["exc",{"2":{"41":2,"148":2,"152":2}}],["excellent",{"2":{"23":1}}],["except",{"2":{"18":1,"19":1}}],["excess",{"2":{"5":1,"6":1,"40":1}}],["exp10",{"2":{"152":1,"156":2}}],["expressed",{"2":{"38":2}}],["express",{"2":{"38":1}}],["experimental",{"2":{"31":3}}],["expect",{"2":{"1":1,"99":1,"147":1}}],["explain",{"2":{"26":1}}],["explanations",{"2":{"26":3}}],["explicitly",{"2":{"6":1,"18":1,"24":1,"34":2,"37":1,"40":1,"41":1,"66":2,"69":1,"148":1,"152":1,"153":1}}],["expose",{"2":{"58":1}}],["exposes",{"2":{"17":1}}],["export",{"2":{"38":1,"150":1,"171":1,"173":1}}],["exponential",{"2":{"9":1}}],["ext2",{"2":{"97":3}}],["ext1",{"2":{"97":3}}],["ext",{"2":{"39":15,"45":10,"47":2,"50":3,"51":8,"53":8,"54":18,"56":8,"57":14,"86":7,"97":7}}],["extrema",{"2":{"127":1,"167":1}}],["extreem",{"2":{"34":10}}],["extracts",{"2":{"63":1}}],["extract",{"2":{"63":1,"127":1,"136":3,"156":1}}],["extra",{"2":{"6":3,"45":1,"56":1,"150":1,"152":2,"153":1}}],["external",{"2":{"37":1,"97":2}}],["exteriors",{"2":{"9":1,"53":2,"56":2,"127":1}}],["exterior",{"2":{"3":4,"4":2,"6":10,"34":1,"36":1,"37":1,"39":1,"40":36,"44":2,"45":4,"51":2,"56":3,"57":14,"66":1,"69":2,"71":1,"72":1,"75":3,"85":1,"89":2,"97":9,"106":2,"115":1,"116":3,"119":3,"120":3,"126":6,"127":6,"139":3,"140":1,"142":1,"146":1,"169":2}}],["extending",{"2":{"103":1}}],["extended",{"2":{"66":1}}],["extensions",{"2":{"58":1,"173":1}}],["extension",{"2":{"1":1,"6":1,"40":1,"41":1,"63":1,"74":1,"128":1,"147":3,"148":2,"152":1,"153":1,"154":1,"173":1}}],["extent=true",{"2":{"146":1}}],["extent=nothing",{"2":{"136":1}}],["extent=",{"2":{"136":3}}],["extent=false",{"2":{"136":1,"156":1}}],["extent=gi",{"2":{"127":3}}],["extent`",{"2":{"133":1,"146":1}}],["extents",{"2":{"4":3,"6":3,"31":5,"47":1,"54":3,"97":5,"103":1,"127":3,"136":2,"146":2,"167":2}}],["extent",{"0":{"146":1},"2":{"0":2,"1":4,"4":3,"6":11,"24":1,"31":2,"39":1,"46":1,"47":1,"54":10,"97":4,"103":2,"127":12,"133":3,"135":4,"136":28,"146":2,"156":1,"165":1,"167":7}}],["exactly",{"2":{"160":1}}],["exactpredicates",{"2":{"7":1,"13":2,"14":2,"31":1}}],["exact",{"2":{"3":5,"6":5,"7":2,"12":1,"13":1,"45":36,"47":6,"50":7,"51":5,"53":5,"54":7,"55":1,"56":5,"57":7,"72":2,"75":3,"77":1,"78":3,"79":3,"80":1,"85":2,"86":1,"89":2,"91":1,"92":3,"93":2,"94":1,"97":24,"100":2,"103":3,"106":2,"108":1,"109":3,"110":1,"111":1,"116":3,"118":1,"119":3,"120":3,"121":1,"127":1,"144":1}}],["examples",{"0":{"151":1,"155":1},"2":{"3":8,"4":1,"6":11,"26":2,"69":1,"72":1,"75":1,"85":1,"86":1,"89":1,"103":1,"106":1,"116":1,"126":2,"167":1}}],["example",{"0":{"39":1,"59":1,"138":1,"144":1,"176":1,"177":1},"1":{"60":1},"2":{"1":3,"3":2,"6":13,"11":1,"20":1,"23":2,"33":1,"36":1,"39":1,"43":1,"44":1,"46":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"65":1,"68":1,"69":1,"71":1,"74":1,"84":1,"86":1,"88":1,"97":1,"99":1,"100":1,"102":1,"105":1,"115":1,"126":1,"127":8,"129":1,"136":2,"138":1,"140":1,"143":1,"144":1,"149":1,"155":1,"156":2,"161":1,"166":1,"176":1,"178":1}}],["either",{"2":{"1":2,"3":1,"6":4,"22":1,"25":1,"27":1,"45":9,"51":1,"53":1,"54":2,"56":1,"57":1,"65":1,"75":1,"97":5,"99":1,"105":1,"106":1,"116":1,"127":1,"136":3,"141":1,"175":1}}],["lj",{"2":{"127":2}}],["lrs",{"2":{"156":2}}],["lr",{"2":{"127":3}}],["lp",{"2":{"97":2}}],["lstart",{"2":{"97":2}}],["ls",{"2":{"97":12}}],["ll",{"2":{"17":1,"39":1,"151":2,"156":1,"170":1,"172":1}}],["l",{"2":{"14":4,"40":6,"86":2,"97":32}}],["lgeos",{"2":{"156":1}}],["lg",{"2":{"13":1,"14":1,"15":2,"62":4,"152":9,"156":17}}],["l305",{"2":{"6":1}}],["loudly",{"2":{"136":1}}],["log10",{"2":{"152":2,"156":4}}],["log",{"2":{"131":3,"132":1,"151":2}}],["location",{"2":{"45":1,"97":6}}],["local",{"2":{"34":3,"37":1,"45":4,"52":1,"57":1,"127":1}}],["loose",{"2":{"137":1}}],["lookup",{"2":{"127":1,"136":1}}],["looks",{"2":{"43":1}}],["look",{"2":{"36":2,"127":2,"138":1,"151":1}}],["looping",{"2":{"127":1}}],["loop",{"2":{"34":1,"40":2,"44":3,"45":8,"47":1,"54":1,"57":1,"97":5,"127":3,"158":1}}],["lower",{"2":{"6":1,"7":1,"127":1,"176":1}}],["lon",{"2":{"6":2,"151":1,"152":2}}],["longitude",{"2":{"170":2}}],["long",{"2":{"6":1,"54":1,"152":1,"177":1}}],["longer",{"2":{"6":3,"150":1,"152":2,"153":1}}],["lots",{"2":{"170":1}}],["lot",{"2":{"6":1,"23":1,"34":1,"37":1,"44":1,"47":1,"66":1,"69":1,"103":1,"129":1,"151":1,"166":2}}],["load",{"2":{"136":2,"156":1,"168":2}}],["loading",{"2":{"41":1,"148":1,"152":1}}],["loads",{"2":{"5":1,"6":1,"40":1}}],["loaded",{"2":{"1":1,"41":3,"147":1,"148":2,"152":2}}],["laptop",{"2":{"177":1}}],["land",{"2":{"170":8}}],["layers",{"2":{"134":1}}],["label",{"2":{"14":4,"15":2,"60":2,"62":1,"65":1,"127":3,"151":2,"155":2,"156":2}}],["labels",{"2":{"13":2,"127":1}}],["lazily",{"2":{"6":1,"131":1,"136":1}}],["latitude",{"2":{"170":2}}],["later",{"2":{"37":1,"62":1,"127":1}}],["lat",{"2":{"6":3,"151":1,"152":3}}],["larger",{"2":{"45":1,"56":1,"160":1}}],["large",{"2":{"6":8,"40":1,"156":2,"173":1,"177":1}}],["lastindex",{"2":{"160":1}}],["last",{"2":{"4":3,"6":3,"9":1,"34":11,"37":2,"39":2,"45":9,"47":4,"66":7,"69":5,"97":20,"108":1,"127":8,"138":1,"145":2,"158":1}}],["lt",{"2":{"6":6,"54":4,"151":1}}],["len",{"2":{"158":7}}],["length",{"2":{"0":1,"5":1,"6":5,"9":1,"18":1,"40":32,"42":1,"43":1,"44":22,"45":11,"47":1,"50":2,"51":2,"53":1,"54":1,"56":1,"57":1,"97":1,"127":10,"136":3,"145":2,"151":1,"157":1,"158":1,"159":1,"160":7}}],["legend",{"2":{"156":4}}],["le",{"2":{"97":10}}],["leaving",{"2":{"138":1}}],["leaf",{"2":{"136":4}}],["leading",{"2":{"169":1}}],["lead",{"2":{"54":1,"138":1}}],["least",{"2":{"3":4,"6":4,"45":1,"54":1,"57":2,"97":14,"103":6,"106":1,"109":3,"110":2,"111":2,"112":1,"113":1,"116":1,"122":1,"126":1}}],["leftover",{"2":{"45":1}}],["left=1",{"2":{"45":1}}],["left",{"2":{"40":1,"45":5,"126":1,"127":2,"158":17,"160":5,"175":1}}],["lets",{"2":{"37":1}}],["let",{"2":{"36":1,"43":1,"97":1,"127":3,"151":1,"169":6,"170":4,"171":3,"172":2,"173":2,"178":1}}],["levels",{"2":{"6":1,"127":1,"134":1,"164":1}}],["level",{"2":{"6":1,"7":1,"9":1,"18":2,"20":1,"29":1,"134":1,"136":2,"137":1,"139":1,"141":4,"142":1,"143":1,"145":2,"171":2}}],["less",{"2":{"3":1,"6":7,"34":1,"37":1,"40":1,"44":1,"47":1,"66":1,"69":1,"86":1,"103":1,"127":1,"156":1,"157":1}}],["l289",{"2":{"6":1}}],["l2",{"2":{"3":4,"4":4,"6":8,"68":4,"69":12,"71":8,"85":2,"88":5,"102":4,"105":3,"106":2,"115":8}}],["l195",{"2":{"6":1}}],["l177",{"2":{"6":1}}],["l1",{"2":{"3":6,"4":4,"6":10,"68":4,"69":12,"71":8,"74":4,"75":2,"84":4,"85":2,"88":5,"102":4,"105":3,"106":2,"115":8}}],["li",{"2":{"127":2}}],["lie",{"2":{"54":1}}],["lies",{"2":{"45":3,"176":1}}],["limitations",{"2":{"54":1}}],["limits",{"2":{"39":1}}],["limited",{"2":{"6":1,"150":1,"153":1}}],["library",{"2":{"50":1,"173":1}}],["libraries",{"2":{"37":1,"143":1,"173":1}}],["libgeos",{"2":{"6":2,"13":1,"14":1,"15":1,"23":1,"37":1,"41":5,"62":1,"128":1,"152":7,"156":4,"166":2}}],["little",{"2":{"26":1}}],["literate",{"2":{"26":1,"31":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"148":1,"149":1,"153":1,"160":1,"161":1,"162":1,"166":1,"167":1}}],["lift",{"2":{"14":2}}],["lin",{"2":{"152":5}}],["linked",{"2":{"58":1}}],["linrange",{"2":{"13":2,"14":5,"39":2,"65":1,"127":2,"152":1,"156":2}}],["linering",{"2":{"170":1}}],["linewidth",{"2":{"36":1,"169":1}}],["linesegment",{"2":{"126":2,"153":1}}],["lines",{"0":{"78":1,"92":1,"109":1,"119":1},"2":{"3":1,"4":4,"6":5,"45":3,"49":1,"54":9,"60":1,"61":2,"62":2,"65":1,"68":4,"69":4,"71":3,"74":1,"75":1,"84":2,"86":1,"88":3,"97":2,"99":3,"102":4,"103":2,"105":4,"115":3,"116":1,"127":3,"154":1,"169":4,"174":2}}],["linestrings",{"2":{"4":2,"6":2,"9":1,"69":2,"125":1,"137":1,"169":1}}],["linestringtrait",{"2":{"3":2,"4":4,"6":9,"11":3,"34":1,"44":4,"53":2,"66":2,"69":8,"77":1,"78":4,"79":1,"86":6,"91":1,"92":5,"103":4,"108":1,"109":4,"110":1,"118":1,"119":4,"120":1,"134":1,"141":2,"142":1,"153":2,"164":2}}],["linestring",{"2":{"3":5,"4":6,"6":15,"18":1,"20":1,"34":2,"44":2,"66":4,"68":2,"69":2,"71":2,"72":1,"77":1,"78":3,"85":2,"88":2,"89":1,"91":1,"92":4,"97":2,"102":2,"108":1,"109":3,"110":1,"115":2,"116":1,"118":1,"119":4,"120":1,"126":7,"136":4,"167":3,"169":5,"174":1}}],["linetrait",{"2":{"3":2,"4":4,"6":6,"34":1,"45":2,"50":2,"53":2,"66":2,"69":8,"77":1,"78":4,"79":1,"91":1,"92":5,"103":4,"108":1,"109":4,"110":1,"118":1,"119":4,"120":1}}],["line2",{"2":{"3":3,"6":7,"53":2,"54":2,"86":5,"99":3,"100":2,"103":3,"126":5}}],["line1",{"2":{"3":4,"6":8,"53":2,"54":2,"86":5,"99":3,"100":2,"103":5,"126":5}}],["linea",{"2":{"1":1,"6":1,"161":1}}],["linearmap",{"2":{"156":1}}],["linearalgebra",{"2":{"31":1}}],["linear",{"2":{"4":7,"6":10,"9":1,"37":2,"40":1,"43":1,"44":3,"47":1,"54":1,"66":5,"69":8,"79":1,"97":2,"109":1,"110":2,"119":1,"125":1,"136":2,"139":3,"151":5,"152":3,"153":4}}],["linearr",{"2":{"1":1,"6":1,"161":1}}],["linearrings",{"2":{"9":1,"93":1,"127":6,"137":1,"169":1}}],["linearringtrait",{"2":{"4":4,"6":6,"11":3,"34":3,"37":2,"44":4,"45":4,"53":2,"66":2,"69":8,"77":1,"78":1,"79":4,"91":1,"92":2,"93":3,"108":1,"109":1,"110":4,"118":1,"119":1,"120":4,"141":1,"153":2,"156":1,"164":2}}],["linearring",{"2":{"1":10,"3":2,"4":1,"6":15,"34":2,"44":2,"45":1,"63":1,"66":1,"77":1,"79":3,"91":1,"92":1,"93":2,"97":2,"103":4,"108":1,"109":1,"110":3,"118":1,"120":4,"126":1,"127":3,"136":5,"137":1,"138":6,"139":1,"144":13,"156":1,"161":8,"169":24,"170":6,"171":8,"176":2}}],["linearsegments",{"2":{"0":1,"6":4,"150":1,"151":1,"152":3,"153":5}}],["line",{"0":{"97":1},"2":{"0":1,"3":13,"4":9,"6":52,"23":1,"33":2,"34":7,"43":3,"44":10,"45":12,"47":8,"49":6,"50":18,"53":8,"54":67,"57":6,"66":11,"69":5,"72":2,"74":2,"75":1,"77":2,"78":11,"79":8,"84":1,"86":11,"89":2,"91":1,"92":9,"93":4,"97":141,"99":2,"100":2,"102":3,"103":12,"105":2,"106":2,"108":1,"109":10,"110":3,"116":2,"118":2,"119":10,"120":7,"126":6,"127":2,"153":1,"156":1,"157":1,"158":4,"159":1,"167":3,"169":3}}],["lineorientation",{"2":{"0":1,"6":2,"53":2}}],["lists",{"2":{"20":1,"45":3,"103":1}}],["listed",{"2":{"6":1,"34":1,"156":1}}],["list",{"2":{"6":16,"9":1,"34":20,"45":233,"50":20,"51":14,"52":8,"53":13,"54":5,"56":13,"57":1,"177":2}}],["likely",{"2":{"134":1}}],["like",{"0":{"55":1},"2":{"1":2,"6":9,"17":1,"18":2,"19":1,"20":1,"23":1,"24":1,"29":1,"37":1,"39":1,"40":1,"43":1,"47":1,"51":1,"53":1,"56":1,"63":1,"65":1,"66":1,"69":1,"129":2,"136":2,"141":2,"142":1,"150":1,"151":1,"164":2,"170":2}}],["iah",{"2":{"174":2}}],["image",{"2":{"127":1}}],["impossible",{"2":{"50":1,"102":1}}],["important",{"2":{"151":1}}],["import",{"2":{"1":3,"6":5,"13":2,"14":2,"15":1,"31":7,"33":1,"36":1,"41":1,"43":1,"46":1,"50":1,"51":1,"53":1,"54":1,"56":1,"65":1,"68":1,"69":1,"71":1,"72":1,"74":1,"75":1,"84":1,"85":1,"86":1,"88":1,"89":1,"99":1,"100":1,"102":1,"103":1,"105":1,"106":1,"115":1,"116":1,"126":3,"136":2,"148":1,"152":2,"155":2,"156":3,"161":2,"167":1,"168":5}}],["implements",{"2":{"166":1}}],["implementing",{"2":{"6":1,"156":1}}],["implement",{"2":{"6":1,"17":1,"23":1,"34":1,"37":1,"40":1,"44":1,"47":1,"63":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1,"129":1,"140":1,"141":3,"142":1}}],["implementation",{"0":{"34":1,"37":1,"44":1,"47":1,"50":1,"63":1,"66":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"133":1,"139":1,"145":1,"153":1},"2":{"6":1,"34":3,"37":3,"40":1,"44":3,"47":3,"56":1,"66":3,"69":3,"72":1,"75":2,"85":1,"89":2,"100":1,"103":3,"106":2,"116":2,"127":2,"128":1,"147":1,"156":1,"166":1}}],["implementations",{"2":{"6":1,"75":1,"89":1,"106":1,"116":1,"128":1,"154":1,"166":3}}],["implemented",{"0":{"128":1},"2":{"1":1,"6":2,"31":1,"37":1,"40":3,"50":2,"52":2,"54":2,"57":2,"63":1,"66":2,"128":1,"129":2,"141":2,"147":1,"154":1}}],["improvements",{"2":{"9":2,"10":1}}],["improve",{"2":{"4":1,"6":1,"146":1}}],["i=2",{"2":{"126":1}}],["ipoints",{"2":{"97":4}}],["ip",{"2":{"69":2}}],["ipt",{"2":{"45":8}}],["ihole",{"2":{"69":2}}],["ih",{"2":{"57":20}}],["i2",{"2":{"47":2}}],["i1",{"2":{"47":2}}],["ii",{"2":{"45":8}}],["io",{"2":{"41":5,"148":5,"152":5}}],["i+1",{"2":{"40":8,"127":1,"158":2,"160":1}}],["i",{"2":{"9":1,"13":4,"22":1,"34":14,"37":1,"40":16,"45":28,"47":4,"52":2,"56":2,"57":4,"66":2,"69":8,"86":7,"97":28,"126":14,"127":17,"136":14,"153":2,"157":3,"158":12,"160":28,"167":2,"169":2,"170":1,"177":3}}],["id",{"2":{"172":1}}],["identical",{"2":{"136":1,"144":1}}],["identity",{"2":{"127":4,"136":2,"146":1}}],["ideal",{"2":{"127":1}}],["idea",{"2":{"6":1,"20":1,"25":1,"27":1,"40":1,"129":1}}],["idx`",{"2":{"45":1}}],["idx",{"2":{"34":6,"45":167,"47":9,"50":23,"51":5,"53":5,"56":2,"145":34,"158":51}}],["id=",{"2":{"6":2}}],["ignored",{"2":{"6":1,"127":1}}],["ignore",{"2":{"6":1,"127":2}}],["i>",{"2":{"6":2}}],["i>method",{"2":{"6":2}}],["innerjoin",{"2":{"176":1,"177":1}}],["inner",{"2":{"97":6,"136":3,"175":1}}],["inline",{"2":{"97":4,"126":1,"136":21,"165":2}}],["in=1",{"2":{"97":1}}],["in`",{"2":{"97":1}}],["inject",{"0":{"55":1},"2":{"148":1}}],["inaccuracies",{"2":{"54":1}}],["ind",{"2":{"177":2}}],["individual",{"2":{"171":1}}],["indicate",{"2":{"136":1}}],["indicates",{"2":{"20":1}}],["indices",{"2":{"45":4,"136":4,"160":16}}],["indeed",{"2":{"138":1}}],["index",{"2":{"40":8,"45":11,"97":1,"136":1,"158":1}}],["inds",{"2":{"127":3}}],["inplace",{"2":{"40":1}}],["inputs",{"2":{"6":1,"45":1,"69":1,"72":1,"85":1,"100":1,"160":1}}],["input",{"2":{"6":12,"34":1,"50":1,"51":1,"53":1,"54":1,"56":1,"127":1,"129":1,"152":3,"153":2,"157":1,"158":1,"159":1,"170":1}}],["inbounds",{"2":{"40":16,"66":5,"97":1}}],["inspiration",{"2":{"50":1}}],["inspired",{"2":{"49":1,"50":2}}],["inside",{"2":{"34":3,"43":1,"45":3,"47":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":2,"65":3,"66":1,"77":1,"97":1,"115":1,"118":1,"127":2}}],["insertion",{"2":{"45":1}}],["insert",{"2":{"34":1,"158":1}}],["instability",{"2":{"24":2}}],["instantiating",{"2":{"20":1}}],["instead",{"2":{"18":1,"24":1}}],["instructs",{"2":{"6":1,"166":2}}],["init=nothing",{"2":{"136":1}}],["init=typemax",{"2":{"66":2}}],["init=zero",{"2":{"37":1,"47":1}}],["initial",{"2":{"54":2,"152":1}}],["initially",{"2":{"45":1}}],["initialize",{"2":{"40":3,"44":2,"45":1,"54":1}}],["init",{"2":{"19":1,"31":1,"34":1,"44":2,"136":30,"152":4}}],["incorrect",{"2":{"137":1,"138":1}}],["increase",{"2":{"45":1,"97":1}}],["increasing",{"2":{"6":1,"156":1}}],["increment",{"2":{"40":5}}],["including",{"2":{"34":1,"45":2,"54":1,"66":1,"77":1,"78":1,"79":1,"80":1,"97":2}}],["include",{"2":{"31":41,"34":1,"45":1,"58":1,"66":2,"156":2,"165":1,"171":2,"172":1}}],["included",{"2":{"6":2,"57":2,"142":2,"145":2,"171":1}}],["includes",{"2":{"4":2,"6":2,"57":1,"66":2,"69":1,"97":1}}],["incircle",{"0":{"16":1}}],["investigate",{"2":{"127":1}}],["investigating",{"0":{"62":1}}],["inverted",{"2":{"6":1,"63":1}}],["invalid",{"2":{"20":1,"52":2,"138":1,"143":1,"144":1}}],["invoke",{"2":{"20":1}}],["involved",{"2":{"129":1}}],["involve",{"2":{"20":1}}],["involving",{"2":{"6":3,"51":1,"53":1,"56":1}}],["invocation",{"2":{"18":1}}],["ing",{"2":{"1":1,"6":2,"40":1,"161":1}}],["intr",{"2":{"45":28,"47":9,"50":16,"54":8}}],["intr2",{"2":{"45":2,"54":14}}],["intr1",{"2":{"45":3,"54":21,"97":2}}],["intrs",{"2":{"45":10,"54":5}}],["introduction",{"0":{"27":1},"1":{"28":1,"29":1,"30":1}}],["introducing",{"2":{"24":1}}],["introduces",{"2":{"24":1}}],["int",{"2":{"45":6,"57":7,"86":7,"153":1,"156":1,"158":5,"159":1,"160":1}}],["integrate",{"2":{"37":1}}],["integrating",{"2":{"37":1}}],["integrals",{"2":{"36":1}}],["integral",{"2":{"36":1}}],["intended",{"2":{"6":1,"141":2,"142":1}}],["intermediate",{"2":{"47":1}}],["inter2",{"2":{"47":15}}],["inter1",{"2":{"47":23}}],["interpreted",{"2":{"40":1}}],["interpolation",{"2":{"5":1,"6":1,"39":1,"40":2,"150":1}}],["interpolated",{"2":{"5":3,"6":3,"40":17,"150":1}}],["interpolate",{"2":{"0":2,"5":2,"6":4,"38":1,"39":2,"40":25}}],["interest",{"2":{"40":1,"66":1}}],["internal",{"2":{"39":1}}],["internals",{"2":{"24":1}}],["inter",{"2":{"6":3,"45":21,"50":1,"51":1,"53":5,"54":4}}],["interface",{"0":{"141":1},"2":{"6":3,"20":1,"58":1,"63":1,"136":1,"140":1,"141":4,"142":1,"156":1,"170":1}}],["interacted",{"2":{"97":1}}],["interaction",{"0":{"97":1},"2":{"97":2}}],["interactions",{"2":{"45":1,"57":3,"97":15}}],["interactive",{"2":{"13":1,"14":1}}],["interacting",{"2":{"6":1,"53":1,"97":2}}],["interacts",{"2":{"3":1,"6":1,"97":3,"105":1,"106":1,"109":3,"110":1,"111":1}}],["interact",{"2":{"3":2,"6":2,"56":1,"57":1,"88":1,"97":5,"100":1,"105":1,"106":1,"108":1,"109":2,"110":2,"111":1}}],["interior",{"2":{"3":6,"6":7,"34":9,"36":1,"40":7,"44":5,"45":1,"57":18,"71":1,"72":1,"74":1,"75":3,"78":5,"79":1,"80":2,"84":2,"85":1,"86":1,"89":2,"91":2,"92":6,"93":3,"97":15,"105":1,"106":3,"109":1,"110":2,"111":2,"115":1,"116":3,"121":2,"126":2,"139":1,"142":1}}],["interiors",{"2":{"3":6,"6":7,"40":20,"71":1,"72":1,"74":1,"84":1,"85":1,"88":1,"89":1,"94":1,"97":5,"99":1,"100":1,"105":1,"106":1,"108":1,"109":2,"110":1,"115":1,"116":1,"119":3,"120":3}}],["intersectingpolygons",{"2":{"6":3}}],["intersecting",{"0":{"143":1},"1":{"144":1,"145":1},"2":{"6":4,"31":1,"45":2,"57":2,"142":4,"143":1,"145":4}}],["intersections",{"0":{"54":1},"2":{"45":2,"47":2,"52":1,"53":2,"54":1,"57":1,"97":2}}],["intersection",{"0":{"53":1,"98":1},"1":{"99":1,"100":1},"2":{"0":2,"3":3,"6":19,"9":1,"15":4,"23":1,"31":1,"45":38,"47":6,"50":3,"51":4,"52":4,"53":15,"54":73,"56":2,"57":2,"86":2,"97":6,"99":1,"103":5}}],["intersect",{"2":{"3":8,"6":11,"45":4,"47":3,"51":2,"53":1,"54":1,"56":1,"57":5,"71":1,"72":2,"74":1,"75":1,"85":1,"89":1,"92":1,"94":1,"97":4,"99":2,"103":1,"115":1,"116":2,"119":3,"120":3,"144":1,"145":4}}],["intersects",{"0":{"99":1},"2":{"0":2,"3":3,"6":6,"31":1,"45":1,"54":2,"57":2,"86":2,"98":1,"99":4,"100":4,"103":5,"121":1,"145":2,"175":1}}],["into",{"2":{"5":1,"6":7,"17":1,"26":1,"34":1,"37":1,"40":1,"44":4,"45":2,"50":1,"51":1,"53":1,"97":1,"127":4,"131":1,"136":6,"145":1,"156":1,"164":1,"167":2,"169":2,"175":1}}],["int64",{"2":{"1":6,"6":6,"138":6,"157":1,"158":1,"160":1,"161":6,"169":14}}],["info",{"2":{"150":1}}],["information",{"0":{"171":1},"2":{"6":1,"29":1,"40":1,"45":2,"46":1,"54":1,"63":1,"97":1,"168":1,"171":3,"173":2}}],["infinity",{"2":{"97":1,"103":1}}],["inf",{"2":{"1":1,"9":1,"50":2,"157":1,"160":3}}],["in",{"0":{"23":1},"2":{"1":6,"3":3,"4":1,"5":4,"6":51,"7":1,"9":2,"13":6,"14":2,"17":2,"18":4,"20":1,"23":3,"24":2,"25":1,"26":3,"27":1,"29":1,"30":1,"31":2,"34":7,"36":1,"37":3,"38":2,"40":22,"41":1,"43":2,"44":5,"45":72,"47":31,"50":6,"51":9,"52":3,"53":5,"54":29,"56":11,"57":28,"62":1,"63":3,"65":6,"66":6,"68":1,"69":17,"71":2,"72":1,"75":10,"78":1,"79":1,"80":1,"81":1,"82":1,"85":1,"86":7,"89":9,"91":1,"92":1,"93":1,"95":1,"96":1,"97":135,"99":2,"100":1,"102":1,"103":11,"105":1,"106":11,"110":1,"112":1,"113":1,"115":1,"116":10,"119":3,"120":3,"122":1,"123":1,"126":4,"127":10,"128":3,"129":1,"131":3,"134":2,"135":1,"136":12,"140":1,"141":1,"142":2,"143":1,"145":7,"146":1,"147":3,"148":1,"149":2,"150":2,"151":2,"152":14,"153":7,"154":1,"156":5,"157":2,"158":4,"159":1,"160":5,"161":2,"162":1,"163":4,"164":1,"165":1,"166":4,"167":8,"168":1,"169":2,"170":6,"173":2,"175":4,"176":3,"177":1,"178":1}}],["itererable",{"2":{"167":1}}],["iter",{"2":{"136":31}}],["iterate",{"2":{"40":2,"134":1,"136":5}}],["iteration",{"2":{"37":1}}],["iterators",{"2":{"13":1,"40":1,"45":5,"47":3,"53":1,"57":2,"127":1,"136":11,"145":6,"153":1}}],["iterator",{"2":{"6":2,"45":4,"53":2,"131":2,"136":2}}],["iterabletype",{"2":{"136":10}}],["iterable",{"2":{"4":1,"6":3,"18":1,"37":1,"47":1,"63":1,"131":1,"136":37,"169":1}}],["iterables",{"2":{"1":2,"6":2,"22":1,"136":6}}],["ith",{"2":{"45":3,"57":7}}],["itself",{"2":{"47":1,"126":1,"134":1}}],["its",{"2":{"5":1,"6":10,"18":1,"36":1,"40":1,"45":2,"47":4,"57":1,"78":1,"131":1,"136":1,"140":1,"156":1,"157":1,"158":1,"159":3,"175":1}}],["it",{"2":{"1":4,"4":1,"6":19,"9":1,"18":11,"19":2,"20":1,"22":1,"29":3,"30":1,"33":1,"34":1,"36":2,"37":3,"39":1,"41":1,"44":2,"45":2,"46":1,"47":2,"51":1,"52":1,"53":1,"54":4,"56":1,"57":3,"62":2,"63":2,"66":3,"69":1,"74":2,"77":3,"91":3,"97":14,"102":1,"103":1,"108":2,"118":3,"125":1,"126":2,"127":4,"129":3,"131":3,"134":3,"135":1,"136":15,"138":1,"139":1,"140":1,"142":1,"143":1,"147":5,"151":2,"152":1,"156":1,"158":1,"163":1,"164":2,"165":1,"166":7,"170":3,"171":3,"173":3,"177":2,"178":2}}],["iff",{"2":{"136":1}}],["if",{"0":{"55":1},"2":{"1":5,"3":17,"4":19,"5":1,"6":74,"18":1,"22":2,"33":1,"34":15,"36":1,"37":6,"40":5,"41":3,"44":1,"45":95,"47":36,"50":8,"51":13,"52":12,"53":9,"54":44,"56":10,"57":22,"63":3,"65":2,"66":8,"68":2,"69":35,"71":1,"72":1,"74":1,"75":2,"77":4,"78":3,"79":3,"80":2,"81":1,"82":1,"84":1,"85":1,"86":9,"88":1,"89":3,"91":5,"92":4,"93":2,"94":2,"95":1,"96":1,"97":132,"99":1,"100":1,"102":4,"103":16,"105":1,"106":2,"108":4,"109":3,"110":2,"111":2,"112":1,"113":1,"115":1,"116":2,"118":5,"119":3,"120":3,"121":1,"122":1,"123":1,"126":5,"127":35,"131":1,"134":1,"136":21,"139":1,"141":1,"142":2,"143":1,"145":12,"146":1,"147":3,"148":2,"149":1,"152":6,"153":2,"156":1,"158":12,"160":12,"161":1,"162":1,"165":1,"166":2,"170":1,"173":1,"176":2,"177":1}}],["isolate",{"2":{"156":1}}],["isodd",{"2":{"50":1}}],["istable",{"2":{"136":2}}],["isequal",{"2":{"127":1}}],["iseven",{"2":{"97":1}}],["isempty",{"2":{"37":1,"40":4,"47":1,"51":1,"52":2,"53":1,"127":1,"141":1,"158":1}}],["isparallel",{"2":{"97":1,"126":8}}],["is3d",{"2":{"69":1,"136":1,"149":1,"161":1,"162":1,"167":10}}],["issue",{"2":{"45":1}}],["issues",{"2":{"25":1,"27":1}}],["isa",{"2":{"18":1,"40":9,"136":4,"167":1}}],["isnothing",{"2":{"41":1,"45":9,"50":1,"52":2,"54":2,"57":2,"69":1,"127":1,"148":1,"152":1,"156":1,"157":1,"158":5,"159":1,"160":6}}],["isn",{"2":{"6":1,"37":1,"45":4,"47":1,"50":1,"52":1,"54":3,"57":2,"66":3,"69":1,"74":1,"97":9,"103":1,"156":1,"166":1}}],["isconcave",{"0":{"126":1},"2":{"0":1,"6":2,"62":1,"124":1,"126":3}}],["isclockwise",{"0":{"125":1},"2":{"0":1,"6":2,"47":1,"124":1,"126":5,"127":2}}],["is",{"0":{"25":1,"33":1,"36":2,"43":1,"46":1,"49":1,"65":2,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"134":1},"2":{"0":1,"1":10,"3":8,"4":43,"5":1,"6":108,"9":3,"11":1,"13":1,"14":1,"18":3,"19":1,"20":1,"22":3,"23":2,"25":2,"27":2,"33":1,"34":19,"36":7,"37":19,"38":2,"39":2,"40":15,"41":3,"43":2,"44":5,"45":82,"46":3,"47":22,"49":1,"50":2,"51":4,"52":13,"53":4,"54":40,"56":7,"57":20,"58":1,"62":5,"63":4,"65":8,"66":23,"69":13,"71":2,"72":3,"74":4,"75":4,"77":7,"78":3,"79":3,"80":1,"81":1,"82":1,"85":3,"86":3,"88":1,"89":5,"91":9,"92":4,"93":2,"94":1,"95":1,"96":1,"97":91,"100":2,"102":3,"103":12,"106":4,"108":2,"115":4,"116":5,"118":8,"119":3,"120":3,"121":1,"122":2,"123":1,"125":2,"126":7,"127":11,"128":1,"129":2,"131":1,"134":3,"135":1,"136":24,"137":7,"138":2,"139":1,"140":3,"141":2,"142":1,"143":4,"144":1,"145":2,"147":7,"148":2,"149":1,"150":3,"151":3,"152":9,"153":6,"155":1,"156":4,"157":1,"158":2,"159":1,"161":2,"163":1,"164":1,"165":1,"166":3,"169":4,"170":5,"171":3,"172":1,"173":3,"175":2,"176":5,"177":2}}],["cpu",{"2":{"177":1}}],["cp",{"2":{"174":1}}],["cy",{"2":{"126":2}}],["cyan",{"2":{"41":1,"148":1,"152":1}}],["cx",{"2":{"126":2}}],["cdot",{"2":{"126":1}}],["cs",{"2":{"97":9}}],["cshape",{"2":{"43":3}}],["cw",{"2":{"47":2}}],["cb",{"2":{"39":1,"62":1,"127":1}}],["cgrad",{"2":{"39":1}}],["cgal",{"2":{"39":1}}],["c",{"2":{"37":1,"43":1,"47":4,"50":5,"55":3,"97":24,"152":1}}],["cleaner",{"2":{"63":1}}],["cleanest",{"2":{"63":1}}],["clear",{"2":{"46":1}}],["clearly",{"2":{"33":1,"36":1,"65":1}}],["clamped",{"2":{"54":18}}],["clamp",{"2":{"34":1,"54":1}}],["classified",{"2":{"45":1}}],["classify",{"2":{"45":4}}],["class",{"2":{"6":1,"127":1}}],["clipping",{"0":{"45":1,"51":1,"52":1,"54":1,"56":1,"57":1},"2":{"6":1,"9":1,"31":8,"45":9,"50":3,"51":1,"53":1,"56":1,"143":1}}],["closure",{"2":{"136":2}}],["closing",{"2":{"34":1}}],["close",{"2":{"34":5,"45":2,"47":1,"50":1,"54":1,"66":9,"127":1,"138":1,"139":4}}],["closest",{"2":{"4":3,"6":3,"54":2,"65":1,"66":6}}],["closed2",{"2":{"69":2}}],["closed1",{"2":{"69":2}}],["closed",{"0":{"137":1},"1":{"138":1,"139":1},"2":{"4":4,"6":11,"9":1,"31":1,"34":6,"37":3,"44":3,"45":1,"47":1,"54":1,"57":3,"69":21,"77":2,"78":5,"79":5,"91":2,"92":5,"93":3,"97":52,"109":5,"110":1,"118":3,"119":5,"120":5,"126":1,"127":1,"137":1,"138":1,"139":2,"140":1,"142":1,"169":1}}],["closedring",{"2":{"0":1,"6":1,"137":1,"138":1,"139":4,"140":1,"141":1,"142":1}}],["clockwise",{"2":{"4":1,"6":4,"9":1,"36":1,"37":1,"47":7,"62":1,"125":2,"126":3,"127":1}}],["ceil",{"2":{"153":1}}],["ce",{"2":{"97":11}}],["certainly",{"2":{"54":1}}],["certain",{"2":{"17":1,"18":1,"26":1,"29":1}}],["central",{"2":{"45":1}}],["centroids",{"2":{"43":1,"44":1}}],["centroid",{"0":{"42":1,"43":1},"1":{"43":1,"44":1},"2":{"0":4,"4":2,"6":6,"31":1,"42":3,"43":4,"44":38,"129":1,"156":4}}],["cent",{"2":{"43":2}}],["centered",{"2":{"45":1}}],["center",{"2":{"6":1,"43":1,"127":1}}],["cells",{"2":{"127":1}}],["cell",{"2":{"6":4,"46":3,"47":28,"127":2}}],["chunks",{"2":{"136":8}}],["chunk",{"2":{"136":12}}],["chose",{"2":{"24":1,"127":1}}],["choose",{"2":{"6":1,"63":1,"127":2}}],["changes",{"2":{"45":1}}],["changed",{"2":{"45":1}}],["change",{"2":{"24":1,"45":1,"62":1}}],["chain=2",{"2":{"45":1}}],["chain=1",{"2":{"45":1}}],["chain",{"2":{"45":66,"52":3,"54":4,"57":4,"62":2}}],["chains",{"2":{"20":1,"45":1}}],["chairmarks",{"2":{"13":1,"152":1,"156":1}}],["children",{"2":{"156":1}}],["child",{"2":{"6":2,"131":2,"136":7}}],["checkargs",{"2":{"157":1,"158":1,"159":1,"160":1}}],["checking",{"2":{"69":1,"158":1}}],["checks",{"0":{"86":1,"98":1},"1":{"99":1,"100":1},"2":{"41":1,"45":1,"54":1,"68":1,"71":1,"74":1,"84":1,"88":1,"97":5,"99":1,"102":1,"103":1,"105":1,"115":1,"176":1}}],["check",{"2":{"4":1,"6":1,"7":1,"44":1,"45":8,"47":3,"50":1,"51":1,"54":4,"55":1,"56":1,"69":8,"97":11,"127":5,"131":3,"132":1,"144":1,"146":1,"151":2,"158":1,"160":1}}],["checked",{"2":{"4":1,"6":1,"45":1,"54":1,"62":1,"97":1,"146":1}}],["c2",{"2":{"6":3,"15":2,"66":3,"69":14,"127":21}}],["c1",{"2":{"6":3,"15":2,"66":4,"69":13,"127":26}}],["ctor",{"2":{"1":1,"6":1,"161":1}}],["categorize",{"2":{"50":1}}],["categorical",{"2":{"39":1}}],["came",{"2":{"50":1}}],["case",{"2":{"34":1,"38":2,"44":1,"45":1,"51":1,"54":2,"57":1,"97":16,"136":1,"178":1}}],["cases",{"2":{"6":1,"40":1,"50":2,"97":3,"134":1,"136":5}}],["cause",{"2":{"18":1,"23":1,"158":1}}],["careful",{"2":{"40":1,"134":1}}],["care",{"2":{"17":1}}],["carried",{"2":{"6":1,"166":1}}],["cairomakie",{"2":{"13":1,"33":1,"36":1,"39":2,"43":1,"46":1,"49":1,"60":1,"61":1,"62":1,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"151":1,"152":1,"156":1,"168":1,"174":1,"176":1,"177":1}}],["california",{"2":{"177":1}}],["callable",{"2":{"127":4,"141":1}}],["calling",{"2":{"45":2,"136":1}}],["calls",{"2":{"45":1,"54":1,"57":1,"66":1,"75":1,"89":1,"106":1,"116":1,"134":1,"136":1,"153":1}}],["call",{"2":{"18":1,"24":1,"37":1,"44":1,"136":4,"154":1}}],["called",{"2":{"6":2,"44":3,"45":1,"136":1,"139":1,"141":1,"142":1,"166":1,"170":1}}],["calculation",{"2":{"54":1}}],["calculations",{"2":{"6":1,"25":2,"27":2,"54":1,"152":1}}],["calculating",{"2":{"4":1,"6":1,"18":1,"45":1,"146":1}}],["calculated",{"2":{"6":1,"43":2,"47":1,"54":2,"66":1,"136":4}}],["calculates",{"2":{"4":2,"6":6,"37":1,"40":2,"47":1,"54":2,"56":1,"66":2,"152":1,"159":1}}],["calculate",{"2":{"1":2,"5":1,"6":6,"11":1,"34":3,"40":3,"44":1,"47":1,"54":1,"97":1,"127":1,"133":1,"136":3}}],["calc",{"2":{"1":2,"6":4,"24":1,"34":4,"133":1,"135":1,"136":15,"146":1,"156":2,"165":1}}],["cache",{"2":{"6":1,"40":1}}],["cant",{"2":{"69":1,"127":1,"167":1}}],["cannot",{"2":{"3":3,"4":2,"6":5,"37":1,"69":1,"77":1,"80":1,"103":2,"106":1,"108":2,"110":1,"121":1}}],["can",{"2":{"1":1,"4":2,"6":16,"7":2,"9":1,"13":1,"14":1,"24":1,"26":1,"31":1,"34":1,"37":1,"38":2,"39":1,"40":3,"41":1,"44":1,"45":3,"47":1,"51":3,"53":3,"54":1,"56":3,"57":1,"62":1,"63":2,"68":1,"69":3,"71":1,"74":1,"86":1,"88":1,"97":23,"99":2,"102":2,"103":3,"105":1,"109":1,"110":1,"115":1,"118":1,"119":1,"120":1,"127":1,"128":1,"129":1,"131":1,"135":1,"136":7,"138":2,"139":1,"142":1,"143":2,"144":1,"146":1,"148":1,"151":1,"152":2,"156":2,"166":1,"169":6,"170":1,"171":3,"173":3,"175":3,"176":3}}],["creation",{"2":{"169":1,"171":1}}],["creating",{"0":{"168":1,"169":1,"172":1},"1":{"169":1,"170":1,"171":1,"172":1,"173":1},"2":{"97":1}}],["creates",{"2":{"7":1,"45":3}}],["create",{"0":{"171":1},"2":{"6":2,"13":2,"14":1,"45":1,"50":1,"54":2,"63":1,"127":2,"136":1,"142":2,"143":3,"145":2,"168":2,"169":4,"170":5,"171":3,"172":1,"173":1,"176":1}}],["created",{"2":{"4":2,"6":2,"45":1,"66":3}}],["criteria",{"2":{"75":2,"89":2,"106":2,"116":2,"158":3}}],["cropping",{"2":{"39":2}}],["cross=1",{"2":{"53":1}}],["cross`",{"2":{"53":1}}],["crossings",{"2":{"45":3,"97":1}}],["crossing",{"0":{"86":1},"2":{"6":2,"45":81,"51":1,"52":7,"53":3,"54":7,"56":1,"57":6,"75":1,"86":1,"97":1,"116":1}}],["cross",{"0":{"113":1},"2":{"6":1,"9":1,"34":3,"45":13,"50":14,"51":2,"52":1,"53":2,"54":10,"55":4,"56":2,"57":1,"75":1,"86":2,"89":1,"97":17,"103":2,"106":1,"116":1,"126":3}}],["crosses",{"2":{"0":2,"3":2,"6":3,"31":1,"45":1,"50":1,"86":26,"97":2,"175":1}}],["crc",{"2":{"6":1,"40":1}}],["crs2",{"2":{"170":2}}],["crs1",{"2":{"170":2,"171":1}}],["crs`",{"2":{"147":6}}],["crs=nothing",{"2":{"136":1,"146":1,"156":1}}],["crs=gi",{"2":{"136":7}}],["crs",{"0":{"170":1},"2":{"1":16,"4":2,"6":10,"63":1,"127":10,"133":2,"135":3,"136":27,"146":1,"147":7,"156":1,"168":1,"170":13,"171":7,"173":1}}],["customize",{"2":{"136":2}}],["custom",{"0":{"178":1},"2":{"6":1,"40":1,"178":2}}],["curr^2",{"2":{"34":2}}],["curr",{"2":{"34":8,"45":114,"50":9,"57":3,"145":26}}],["currentnode",{"2":{"127":8}}],["current",{"2":{"34":1,"40":8,"45":3,"50":2,"52":1,"54":1,"57":6,"127":2,"145":3}}],["currently",{"2":{"5":1,"6":3,"23":1,"40":1,"45":1,"50":1,"52":2,"127":1,"136":1}}],["curve",{"0":{"97":1},"2":{"3":1,"4":7,"6":18,"34":6,"37":7,"45":5,"47":3,"53":7,"65":1,"66":22,"69":6,"75":2,"77":4,"78":9,"79":9,"89":1,"91":4,"92":6,"93":3,"97":152,"103":1,"106":1,"109":6,"111":3,"116":1,"118":4,"119":6,"120":6}}],["curves",{"2":{"0":1,"3":1,"6":5,"37":3,"47":3,"54":1,"65":1,"66":1,"69":13,"80":1,"97":1,"103":1,"121":1,"156":2}}],["cutpolygon",{"2":{"49":1}}],["cuts",{"2":{"49":1}}],["cutting",{"0":{"48":1},"1":{"49":1,"50":1},"2":{"45":1,"50":2}}],["cut",{"0":{"49":1},"2":{"0":1,"6":6,"31":1,"40":1,"48":1,"49":5,"50":22,"97":1}}],["coastlines",{"2":{"174":1}}],["coarse",{"2":{"6":1,"150":1,"153":1}}],["cos",{"2":{"169":3,"170":1,"171":2}}],["copy",{"2":{"141":1,"160":1}}],["coors1",{"2":{"126":2}}],["coors2",{"2":{"126":3}}],["coord",{"2":{"153":6}}],["coords",{"2":{"50":9,"153":8}}],["coordinatetransformations",{"2":{"1":2,"6":2,"156":1,"161":2,"168":1,"169":5,"171":2}}],["coordinate",{"0":{"40":1,"149":1,"170":1,"171":1},"2":{"1":4,"5":5,"6":7,"25":1,"27":1,"39":2,"40":10,"136":1,"147":4,"153":1,"168":3,"170":1}}],["coordinates",{"0":{"5":1,"38":1},"1":{"39":1,"40":1},"2":{"0":4,"1":1,"4":2,"5":7,"6":20,"37":2,"38":8,"40":25,"45":2,"46":1,"50":2,"51":1,"53":1,"56":1,"66":1,"69":2,"129":1,"147":1,"149":2,"151":1,"152":3,"170":2}}],["co",{"2":{"97":2}}],["corner",{"2":{"47":4,"127":1}}],["corners",{"2":{"47":1}}],["correspondent",{"2":{"126":1}}],["correspond",{"2":{"45":1}}],["corresponding",{"2":{"34":3,"52":2}}],["correctly",{"2":{"151":1}}],["corrected",{"2":{"141":1}}],["correctness",{"2":{"137":1,"166":1}}],["correcting",{"2":{"20":1,"141":1}}],["corrections",{"0":{"140":1,"142":1},"1":{"141":1,"142":1},"2":{"138":1,"141":6,"144":1}}],["correction",{"2":{"6":10,"31":4,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"137":1,"139":2,"140":2,"141":8,"142":7,"143":1,"145":2}}],["correct",{"2":{"6":3,"24":1,"34":1,"37":1,"44":1,"45":1,"47":1,"51":1,"53":1,"56":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1,"137":1,"138":2,"140":1}}],["cov",{"2":{"47":16}}],["cover",{"2":{"77":1,"81":1}}],["covering",{"2":{"6":2,"84":1,"142":2,"145":2}}],["covered",{"0":{"79":1,"80":1,"120":1},"2":{"3":1,"6":1,"52":1,"57":1,"74":1,"75":1,"79":2,"80":2,"81":1,"82":2,"84":1,"96":2,"97":3,"145":1}}],["coveredby",{"0":{"73":1,"74":1,"77":1,"78":1,"81":1,"82":1,"96":1},"1":{"74":1,"75":1},"2":{"0":2,"3":4,"6":4,"31":1,"45":1,"73":1,"74":3,"75":10,"76":6,"77":13,"78":15,"79":13,"80":5,"81":2,"82":2,"85":3,"175":1}}],["covers",{"0":{"83":1,"84":1},"1":{"84":1,"85":1},"2":{"0":2,"3":5,"6":5,"31":1,"83":1,"84":4,"85":5,"127":1,"175":1}}],["coverages",{"2":{"6":1,"47":1}}],["coverage",{"0":{"46":1},"2":{"0":1,"6":2,"31":1,"46":3,"47":16}}],["code",{"2":{"7":1,"10":1,"26":5,"40":1,"75":1,"89":1,"97":1,"106":1,"116":1,"126":1,"163":1,"165":1,"177":1}}],["colname",{"2":{"136":3}}],["col",{"2":{"136":3}}],["column",{"2":{"22":1,"136":16,"172":2,"175":2}}],["colored",{"2":{"176":1}}],["color=",{"2":{"170":2}}],["colors",{"2":{"60":1,"61":1,"174":1,"176":2}}],["colorrange",{"2":{"39":2,"65":1}}],["colorbar",{"2":{"39":1,"62":1,"65":1,"127":1}}],["colormap",{"2":{"14":1,"39":3,"65":1}}],["color",{"2":{"6":3,"36":1,"39":2,"40":1,"41":1,"43":1,"49":3,"60":1,"61":1,"62":2,"65":2,"68":4,"71":4,"74":1,"84":1,"88":4,"102":4,"115":4,"148":1,"152":1,"169":1,"170":1,"174":1,"176":5}}],["collect",{"2":{"11":3,"13":1,"33":1,"36":2,"40":1,"43":1,"46":2,"49":2,"63":2,"65":1,"127":3,"136":3,"151":4,"167":2}}],["collections",{"0":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1},"2":{"1":2,"6":10,"22":1,"135":1,"136":7,"156":2,"173":1}}],["collection",{"2":{"1":1,"4":7,"6":13,"18":2,"29":2,"34":2,"37":3,"47":2,"66":2,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"129":1,"136":3,"156":1,"162":1,"167":1}}],["collinear",{"2":{"3":1,"6":2,"45":5,"51":2,"53":3,"54":12,"56":2,"102":1,"103":2}}],["commonly",{"2":{"173":1}}],["common",{"2":{"68":1,"153":1,"168":1,"170":1,"171":1}}],["commented",{"2":{"126":1}}],["comments",{"2":{"97":1}}],["comment",{"2":{"30":1}}],["combos",{"2":{"52":1,"54":1,"57":1}}],["combines",{"2":{"44":1}}],["combine",{"2":{"44":2,"45":5,"145":1}}],["combined",{"2":{"6":1,"45":4,"57":1,"142":1,"145":2,"169":1}}],["combination",{"2":{"6":1,"45":1,"131":1,"136":1}}],["coming",{"2":{"47":1}}],["com",{"2":{"6":2,"54":1,"63":1}}],["compilation",{"2":{"165":1}}],["compiled",{"2":{"24":1}}],["compiler",{"2":{"24":1,"136":2,"165":2}}],["complex",{"2":{"129":1,"156":1,"175":1}}],["complexity",{"2":{"6":1,"129":1,"153":1}}],["complete",{"2":{"37":1}}],["completely",{"2":{"1":1,"3":4,"6":5,"45":2,"52":1,"57":1,"71":2,"72":1,"75":1,"84":1,"85":1,"97":1,"116":1,"136":1}}],["component",{"2":{"6":1,"37":3,"44":11,"47":8,"54":1,"131":1,"136":3}}],["components",{"2":{"6":2,"43":1,"44":2,"131":2,"136":24}}],["composed",{"2":{"4":4,"6":5,"69":5,"169":2}}],["comprised",{"2":{"6":3,"51":1,"53":1,"56":1}}],["computing",{"2":{"41":1,"58":1}}],["computational",{"2":{"6":1,"40":1}}],["computation",{"2":{"6":6,"40":1,"44":1,"51":1,"53":1,"56":1,"157":2,"158":2,"159":2}}],["computer",{"2":{"6":1,"40":1}}],["computes",{"2":{"6":1,"63":1}}],["compute",{"2":{"4":1,"6":3,"37":1,"40":1,"63":3,"153":1}}],["computed",{"2":{"4":4,"6":5,"34":1,"37":3,"40":3,"47":1,"174":1}}],["compact",{"2":{"177":3}}],["comparisons",{"2":{"175":1}}],["comparing",{"2":{"57":1,"69":1}}],["compares",{"2":{"127":1}}],["compared",{"2":{"69":1}}],["compare",{"2":{"3":1,"4":1,"6":2,"34":1,"57":1,"69":2,"103":1}}],["compatibility",{"2":{"37":1}}],["compatible",{"2":{"1":3,"6":1,"22":1,"25":1,"27":1,"34":1,"37":1,"40":2,"44":1,"47":1,"66":1,"69":1,"72":1,"75":1,"85":1,"89":1,"100":1,"103":1,"106":1,"116":1,"134":1,"136":1,"147":2}}],["couple",{"2":{"172":1}}],["course",{"2":{"135":1}}],["country",{"2":{"177":8}}],["countries",{"2":{"11":1,"61":1,"156":1}}],["counted",{"2":{"54":2}}],["counters",{"2":{"40":8}}],["counter",{"2":{"6":1,"45":7,"97":1,"125":1,"126":1}}],["counterclockwise",{"2":{"4":1,"6":2,"9":1,"36":2,"37":1,"62":1,"63":1}}],["count",{"2":{"45":16,"127":1,"160":1}}],["couldn",{"2":{"9":1,"165":1}}],["could",{"2":{"4":1,"6":1,"37":3,"54":4,"57":1,"58":1,"66":1,"97":2,"147":1}}],["conditions",{"2":{"175":1}}],["connected",{"2":{"97":5}}],["connect",{"2":{"47":11}}],["connecting",{"2":{"34":1,"158":1,"169":2}}],["connections",{"2":{"6":2,"142":2,"145":2}}],["context",{"2":{"152":4,"170":2}}],["contents",{"2":{"136":1,"137":1}}],["contours",{"2":{"127":1}}],["contour",{"2":{"127":4}}],["continue",{"2":{"37":1,"45":7,"47":1,"52":2,"54":1,"97":1,"141":1,"145":3,"160":1,"177":1}}],["contributions",{"2":{"25":1,"27":1}}],["controlled",{"2":{"24":1}}],["control",{"2":{"23":1}}],["containing",{"2":{"46":1,"176":1}}],["contain",{"2":{"3":1,"6":1,"26":1,"57":1,"71":1,"103":1,"169":1}}],["contained",{"2":{"3":1,"6":1,"9":1,"57":4,"72":1,"84":1,"102":1,"103":1,"136":1,"176":1}}],["contains",{"0":{"70":1,"71":1},"1":{"71":1,"72":1},"2":{"0":2,"3":4,"6":4,"26":1,"31":1,"45":1,"57":1,"58":1,"70":1,"71":5,"72":4,"134":1,"144":1,"175":1,"176":1}}],["consistent",{"2":{"45":1,"129":1}}],["consistency",{"2":{"22":1}}],["considered",{"2":{"34":1,"40":1}}],["consider",{"2":{"33":1,"36":1,"43":1,"46":1,"47":3,"49":1,"65":2,"68":1,"71":1,"74":1,"84":1,"88":1,"97":3,"99":1,"102":1,"105":1,"115":1}}],["constprop",{"2":{"86":1}}],["constants",{"2":{"45":1}}],["const",{"2":{"31":4,"45":1,"75":4,"89":3,"106":4,"116":4,"133":3,"136":1,"156":4}}],["constrained",{"2":{"6":3,"51":1,"53":1,"56":1}}],["constructing",{"2":{"171":1}}],["construct",{"2":{"164":1}}],["constructors",{"2":{"6":2,"164":2}}],["constructed",{"2":{"1":1,"20":1,"147":1}}],["concepts",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"26":1}}],["concieve",{"2":{"9":1}}],["concavehull",{"2":{"128":1}}],["concave",{"2":{"6":1,"34":2,"43":2,"126":2}}],["convention",{"2":{"43":1}}],["convenience",{"2":{"40":1,"166":1}}],["conversely",{"2":{"45":1}}],["conversion",{"0":{"162":1},"2":{"22":1}}],["converted",{"2":{"22":1,"40":3}}],["converts",{"2":{"6":1,"167":1}}],["convert",{"0":{"76":1,"90":1,"107":1,"117":1},"2":{"6":3,"40":6,"63":1,"65":1,"127":2,"152":1,"156":3,"162":1,"166":1,"167":1}}],["convexhull",{"2":{"128":1}}],["convexity",{"2":{"62":2}}],["convex",{"0":{"58":1,"61":1},"1":{"59":1,"60":1,"61":1,"62":1,"63":1},"2":{"0":1,"6":7,"31":2,"34":3,"58":4,"60":2,"61":1,"62":4,"63":11,"126":1}}],["vw",{"2":{"156":3}}],["von",{"2":{"127":1}}],["v2",{"2":{"97":9}}],["v1",{"2":{"97":9}}],["v`",{"2":{"40":2}}],["vcat",{"2":{"34":1,"40":1,"136":1}}],["vararg",{"2":{"40":1}}],["vary",{"2":{"34":1}}],["variables",{"2":{"24":1,"40":8,"72":1,"85":1,"100":1}}],["variable",{"2":{"24":1,"52":2}}],["vals",{"2":{"158":9}}],["valign",{"2":{"156":1}}],["validated",{"2":{"52":2,"54":2,"57":2}}],["validate",{"2":{"9":1}}],["valid",{"2":{"1":1,"6":8,"44":1,"51":2,"53":2,"54":3,"56":2,"127":1,"137":3,"138":1,"143":1,"144":1,"160":1,"161":1}}],["val",{"2":{"34":2,"45":2,"54":8,"97":30,"103":4}}],["values=",{"2":{"127":2}}],["values=sort",{"2":{"127":1}}],["values",{"2":{"1":1,"5":3,"6":16,"34":2,"39":3,"40":40,"44":2,"45":5,"47":5,"54":1,"66":2,"97":4,"127":19,"136":2,"158":2,"160":1,"165":1}}],["value",{"2":{"0":1,"4":7,"5":2,"6":15,"14":1,"24":1,"34":1,"36":2,"37":4,"40":45,"45":5,"47":2,"54":7,"65":1,"66":3,"127":6,"158":11,"166":2,"175":1}}],["vs",{"0":{"15":1},"2":{"12":1,"54":2}}],["vᵢ",{"2":{"6":1}}],["v0",{"2":{"6":2}}],["v",{"2":{"5":2,"6":6,"14":4,"40":23,"66":8}}],["visvalingam",{"2":{"154":1}}],["visvalingamwhyatt",{"0":{"159":1},"2":{"0":1,"6":3,"156":4,"159":5}}],["visualized",{"2":{"138":1}}],["visualize",{"2":{"99":1,"170":1}}],["visa",{"2":{"45":1}}],["visited",{"2":{"45":4}}],["view",{"2":{"45":2,"63":1,"127":1,"145":1,"158":3,"177":1}}],["viewport",{"2":{"14":1}}],["views",{"2":{"1":1,"45":1,"56":1,"147":1}}],["via",{"2":{"6":1,"41":1,"58":1,"128":1,"148":1,"152":1,"166":2}}],["vec",{"2":{"63":2}}],["vect",{"2":{"136":2}}],["vectypes",{"2":{"40":5}}],["vector",{"2":{"1":12,"4":6,"5":1,"6":46,"18":1,"23":1,"29":1,"33":1,"34":10,"40":14,"45":7,"50":6,"51":4,"52":1,"53":2,"54":3,"56":4,"97":1,"103":2,"126":3,"127":4,"129":1,"136":6,"138":8,"139":1,"144":22,"150":1,"151":1,"153":1,"157":1,"158":4,"159":1,"160":2,"161":10,"167":15,"169":18,"170":6,"171":9}}],["vectors",{"2":{"1":1,"4":2,"6":5,"22":1,"34":4,"40":3,"45":1,"63":1,"66":1,"125":1,"127":1,"136":2,"156":1}}],["ve",{"2":{"17":1,"153":1}}],["vein",{"2":{"7":1}}],["version",{"2":{"166":1}}],["versa",{"2":{"45":1}}],["vert",{"2":{"160":21}}],["verts",{"2":{"156":2}}],["vertical",{"2":{"39":1,"47":1,"54":1,"127":1}}],["vertices",{"2":{"6":7,"9":1,"38":4,"40":5,"45":1,"50":2,"63":1,"77":1,"79":5,"88":1,"91":3,"94":1,"97":1,"118":1,"138":1,"150":2,"151":1,"152":3,"153":3,"156":1,"159":1}}],["vertex",{"2":{"5":1,"6":2,"34":1,"38":2,"40":2,"45":19,"54":12,"62":1,"77":2,"92":2,"93":1,"97":1,"118":3}}],["very",{"2":{"0":1,"151":1,"177":2}}],["ty",{"2":{"127":3}}],["typing",{"2":{"41":1,"148":1,"152":1}}],["typically",{"2":{"38":1,"172":1}}],["typemax",{"2":{"66":1,"127":9}}],["typeof",{"2":{"19":1,"40":3,"136":2,"164":1,"178":1}}],["type2",{"2":{"6":2,"69":4}}],["type1",{"2":{"6":2,"69":5}}],["types",{"0":{"132":1,"163":1},"1":{"164":1,"165":1,"166":1},"2":{"6":4,"23":1,"24":1,"31":1,"40":3,"47":1,"50":1,"97":3,"156":1,"163":3,"165":1,"175":1}}],["type",{"2":{"4":11,"5":1,"6":62,"11":1,"22":2,"23":1,"24":2,"30":2,"34":9,"37":11,"39":1,"40":8,"44":8,"45":21,"47":8,"50":6,"51":7,"52":6,"53":8,"54":19,"56":7,"57":5,"66":28,"69":2,"131":2,"136":42,"140":1,"141":6,"142":6,"149":1,"152":1,"153":1,"156":3,"162":1,"164":3,"165":5,"166":1,"167":3,"174":1}}],["tx",{"2":{"127":3}}],["tᵢ",{"2":{"40":1}}],["temporary",{"2":{"45":1}}],["term",{"2":{"37":1}}],["terms",{"2":{"6":1,"40":1}}],["teach",{"2":{"26":1}}],["technically",{"2":{"23":1,"137":1}}],["technique",{"2":{"11":1}}],["tell",{"2":{"18":1,"97":1,"165":1,"178":1}}],["test",{"2":{"45":1,"156":2,"166":1}}],["testing",{"0":{"15":1}}],["tests",{"2":{"9":2}}],["tutorial",{"2":{"168":1,"175":1}}],["tutorials",{"2":{"26":2}}],["tups",{"2":{"139":4}}],["tuplepoint",{"2":{"31":3,"167":1}}],["tuple",{"0":{"162":1},"2":{"4":1,"6":19,"31":2,"40":2,"44":3,"45":5,"47":3,"50":1,"54":31,"97":17,"126":2,"127":5,"136":2,"138":6,"144":13,"151":1,"156":2,"158":1,"160":2,"167":6,"169":99,"176":2}}],["tuples",{"2":{"0":1,"6":2,"31":1,"41":1,"44":1,"45":1,"50":1,"51":3,"52":1,"53":2,"54":1,"56":4,"57":5,"63":2,"139":2,"145":2,"156":2,"162":2,"177":2}}],["turf",{"2":{"126":1}}],["turned",{"2":{"127":1,"136":1}}],["turning",{"2":{"127":8}}],["turn",{"2":{"6":1,"127":1}}],["t2",{"2":{"6":5,"40":47,"76":1,"86":2,"107":1,"117":1}}],["t1",{"2":{"6":6,"40":51,"86":2}}],["t=float64",{"2":{"4":1,"6":3,"44":3}}],["two",{"2":{"3":5,"4":10,"6":23,"23":2,"34":2,"36":1,"40":1,"44":1,"45":6,"47":3,"51":2,"53":1,"54":14,"56":4,"57":3,"66":5,"68":3,"69":12,"71":2,"72":1,"74":1,"84":1,"85":1,"86":1,"88":1,"97":2,"99":2,"100":2,"102":4,"103":5,"105":3,"106":1,"115":2,"127":3,"141":2,"142":1,"144":2,"145":2,"151":1,"166":1,"169":1,"175":3,"176":3}}],["task",{"2":{"136":6}}],["tasks",{"2":{"136":10}}],["taskrange",{"2":{"136":10}}],["tags",{"2":{"45":4}}],["taget",{"2":{"6":2}}],["taylor",{"2":{"6":1,"40":1}}],["table2",{"2":{"175":1}}],["table1",{"2":{"175":3}}],["tables",{"2":{"22":4,"31":1,"136":11}}],["table",{"0":{"172":1},"2":{"6":1,"18":1,"29":2,"136":12,"156":1,"172":1,"173":1,"175":1}}],["taking",{"2":{"6":3,"44":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"143":1}}],["takes",{"2":{"45":3,"175":1}}],["taken",{"2":{"20":1,"39":1}}],["take",{"2":{"1":1,"6":2,"29":1,"45":3,"51":1,"52":1,"53":1,"54":1,"57":1,"126":2,"127":2,"129":1,"147":1}}],["target=nothing",{"2":{"51":1,"53":1,"56":1}}],["target=gi",{"2":{"45":1}}],["targets",{"2":{"23":1,"34":2,"37":3,"47":3,"66":3}}],["target",{"0":{"23":1},"2":{"1":14,"6":28,"15":3,"22":2,"23":2,"40":1,"44":2,"45":1,"51":5,"52":11,"53":6,"54":10,"56":4,"57":13,"127":1,"129":1,"131":4,"134":5,"135":1,"136":142,"145":2,"147":3,"156":2,"164":3}}],["tilted",{"2":{"47":1}}],["tie",{"2":{"34":1}}],["timings",{"2":{"13":5}}],["timing",{"2":{"13":2}}],["times",{"2":{"4":1,"6":1,"146":1}}],["time",{"2":{"1":5,"13":3,"24":1,"39":1,"127":1,"147":4,"166":1,"169":1,"170":1,"171":2,"176":1,"177":1}}],["title",{"2":{"13":2,"39":2,"62":2,"127":1,"152":1,"156":2}}],["tip",{"2":{"1":1,"5":1,"6":1,"40":1,"147":1,"175":1}}],["tree",{"2":{"175":1}}],["treating",{"2":{"156":1}}],["treated",{"2":{"97":5,"169":1}}],["treats",{"2":{"37":1,"66":1}}],["trials",{"2":{"152":2,"156":2}}],["triangles",{"2":{"38":1}}],["triangle",{"2":{"6":1,"38":4,"159":4,"176":1}}],["triangulation",{"2":{"6":1,"31":1,"63":1}}],["trivially",{"2":{"129":1}}],["try",{"2":{"55":3,"127":1,"134":1,"136":9,"177":1}}],["tr",{"2":{"37":3}}],["trues",{"2":{"145":3}}],["true",{"0":{"24":1},"2":{"1":5,"3":25,"4":3,"6":42,"34":7,"37":1,"39":2,"41":1,"45":30,"47":6,"50":1,"51":1,"52":2,"53":1,"54":1,"56":2,"57":3,"66":4,"69":21,"71":1,"72":1,"74":2,"75":6,"77":1,"78":1,"79":4,"81":1,"82":1,"84":2,"85":1,"86":9,"88":2,"89":2,"91":1,"92":1,"93":3,"95":1,"96":1,"97":78,"99":3,"100":1,"102":2,"103":18,"105":2,"106":6,"109":1,"110":1,"112":1,"113":1,"115":2,"116":7,"118":1,"119":1,"120":4,"122":1,"123":1,"126":4,"127":5,"136":8,"145":1,"148":1,"152":1,"156":1,"165":2,"175":1,"178":1}}],["traditional",{"2":{"127":1}}],["traverse",{"2":{"45":1}}],["traced",{"2":{"45":1}}],["traces",{"2":{"45":1}}],["trace",{"2":{"45":2,"51":1,"53":1,"56":1}}],["track",{"2":{"45":3,"145":2}}],["tracing",{"2":{"6":1,"45":4,"47":1,"52":5,"54":2,"57":2}}],["transverse",{"2":{"170":1}}],["translate",{"2":{"39":2}}],["translation",{"2":{"1":2,"6":2,"156":2,"161":2,"169":3,"171":1}}],["transformations",{"2":{"31":10}}],["transformation",{"0":{"161":1},"2":{"6":1,"127":1,"140":1,"147":1,"168":1}}],["transform",{"2":{"0":2,"1":6,"6":3,"15":2,"31":1,"129":1,"147":2,"156":1,"161":4,"169":4,"171":1}}],["trait`",{"2":{"136":1}}],["trait2",{"2":{"66":10,"69":2,"91":2,"92":2,"103":2,"108":2,"110":2,"111":2}}],["trait1",{"2":{"66":12,"69":2,"91":2,"92":2,"103":2,"108":2,"110":2,"111":2}}],["traits",{"2":{"6":2,"18":1,"103":1,"134":2,"141":2,"156":2,"164":3}}],["trait",{"2":{"1":5,"3":2,"4":2,"6":17,"18":7,"20":1,"22":1,"31":1,"34":2,"37":5,"40":6,"44":7,"47":2,"50":3,"51":2,"52":2,"53":6,"54":4,"56":2,"57":2,"66":7,"69":11,"75":3,"86":2,"89":3,"97":4,"103":10,"106":3,"116":3,"126":1,"129":1,"131":2,"134":3,"136":49,"141":9,"142":1,"153":1,"156":2,"164":8,"167":7,"169":1}}],["traittarget",{"0":{"164":1},"2":{"0":1,"1":2,"6":8,"34":1,"37":1,"44":1,"47":1,"51":2,"52":4,"53":3,"54":4,"56":2,"57":4,"66":1,"129":2,"132":1,"136":10,"153":1,"156":1,"163":1,"164":20}}],["thus",{"2":{"34":1,"37":1,"45":3,"52":1,"54":1,"57":1}}],["those",{"2":{"34":1,"45":1,"54":1,"77":1,"118":1}}],["though",{"2":{"20":1,"138":1}}],["thing",{"0":{"30":1}}],["things",{"2":{"9":1}}],["this",{"0":{"30":1},"2":{"0":1,"1":1,"3":1,"4":6,"5":1,"6":30,"7":1,"18":1,"23":3,"24":2,"25":2,"27":2,"29":1,"31":1,"33":2,"34":6,"36":2,"37":9,"39":3,"40":11,"41":2,"43":1,"44":4,"45":26,"46":1,"47":4,"49":1,"50":5,"52":1,"54":5,"55":1,"56":1,"57":2,"63":5,"65":4,"66":6,"69":4,"71":1,"72":2,"74":3,"75":3,"82":1,"84":1,"85":2,"86":1,"89":3,"96":1,"97":3,"100":2,"102":1,"103":4,"106":3,"113":1,"115":1,"116":3,"123":1,"125":1,"126":3,"127":8,"128":2,"129":2,"134":2,"136":17,"137":3,"139":3,"140":1,"141":6,"142":7,"143":4,"145":3,"146":2,"147":4,"148":3,"149":2,"150":3,"151":5,"152":5,"153":4,"154":2,"156":3,"160":9,"161":1,"162":1,"163":3,"164":2,"165":3,"166":2,"167":1,"168":1,"169":2,"170":4,"171":3,"172":3,"173":1,"175":3,"176":3,"177":3,"178":1}}],["three",{"2":{"26":1,"38":1,"54":1}}],["thread",{"2":{"136":6}}],["threading",{"0":{"136":1},"2":{"136":7,"165":1}}],["threads",{"2":{"1":1,"6":1,"136":10}}],["threaded=",{"2":{"136":8}}],["threaded=true",{"2":{"136":1}}],["threaded=false",{"2":{"37":1,"44":4,"47":2,"66":8,"136":2,"146":1,"156":1}}],["threaded==true",{"2":{"1":1,"6":1,"136":1}}],["threaded",{"2":{"1":3,"4":1,"6":7,"24":1,"34":2,"37":1,"44":3,"47":3,"66":5,"133":1,"136":47,"146":1,"153":6,"156":1,"165":2}}],["through",{"2":{"6":4,"34":1,"40":1,"45":3,"47":1,"49":1,"50":2,"63":1,"75":1,"97":5,"116":1,"127":1,"134":1,"136":1,"142":2,"145":2,"158":1,"166":1,"169":1}}],["thrown",{"2":{"134":1}}],["throws",{"2":{"6":1,"166":1}}],["throw",{"2":{"4":1,"6":1,"57":1,"69":1,"127":1,"136":5}}],["than",{"2":{"1":1,"3":1,"6":11,"11":1,"45":2,"77":1,"86":1,"103":1,"118":1,"126":1,"127":2,"135":1,"136":1,"142":2,"143":1,"144":1,"145":2,"150":1,"152":2,"153":1,"157":1,"166":2}}],["that",{"2":{"1":1,"3":3,"4":8,"6":44,"9":1,"17":1,"18":4,"19":3,"20":1,"22":3,"25":1,"26":1,"27":1,"34":4,"36":2,"37":4,"40":4,"41":2,"43":2,"44":3,"45":17,"46":3,"47":5,"51":4,"52":5,"53":4,"54":14,"56":3,"57":5,"58":1,"62":3,"63":4,"66":2,"68":1,"69":11,"71":4,"72":1,"74":2,"75":1,"85":1,"88":1,"89":1,"97":3,"99":1,"100":1,"102":2,"103":10,"105":2,"106":2,"108":2,"115":3,"116":1,"118":3,"126":1,"127":4,"129":1,"131":2,"136":4,"137":3,"138":2,"139":1,"140":3,"141":2,"142":4,"143":2,"144":3,"145":4,"147":1,"150":2,"151":2,"152":3,"153":2,"156":2,"158":1,"160":1,"164":1,"165":1,"166":1,"170":4,"171":1,"172":2,"173":3,"175":1,"176":2}}],["theorem",{"2":{"66":1}}],["themselves",{"2":{"40":1}}],["them",{"2":{"6":1,"25":1,"27":1,"45":1,"127":2,"128":2,"131":1,"136":1,"138":2,"143":1,"144":1,"156":1,"169":1,"171":1,"173":3}}],["thereof",{"2":{"129":1}}],["therefore",{"2":{"65":1,"137":1}}],["there",{"2":{"6":3,"22":1,"34":1,"40":2,"41":1,"45":3,"47":1,"50":2,"52":1,"54":6,"55":1,"57":1,"97":1,"103":2,"127":3,"128":1,"129":1,"136":4,"138":1,"151":1,"160":1,"164":1,"166":1,"170":2,"173":3}}],["then",{"2":{"6":5,"18":1,"22":1,"29":1,"34":3,"40":2,"45":6,"47":1,"51":1,"53":2,"54":6,"55":2,"56":2,"57":2,"63":1,"97":1,"127":2,"134":1,"136":3,"143":1,"152":2,"156":1,"170":1,"175":1,"176":1}}],["their",{"2":{"3":1,"4":1,"6":2,"40":1,"43":2,"57":1,"66":2,"94":1,"103":1,"105":1,"109":1,"110":1,"119":3,"120":3,"129":1,"136":1,"138":1,"144":1,"146":1}}],["they",{"2":{"3":3,"4":11,"6":25,"20":2,"22":1,"23":1,"24":1,"38":1,"44":2,"45":8,"47":2,"51":2,"53":1,"54":6,"56":2,"57":3,"62":1,"68":3,"69":16,"75":1,"88":1,"92":2,"93":1,"94":1,"97":2,"99":1,"102":2,"103":4,"108":1,"110":1,"111":1,"119":1,"120":1,"127":6,"136":1,"137":1,"142":2,"145":2,"151":1,"160":1,"163":1,"176":1}}],["these",{"2":{"1":2,"6":5,"24":1,"34":1,"40":5,"45":3,"57":1,"68":1,"69":1,"71":1,"75":1,"84":1,"86":2,"88":1,"89":1,"99":1,"102":1,"103":1,"105":2,"106":1,"115":1,"116":1,"126":1,"127":3,"134":1,"136":2,"147":1,"152":1,"156":2,"166":1,"173":1,"175":1}}],["the",{"0":{"26":1,"29":1,"43":1,"61":1,"62":1},"2":{"1":28,"3":64,"4":112,"5":12,"6":403,"7":5,"9":3,"10":1,"11":3,"17":5,"18":10,"19":2,"20":4,"22":4,"23":5,"24":3,"25":3,"26":4,"27":3,"29":3,"33":1,"34":63,"36":12,"37":43,"38":15,"39":12,"40":71,"41":6,"43":6,"44":25,"45":116,"46":7,"47":47,"49":2,"50":7,"51":27,"52":23,"53":27,"54":82,"55":1,"56":29,"57":70,"58":6,"62":11,"63":16,"65":11,"66":81,"68":5,"69":47,"71":9,"72":11,"74":8,"75":25,"78":8,"79":9,"80":3,"81":3,"82":2,"84":4,"85":11,"86":5,"88":2,"89":21,"91":8,"92":6,"93":4,"95":3,"96":2,"97":123,"99":5,"100":6,"102":5,"103":26,"105":5,"106":21,"108":6,"109":10,"110":7,"111":3,"112":3,"113":2,"115":7,"116":24,"118":2,"119":9,"120":9,"121":6,"122":2,"123":2,"125":1,"126":8,"127":47,"128":1,"129":8,"131":4,"133":2,"134":11,"136":85,"137":5,"138":5,"139":4,"140":2,"141":13,"142":10,"143":4,"144":8,"145":6,"146":1,"147":14,"148":2,"149":5,"150":3,"151":5,"152":26,"153":17,"154":3,"156":18,"157":3,"158":6,"159":3,"160":2,"161":3,"162":1,"163":2,"165":5,"166":21,"169":10,"170":11,"171":10,"172":2,"173":4,"175":10,"176":17,"177":3}}],["t",{"2":{"0":1,"4":28,"6":56,"9":1,"23":1,"31":8,"34":32,"37":41,"40":26,"44":38,"45":74,"47":44,"50":18,"51":12,"52":12,"53":12,"54":156,"56":10,"57":20,"66":87,"69":17,"74":1,"92":1,"97":24,"103":1,"105":1,"109":2,"110":1,"127":14,"136":10,"142":2,"145":2,"152":3,"153":5,"156":1,"162":7,"164":14,"165":2,"166":3,"167":10,"169":4,"177":1}}],["tokyo",{"2":{"177":1}}],["toy",{"2":{"175":1}}],["together",{"2":{"54":1,"57":1,"169":1,"176":1}}],["touching",{"0":{"109":1},"2":{"54":1,"57":1}}],["touch",{"0":{"110":1,"111":1,"112":1},"2":{"45":1,"105":1,"108":2,"110":1,"112":1}}],["touches",{"0":{"104":1,"105":1,"108":1},"1":{"105":1,"106":1},"2":{"0":2,"3":3,"6":3,"31":1,"104":1,"105":3,"106":11,"107":6,"108":11,"109":15,"110":9,"111":8,"112":3,"113":4,"175":1}}],["totally",{"2":{"56":1}}],["total",{"2":{"37":1,"40":2,"45":2,"47":1}}],["towards",{"2":{"25":1,"27":1}}],["topright",{"2":{"156":1}}],["topologypreserve",{"2":{"154":1}}],["topology",{"2":{"154":1}}],["top",{"2":{"20":1,"26":1,"45":1,"127":1}}],["took",{"2":{"177":1}}],["tools",{"2":{"17":1}}],["too",{"2":{"6":1,"54":1,"150":1,"153":1}}],["tol^2",{"2":{"157":1,"158":1}}],["tolerances",{"2":{"159":1,"160":29}}],["tolerance",{"2":{"157":1,"158":1,"159":1,"160":17}}],["tol",{"2":{"6":12,"152":2,"156":18,"157":7,"158":15,"159":8,"160":18}}],["todo",{"2":{"3":2,"6":2,"45":1,"54":1,"63":2,"86":4,"103":1,"127":1,"136":1,"139":1,"156":1,"165":1}}],["to",{"0":{"9":1,"23":1,"26":1,"55":1,"76":1,"90":1,"107":1,"117":1},"2":{"0":2,"1":22,"3":1,"4":33,"5":4,"6":142,"7":2,"9":3,"10":2,"11":2,"13":1,"17":2,"18":9,"19":1,"20":2,"22":3,"23":4,"24":2,"25":3,"26":2,"27":3,"29":4,"30":1,"33":1,"34":8,"36":1,"37":4,"38":4,"39":1,"40":26,"41":2,"43":2,"44":5,"45":32,"46":1,"47":12,"49":1,"50":3,"51":8,"52":4,"53":8,"54":27,"56":7,"57":11,"58":1,"60":1,"61":1,"62":4,"63":6,"65":6,"66":32,"68":2,"69":17,"71":1,"72":1,"74":2,"75":7,"84":3,"85":1,"86":2,"88":1,"89":7,"97":21,"99":2,"100":1,"102":3,"103":7,"105":1,"106":7,"108":1,"115":1,"116":7,"126":4,"127":16,"129":4,"131":4,"133":7,"134":6,"135":1,"136":51,"137":2,"138":3,"140":4,"141":8,"142":5,"143":3,"144":1,"145":4,"146":3,"147":4,"148":1,"149":1,"150":3,"151":3,"152":9,"153":7,"154":1,"156":4,"157":1,"158":15,"159":1,"160":2,"161":4,"162":1,"163":2,"164":2,"165":6,"166":9,"167":28,"168":4,"169":6,"170":10,"171":6,"172":7,"173":5,"174":1,"175":7,"176":5,"177":2,"178":8}}],["rd",{"2":{"156":3}}],["rdbu",{"2":{"65":1}}],["rhumb",{"2":{"126":2}}],["runner",{"2":{"170":1}}],["running",{"2":{"136":3}}],["run",{"2":{"136":8,"177":1}}],["runs",{"2":{"54":2,"125":1}}],["rule",{"2":{"45":1}}],["rules",{"2":{"45":1}}],["right=2",{"2":{"45":1}}],["right",{"2":{"40":1,"45":4,"50":1,"66":1,"126":1,"158":19,"160":5,"169":1,"175":1}}],["ring4",{"2":{"171":2}}],["ring3",{"2":{"170":1}}],["ring2",{"2":{"169":2}}],["ring1",{"2":{"169":2}}],["rings",{"0":{"79":1,"93":1,"110":1,"120":1,"137":1},"1":{"138":1,"139":1},"2":{"4":4,"6":6,"9":2,"37":1,"44":1,"45":3,"54":1,"69":7,"125":1,"127":5,"139":1,"142":1,"156":1}}],["ring",{"2":{"4":7,"6":13,"9":1,"31":1,"34":3,"37":2,"40":1,"43":1,"44":4,"45":12,"47":13,"57":3,"66":5,"69":4,"77":1,"78":2,"79":5,"91":1,"93":1,"97":2,"108":1,"109":1,"110":3,"118":1,"119":2,"120":4,"126":3,"127":11,"137":2,"138":1,"139":14,"140":1,"169":1}}],["rtrees",{"2":{"20":1}}],["r+y",{"2":{"13":2,"14":1}}],["r+x",{"2":{"13":2,"14":1}}],["ry",{"2":{"13":3,"14":3}}],["rx",{"2":{"13":3,"14":3}}],["round",{"2":{"156":1,"158":1,"160":1}}],["routines",{"2":{"11":1}}],["row",{"2":{"136":3}}],["rows",{"2":{"136":2}}],["robust",{"0":{"15":1},"2":{"62":1}}],["rotate",{"2":{"47":1}}],["rotation",{"2":{"1":1,"6":1,"161":1}}],["rotations",{"2":{"1":3,"6":3,"161":3}}],["rotmatrix2d",{"2":{"156":1}}],["rotmatrix",{"2":{"1":1,"6":1,"161":1}}],["r",{"2":{"6":1,"9":1,"13":11,"14":12,"152":1,"160":2,"169":6,"170":2,"171":4}}],["rᵢ₋₁",{"2":{"40":20}}],["rᵢ∗rᵢ₊₁+sᵢ⋅sᵢ₊₁",{"2":{"6":1}}],["rᵢ₊₁",{"2":{"6":1,"40":29}}],["rᵢ",{"2":{"6":2,"40":49}}],["ramer",{"2":{"158":1}}],["raster",{"0":{"127":1},"2":{"127":4}}],["ray",{"2":{"97":4}}],["raw",{"2":{"18":1}}],["range",{"2":{"13":8,"14":4,"127":1,"136":4}}],["ranges",{"2":{"6":1,"127":2}}],["randomly",{"2":{"176":2}}],["random",{"2":{"156":2}}],["randn",{"2":{"60":1}}],["rand",{"2":{"6":1,"62":1,"127":1,"176":2}}],["rather",{"2":{"6":1,"127":1,"144":1}}],["ratio",{"2":{"6":7,"54":1,"152":1,"156":1,"157":4,"158":6,"159":4,"160":11}}],["radii",{"2":{"6":1,"152":1}}],["radius`",{"2":{"152":1}}],["radius",{"2":{"6":7,"40":13,"152":4}}],["radialdistance",{"0":{"157":1},"2":{"0":1,"6":2,"154":1,"156":4,"157":4}}],["rrayscore",{"2":{"1":1,"6":1,"161":1}}],["rring",{"2":{"1":1,"6":1,"161":1}}],["rewrap",{"2":{"136":3}}],["req",{"2":{"97":44}}],["requirement",{"2":{"137":1,"143":1}}],["requirements",{"2":{"97":5}}],["required",{"2":{"63":1,"75":3,"89":3,"106":3,"116":3,"151":1,"168":1}}],["require",{"2":{"63":1,"74":2,"75":6,"89":3,"97":32,"106":3,"116":3}}],["requires",{"2":{"41":1,"69":1,"71":1,"75":2,"78":3,"79":3,"80":1,"89":1,"92":3,"93":2,"94":1,"106":1,"109":3,"110":1,"111":1,"115":1,"116":1,"119":3,"120":3,"121":1,"148":1,"152":1,"166":1}}],["requests",{"2":{"25":1,"27":1}}],["reflected",{"2":{"156":3}}],["ref",{"2":{"65":1}}],["referring",{"2":{"97":1}}],["refer",{"2":{"6":1,"127":1}}],["references",{"2":{"6":1,"40":1}}],["reference",{"0":{"170":1,"171":1},"2":{"0":1,"1":2,"147":2,"168":2,"170":1}}],["reveal",{"2":{"57":1}}],["reveals",{"2":{"57":1}}],["reverse",{"2":{"36":1,"39":1,"40":1,"45":2,"169":2}}],["rev",{"2":{"56":1}}],["render",{"2":{"39":1}}],["rendering",{"2":{"39":3,"40":1}}],["rename",{"2":{"10":1}}],["regardless",{"2":{"54":1,"97":1}}],["regions",{"2":{"52":3,"54":5,"56":1,"57":3,"97":2,"177":1}}],["region",{"2":{"41":2,"54":3,"57":2,"177":1}}],["register",{"2":{"31":3,"40":3}}],["regular",{"0":{"15":1}}],["readable",{"2":{"173":1}}],["readability",{"2":{"45":1}}],["read",{"2":{"170":2}}],["reached",{"2":{"136":4}}],["reaches",{"2":{"134":1}}],["reach",{"2":{"134":1}}],["reasons",{"2":{"166":1}}],["reason",{"2":{"24":1,"137":1,"143":1,"165":1}}],["real`",{"2":{"152":1,"153":1}}],["reality",{"2":{"62":1}}],["really",{"2":{"37":1,"97":1,"127":1,"165":1}}],["real=1",{"2":{"6":2,"152":2}}],["real=6378137`",{"2":{"152":1}}],["real=6378137",{"2":{"6":2,"152":1}}],["real",{"0":{"177":1},"2":{"5":1,"6":13,"34":1,"40":45,"44":2,"54":1,"152":3,"153":1,"160":5,"175":1}}],["related",{"2":{"129":1}}],["relation",{"2":{"45":2}}],["relations",{"2":{"31":10,"86":1,"103":1}}],["relationship",{"2":{"23":1,"175":2}}],["relative",{"2":{"40":3}}],["relevant",{"2":{"6":1,"10":1,"63":1}}],["reducing",{"2":{"136":2}}],["reduced",{"2":{"157":1,"158":1,"159":1}}],["reduces",{"2":{"19":1,"57":1}}],["reduce",{"2":{"1":1,"6":1,"127":1,"136":2,"141":1}}],["redundant",{"2":{"45":1}}],["red",{"2":{"14":1,"43":2,"65":1,"74":1,"84":1,"99":1,"169":1,"170":1,"176":2}}],["removal",{"2":{"45":1}}],["removes",{"2":{"45":1,"129":1}}],["removed",{"2":{"45":3,"52":5,"127":1}}],["remove",{"2":{"37":1,"45":33,"47":1,"50":2,"51":5,"53":5,"56":2,"145":2,"157":1,"158":3,"160":4}}],["removing",{"2":{"6":3,"45":1,"52":1,"157":1,"158":1,"159":1}}],["remainingnode",{"2":{"127":3}}],["remaining",{"2":{"45":1,"69":1,"97":2,"158":1}}],["remain",{"2":{"1":1,"6":9,"136":1,"156":2}}],["resolution",{"2":{"170":1}}],["resolved",{"2":{"127":1}}],["reset",{"2":{"45":1}}],["resize",{"2":{"13":1,"14":1,"45":2}}],["resampled",{"2":{"6":1,"153":1}}],["respectively",{"2":{"45":1,"103":1,"136":1,"169":1}}],["respect",{"2":{"6":2,"53":1,"54":1,"63":1,"97":6}}],["rest",{"2":{"6":1,"40":2,"56":1}}],["resulting",{"2":{"50":1,"57":1,"127":1,"176":1}}],["results",{"2":{"3":2,"6":2,"54":1,"86":1,"103":1,"136":2,"138":1,"158":25,"169":3}}],["result",{"2":{"1":2,"3":5,"4":5,"6":13,"19":1,"34":1,"37":2,"47":1,"54":15,"63":1,"66":2,"72":1,"75":1,"85":1,"100":1,"116":1,"136":2,"152":3,"160":6}}],["receives",{"2":{"136":2}}],["recent",{"2":{"45":1,"52":1,"54":1,"57":1}}],["recalculate",{"2":{"135":1}}],["recursive",{"2":{"134":1}}],["recursively",{"2":{"4":1,"6":1,"134":1,"146":1}}],["rect",{"2":{"33":3,"36":5,"46":3,"65":7}}],["rectangle",{"2":{"33":2,"36":2,"39":2,"46":2,"47":1,"65":2,"151":5,"152":8,"176":2}}],["recommended",{"2":{"22":1}}],["reconstructing",{"2":{"156":1}}],["reconstructed",{"2":{"18":1}}],["reconstruct",{"2":{"0":2,"1":1,"6":3,"18":1,"131":2,"136":29}}],["replace",{"2":{"45":1,"127":2,"158":1}}],["replaced",{"2":{"22":1}}],["repl",{"2":{"41":1,"148":1,"152":1}}],["repeat",{"2":{"44":1,"45":3,"69":6}}],["repeating",{"2":{"37":1,"57":1}}],["repeated",{"2":{"4":3,"6":3,"9":1,"34":2,"40":1,"45":2,"57":2,"66":2,"69":4,"97":1}}],["represented",{"2":{"176":1}}],["represent",{"2":{"17":1,"40":1,"45":4,"69":1}}],["representing",{"2":{"6":2,"52":1,"54":1,"57":1,"63":1,"65":1,"69":1,"177":1}}],["represents",{"2":{"6":1,"141":2,"142":1}}],["reprojects",{"2":{"147":1}}],["reprojection",{"0":{"147":1},"1":{"148":1}}],["reproject",{"2":{"0":1,"1":4,"31":2,"129":1,"147":6,"148":2}}],["re",{"2":{"1":1,"6":1,"17":1,"63":1,"161":1,"168":1,"170":1}}],["retrievable",{"2":{"1":1,"147":1}}],["returnval",{"2":{"97":9}}],["returntype",{"2":{"19":1}}],["returning",{"2":{"18":1,"41":1,"52":2}}],["return",{"0":{"22":1},"2":{"1":1,"3":18,"4":2,"6":37,"13":3,"14":3,"23":2,"30":1,"34":5,"37":5,"40":20,"41":1,"44":4,"45":36,"47":12,"50":12,"51":5,"52":4,"53":4,"54":18,"56":6,"57":9,"63":2,"66":8,"69":30,"72":1,"75":1,"81":2,"82":2,"85":1,"86":18,"89":2,"95":2,"96":2,"97":71,"99":1,"100":1,"103":28,"106":1,"108":2,"112":2,"113":2,"116":1,"122":2,"123":2,"126":10,"127":12,"136":26,"137":1,"139":4,"141":6,"142":2,"145":2,"147":1,"149":2,"153":4,"156":3,"157":1,"158":5,"159":3,"160":7,"161":2,"162":2,"166":3,"167":8}}],["returned",{"2":{"1":1,"6":11,"22":2,"23":1,"45":3,"50":1,"51":2,"53":2,"54":2,"56":2,"62":1,"63":1,"127":1,"131":1,"136":2,"147":1,"156":1,"165":1}}],["returns",{"2":{"1":1,"3":5,"4":4,"5":3,"6":24,"18":1,"22":2,"34":1,"37":2,"40":6,"44":3,"45":4,"47":6,"50":1,"51":1,"54":1,"56":1,"63":1,"66":8,"68":1,"71":2,"72":1,"75":1,"84":2,"85":1,"88":1,"97":4,"100":1,"103":2,"116":1,"127":2,"136":2,"153":1,"162":1,"175":1}}],["rebuilt",{"2":{"1":1,"6":2,"131":1,"136":2}}],["rebuild",{"2":{"0":2,"6":4,"131":4,"134":1,"136":10,"153":1,"156":2}}],["psa",{"2":{"136":2}}],["pb",{"2":{"86":2}}],["p0",{"2":{"66":9}}],["p3",{"2":{"45":8,"159":4}}],["ptm",{"2":{"126":3}}],["ptj",{"2":{"126":5}}],["pti",{"2":{"126":3}}],["ptrait",{"2":{"66":2}}],["pts",{"2":{"45":22,"50":7}}],["pt",{"2":{"45":114,"50":2,"54":26,"97":8,"158":4}}],["pt2",{"2":{"45":14,"54":2}}],["pt1",{"2":{"45":18,"54":2}}],["pn",{"2":{"108":3}}],["pn2",{"2":{"45":4}}],["pn1",{"2":{"45":4}}],["pfirst",{"2":{"37":3}}],["pu",{"2":{"176":2}}],["purpose",{"2":{"136":1}}],["pure",{"2":{"6":1,"63":1,"127":1}}],["purely",{"2":{"6":1,"18":1,"152":1}}],["push",{"2":{"45":15,"50":5,"51":2,"53":2,"54":2,"56":4,"57":5,"127":3,"139":1,"153":3,"158":3}}],["pulling",{"2":{"63":1}}],["pull",{"2":{"25":1,"27":1}}],["public",{"2":{"24":1}}],["pick",{"2":{"170":2}}],["piece",{"2":{"45":6,"145":6}}],["pieces",{"2":{"45":12,"50":1,"52":2,"56":4,"97":1,"145":9}}],["pi",{"2":{"13":2}}],["pixels",{"2":{"127":1}}],["pixel",{"2":{"6":2,"127":7}}],["pythagorean",{"2":{"66":1}}],["py",{"2":{"13":2,"14":2}}],["px",{"2":{"13":2,"14":2}}],["peucker",{"2":{"154":2,"156":3,"158":2}}],["peaks",{"2":{"127":2}}],["peculiarities",{"0":{"21":1},"1":{"22":1,"23":1,"24":1}}],["people",{"2":{"9":1}}],["performed",{"2":{"176":1}}],["performs",{"2":{"40":1,"153":1}}],["perform",{"2":{"26":1,"39":1,"40":2,"45":1,"129":1,"175":3,"176":2,"178":1}}],["performing",{"2":{"6":3,"23":1,"40":1,"51":1,"53":1,"56":1,"176":1}}],["performance",{"2":{"4":1,"6":2,"22":1,"127":1,"143":1,"146":1,"156":1,"173":1}}],["per",{"2":{"5":2,"6":2,"39":1,"40":2,"45":5,"127":1,"136":4,"153":1}}],["pl",{"2":{"176":2}}],["plt",{"2":{"169":1}}],["please",{"2":{"45":1}}],["plan",{"2":{"150":1}}],["plane",{"2":{"40":1,"174":1}}],["place",{"2":{"54":1,"175":1}}],["placement",{"2":{"45":1}}],["plottable",{"2":{"127":1}}],["plotted",{"2":{"43":1}}],["plotting",{"0":{"169":1},"2":{"6":1,"127":1,"150":1,"153":1,"168":1,"169":4,"170":1}}],["plots",{"2":{"39":2}}],["plot",{"0":{"170":1},"2":{"13":1,"39":3,"60":2,"61":1,"62":1,"68":1,"102":1,"127":1,"152":2,"156":4,"168":2,"169":9,"170":5,"171":1,"173":1,"176":1}}],["plus",{"2":{"5":1,"6":1,"40":1}}],["p2y",{"2":{"167":3}}],["p2x",{"2":{"167":3}}],["p2box",{"2":{"39":1}}],["p2",{"2":{"3":2,"4":2,"6":6,"15":12,"34":12,"37":9,"45":18,"47":19,"56":2,"62":1,"66":15,"69":11,"75":2,"84":2,"97":12,"103":2,"126":3,"151":1,"159":4,"167":3,"169":2}}],["p1y",{"2":{"167":3}}],["p1x",{"2":{"167":3}}],["p1",{"2":{"3":3,"4":2,"6":7,"15":12,"34":21,"37":8,"39":4,"45":9,"47":25,"49":1,"56":2,"62":2,"66":15,"69":14,"74":5,"75":3,"84":5,"97":4,"103":2,"108":3,"126":3,"159":4,"167":3,"169":1}}],["practice",{"2":{"171":1}}],["pred",{"2":{"175":2,"176":1,"177":2,"178":1}}],["predicate",{"2":{"7":1,"86":1,"175":3,"176":1,"178":5}}],["predicates",{"0":{"12":1,"15":1,"178":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"7":4,"12":1,"31":1,"45":5,"54":4,"55":3,"97":1,"175":1,"177":1}}],["pretty",{"2":{"147":1}}],["prettytime",{"2":{"13":2}}],["prevent",{"2":{"52":2,"54":2,"57":2}}],["prev^2",{"2":{"34":2}}],["prev",{"2":{"34":14,"45":69,"126":4}}],["previously",{"2":{"151":1}}],["previous",{"2":{"19":1,"34":1,"136":1,"157":3}}],["preparations",{"2":{"20":1}}],["prepared",{"2":{"20":1,"127":2}}],["prepare",{"0":{"20":1},"2":{"17":1,"20":1}}],["precision",{"2":{"11":1}}],["preserve",{"2":{"156":4,"158":3}}],["preserving",{"2":{"154":1}}],["presentation",{"2":{"6":1,"40":1}}],["present",{"2":{"6":1,"166":1}}],["presence",{"2":{"6":1,"166":1}}],["prescribes",{"2":{"20":1}}],["press",{"2":{"6":1,"40":1}}],["pre",{"2":{"6":1,"56":1,"156":1,"158":2}}],["prefilter",{"2":{"6":1,"156":7}}],["protters",{"2":{"136":2}}],["progressively",{"2":{"134":1}}],["program",{"2":{"17":1}}],["programming",{"2":{"17":1,"26":1}}],["promote",{"2":{"40":5}}],["property",{"2":{"136":2}}],["properties=gi",{"2":{"136":1}}],["properties=namedtuple",{"2":{"136":1}}],["properties=",{"2":{"127":1}}],["properties",{"2":{"6":1,"136":9,"156":1,"160":1}}],["propagate",{"2":{"40":16,"66":4}}],["probably",{"2":{"37":1,"136":1}}],["prod",{"2":{"34":4}}],["product",{"2":{"34":1}}],["process",{"2":{"77":3,"78":3,"79":3,"80":1,"86":1,"91":3,"92":3,"93":2,"94":1,"97":11,"108":1,"109":3,"110":1,"111":1,"118":3,"119":3,"120":3,"121":1,"136":2,"158":1}}],["processed",{"2":{"45":6}}],["processors",{"2":{"31":1,"75":2,"89":2,"106":2,"116":2}}],["processor",{"2":{"31":1}}],["processing",{"2":{"23":1}}],["profile",{"2":{"9":1}}],["providers",{"2":{"138":1,"144":1}}],["provide",{"0":{"23":1},"2":{"6":6,"33":1,"36":1,"38":1,"43":1,"46":1,"49":1,"51":2,"53":2,"56":2,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"97":2,"99":1,"102":1,"105":1,"115":1,"127":1,"160":1}}],["provides",{"2":{"6":1,"58":1,"63":1,"170":1}}],["provided",{"2":{"4":1,"6":3,"11":1,"45":1,"66":1,"69":1,"144":1,"152":2,"166":1}}],["projecting",{"2":{"170":1}}],["projection",{"2":{"66":2,"168":1,"170":1}}],["project",{"2":{"9":1}}],["projects",{"2":{"9":1}}],["proj",{"2":{"1":2,"6":3,"147":2,"148":4,"151":1,"152":6,"168":1}}],["prints",{"2":{"148":1}}],["printstyled",{"2":{"41":1,"148":1,"152":1}}],["println",{"2":{"41":1,"148":1,"152":1,"156":2}}],["print",{"2":{"41":2,"148":2,"152":2}}],["primitives",{"2":{"31":1}}],["primitive",{"0":{"129":1},"1":{"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1},"2":{"29":1}}],["primarily",{"2":{"6":1,"25":2,"27":2,"164":1}}],["primary",{"2":{"3":2,"6":3,"75":1,"116":1,"156":1}}],["priority",{"2":{"1":1,"147":1}}],["pay",{"2":{"136":1}}],["paper",{"2":{"97":2}}],["pa",{"2":{"86":2}}],["paths",{"0":{"174":1},"2":{"165":1,"174":2}}],["pathof",{"2":{"156":2}}],["path",{"2":{"36":3,"170":2}}],["padding",{"2":{"6":2}}],["parquet",{"2":{"173":3}}],["parent",{"2":{"165":1}}],["parse",{"2":{"97":1,"103":1}}],["part",{"2":{"47":2,"57":2,"97":3,"135":1}}],["partition",{"2":{"136":4}}],["partialsort",{"2":{"160":1}}],["partial",{"2":{"47":4}}],["partially",{"2":{"45":2,"57":2}}],["particularly",{"2":{"40":1}}],["particular",{"2":{"30":1,"34":1,"127":1,"170":2}}],["parallel",{"2":{"97":1,"126":1}}],["paradigm",{"0":{"29":1}}],["paradigms",{"0":{"17":1},"1":{"18":1,"19":1,"20":1},"2":{"17":2,"20":1}}],["parameters",{"2":{"6":1,"136":1,"164":2}}],["parameter",{"2":{"6":2,"164":3}}],["params",{"2":{"6":2,"166":10}}],["parlance",{"2":{"5":1,"6":1,"40":1}}],["passes",{"2":{"47":2,"97":1}}],["passed",{"2":{"1":2,"6":7,"63":1,"127":1,"131":1,"136":2,"147":1,"152":2,"161":1,"166":2,"178":1}}],["passable",{"2":{"40":18}}],["passing",{"2":{"18":1,"136":1,"154":1}}],["pass",{"2":{"5":1,"6":4,"18":1,"40":1,"72":1,"85":1,"97":2,"100":1,"152":1,"153":1,"156":1,"165":1}}],["pairs",{"2":{"54":1,"169":1}}],["pair",{"2":{"3":2,"6":2,"47":1,"103":2,"136":3}}],["packages",{"2":{"6":1,"25":1,"27":1,"58":1,"131":1,"136":1,"137":1,"163":1,"168":3,"170":1,"173":1}}],["package",{"2":{"1":2,"6":1,"22":1,"25":2,"27":2,"41":1,"58":2,"63":1,"127":1,"147":3,"148":1,"152":1,"170":1,"173":2}}],["page",{"2":{"0":1,"9":1,"26":1,"29":1,"31":1,"34":1,"37":1,"39":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"136":1,"139":1,"142":1,"145":1,"146":1,"148":1,"149":1,"153":1,"160":1,"161":1,"162":1,"166":1,"167":1}}],["p",{"2":{"1":5,"6":5,"13":13,"14":12,"15":2,"33":1,"36":1,"43":1,"45":5,"46":1,"47":5,"52":2,"56":2,"60":1,"61":1,"65":3,"68":1,"71":1,"74":1,"84":1,"86":4,"88":1,"97":20,"99":1,"102":1,"105":1,"115":1,"126":4,"127":3,"129":3,"136":3,"149":7,"151":1,"155":1,"156":1,"160":3,"161":9,"162":7,"167":11,"175":1,"176":1}}],["poylgon",{"2":{"97":1}}],["potential",{"2":{"47":1}}],["potentially",{"2":{"6":2,"45":1,"142":2,"145":2}}],["post",{"2":{"158":2}}],["possibly",{"2":{"136":1}}],["possiblenodes",{"2":{"127":2}}],["possible",{"2":{"6":3,"51":1,"53":1,"56":1,"127":1,"136":2}}],["possibility",{"2":{"134":1}}],["possibilities",{"2":{"54":1}}],["position=",{"2":{"156":1}}],["position",{"2":{"6":1,"126":1,"151":1}}],["positive",{"2":{"4":4,"6":4,"36":3,"37":1,"65":3,"66":3,"153":1,"160":1}}],["polgons",{"2":{"127":1}}],["polgontrait",{"2":{"1":1,"6":1}}],["polar",{"2":{"6":1,"152":1}}],["polynodes",{"2":{"45":7,"51":1,"53":1,"56":1}}],["polynode",{"2":{"45":36}}],["polypoints",{"2":{"40":46}}],["polys",{"2":{"6":2,"45":39,"49":3,"50":10,"51":14,"52":14,"53":9,"54":6,"56":14,"57":28,"145":26}}],["polys1",{"2":{"3":2,"6":2,"103":6}}],["polys2",{"2":{"3":2,"6":2,"103":6}}],["poly",{"2":{"3":2,"6":16,"15":2,"33":1,"36":1,"37":6,"39":2,"40":3,"43":1,"45":107,"46":2,"47":4,"49":4,"50":20,"51":22,"52":12,"53":15,"54":10,"56":19,"57":79,"60":2,"65":1,"66":3,"69":4,"86":10,"97":21,"103":8,"126":5,"127":5,"145":18,"151":2,"155":2,"156":8,"167":8,"169":2,"176":5}}],["poly2",{"2":{"3":3,"4":2,"6":7,"51":2,"69":2,"97":19,"103":7}}],["poly1",{"2":{"3":3,"4":2,"6":7,"51":2,"69":2,"97":14,"103":7}}],["polygon3",{"2":{"169":2,"170":1}}],["polygon2",{"2":{"169":6}}],["polygon1",{"2":{"169":4}}],["polygonization",{"2":{"127":1}}],["polygonizing",{"0":{"127":1}}],["polygonized",{"2":{"127":1}}],["polygonize",{"2":{"0":1,"6":6,"9":1,"31":1,"127":31}}],["polygon`",{"2":{"40":3,"63":1}}],["polygons",{"0":{"80":1,"111":1,"121":1,"143":1},"1":{"144":1,"145":1},"2":{"3":4,"4":3,"5":1,"6":18,"9":1,"23":5,"31":1,"37":5,"38":1,"40":2,"43":1,"44":1,"45":14,"47":1,"50":2,"51":9,"52":5,"53":3,"54":8,"56":6,"57":19,"65":1,"66":1,"69":5,"80":1,"103":5,"121":1,"126":1,"127":19,"134":1,"138":2,"142":3,"143":2,"144":2,"145":10,"154":1,"156":1,"169":3,"170":1,"176":5,"177":3}}],["polygontrait",{"2":{"1":1,"3":4,"4":6,"6":14,"15":3,"23":1,"34":2,"37":3,"40":3,"44":2,"45":2,"47":2,"50":1,"51":5,"52":5,"53":3,"54":5,"56":4,"57":8,"66":2,"69":10,"77":2,"78":1,"79":1,"80":3,"81":1,"86":4,"91":2,"92":2,"93":1,"94":2,"95":1,"103":8,"108":2,"109":1,"110":1,"111":3,"112":1,"118":2,"119":1,"120":1,"121":3,"122":1,"129":1,"134":2,"136":1,"139":2,"141":2,"142":1,"145":2,"156":2,"167":1}}],["polygon",{"0":{"45":1,"48":1,"51":1,"52":1,"54":1,"56":1,"57":1,"94":1},"1":{"49":1,"50":1},"2":{"0":1,"1":4,"3":4,"4":21,"5":9,"6":65,"9":2,"11":3,"15":4,"20":1,"23":1,"33":1,"34":5,"36":2,"37":5,"38":5,"39":16,"40":57,"43":2,"44":4,"45":39,"46":3,"47":4,"49":3,"50":10,"51":5,"52":7,"53":5,"54":6,"56":6,"57":34,"58":1,"62":1,"63":3,"65":3,"66":14,"69":12,"75":1,"77":3,"78":3,"79":4,"80":8,"86":1,"91":3,"92":4,"93":4,"94":4,"97":66,"103":4,"106":1,"108":3,"109":4,"110":5,"111":7,"116":1,"118":3,"119":4,"120":4,"121":8,"126":5,"127":4,"136":1,"137":4,"138":8,"139":5,"140":1,"142":4,"143":3,"144":12,"145":7,"151":1,"152":4,"155":1,"156":9,"161":3,"167":6,"169":12,"170":5,"171":7,"172":2,"176":6}}],["pointwise",{"0":{"161":1},"2":{"147":1}}],["point1",{"2":{"66":4}}],["point`",{"2":{"54":1}}],["pointedgeside",{"2":{"45":1}}],["point₂",{"2":{"44":13}}],["point₁",{"2":{"44":13}}],["point3s",{"2":{"40":10}}],["point3f",{"2":{"39":1}}],["pointrait",{"2":{"6":1}}],["point2f",{"2":{"39":4,"40":2,"60":1,"65":1}}],["point2d",{"2":{"39":1}}],["point2",{"2":{"6":2,"40":5,"62":1,"66":4}}],["pointtrait",{"2":{"1":1,"4":4,"6":9,"18":1,"34":2,"37":1,"40":3,"47":1,"53":2,"63":1,"66":17,"69":8,"77":6,"81":1,"91":6,"95":1,"108":6,"112":1,"118":6,"122":1,"129":2,"134":1,"136":21,"141":2,"142":1,"146":1,"149":2,"156":2,"161":2,"162":2,"164":2,"167":1}}],["point",{"0":{"91":1,"108":1},"2":{"1":4,"3":10,"4":37,"5":7,"6":83,"9":2,"20":1,"34":12,"37":3,"38":3,"39":1,"40":126,"44":6,"45":97,"47":50,"50":13,"52":9,"53":1,"54":71,"57":9,"63":3,"65":17,"66":73,"69":27,"72":3,"74":1,"75":2,"77":8,"86":21,"89":2,"91":10,"97":138,"99":1,"102":2,"103":21,"105":1,"106":3,"108":10,"109":1,"111":1,"116":4,"118":11,"126":1,"127":3,"136":1,"137":1,"138":2,"142":2,"143":1,"145":2,"147":1,"150":1,"156":2,"157":3,"158":9,"159":1,"161":2,"167":4,"169":111,"170":7,"171":8,"176":2}}],["points2",{"2":{"3":1,"6":1,"103":3}}],["points1",{"2":{"3":1,"6":1,"103":3}}],["points",{"0":{"77":1,"118":1},"2":{"0":1,"1":3,"3":1,"4":11,"5":1,"6":53,"9":3,"13":1,"34":2,"36":3,"37":3,"39":8,"40":32,"44":1,"45":55,"47":5,"50":3,"51":5,"52":1,"53":8,"54":28,"56":4,"57":1,"58":3,"60":4,"62":4,"63":6,"65":2,"66":8,"68":2,"69":13,"71":1,"75":6,"77":3,"78":4,"89":6,"91":1,"92":7,"93":3,"97":10,"103":5,"106":5,"108":1,"109":2,"110":4,"111":3,"115":1,"116":5,"118":3,"119":3,"120":3,"121":1,"125":1,"127":3,"136":1,"146":2,"147":1,"151":2,"152":2,"156":11,"157":11,"158":26,"159":10,"160":33,"161":2,"162":2,"167":25,"169":8,"170":1,"175":1,"176":11}}],["pointorientation",{"2":{"0":1,"6":2,"97":2}}],["my",{"2":{"177":1,"178":2}}],["moore",{"2":{"127":1}}],["moved",{"2":{"45":1,"147":1}}],["move",{"2":{"44":1,"97":1}}],["mode",{"2":{"178":3}}],["model",{"2":{"175":1}}],["modify",{"2":{"169":1}}],["modified",{"2":{"136":2}}],["module",{"2":{"147":1,"153":1}}],["modules",{"2":{"6":1,"40":1}}],["mod1",{"2":{"40":5}}],["mod",{"2":{"40":1,"45":1}}],["most",{"2":{"25":1,"27":1,"45":1,"52":1,"54":1,"57":1,"62":1,"97":1,"156":1,"173":2}}],["monotone",{"2":{"20":1,"62":2}}],["monotonechainmethod",{"2":{"0":1,"6":1,"58":1,"62":2,"63":4}}],["moment",{"2":{"6":1,"151":1,"153":1}}],["more",{"2":{"6":3,"7":1,"9":1,"10":1,"11":1,"23":1,"26":1,"29":1,"45":1,"51":1,"53":1,"56":1,"63":1,"97":1,"103":1,"136":4,"139":1,"148":1,"151":1,"153":1,"169":2,"175":1}}],["mistakenly",{"2":{"143":1}}],["missing",{"2":{"131":6,"132":2,"151":4}}],["missed",{"2":{"127":1}}],["mid",{"2":{"47":2,"97":3}}],["midpoint",{"2":{"45":2}}],["middle",{"2":{"45":2}}],["mining",{"2":{"177":1}}],["minimal",{"2":{"177":1}}],["minimize",{"2":{"54":1}}],["minimum",{"2":{"4":7,"6":12,"46":1,"47":2,"66":12,"156":1,"157":1,"159":1}}],["mind",{"2":{"151":1,"176":1}}],["minmax",{"2":{"54":4}}],["min",{"2":{"47":1,"54":16,"66":15,"156":1,"158":3,"159":1,"160":28}}],["minus",{"2":{"36":1}}],["minpoints=0",{"2":{"127":1}}],["minpoints",{"2":{"6":2}}],["might",{"2":{"6":3,"25":1,"27":1,"37":1,"51":1,"53":1,"54":1,"56":1,"140":1,"158":1}}],["mixed",{"2":{"6":4,"156":1}}],["m",{"2":{"5":1,"6":1,"15":10,"40":2,"47":6,"126":2,"170":1}}],["mp",{"2":{"86":2}}],["mp1",{"2":{"4":2,"6":2,"69":7}}],["mp2",{"2":{"4":2,"6":2,"69":8}}],["manner",{"2":{"175":1}}],["manipulate",{"2":{"173":1}}],["manually",{"2":{"137":1}}],["many",{"2":{"4":1,"5":1,"6":2,"23":1,"26":1,"40":1,"45":1,"50":1,"52":1,"54":2,"57":1,"69":1,"138":1,"146":1}}],["mason",{"2":{"136":2}}],["markersize",{"2":{"169":2}}],["marker",{"2":{"169":2}}],["marked",{"2":{"45":6,"52":1,"54":1,"57":1}}],["marking",{"2":{"52":2,"54":2,"57":2}}],["mark",{"2":{"45":2}}],["marks",{"2":{"45":1}}],["mag",{"2":{"34":4}}],["making",{"2":{"45":1,"127":1,"134":1,"144":1,"169":1,"171":2}}],["makie",{"2":{"13":1,"14":1,"33":1,"36":1,"39":3,"43":1,"46":1,"49":4,"60":1,"61":1,"65":1,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"127":3,"155":1,"156":1,"174":1}}],["makevalid",{"2":{"156":2}}],["makes",{"2":{"37":1,"45":1,"66":1,"136":1,"138":1,"143":1,"144":1}}],["make",{"2":{"9":1,"25":1,"27":1,"34":1,"45":3,"54":1,"66":1,"103":1,"127":2,"134":1,"139":1,"151":1,"160":1,"163":1,"169":2,"171":1}}],["mainly",{"2":{"40":1,"65":1,"129":1}}],["maintain",{"2":{"37":1}}],["main",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"7":1,"26":1,"45":1,"127":1,"136":1,"152":1}}],["mapped",{"2":{"173":1}}],["maptasks",{"2":{"136":6}}],["mapreducetasks",{"2":{"136":5}}],["mapreduce",{"2":{"52":1,"127":2,"136":8}}],["map",{"0":{"170":1},"2":{"6":1,"13":1,"18":3,"19":1,"29":1,"40":1,"45":1,"54":1,"103":2,"127":17,"136":24,"139":1,"156":1,"164":1,"168":1,"170":1,"171":1,"173":1}}],["matlab",{"2":{"49":1}}],["materializer`",{"2":{"136":1}}],["materializer",{"2":{"22":1,"136":1}}],["mathrm",{"2":{"40":1}}],["math",{"2":{"7":1}}],["mathematically",{"2":{"6":1,"126":1}}],["matches",{"2":{"69":1,"127":1}}],["match",{"2":{"6":1,"69":12,"103":3,"127":1,"131":1,"136":2}}],["matching",{"2":{"3":1,"6":1,"22":1,"69":3,"103":1,"134":2}}],["matrix",{"2":{"6":1,"14":2,"40":1}}],["maximal",{"2":{"54":1}}],["maximum",{"2":{"3":1,"6":4,"14":1,"46":1,"47":4,"86":1,"127":1,"152":1,"153":1,"158":4}}],["max",{"2":{"6":9,"34":2,"47":1,"127":1,"136":2,"151":5,"152":8,"153":7,"158":36,"160":1,"174":1}}],["made",{"2":{"6":2,"44":1,"45":1,"54":1,"110":1,"134":1,"142":1,"145":1,"159":1}}],["maybe",{"2":{"6":1,"97":4,"131":1,"136":6}}],["may",{"2":{"1":1,"6":5,"23":2,"24":1,"40":2,"45":1,"54":1,"62":1,"126":1,"128":1,"134":1,"136":4,"143":1,"144":1,"152":1,"164":1}}],["mercator",{"2":{"170":1}}],["merge",{"2":{"136":1}}],["measure",{"2":{"136":1,"150":1}}],["meant",{"2":{"26":1}}],["meaning",{"2":{"3":3,"4":1,"6":4,"24":1,"37":1,"41":1,"103":4,"126":1}}],["means",{"2":{"3":1,"6":2,"36":1,"37":1,"41":1,"74":1,"97":3,"102":1,"103":1,"126":1,"134":1}}],["mean",{"2":{"0":1,"6":5,"17":1,"39":2,"40":5,"136":1}}],["meanvalue",{"2":{"0":1,"5":2,"6":3,"38":1,"39":2,"40":15}}],["meets",{"2":{"97":9,"103":1,"158":1}}],["meet",{"2":{"54":3,"74":1,"75":1,"89":1,"97":7,"106":1,"116":1}}],["memory",{"2":{"40":1,"171":1}}],["mesh",{"2":{"39":1,"136":1}}],["message",{"2":{"6":1,"166":1}}],["me",{"0":{"23":1}}],["mentioned",{"2":{"19":1}}],["mentions",{"2":{"6":1,"166":1}}],["menu",{"2":{"14":3}}],["median",{"2":{"13":4,"136":1}}],["mechanics",{"2":{"6":1,"40":1}}],["met",{"2":{"97":44}}],["meters",{"2":{"6":4,"151":1,"152":4,"170":1}}],["methoderror",{"2":{"31":3}}],["methods",{"0":{"2":1,"3":1,"4":1,"6":1},"1":{"3":1,"4":1},"2":{"1":1,"6":9,"9":1,"25":1,"27":1,"31":27,"40":3,"58":1,"75":1,"89":1,"106":1,"116":1,"127":1,"131":1,"134":1,"136":2,"151":1,"156":2,"161":1,"164":1,"169":1}}],["method",{"0":{"148":1},"2":{"1":1,"4":1,"5":10,"6":97,"24":1,"34":1,"37":1,"40":37,"41":2,"44":1,"47":1,"54":1,"57":1,"62":3,"63":2,"66":4,"69":1,"75":2,"89":2,"103":1,"106":2,"116":2,"127":1,"136":5,"147":1,"148":2,"151":2,"152":9,"153":14,"154":2,"165":1,"166":3,"175":1,"178":1}}],["mutation",{"2":{"172":1}}],["mutlipolygon",{"2":{"4":1,"6":1,"44":1}}],["muladd",{"2":{"40":2}}],["multifloats",{"2":{"13":1,"14":1,"15":1}}],["multifloat",{"2":{"7":1}}],["multilinestringtrait",{"2":{"141":1}}],["multilinestring",{"2":{"6":1,"136":1,"167":2}}],["multi",{"0":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1},"2":{"4":2,"6":3,"34":1,"37":1,"47":1,"69":2,"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["multicurves",{"2":{"37":1,"47":1}}],["multicurve",{"2":{"4":1,"6":1,"37":1}}],["multigeometry",{"2":{"4":2,"6":2,"66":2}}],["multiplication",{"2":{"153":1}}],["multiplied",{"2":{"40":3}}],["multiple",{"2":{"4":1,"6":1,"40":1,"97":1,"146":1,"160":1,"169":1,"173":1}}],["multiply",{"2":{"1":1,"6":1,"161":1}}],["multipolys",{"2":{"57":3}}],["multipoly`",{"2":{"51":2,"53":2,"56":2}}],["multipoly",{"2":{"6":9,"15":3,"51":1,"52":27,"53":1,"54":26,"56":1,"57":24,"145":21,"156":9}}],["multipolygon`",{"2":{"127":1}}],["multipolygons",{"2":{"3":1,"4":1,"6":11,"44":1,"51":3,"53":3,"54":3,"56":3,"65":1,"69":1,"103":2,"144":1,"169":1,"170":1}}],["multipolygon",{"2":{"3":2,"4":5,"6":16,"37":2,"43":1,"51":1,"52":7,"53":1,"54":5,"56":1,"57":6,"69":4,"103":2,"127":7,"136":1,"142":2,"143":7,"144":8,"145":2,"156":3,"169":8,"170":1}}],["multipolygontrait",{"2":{"1":1,"3":4,"4":2,"6":7,"23":1,"52":4,"54":4,"57":4,"69":6,"81":1,"82":1,"95":1,"96":1,"103":8,"112":1,"113":1,"122":1,"123":1,"136":1,"141":1,"145":4}}],["multipoint",{"2":{"4":5,"6":5,"37":1,"69":5,"86":6,"136":4,"156":1,"169":5}}],["multipoints",{"2":{"3":2,"4":1,"6":3,"37":1,"47":1,"69":2,"103":2,"156":1,"169":1}}],["multipointtrait",{"2":{"1":1,"3":2,"4":4,"6":8,"34":2,"37":1,"47":1,"69":8,"81":1,"82":1,"86":4,"95":1,"96":1,"103":4,"112":1,"113":1,"122":1,"123":1,"134":1,"141":1,"156":2,"167":1}}],["multithreading",{"2":{"1":2,"4":1,"6":5,"133":1}}],["must",{"2":{"1":1,"3":8,"4":2,"5":1,"6":23,"9":1,"34":1,"40":5,"41":1,"45":2,"47":3,"50":1,"54":2,"69":5,"72":2,"75":1,"84":1,"85":1,"89":1,"97":13,"103":1,"105":1,"106":1,"116":2,"127":1,"131":1,"136":1,"140":1,"141":3,"142":1,"147":1,"152":1,"153":1,"156":1,"160":4,"166":1}}],["much",{"2":{"0":1,"6":3,"51":1,"53":1,"56":1}}],["mdash",{"2":{"1":4,"3":9,"4":8,"5":3,"6":89,"131":3,"141":1,"142":4}}],["df",{"2":{"172":3,"173":4,"176":10,"177":12}}],["dp",{"2":{"156":3}}],["dy",{"2":{"126":2,"153":3}}],["dy2",{"2":{"126":2}}],["dy1",{"2":{"86":10,"126":2}}],["dyc",{"2":{"86":2}}],["dx",{"2":{"126":2,"153":3}}],["dx2",{"2":{"126":2}}],["dx1",{"2":{"86":10,"126":2}}],["dxc",{"2":{"86":2}}],["drop",{"2":{"57":1,"145":1,"153":1}}],["driven",{"2":{"25":1,"27":1}}],["driving",{"2":{"25":1,"27":1}}],["duplicated",{"2":{"54":2}}],["during",{"2":{"45":1}}],["due",{"2":{"44":1,"45":1,"54":3}}],["date",{"2":{"62":1}}],["datas",{"2":{"178":1}}],["datasets",{"2":{"170":1,"175":1,"176":1}}],["dataset",{"2":{"170":1,"175":1}}],["datainterpolations",{"2":{"150":1}}],["dataframes",{"2":{"172":3,"176":2,"177":1}}],["dataframe",{"2":{"29":1,"172":1,"175":1,"176":5,"177":2}}],["data",{"0":{"127":1,"173":1},"2":{"23":1,"25":1,"27":1,"61":1,"127":2,"156":10,"168":1,"170":2,"171":2,"172":2,"173":6,"176":1}}],["dataaspect",{"2":{"13":1,"14":1,"33":1,"36":1,"39":2,"43":1,"46":1,"65":2,"127":2,"151":1,"156":1}}],["dashboard",{"0":{"14":1},"2":{"13":1,"14":1}}],["d",{"2":{"1":2,"5":1,"6":1,"40":1,"147":1,"158":3}}],["deu",{"2":{"177":2}}],["demonstrates",{"2":{"176":1}}],["densify",{"2":{"152":3}}],["densifying",{"2":{"152":1}}],["densifies",{"2":{"150":1}}],["denoted",{"2":{"97":1}}],["denotes",{"2":{"45":1}}],["debug",{"2":{"141":1}}],["debugging",{"2":{"40":1,"45":1}}],["de",{"2":{"97":2,"175":1}}],["derivation",{"2":{"54":1}}],["dealing",{"2":{"47":1}}],["delete",{"2":{"86":1,"103":1,"127":1,"158":1}}],["deleteat",{"2":{"45":6,"158":1,"160":2}}],["deltri",{"2":{"63":1}}],["delayed",{"2":{"45":10,"52":2,"54":2,"57":2}}],["delay",{"2":{"45":14,"51":2,"52":2,"53":2,"54":2,"56":2,"57":2}}],["delaunay",{"2":{"6":1,"63":1}}],["delaunaytriangulation",{"2":{"6":1,"31":1,"58":1,"63":6}}],["depend",{"2":{"45":2}}],["depends",{"2":{"45":1,"50":1}}],["depending",{"2":{"1":1,"6":1,"23":1,"54":1,"136":1}}],["depth",{"2":{"40":2}}],["desktop",{"2":{"173":1}}],["dest",{"2":{"170":2}}],["destination",{"2":{"170":5}}],["desired",{"2":{"56":1,"173":1}}],["despite",{"2":{"34":1}}],["describe",{"2":{"17":1}}],["described",{"2":{"6":1,"40":1,"44":1,"45":1}}],["deconstruct",{"2":{"129":1}}],["decomposition",{"2":{"18":1,"129":1}}],["decomposing",{"2":{"18":1}}],["decompose",{"2":{"18":2,"29":1,"40":4,"137":1}}],["decrementing",{"2":{"127":1}}],["decrease",{"2":{"44":1}}],["decreasing",{"2":{"6":1,"156":1}}],["decide",{"2":{"62":1,"127":1}}],["decision",{"2":{"24":1}}],["degeneracies",{"2":{"9":1}}],["degenerate",{"2":{"6":1,"40":1,"50":2}}],["degrees",{"2":{"6":1,"33":1,"126":1,"152":1}}],["defines",{"2":{"45":1,"129":1,"140":1,"163":1}}],["define",{"2":{"39":1,"54":2,"68":1,"127":2,"129":1,"134":1,"136":1,"163":1,"178":2}}],["defined",{"2":{"4":1,"5":1,"6":3,"7":1,"22":1,"34":2,"40":1,"46":1,"47":4,"54":4,"66":2,"125":1,"136":1,"153":1,"163":1}}],["definitions",{"2":{"166":1}}],["definition",{"2":{"4":4,"6":6,"69":8,"74":1,"153":1}}],["default",{"2":{"1":2,"4":5,"6":14,"34":1,"37":2,"47":1,"51":1,"52":2,"53":1,"54":5,"56":1,"57":2,"63":1,"66":2,"127":5,"131":1,"136":2,"147":2,"156":2}}],["defaults",{"2":{"1":6,"4":2,"6":14,"133":3,"136":1}}],["deeper",{"2":{"1":1,"6":1,"135":1,"136":2}}],["detrimental",{"2":{"143":1}}],["detector",{"2":{"62":1}}],["detection",{"2":{"62":1,"127":1}}],["determined",{"2":{"45":1,"47":1}}],["determine",{"2":{"45":10,"47":3,"51":2,"53":2,"54":9,"56":2,"75":1,"89":1,"97":9,"103":1,"106":1,"116":1,"158":3,"175":1}}],["determines",{"2":{"37":1,"45":3,"54":1,"97":10}}],["determinant",{"2":{"6":1,"40":1}}],["details",{"2":{"131":3,"132":1,"151":2}}],["detail",{"2":{"26":1}}],["det",{"2":{"0":1,"6":2,"40":4}}],["dirname",{"2":{"156":4}}],["dirty",{"2":{"155":1}}],["directive",{"2":{"136":1}}],["direction",{"2":{"6":1,"45":1,"69":5,"127":3}}],["directly",{"2":{"6":1,"63":3,"127":1,"152":1}}],["dig",{"2":{"136":1}}],["dict",{"2":{"127":5}}],["didn",{"2":{"57":1,"97":1,"165":1}}],["division",{"2":{"39":1}}],["divided",{"2":{"26":1}}],["div",{"2":{"6":2}}],["div>",{"2":{"6":2}}],["ditance",{"2":{"4":1,"6":1,"66":1}}],["dimensional",{"2":{"5":1,"6":3,"36":1,"40":1,"63":2}}],["dimensions",{"2":{"3":1,"6":1,"103":2}}],["dimension",{"2":{"1":1,"3":4,"6":4,"86":2,"102":1,"103":4,"147":1}}],["discouraged",{"2":{"171":1}}],["discussion",{"2":{"25":1,"27":1,"50":1}}],["distributed",{"2":{"176":2}}],["distinct",{"2":{"54":1,"127":1}}],["dist",{"2":{"54":40,"66":19,"97":2,"152":8,"158":40}}],["distance`",{"2":{"152":3,"153":1,"166":1}}],["distances",{"2":{"54":1,"65":1,"152":1,"157":5}}],["distance",{"0":{"64":2,"65":2},"1":{"65":2,"66":2},"2":{"0":4,"4":26,"6":47,"31":1,"40":13,"41":3,"47":3,"54":32,"64":2,"65":17,"66":92,"97":1,"129":1,"150":1,"151":5,"152":13,"153":14,"156":1,"157":3,"158":6,"159":1,"174":1,"178":2}}],["disagree",{"2":{"37":1}}],["disparate",{"2":{"25":1,"27":1}}],["dispatches",{"2":{"6":1,"34":1,"37":1,"40":1,"44":1,"47":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1}}],["dispatch",{"2":{"4":1,"6":5,"24":1,"40":1,"69":1,"131":1,"136":2,"164":1,"166":1}}],["displaying",{"2":{"170":1}}],["display",{"2":{"13":1,"39":1,"170":1}}],["disjoint",{"0":{"87":1,"88":1,"91":1,"92":1,"93":1,"94":1,"95":1},"1":{"88":1,"89":1},"2":{"0":2,"3":5,"6":7,"23":1,"31":1,"57":2,"87":1,"88":3,"89":11,"90":6,"91":15,"92":18,"93":10,"94":5,"95":4,"96":2,"97":16,"100":3,"142":2,"143":2,"145":7,"175":1}}],["diffs",{"2":{"34":4}}],["diff",{"2":{"6":2,"34":17,"51":5,"52":3,"103":3,"145":8}}],["differs",{"2":{"170":1}}],["differ",{"2":{"4":1,"6":1,"66":1}}],["differently",{"2":{"4":3,"6":4,"34":1,"37":2,"47":1}}],["different",{"2":{"3":1,"4":4,"6":6,"20":1,"23":1,"34":1,"37":4,"45":3,"47":1,"54":2,"62":1,"103":3,"127":1,"134":1,"136":1,"143":2,"170":2,"173":1}}],["differences",{"0":{"52":1},"2":{"54":1,"158":1}}],["difference",{"0":{"51":1},"2":{"0":1,"6":7,"11":1,"23":1,"31":1,"45":3,"51":12,"52":14,"54":1,"56":1,"57":3,"142":1,"145":1,"152":1}}],["diffintersectingpolygons",{"2":{"0":1,"6":1,"142":1,"145":4}}],["doi",{"2":{"51":2,"53":2,"56":2,"97":1}}],["doing",{"2":{"17":1,"22":1,"136":1,"171":1}}],["dot",{"2":{"34":2,"40":1}}],["doable",{"2":{"9":1}}],["documenter",{"2":{"131":3,"132":1,"151":2}}],["documentation",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"26":1,"39":1}}],["docstring",{"2":{"131":6,"132":2,"151":4}}],["docstrings",{"0":{"130":1},"1":{"131":1},"2":{"7":1}}],["docs",{"0":{"26":1},"2":{"26":1,"127":1}}],["doc",{"2":{"9":1,"10":1}}],["does",{"0":{"22":1},"2":{"7":1,"19":1,"43":1,"54":2,"71":1,"74":3,"97":1}}],["doesn",{"2":{"4":1,"6":2,"37":1,"50":1,"69":1,"152":1,"166":1,"177":1}}],["download",{"2":{"170":1}}],["down",{"2":{"6":1,"18":1,"29":1,"40":1,"136":1}}],["doublets",{"2":{"177":2}}],["double",{"2":{"159":4}}],["doubled",{"2":{"6":1,"159":1}}],["douglas",{"2":{"154":2,"156":2,"158":1}}],["douglaspeucker",{"0":{"158":1},"2":{"0":1,"6":5,"154":1,"156":5,"158":6}}],["done",{"0":{"10":1},"2":{"13":1,"14":1,"97":2,"127":1,"129":1,"143":1,"169":1,"175":1}}],["don",{"2":{"4":2,"6":3,"45":4,"51":1,"57":1,"69":6,"92":1,"97":1,"105":1,"109":1,"127":2,"136":3,"153":1,"166":1}}],["do",{"0":{"9":1,"23":1,"55":1},"2":{"1":1,"6":2,"14":1,"23":1,"31":1,"34":1,"37":2,"40":2,"41":1,"44":1,"47":1,"50":1,"57":3,"66":2,"68":1,"69":1,"84":1,"92":2,"93":1,"94":2,"97":1,"127":4,"129":1,"136":9,"138":1,"139":1,"144":1,"148":1,"149":2,"152":1,"156":1,"161":2,"162":2,"170":2,"171":2,"172":3,"176":1,"177":1}}],["ay",{"2":{"126":2}}],["azimuth",{"2":{"126":2}}],["automatically",{"2":{"103":1,"170":1}}],["a3",{"2":{"61":1}}],["against",{"2":{"69":1,"97":2,"152":1,"156":1}}],["again",{"2":{"54":1,"136":1}}],["a``",{"2":{"52":2}}],["a`",{"2":{"52":7,"54":3,"57":2}}],["away",{"2":{"41":1,"86":1,"178":1}}],["a2y",{"2":{"54":4}}],["a2x",{"2":{"54":4}}],["a2",{"2":{"39":4,"54":54,"62":1,"103":6}}],["a1y",{"2":{"54":7}}],["a1x",{"2":{"54":7}}],["a1",{"2":{"39":2,"45":9,"54":66,"62":1,"103":6}}],["ams",{"2":{"174":2}}],["america",{"2":{"156":1}}],["am",{"2":{"97":1}}],["ambiguity",{"2":{"66":2,"136":5}}],["amounts",{"2":{"173":1}}],["amount",{"2":{"36":1,"46":1}}],["amp",{"2":{"6":1,"9":1}}],["axes",{"2":{"127":6}}],["ax",{"2":{"13":3,"14":3,"126":2,"169":5}}],["axislegend",{"2":{"60":1,"151":1,"155":1}}],["axis",{"2":{"13":2,"14":1,"33":1,"36":1,"39":4,"43":1,"46":1,"62":2,"65":1,"127":2,"151":1,"156":1,"174":1}}],["axs",{"2":{"13":2}}],["a>",{"2":{"6":2}}],["adjust",{"2":{"54":1}}],["adjacent",{"2":{"45":1,"52":1,"54":1,"57":1}}],["adaptivity",{"0":{"55":1}}],["adaptive",{"2":{"7":1,"13":3,"14":2,"55":1}}],["adapted",{"2":{"51":1,"53":1,"56":1,"126":1}}],["advance",{"2":{"44":2}}],["advised",{"2":{"6":1,"164":1}}],["administrative",{"2":{"177":1}}],["admin",{"2":{"11":1,"61":1,"156":2}}],["adm0",{"2":{"11":7,"61":4}}],["additional",{"2":{"173":1}}],["additionally",{"2":{"45":3,"69":1}}],["addition",{"2":{"39":1,"57":1}}],["adding",{"2":{"4":1,"6":4,"7":1,"57":2,"127":1,"146":1,"150":1,"152":2,"153":1}}],["added",{"2":{"6":1,"34":1,"45":6,"47":1,"57":2,"131":1,"136":1,"145":2,"158":1}}],["add",{"2":{"3":1,"6":1,"7":2,"40":1,"41":1,"45":16,"47":1,"50":4,"51":3,"53":1,"54":2,"56":2,"57":9,"63":1,"86":1,"127":4,"136":1,"150":1,"152":1,"158":10,"165":1,"170":1,"172":2,"175":1}}],["average",{"2":{"38":3,"44":4,"54":1}}],["available",{"0":{"142":1},"2":{"6":3,"31":1,"44":1,"141":3,"150":1,"151":1,"153":1,"156":1,"160":1,"164":1}}],["avoid",{"2":{"5":1,"6":7,"40":1,"51":1,"53":1,"54":1,"56":1,"57":1,"127":2,"136":5,"153":1,"157":1,"158":1,"159":1,"169":3}}],["achieve",{"2":{"143":1}}],["across",{"2":{"134":1}}],["acos",{"2":{"34":1}}],["activate",{"2":{"151":1}}],["action",{"2":{"20":2}}],["actions",{"2":{"20":2}}],["actual",{"2":{"10":1,"40":1,"126":1,"139":1,"147":1,"152":1}}],["actually",{"2":{"1":1,"6":1,"9":1,"40":4,"54":1,"57":3,"97":1,"127":1,"161":1,"173":1}}],["access",{"2":{"170":1}}],["accessed",{"2":{"166":1}}],["acceptable",{"2":{"97":1}}],["accepts",{"2":{"63":1}}],["accept",{"2":{"6":1,"166":1}}],["according",{"2":{"138":1,"143":1,"144":1,"176":1}}],["accordingly",{"2":{"45":1}}],["account",{"2":{"51":1,"53":1}}],["accurary",{"2":{"54":1}}],["accuratearithmetic",{"2":{"11":2}}],["accurate",{"0":{"11":1},"2":{"11":3,"151":1}}],["accumulators",{"2":{"40":1}}],["accumulator",{"2":{"40":1}}],["accumulate",{"2":{"37":1,"44":3}}],["accumulation",{"0":{"11":1},"2":{"40":1}}],["after",{"2":{"6":8,"34":1,"45":3,"136":1,"156":2}}],["ab",{"2":{"45":3,"51":1,"53":1,"54":5,"56":1}}],["able",{"2":{"20":1,"54":1}}],["ability",{"2":{"17":1}}],["about",{"2":{"6":1,"24":2,"30":1,"40":2,"97":1,"137":1}}],["above",{"2":{"4":1,"6":1,"34":1,"44":1,"45":1,"54":1,"57":1,"141":1}}],["abs",{"2":{"34":1,"37":4,"44":1,"47":2,"86":8,"103":2,"127":1,"159":1,"178":1}}],["absolute",{"2":{"4":1,"6":1,"36":1,"37":2}}],["abstractpolygon",{"2":{"136":1}}],["abstractpolygontrait",{"2":{"66":1}}],["abstractpoint",{"2":{"136":1}}],["abstractface",{"2":{"136":1}}],["abstractfloat",{"2":{"31":1,"34":1,"37":2,"45":1,"47":2,"50":1,"51":1,"53":1,"54":1,"56":1,"66":8}}],["abstractrange",{"2":{"127":6}}],["abstractmesh",{"2":{"136":1}}],["abstractmulticurvetrait",{"2":{"81":1,"82":1,"95":1,"96":1,"112":1,"113":1,"122":1,"123":1}}],["abstractmatrix",{"2":{"6":5,"127":13}}],["abstractcurvetrait",{"2":{"34":1,"37":1,"47":1,"77":1,"80":1,"81":1,"86":1,"91":1,"95":1,"108":1,"111":1,"112":1,"118":1,"121":1,"122":1,"126":1,"156":2,"167":3}}],["abstractarrays",{"2":{"134":1}}],["abstractarray",{"2":{"6":1,"131":1,"136":6,"167":2}}],["abstract",{"2":{"6":3,"40":3,"140":1,"141":4,"142":1,"156":3,"165":1}}],["abstractvector",{"2":{"5":1,"6":1,"40":26,"127":8}}],["abstractgeometrytrait`",{"2":{"141":1}}],["abstractgeometrytrait",{"2":{"6":3,"37":2,"47":1,"66":1,"82":1,"96":1,"113":1,"123":1,"131":1,"134":1,"141":4,"142":2,"167":5}}],["abstractgeometry",{"2":{"3":4,"6":4,"72":2,"85":2,"136":1}}],["abstracttrait",{"2":{"1":2,"3":2,"6":8,"50":1,"52":2,"54":4,"57":2,"103":4,"129":1,"131":2,"136":9,"164":3}}],["abstractbarycentriccoordinatemethod",{"2":{"0":1,"5":1,"6":7,"40":18}}],["attribute",{"2":{"173":1}}],["attributed",{"2":{"172":1}}],["attributes",{"0":{"172":1},"2":{"168":1,"172":3}}],["attempts",{"2":{"97":1}}],["attach",{"2":{"1":2,"4":1,"6":5,"133":1}}],["atomic",{"2":{"7":1}}],["at",{"2":{"3":4,"5":1,"6":6,"9":1,"18":1,"20":1,"24":1,"26":1,"34":2,"36":1,"37":1,"39":1,"40":2,"45":4,"47":2,"54":8,"57":2,"62":1,"97":17,"103":6,"105":1,"106":1,"109":3,"110":2,"111":2,"112":1,"113":1,"116":1,"122":1,"126":1,"134":1,"136":1,"151":1,"153":1,"158":1,"160":1,"170":1,"171":2}}],["arbitrarily",{"2":{"134":1}}],["arbitrary",{"2":{"38":1,"129":1,"169":1}}],["around",{"2":{"39":1,"40":2,"50":1,"65":1,"69":1,"127":1,"156":1,"176":1}}],["argmin",{"2":{"160":1}}],["argtypes",{"2":{"41":2,"148":1,"152":1}}],["args",{"2":{"13":2}}],["argumenterror",{"2":{"57":1,"127":1,"136":5}}],["argument",{"2":{"4":5,"6":10,"34":1,"37":2,"44":1,"47":1,"51":1,"53":1,"56":1,"66":2,"136":2,"166":2,"170":1,"171":1}}],["arguments",{"2":{"1":1,"3":1,"6":5,"45":1,"75":2,"89":1,"106":1,"116":1,"147":1,"152":2,"153":1,"166":1}}],["arithmetic",{"2":{"11":1}}],["archgdal",{"2":{"23":1}}],["arc",{"2":{"6":1,"152":1}}],["array",{"2":{"4":1,"6":2,"37":1,"47":1,"127":5,"136":7,"157":1,"160":1}}],["arrays",{"2":{"1":1,"6":2,"22":1,"127":1,"136":2}}],["aren",{"2":{"4":3,"6":5,"50":1,"52":1,"54":2,"57":4,"69":3,"142":2,"145":2}}],["are",{"2":{"1":1,"3":4,"4":18,"5":2,"6":50,"9":2,"20":2,"22":3,"24":1,"25":1,"26":2,"27":1,"33":1,"34":8,"36":1,"37":2,"38":6,"40":11,"43":1,"44":3,"45":31,"47":6,"50":3,"51":3,"52":15,"53":2,"54":16,"56":5,"57":9,"62":3,"65":1,"66":1,"68":3,"69":26,"71":1,"75":7,"77":1,"78":3,"79":3,"80":1,"82":1,"88":1,"89":5,"91":1,"92":1,"93":1,"95":1,"96":1,"97":12,"103":7,"106":5,"108":1,"110":2,"115":1,"116":5,"118":1,"119":3,"120":3,"121":1,"123":1,"126":1,"127":14,"128":1,"131":1,"134":1,"136":4,"137":1,"138":1,"139":1,"141":1,"142":3,"143":1,"144":1,"145":2,"146":1,"151":1,"152":1,"153":1,"156":4,"158":1,"160":2,"162":1,"163":2,"164":1,"166":1,"169":1,"172":2,"173":2,"174":1,"175":3,"176":6,"177":1,"178":1}}],["area2",{"2":{"44":4}}],["area1",{"2":{"44":4}}],["areas",{"2":{"4":2,"6":2,"37":3,"159":2}}],["area",{"0":{"35":2,"36":2},"1":{"36":2,"37":2},"2":{"0":5,"4":15,"6":25,"11":6,"31":1,"35":2,"36":9,"37":61,"42":1,"43":3,"44":49,"46":2,"47":44,"56":2,"57":1,"103":1,"129":1,"142":2,"145":2,"156":2,"159":4,"170":1}}],["ask",{"2":{"23":1}}],["aspect",{"2":{"13":1,"14":1,"33":1,"36":1,"39":2,"43":1,"46":1,"65":2,"127":2,"151":1,"156":1}}],["assign",{"2":{"168":1}}],["assigned",{"2":{"45":1,"127":7,"176":1}}],["assets",{"2":{"170":1}}],["assetpath",{"2":{"170":1}}],["assemble",{"2":{"139":1}}],["assert",{"2":{"40":23,"44":1,"45":1,"50":1,"52":1,"54":1,"153":1,"167":1}}],["assume",{"2":{"103":2,"136":3,"138":1,"145":1}}],["assumed",{"2":{"37":1,"69":1,"97":1}}],["assumes",{"2":{"6":1,"45":1,"66":1,"152":1,"160":1}}],["associativity",{"2":{"19":1}}],["associated",{"0":{"1":1},"2":{"38":2}}],["as",{"2":{"1":8,"3":18,"4":6,"5":1,"6":80,"7":1,"11":2,"13":3,"14":3,"15":3,"17":2,"18":2,"20":1,"22":1,"23":2,"24":1,"25":1,"27":1,"33":2,"34":4,"36":2,"37":3,"38":4,"39":1,"40":4,"41":3,"43":2,"44":1,"45":15,"46":2,"47":5,"49":3,"50":5,"51":8,"52":2,"53":7,"54":8,"56":7,"57":5,"58":1,"60":2,"61":2,"62":3,"63":3,"65":3,"66":1,"68":2,"69":2,"71":2,"72":2,"74":3,"75":3,"84":2,"85":2,"86":2,"88":2,"89":3,"97":7,"99":2,"100":2,"102":2,"103":2,"105":2,"106":3,"108":1,"115":2,"116":3,"126":8,"127":3,"129":3,"131":1,"134":2,"135":2,"136":15,"138":2,"139":2,"141":1,"142":1,"144":2,"146":1,"147":3,"150":2,"151":2,"152":3,"154":2,"155":2,"156":7,"158":2,"161":3,"164":2,"165":2,"166":2,"167":2,"168":3,"169":2,"170":1,"171":1,"173":3,"174":3,"175":2,"176":3,"177":2}}],["alone",{"2":{"136":1}}],["along",{"2":{"4":4,"6":5,"45":3,"47":2,"54":4,"69":4,"97":1}}],["although",{"2":{"119":1,"120":1}}],["alternate",{"2":{"45":1}}],["alternative",{"2":{"45":1}}],["already",{"2":{"69":1,"97":2,"158":1}}],["almost",{"2":{"54":1}}],["alg=nothing",{"2":{"156":1}}],["alg`",{"2":{"156":1}}],["alg",{"2":{"6":4,"156":21,"157":3,"158":8,"159":3,"160":7,"166":9}}],["algorithms",{"2":{"6":3,"58":1,"62":1,"138":1,"153":1,"154":1,"156":4,"158":1,"160":1}}],["algorithm",{"0":{"157":1,"158":1,"159":1},"2":{"6":12,"39":1,"45":2,"47":1,"50":3,"51":1,"53":1,"56":1,"58":1,"63":4,"97":1,"154":1,"156":8,"157":1,"158":3,"159":1,"166":4}}],["allocating",{"2":{"63":1}}],["allocations",{"2":{"5":1,"6":1,"40":1}}],["allocate",{"2":{"63":1}}],["allow=",{"2":{"97":1}}],["allows",{"2":{"11":1,"18":1,"23":1,"24":1,"29":1,"75":2,"77":3,"78":3,"79":3,"80":1,"89":2,"91":3,"92":3,"93":2,"94":1,"106":1,"109":1,"110":1,"111":1,"116":3,"118":3,"119":3,"120":3,"121":1,"129":1,"154":1,"170":1,"172":1,"175":1}}],["allowed",{"2":{"6":1,"75":3,"89":3,"97":6,"106":5,"108":1,"109":2,"116":3,"156":1}}],["allow",{"2":{"1":1,"6":1,"23":1,"54":1,"75":7,"86":3,"89":7,"97":73,"106":10,"116":10,"161":1}}],["all",{"2":{"1":3,"3":2,"4":3,"6":14,"9":1,"11":7,"22":1,"25":1,"27":1,"31":2,"34":5,"37":3,"40":1,"45":13,"47":3,"51":1,"52":3,"54":3,"57":5,"58":1,"61":3,"63":1,"65":1,"69":2,"71":1,"78":3,"79":3,"82":1,"95":1,"96":1,"97":7,"103":4,"115":1,"123":1,"126":1,"127":3,"128":1,"131":1,"134":2,"135":1,"136":8,"139":1,"141":1,"143":1,"146":1,"149":1,"156":1,"161":2,"162":1,"163":1,"169":1,"171":1,"173":1,"175":1}}],["always",{"2":{"1":7,"4":6,"6":10,"25":1,"27":1,"36":1,"37":4,"47":2,"62":1,"65":1,"66":1,"69":1,"136":2,"147":4,"175":1}}],["also",{"2":{"1":2,"6":11,"23":1,"34":1,"37":2,"44":2,"45":3,"47":1,"51":1,"53":1,"54":2,"56":1,"58":1,"62":1,"63":1,"65":1,"66":2,"69":3,"103":1,"127":1,"134":1,"136":1,"139":1,"142":3,"145":2,"148":1,"150":1,"151":1,"152":1,"154":1,"161":1,"164":1,"169":2,"172":1}}],["a",{"0":{"23":1,"170":1,"172":1},"2":{"1":13,"3":5,"4":79,"5":1,"6":196,"7":3,"9":1,"11":1,"15":2,"17":1,"18":6,"20":3,"22":3,"23":4,"24":2,"25":2,"27":2,"29":2,"30":2,"33":3,"34":22,"36":11,"37":20,"38":13,"39":4,"40":11,"41":2,"43":5,"44":8,"45":281,"46":2,"47":17,"49":3,"50":4,"51":39,"52":30,"53":38,"54":91,"55":3,"56":36,"57":45,"58":3,"60":3,"61":2,"62":1,"63":4,"65":15,"66":27,"68":2,"69":54,"71":2,"74":1,"75":3,"77":5,"78":3,"79":2,"81":2,"82":2,"84":2,"86":1,"88":1,"89":3,"91":4,"92":3,"93":1,"95":2,"96":2,"97":52,"99":2,"102":5,"103":27,"105":2,"106":4,"108":4,"109":2,"110":2,"111":1,"112":2,"113":2,"115":1,"116":3,"118":5,"119":2,"120":2,"122":2,"123":2,"125":1,"126":4,"127":79,"129":4,"131":2,"134":4,"136":34,"137":6,"138":2,"139":2,"140":5,"141":5,"142":9,"143":8,"145":6,"146":2,"147":8,"148":3,"149":3,"150":5,"151":4,"152":8,"153":10,"155":3,"156":5,"159":3,"160":1,"161":2,"162":1,"164":6,"165":1,"166":12,"167":2,"168":1,"169":21,"170":12,"171":5,"172":5,"173":11,"174":1,"175":5,"176":8,"177":3,"178":3}}],["annotation",{"2":{"165":1}}],["annotated",{"2":{"26":1}}],["angels",{"2":{"34":1}}],["angle",{"2":{"34":35,"126":1}}],["angles",{"0":{"32":1,"33":1},"1":{"33":1,"34":1},"2":{"0":2,"4":10,"6":10,"31":1,"32":1,"33":4,"34":42}}],["answers",{"2":{"143":1}}],["answer",{"2":{"6":3,"51":1,"53":1,"54":1,"56":1}}],["another",{"2":{"3":1,"6":1,"45":2,"54":1,"63":1,"65":1,"71":1,"74":1,"77":1,"79":1,"80":1,"84":1,"88":1,"91":1,"92":1,"93":1,"94":1,"97":1,"99":1,"102":1,"103":1,"105":1,"108":1,"109":1,"110":1,"111":1,"115":1,"118":1,"119":1,"120":1,"121":1,"127":1,"147":1}}],["anonymous",{"2":{"1":1,"6":1,"161":1}}],["an",{"2":{"1":3,"4":11,"5":1,"6":29,"9":1,"13":1,"14":1,"18":1,"20":1,"23":2,"33":1,"34":4,"36":1,"37":2,"39":1,"40":3,"41":2,"43":1,"45":15,"46":2,"47":2,"49":1,"50":1,"51":2,"52":5,"53":2,"54":9,"56":2,"57":2,"63":3,"65":2,"66":5,"68":1,"69":1,"71":1,"74":2,"77":2,"84":1,"88":1,"97":13,"99":1,"102":1,"103":1,"105":1,"115":1,"118":2,"119":1,"120":1,"127":3,"128":1,"131":1,"134":1,"135":1,"136":8,"139":1,"146":1,"147":1,"152":1,"161":2,"166":3,"167":1,"169":2,"170":2,"172":1,"174":1,"176":1}}],["anything",{"2":{"39":1,"97":1}}],["any",{"2":{"1":3,"3":1,"4":2,"6":19,"18":1,"24":1,"25":1,"27":1,"29":1,"38":2,"44":1,"45":7,"47":1,"50":1,"52":1,"54":4,"57":1,"66":2,"76":2,"77":1,"80":1,"88":1,"90":2,"91":1,"92":2,"93":1,"94":2,"97":8,"103":2,"107":2,"117":2,"121":1,"127":2,"129":2,"131":1,"136":2,"139":1,"140":1,"141":3,"142":4,"145":4,"147":2,"150":1,"152":1,"153":1,"158":1,"167":1,"175":2,"176":2}}],["and",{"0":{"1":1,"20":1,"22":1,"24":1,"35":1,"52":1,"54":1,"57":1,"64":1,"169":1,"170":1,"172":1},"1":{"36":1,"37":1,"65":1,"66":1},"2":{"0":2,"1":8,"3":11,"4":18,"6":84,"7":1,"9":2,"17":4,"18":4,"20":2,"22":1,"23":2,"24":3,"25":2,"26":5,"27":2,"29":2,"30":1,"31":2,"34":13,"36":1,"37":7,"38":2,"39":2,"40":20,"41":1,"42":2,"43":1,"44":29,"45":71,"46":2,"47":18,"49":1,"50":4,"51":4,"52":16,"53":4,"54":38,"56":6,"57":15,"62":1,"63":2,"65":2,"66":13,"68":2,"69":13,"71":3,"72":2,"74":2,"75":3,"78":3,"79":4,"80":1,"84":2,"85":2,"86":1,"89":3,"92":3,"93":1,"94":1,"97":36,"99":1,"102":2,"103":3,"106":2,"110":2,"111":2,"115":3,"116":4,"118":2,"119":3,"120":3,"121":1,"126":2,"127":16,"129":8,"131":1,"134":2,"135":3,"136":22,"137":1,"138":2,"139":1,"140":1,"141":4,"142":2,"143":1,"146":2,"147":2,"149":2,"151":1,"152":5,"153":4,"154":2,"155":1,"156":8,"158":8,"159":1,"160":1,"161":1,"164":1,"165":3,"166":4,"168":3,"169":9,"170":7,"171":2,"173":5,"175":2,"176":4,"177":2}}],["apart",{"2":{"145":1}}],["april",{"0":{"7":1}}],["appears",{"2":{"138":1}}],["append",{"2":{"34":1,"45":5,"51":1,"52":2,"54":2,"56":1,"57":5,"145":2}}],["approximately",{"2":{"45":1,"151":1}}],["approach",{"2":{"19":1}}],["appropriately",{"2":{"176":1}}],["appropriate",{"2":{"6":1,"166":2}}],["applies",{"2":{"134":2}}],["applied",{"2":{"6":3,"20":1,"131":1,"136":2,"140":2,"141":2,"142":1}}],["application",{"2":{"1":1,"6":3,"136":1,"139":1,"141":3,"142":1,"145":2,"150":1,"153":1}}],["apply`",{"2":{"136":1}}],["applys",{"2":{"37":1,"47":1}}],["applyreduce",{"0":{"19":1},"2":{"0":2,"1":1,"6":1,"17":1,"19":2,"29":1,"34":1,"37":1,"44":2,"47":1,"66":2,"129":3,"131":1,"136":39,"165":1}}],["apply",{"0":{"1":1,"18":1,"22":1,"29":1,"134":1},"1":{"19":1},"2":{"0":2,"1":4,"6":7,"17":1,"18":5,"20":1,"22":1,"24":1,"29":3,"129":5,"131":1,"133":1,"134":4,"135":1,"136":56,"141":4,"142":1,"146":1,"147":1,"149":3,"152":1,"153":1,"156":2,"161":3,"162":2,"165":1}}],["apis",{"2":{"17":1}}],["api",{"0":{"0":1,"40":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"6":3,"24":1,"40":1,"152":1,"156":1,"166":1}}],["snapped",{"2":{"127":1}}],["s3",{"2":{"45":3}}],["scratch",{"2":{"173":1}}],["sciences",{"2":{"170":1}}],["scalefactor",{"2":{"152":3}}],["scattered",{"2":{"176":1}}],["scatter",{"2":{"43":1,"65":2,"68":2,"71":2,"74":1,"84":1,"88":2,"102":2,"115":2,"176":1}}],["schema",{"2":{"136":6}}],["scheme",{"2":{"44":1}}],["scenario",{"2":{"97":2}}],["scene",{"2":{"14":1}}],["skipmissing",{"2":{"127":1}}],["skipped",{"2":{"127":1}}],["skip",{"2":{"37":1,"97":14,"127":1,"160":4}}],["skygering",{"2":{"7":1}}],["square",{"2":{"66":1,"157":1,"158":1}}],["squared",{"2":{"6":2,"47":2,"66":12,"157":2,"158":7}}],["sqrt",{"2":{"34":2,"44":1,"66":3}}],["sgn",{"2":{"34":5}}],["smallest",{"2":{"34":2,"54":1,"58":1}}],["sᵢ₋₁",{"2":{"40":25}}],["sᵢ₊₁",{"2":{"6":2,"40":41}}],["sᵢ",{"2":{"6":4,"40":46}}],["src",{"2":{"6":2}}],["syntax",{"2":{"172":1}}],["symdifference",{"2":{"128":1}}],["sym10100477",{"2":{"97":1}}],["symbol=",{"2":{"86":1}}],["symbol",{"2":{"6":1,"166":2}}],["system",{"0":{"170":1,"171":1},"2":{"1":2,"147":2,"168":2,"170":1}}],["switches",{"2":{"54":1,"57":1}}],["switch",{"2":{"45":1,"57":1,"165":1}}],["switching",{"2":{"6":1,"47":1}}],["swap",{"2":{"6":1,"57":1,"66":2,"149":1}}],["swapped",{"2":{"3":1,"6":1,"72":1,"75":1,"85":1,"86":1,"100":1,"103":1}}],["swapping",{"2":{"1":1,"6":1,"136":1}}],["s2",{"2":{"6":4,"40":6,"45":3}}],["s1",{"2":{"6":3,"40":6,"45":3}}],["saving",{"0":{"173":1}}],["saved",{"2":{"69":1}}],["save",{"2":{"34":1,"168":1,"173":3}}],["samples",{"2":{"13":1}}],["sample",{"2":{"13":1}}],["same",{"2":{"3":2,"4":12,"6":23,"18":1,"34":3,"37":1,"45":15,"47":1,"50":1,"51":3,"53":1,"54":1,"56":1,"57":1,"62":1,"65":1,"68":2,"69":30,"97":2,"102":1,"103":8,"131":1,"134":1,"136":6,"137":1,"142":2,"144":1,"145":2,"151":1,"169":1,"170":1,"173":1}}],["says",{"2":{"62":1}}],["say",{"2":{"6":1,"40":1,"152":1}}],["span",{"2":{"176":1}}],["spatial",{"0":{"175":1},"1":{"176":1,"177":1,"178":1},"2":{"175":6,"176":3,"178":1}}],["spawn",{"2":{"136":5}}],["space",{"2":{"6":2,"25":1,"27":1,"34":1,"36":1,"97":1,"152":1,"153":1}}],["sp",{"2":{"97":2}}],["split",{"2":{"50":1}}],["specialized",{"2":{"25":1,"27":1,"63":1}}],["specify",{"2":{"6":1,"131":1,"136":1,"170":1,"171":1,"175":1}}],["specification",{"2":{"138":1,"141":1,"143":1,"144":1}}],["specifically",{"2":{"6":2,"40":3,"154":1,"175":1}}],["specific",{"2":{"45":1,"75":1,"89":1,"106":1,"116":1,"136":5}}],["specified",{"2":{"3":1,"6":2,"45":1,"52":2,"54":2,"57":2,"103":1,"134":1,"156":1}}],["slow",{"2":{"177":1}}],["slower",{"2":{"6":1,"166":2}}],["slope2",{"2":{"126":2}}],["slope1",{"2":{"126":2}}],["slidergrid",{"2":{"14":1}}],["sliders",{"2":{"14":3}}],["slightly",{"2":{"4":2,"6":2,"37":2}}],["suite",{"2":{"152":5,"156":13}}],["suggestion",{"2":{"148":1}}],["sun",{"2":{"97":1}}],["surrounds",{"2":{"97":1}}],["sure",{"2":{"9":1,"34":1,"45":2,"66":1,"103":1,"160":1}}],["suppose",{"2":{"177":1,"178":1}}],["support",{"2":{"41":1,"150":1,"178":1}}],["supports",{"2":{"39":1,"40":1,"58":1,"173":1,"178":2}}],["supported",{"2":{"23":1,"173":1}}],["supertype",{"2":{"6":1,"40":1}}],["sukumar",{"2":{"6":1,"40":1}}],["such",{"2":{"4":1,"6":1,"36":1,"49":1,"58":1,"134":1,"146":1}}],["sum=1",{"2":{"40":1}}],["sum",{"2":{"4":2,"6":3,"11":6,"36":1,"37":2,"38":2,"40":8,"47":1,"66":2,"126":5,"160":1,"167":4}}],["sublevel",{"2":{"177":1}}],["subsequent",{"2":{"169":1}}],["substituted",{"2":{"1":1,"6":1,"136":1}}],["subgeom1",{"2":{"136":2}}],["subgeom",{"2":{"136":3}}],["subject",{"2":{"45":1}}],["subtype",{"2":{"136":1}}],["subtypes",{"2":{"6":2,"40":2}}],["subtracted",{"2":{"126":1}}],["subtitle",{"2":{"13":1,"39":2,"152":1,"156":2}}],["sub",{"2":{"4":6,"6":7,"34":1,"37":3,"47":1,"52":6,"54":3,"57":4,"66":2,"81":2,"82":2,"95":2,"96":2,"112":2,"113":2,"122":2,"123":2,"136":3,"143":4,"144":2,"145":4}}],["series",{"2":{"169":1}}],["serve",{"2":{"6":1,"40":1}}],["searchsortedfirst",{"2":{"158":1}}],["seg2",{"2":{"126":2}}],["seg1",{"2":{"126":3}}],["seg",{"2":{"97":23,"103":9}}],["segmentation",{"2":{"151":1}}],["segments",{"2":{"23":1,"31":1,"33":2,"34":1,"43":1,"44":2,"45":3,"47":1,"54":6,"97":18,"152":1,"153":3}}],["segmentization",{"2":{"150":1}}],["segmentizing",{"2":{"6":3,"151":1,"152":2,"153":1}}],["segmentized",{"2":{"151":1}}],["segmentizes",{"2":{"150":1}}],["segmentizemethod",{"2":{"6":1,"152":3,"153":2}}],["segmentize",{"0":{"150":1},"1":{"151":1,"152":1,"153":1},"2":{"0":1,"6":4,"31":1,"41":1,"129":1,"150":1,"151":5,"152":11,"153":13,"174":1}}],["segment",{"2":{"4":4,"6":7,"34":1,"44":5,"45":6,"47":3,"49":1,"54":17,"66":2,"86":3,"97":43,"103":3,"126":2,"150":1,"152":2,"153":1}}],["seperate",{"2":{"54":1}}],["separates",{"2":{"97":1}}],["separate",{"2":{"45":1,"127":1,"136":1,"165":1,"173":1,"176":1}}],["separately",{"2":{"40":1,"127":1}}],["sense",{"2":{"37":1,"66":1}}],["several",{"2":{"20":2,"37":1,"137":1,"145":1}}],["section",{"2":{"26":1,"97":3,"102":1}}],["sections",{"2":{"10":1,"26":1}}],["seconds=1",{"2":{"152":3,"156":8}}],["secondisleft",{"2":{"127":4}}],["secondisstraight",{"2":{"127":7}}],["secondary",{"2":{"3":3,"6":3,"72":1,"75":1,"116":1}}],["second",{"2":{"3":8,"6":9,"45":1,"54":4,"69":1,"71":2,"72":1,"74":1,"75":1,"78":1,"79":1,"80":1,"85":2,"89":2,"97":2,"106":1,"115":1,"116":1,"119":1,"120":1,"121":2,"158":1,"171":1,"175":1}}],["self",{"2":{"9":2}}],["selected",{"2":{"127":1}}],["selectednode",{"2":{"127":3}}],["selection",{"2":{"14":1}}],["select",{"2":{"6":1,"164":1}}],["seem",{"2":{"25":1,"27":1}}],["see",{"2":{"6":4,"7":1,"29":1,"43":1,"63":1,"66":1,"68":1,"71":1,"74":1,"88":1,"97":5,"99":1,"102":1,"105":1,"115":1,"127":2,"138":1,"139":1,"141":1,"142":3,"144":1,"145":2,"151":2,"158":1,"176":2}}],["setup=",{"2":{"75":1,"89":1,"106":1,"116":1}}],["sets",{"2":{"45":1,"62":1}}],["setting",{"2":{"23":1}}],["set",{"0":{"23":1},"2":{"3":2,"4":7,"6":19,"23":1,"34":1,"38":2,"40":8,"45":3,"51":2,"53":2,"54":7,"56":2,"58":2,"68":2,"69":10,"75":1,"86":1,"89":1,"97":2,"103":1,"106":1,"116":1,"126":1,"127":1,"142":2,"145":2,"158":2,"169":1,"173":1,"176":3}}],["sve",{"2":{"1":1,"6":1,"161":1}}],["svector",{"2":{"1":14,"6":14,"45":5,"51":1,"54":2,"57":6,"97":1,"127":1,"161":13,"169":6,"171":4}}],["solution",{"2":{"97":1}}],["solid",{"2":{"6":2}}],["south",{"2":{"47":7}}],["source",{"2":{"1":10,"3":19,"4":22,"5":3,"6":91,"26":4,"86":2,"131":3,"141":1,"142":4,"147":3,"170":13,"171":1}}],["sort",{"2":{"45":4,"50":2,"54":2,"56":2,"97":1,"103":2,"127":1,"158":1}}],["sorted",{"2":{"20":1,"45":1,"158":7,"175":1}}],["someone",{"2":{"63":1,"166":1}}],["something",{"0":{"55":1},"2":{"10":1}}],["some",{"2":{"3":1,"6":3,"9":1,"17":1,"40":4,"69":1,"97":3,"103":1,"127":1,"128":1,"129":2,"134":2,"136":2,"140":1,"141":2,"142":1,"160":1,"163":2,"168":2,"175":1,"178":1}}],["so",{"2":{"1":1,"4":4,"6":10,"9":1,"17":1,"19":1,"25":1,"27":1,"31":1,"39":1,"40":1,"45":1,"46":1,"54":1,"56":2,"57":2,"65":1,"66":1,"68":1,"69":4,"71":1,"88":1,"97":2,"99":1,"115":1,"127":3,"131":1,"136":6,"150":1,"151":1,"152":3,"153":1,"160":1,"161":1,"166":2,"170":1,"171":1}}],["step",{"2":{"45":7,"51":1,"52":3,"53":1,"54":3,"56":1,"57":3,"127":4,"167":1}}],["storing",{"2":{"173":1}}],["stored",{"2":{"45":2,"176":1}}],["stores",{"2":{"45":1}}],["store",{"2":{"40":1,"173":1}}],["stopping",{"2":{"158":2}}],["stops",{"2":{"134":1}}],["stop",{"2":{"18":2,"86":3,"97":4,"103":3}}],["style",{"2":{"6":2}}],["style=",{"2":{"6":2}}],["stay",{"2":{"57":1}}],["stackoverflow",{"2":{"54":1}}],["stack",{"2":{"50":1}}],["states",{"2":{"156":1}}],["state",{"2":{"56":1,"177":9}}],["status",{"2":{"45":31,"52":4,"54":5,"57":4,"127":1}}],["static",{"2":{"165":1}}],["staticarray",{"2":{"40":1}}],["staticarrays",{"2":{"31":1,"45":5,"51":1,"54":2,"57":6,"97":1,"127":1,"161":2}}],["staticarraysco",{"2":{"1":1,"6":1,"161":1}}],["staticarrayscore",{"2":{"1":10,"6":10,"40":1,"161":10,"169":6,"171":4}}],["statica",{"2":{"1":1,"6":1,"161":1}}],["statistics",{"2":{"13":2,"31":1}}],["stability",{"2":{"23":1,"30":1}}],["stable",{"2":{"13":1,"24":1,"153":1}}],["stage",{"2":{"7":1}}],["standardized",{"2":{"97":1}}],["standards",{"2":{"97":1}}],["standard",{"2":{"6":1,"63":1}}],["started",{"2":{"45":1}}],["starting",{"2":{"44":2,"45":1,"47":1,"54":1,"145":4}}],["startvalue",{"2":{"14":4}}],["start",{"2":{"6":1,"18":1,"34":7,"40":1,"45":76,"47":17,"52":4,"54":4,"57":5,"69":1,"86":4,"97":44,"103":3,"118":1,"127":2,"137":1,"158":16,"169":1}}],["straightline",{"2":{"127":3}}],["straight",{"2":{"127":6}}],["strait",{"2":{"127":1}}],["structs",{"2":{"20":1,"141":1}}],["structures",{"2":{"129":1}}],["structure",{"2":{"6":2,"131":1,"136":1,"149":1}}],["struct",{"2":{"6":3,"40":2,"45":2,"63":1,"139":1,"145":2,"152":2,"157":1,"158":1,"159":1,"164":3,"165":2,"166":4}}],["strings",{"2":{"6":1,"44":1,"54":1}}],["string",{"2":{"1":2,"14":1,"43":1,"44":1,"147":2}}],["still",{"2":{"0":1,"37":1,"44":1,"45":3,"74":1,"158":1}}],["shp",{"2":{"173":1}}],["ships",{"2":{"170":1}}],["shifting",{"2":{"171":1}}],["shift",{"2":{"169":3}}],["shewchuck",{"2":{"7":1}}],["short",{"2":{"136":1}}],["shorthand",{"2":{"63":1}}],["show",{"2":{"9":1,"11":1,"13":1,"14":1,"39":1,"170":1,"173":1,"175":2}}],["shoelace",{"2":{"4":1,"6":1,"37":2,"47":1}}],["shouldn",{"2":{"54":1}}],["should",{"2":{"1":1,"4":1,"6":14,"17":1,"18":1,"20":2,"25":1,"27":1,"34":3,"37":1,"44":1,"45":3,"46":1,"69":1,"97":4,"127":2,"131":1,"136":2,"138":1,"141":4,"142":2,"153":1,"156":2,"165":1}}],["sharing",{"2":{"88":1}}],["shares",{"2":{"54":1}}],["share",{"2":{"4":7,"6":8,"68":2,"69":8,"92":2,"93":1,"94":1,"103":1,"111":1}}],["shared",{"0":{"160":1},"2":{"3":1,"6":1,"45":2,"54":2,"103":3}}],["shapes",{"2":{"66":1,"173":7}}],["shape",{"2":{"43":1,"52":1,"54":1,"68":1,"144":1,"169":1}}],["shaped",{"2":{"39":1}}],["shapefiles",{"2":{"173":1}}],["shapefile",{"2":{"29":1,"173":4}}],["shallower",{"2":{"1":1,"6":1,"136":1}}],["sites",{"2":{"177":1}}],["sides",{"2":{"45":3,"138":1}}],["side",{"2":{"34":4,"45":26}}],["signals",{"2":{"135":1}}],["sign",{"2":{"13":2,"14":2,"34":7,"37":2,"126":3}}],["signed",{"0":{"35":1,"36":1,"64":1,"65":1},"1":{"36":1,"37":1,"65":1,"66":1},"2":{"0":4,"4":15,"6":18,"11":3,"35":1,"36":5,"37":23,"47":3,"64":1,"65":7,"66":19}}],["six",{"2":{"6":1,"156":1}}],["size=",{"2":{"170":1}}],["sizehint",{"2":{"45":2,"52":1,"153":1}}],["size",{"2":{"6":4,"13":2,"14":5,"39":1,"57":1,"127":2,"136":4,"156":1}}],["sin",{"2":{"169":3,"170":1,"171":2}}],["singed",{"2":{"66":1}}],["singular",{"2":{"54":1}}],["singlepoly",{"2":{"156":6}}],["single",{"2":{"4":6,"6":10,"23":1,"34":2,"37":1,"47":1,"69":5,"102":2,"127":2,"142":2,"143":1,"145":2,"169":3,"173":1}}],["since",{"2":{"1":1,"6":2,"26":1,"34":1,"37":1,"44":1,"47":2,"56":1,"66":1,"69":1,"97":1,"103":2,"110":1,"147":1,"165":1,"166":2,"177":1}}],["simulation",{"2":{"23":1}}],["simultaneously",{"2":{"20":1}}],["simply",{"2":{"7":1,"36":1,"41":1,"45":1,"54":1,"57":1,"72":1,"85":1,"100":1,"127":1,"140":1,"147":1,"148":1,"152":1,"169":1,"172":1}}],["simpler",{"2":{"6":1,"127":1}}],["simple",{"0":{"60":1,"176":1},"2":{"6":3,"40":1,"63":1,"129":3,"147":1,"149":1,"155":2,"156":2,"165":1}}],["simplifier",{"2":{"156":4}}],["simplified",{"2":{"23":1,"155":1}}],["simplifies",{"2":{"6":3,"157":1,"158":1,"159":1}}],["simplification",{"0":{"154":1},"1":{"155":1,"156":1},"2":{"6":2,"154":2,"156":3}}],["simplifying",{"2":{"154":1}}],["simplify",{"0":{"157":1,"158":1,"159":1},"2":{"0":1,"6":15,"9":1,"31":1,"45":1,"129":1,"155":1,"156":41,"157":1,"158":2,"159":1}}],["simplifyalgs",{"2":{"160":1}}],["simplifyalg",{"2":{"0":1,"6":8,"156":5,"157":2,"158":2,"159":2}}],["similarly",{"2":{"129":1}}],["similar",{"2":{"1":1,"6":4,"18":1,"25":1,"27":1,"29":1,"41":1,"58":1,"63":1,"127":2,"136":1,"152":2,"153":1,"162":1}}],["s",{"0":{"30":1},"2":{"0":1,"3":1,"6":10,"7":1,"9":1,"18":1,"19":1,"29":1,"34":1,"36":1,"37":4,"38":1,"39":2,"40":5,"43":3,"44":3,"45":3,"47":1,"49":1,"52":1,"54":2,"57":3,"62":1,"66":1,"69":1,"84":2,"91":3,"92":4,"93":2,"97":9,"103":1,"105":1,"106":1,"111":1,"127":5,"129":2,"131":3,"132":1,"136":1,"139":1,"142":4,"143":1,"145":3,"151":4,"152":1,"154":1,"156":2,"160":4,"164":2,"165":1,"166":6,"169":6,"170":4,"171":4,"172":2,"173":5,"178":2}}],["fn",{"2":{"173":8}}],["fc",{"2":{"136":22,"156":3,"167":14}}],["fj",{"2":{"127":2}}],["f2",{"2":{"45":2}}],["f1",{"2":{"45":2}}],["f64",{"2":{"13":2,"14":2}}],["few",{"2":{"138":1}}],["fetch",{"2":{"136":2}}],["fetched",{"2":{"127":1}}],["feb",{"0":{"8":1},"1":{"9":1,"10":1}}],["featurecollection",{"2":{"6":2,"11":1,"18":1,"127":4,"136":7,"170":2}}],["featurecollectiontrait",{"2":{"1":1,"6":2,"131":1,"134":1,"136":14,"167":5}}],["features",{"0":{"76":1,"90":1,"107":1,"117":1},"2":{"1":1,"6":3,"11":1,"22":1,"63":1,"127":3,"135":1,"136":19,"170":1}}],["featuretrait",{"2":{"1":2,"6":3,"76":4,"86":2,"90":4,"107":4,"117":4,"131":1,"134":3,"136":15,"167":5}}],["feature",{"2":{"1":6,"4":1,"6":10,"18":2,"22":1,"37":1,"47":1,"127":2,"129":1,"135":1,"136":49,"156":2,"167":2,"173":1}}],["fra",{"2":{"177":2}}],["frame",{"2":{"172":1}}],["framework",{"2":{"129":4}}],["fracs",{"2":{"45":20,"50":1}}],["frac",{"2":{"40":1,"45":2,"54":17,"156":2}}],["fractional",{"2":{"45":1,"54":3}}],["fractions",{"2":{"45":1,"54":4}}],["fraction",{"2":{"6":4,"54":2,"66":1,"156":1}}],["front",{"2":{"34":1}}],["from",{"2":{"1":3,"3":4,"4":16,"6":29,"7":1,"11":1,"20":1,"22":1,"26":1,"31":1,"37":2,"39":1,"40":4,"41":1,"44":1,"45":6,"47":11,"50":1,"51":1,"52":3,"53":1,"54":11,"56":1,"57":6,"63":1,"66":25,"89":2,"91":5,"92":4,"93":2,"94":1,"95":2,"97":6,"103":2,"126":2,"127":7,"131":3,"136":3,"145":1,"147":4,"150":1,"156":1,"157":1,"158":3,"159":1,"167":1,"168":1,"170":5,"173":1,"175":1,"176":1,"178":1}}],["footprint",{"2":{"171":1}}],["foldable",{"2":{"136":3}}],["follows",{"2":{"45":2,"75":1,"89":1,"106":1,"116":1,"127":1}}],["followed",{"2":{"26":1}}],["following",{"2":{"6":1,"40":1,"49":1,"138":1,"144":1,"156":1,"175":1}}],["focusing",{"2":{"25":1,"27":1}}],["foundational",{"2":{"17":1}}],["found",{"2":{"6":8,"26":1,"47":1,"50":1,"51":2,"53":2,"54":1,"56":2,"69":1,"127":5,"134":3,"136":7,"153":1}}],["forward",{"2":{"54":1}}],["forwards",{"2":{"45":1,"52":1,"57":1}}],["formats",{"2":{"168":1,"171":1,"173":3}}],["format",{"2":{"50":1,"173":3}}],["form",{"2":{"18":1,"45":3,"54":8,"57":3,"136":1}}],["formed",{"2":{"4":2,"6":3,"33":1,"34":4,"40":1,"45":8,"56":1,"57":1,"158":1}}],["formula",{"2":{"4":1,"6":1,"37":2,"47":1}}],["force",{"2":{"1":1,"136":1,"147":1,"156":1}}],["for",{"0":{"52":1,"54":1,"57":1},"2":{"0":2,"1":3,"3":1,"4":4,"5":3,"6":46,"7":4,"9":2,"13":5,"14":1,"18":1,"20":1,"22":1,"23":5,"25":3,"26":1,"27":3,"29":1,"31":2,"34":5,"37":8,"38":1,"39":1,"40":19,"41":3,"44":7,"45":35,"47":11,"50":5,"51":2,"52":3,"53":1,"54":7,"56":1,"57":9,"58":2,"61":1,"63":3,"65":2,"66":7,"69":13,"75":3,"81":1,"82":1,"84":1,"86":6,"89":2,"95":1,"96":1,"97":22,"102":1,"103":11,"106":2,"112":1,"113":1,"116":3,"122":1,"123":1,"125":1,"126":5,"127":13,"128":1,"129":3,"131":6,"132":2,"136":6,"137":3,"138":2,"140":1,"141":5,"143":3,"144":1,"145":5,"146":1,"147":3,"150":4,"151":7,"152":6,"153":8,"154":4,"156":12,"157":2,"158":2,"159":1,"160":6,"164":1,"165":2,"166":5,"167":7,"168":1,"170":4,"171":1,"173":3,"175":1,"177":2,"178":1}}],["fi",{"2":{"127":2}}],["fine",{"2":{"151":1}}],["final",{"2":{"57":1,"141":4,"152":1}}],["finally",{"2":{"39":2,"54":1,"127":1,"136":3,"173":1}}],["findmin",{"2":{"160":1}}],["findmax",{"2":{"156":1,"158":1}}],["findall",{"2":{"141":1}}],["finding",{"2":{"54":1}}],["findfirst",{"2":{"45":6,"50":2,"61":1,"156":1}}],["findnext",{"2":{"45":3}}],["findlast",{"2":{"45":2}}],["findprev",{"2":{"45":2}}],["finds",{"2":{"45":1,"47":1}}],["find",{"2":{"34":6,"37":1,"45":12,"47":3,"50":2,"51":4,"53":2,"54":8,"56":1,"66":3,"69":1,"97":7,"127":2,"158":5,"177":1}}],["finish",{"2":{"9":1}}],["fill",{"2":{"45":1,"127":1,"153":3}}],["filled",{"2":{"45":5,"47":3,"65":1,"66":2,"97":16}}],["files",{"2":{"163":1,"173":2}}],["file",{"2":{"26":1,"45":1,"75":3,"89":3,"106":3,"116":3,"127":1,"128":1,"129":1,"140":1,"147":1,"153":1,"154":1,"163":2,"168":1,"173":2}}],["filters",{"2":{"45":1}}],["filtering",{"2":{"6":1,"156":1}}],["filter",{"2":{"4":1,"6":2,"45":2,"136":3,"145":2,"146":1,"156":1}}],["fit",{"2":{"17":1}}],["field",{"2":{"13":2,"45":2}}],["figure",{"2":{"13":1,"14":1,"36":1,"39":2,"62":1,"170":3}}],["fig",{"2":{"13":6,"14":6,"62":5,"169":7,"170":4,"174":2}}],["fix1",{"2":{"136":2,"153":1}}],["fixme",{"2":{"126":1}}],["fix2",{"2":{"45":2}}],["fixed",{"2":{"6":3,"51":1,"53":1,"56":1}}],["fix",{"0":{"20":1},"2":{"6":9,"9":3,"15":3,"17":1,"20":1,"51":1,"52":11,"53":1,"54":11,"56":1,"57":10,"62":2,"138":1,"140":1,"141":1,"144":1}}],["firstisright",{"2":{"127":2}}],["firstisleft",{"2":{"127":4}}],["firstisstraight",{"2":{"127":4}}],["firstnode",{"2":{"127":9}}],["first",{"2":{"3":9,"6":10,"34":14,"37":7,"39":1,"40":9,"41":1,"44":1,"45":17,"47":2,"50":1,"51":2,"53":1,"54":5,"56":3,"66":8,"69":4,"71":2,"72":2,"74":1,"75":2,"78":1,"79":1,"80":1,"85":2,"89":3,"97":22,"103":1,"106":2,"108":1,"115":1,"116":2,"119":1,"120":1,"121":2,"126":1,"127":16,"136":6,"138":1,"153":3,"157":1,"158":2,"167":2,"168":1,"169":1,"170":1,"171":1,"175":1,"176":1}}],["fancy",{"2":{"169":1}}],["fancis",{"2":{"6":1,"40":1}}],["fair",{"2":{"151":1}}],["fail",{"2":{"1":1,"6":2,"136":6,"152":1}}],["fallback",{"2":{"136":1}}],["falses",{"2":{"45":2,"50":1,"51":1,"53":1}}],["false",{"0":{"24":1},"2":{"1":29,"3":7,"4":3,"6":55,"34":2,"37":1,"39":5,"45":26,"47":5,"50":1,"51":1,"52":3,"54":1,"56":4,"66":2,"68":2,"69":27,"71":2,"75":8,"77":2,"78":4,"79":1,"80":1,"81":1,"82":1,"84":2,"86":11,"89":9,"91":1,"92":4,"95":1,"96":1,"97":39,"103":22,"106":8,"108":3,"109":4,"110":1,"112":1,"113":1,"115":1,"116":7,"118":2,"119":4,"120":1,"121":1,"122":1,"123":1,"126":10,"127":5,"136":18,"138":16,"144":44,"145":4,"153":2,"156":1,"160":2,"161":20,"165":2,"167":2,"169":242,"170":12,"171":18,"175":1}}],["fashion",{"2":{"36":1}}],["faster",{"2":{"40":1,"136":1}}],["fast",{"2":{"12":1}}],["f",{"2":{"1":12,"6":25,"15":1,"18":3,"19":1,"22":2,"33":1,"36":2,"39":4,"41":1,"43":2,"45":19,"46":2,"49":2,"51":2,"52":2,"53":2,"54":2,"56":2,"57":2,"60":2,"61":2,"65":5,"68":2,"71":2,"74":2,"84":2,"88":2,"97":7,"99":2,"102":2,"105":2,"115":2,"127":30,"131":2,"134":2,"136":168,"148":1,"151":2,"152":1,"155":2,"156":1,"160":6,"161":6,"166":5,"167":16,"169":6,"171":2,"176":3}}],["fulfilled",{"2":{"158":1}}],["fully",{"2":{"6":1,"45":4,"50":1,"103":4}}],["full",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"47":5,"141":1,"177":4}}],["furthest",{"2":{"127":1}}],["further",{"2":{"43":1,"136":1}}],["furthermore",{"2":{"3":2,"6":5,"45":1,"51":1,"53":1,"56":1,"75":1,"116":1}}],["fun",{"2":{"169":1}}],["fundamental",{"2":{"26":1,"163":1}}],["func",{"2":{"13":5}}],["funcs",{"2":{"13":2,"14":3}}],["functionality",{"2":{"54":1,"129":1,"147":1,"149":1,"153":1,"166":1}}],["functionalities",{"2":{"45":1}}],["functionally",{"2":{"1":1,"6":1,"18":1,"29":1,"136":1}}],["function",{"2":{"1":8,"3":9,"4":9,"5":3,"6":14,"7":2,"9":1,"13":3,"14":2,"18":2,"29":1,"31":1,"34":5,"37":3,"40":13,"44":6,"45":18,"47":7,"49":2,"50":4,"51":3,"52":3,"53":2,"54":7,"55":1,"56":2,"57":4,"63":2,"66":6,"68":1,"69":8,"71":1,"74":1,"75":1,"81":1,"82":1,"84":1,"86":5,"88":1,"89":1,"95":1,"96":1,"97":9,"99":1,"102":1,"103":7,"105":1,"106":1,"112":1,"113":1,"115":1,"116":1,"122":1,"123":1,"126":4,"127":16,"128":3,"131":3,"134":2,"136":29,"139":2,"141":7,"142":2,"145":2,"147":1,"149":2,"150":2,"152":2,"153":7,"156":3,"157":2,"158":3,"159":2,"160":7,"161":3,"162":1,"166":6,"167":12,"169":1,"175":1,"178":4}}],["functions",{"0":{"1":1,"52":1,"54":1,"57":1,"129":1,"131":1,"167":1},"1":{"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1},"2":{"6":1,"9":3,"17":1,"26":1,"29":1,"37":1,"40":1,"44":1,"45":2,"47":1,"49":1,"97":1,"128":1,"129":2,"134":1,"141":2,"142":1}}],["future",{"2":{"23":1,"58":1,"66":1,"150":2}}],["flexijoins",{"2":{"175":1,"176":3,"177":1,"178":5}}],["flags",{"2":{"45":5}}],["flag",{"2":{"45":12,"50":1}}],["flat",{"2":{"6":1,"160":2,"167":1}}],["flattened",{"2":{"18":1}}],["flattening",{"2":{"6":4,"152":2}}],["flatten",{"2":{"0":2,"6":4,"11":3,"13":1,"18":1,"40":1,"45":2,"47":3,"53":1,"57":1,"63":2,"86":1,"131":4,"136":27,"145":1}}],["floating",{"2":{"6":1,"45":1,"54":5,"127":2}}],["float",{"2":{"6":3,"51":1,"53":1,"56":1}}],["float64x2",{"2":{"13":6,"14":6,"15":2}}],["float64",{"2":{"1":6,"4":10,"6":30,"13":1,"33":1,"34":3,"37":6,"44":1,"47":4,"50":2,"51":2,"53":1,"54":3,"56":1,"62":1,"66":12,"97":4,"103":2,"126":4,"138":6,"144":26,"151":2,"152":2,"153":1,"157":4,"158":9,"159":2,"160":6,"161":6,"162":1,"167":8,"169":190,"170":7,"171":10}}],["flipping",{"0":{"149":1},"2":{"149":1}}],["flipped",{"2":{"1":2,"6":2,"136":2}}],["flipaxis",{"2":{"39":1}}],["flip",{"2":{"0":1,"6":1,"31":1,"129":2,"136":1,"149":2}}],["wgs84",{"2":{"170":1}}],["wglmakie",{"2":{"14":1}}],["wₜₒₜ",{"2":{"40":8}}],["wᵢ",{"2":{"40":18}}],["wt",{"2":{"40":3}}],["w",{"2":{"13":13,"14":7,"66":4,"127":1}}],["wrong",{"2":{"143":1,"160":1}}],["writing",{"2":{"173":1}}],["written",{"2":{"69":1}}],["write",{"2":{"7":1,"30":1,"127":1,"173":7}}],["wrap",{"2":{"4":1,"6":1,"146":1,"152":1}}],["wrapped",{"2":{"22":1,"127":2,"134":1,"136":1}}],["wrapper",{"0":{"30":1},"2":{"30":1,"34":1,"37":1,"44":1,"47":1,"66":1,"69":1,"75":1,"89":1,"103":1,"106":1,"116":1}}],["wrappers`",{"2":{"136":1}}],["wrappers",{"2":{"1":10,"6":12,"22":1,"126":2,"127":1,"131":1,"138":8,"139":1,"144":22,"151":1,"152":1,"156":1,"161":10,"167":1,"169":121,"170":5,"171":9}}],["wrappergeometry`",{"2":{"147":1}}],["wrappergeometry",{"2":{"1":1}}],["wrapping",{"2":{"1":1,"6":1,"69":1,"147":1,"162":1}}],["web",{"2":{"173":1}}],["west",{"2":{"47":8}}],["were",{"2":{"45":1,"127":1,"176":1}}],["welcome",{"2":{"25":1,"27":1}}],["well",{"2":{"17":1,"45":1,"47":1,"63":1,"150":1,"154":1,"165":1}}],["we",{"0":{"55":2},"2":{"7":1,"11":1,"13":1,"17":3,"19":1,"23":3,"24":1,"25":2,"26":1,"27":2,"34":1,"36":2,"37":2,"39":4,"40":8,"41":2,"44":1,"45":7,"47":4,"52":8,"53":2,"54":3,"57":1,"58":1,"62":3,"63":2,"66":1,"68":1,"69":5,"71":1,"72":1,"74":1,"75":1,"85":1,"88":1,"89":1,"97":2,"99":3,"100":1,"102":1,"103":2,"105":1,"106":1,"115":1,"116":1,"127":21,"128":1,"134":1,"136":20,"137":1,"148":1,"150":2,"151":2,"152":3,"153":1,"156":5,"160":2,"163":1,"165":4,"166":1,"168":2,"169":4,"170":6,"171":4,"172":1,"173":3,"175":3,"176":7}}],["weighting",{"2":{"43":2,"44":1}}],["weights",{"2":{"38":4}}],["weight",{"2":{"6":5,"40":14,"44":1}}],["weighted",{"2":{"0":1,"6":2,"38":3,"40":4,"44":4}}],["walk",{"2":{"50":1}}],["wall2",{"2":{"47":7}}],["wall1",{"2":{"47":12}}],["walls",{"2":{"47":3}}],["wall",{"2":{"47":69}}],["wachspress",{"2":{"40":1}}],["wasincreasing",{"2":{"127":10}}],["wasn",{"2":{"45":1}}],["was",{"2":{"31":1,"34":1,"37":1,"39":1,"40":4,"41":1,"44":1,"45":1,"47":1,"50":1,"51":1,"52":3,"53":1,"54":2,"55":1,"56":1,"57":3,"63":1,"66":1,"69":1,"72":1,"82":1,"85":1,"86":1,"96":1,"97":1,"100":1,"103":1,"113":1,"123":1,"126":1,"127":1,"128":1,"134":1,"136":1,"139":1,"142":1,"145":1,"146":1,"148":1,"149":1,"151":1,"153":1,"160":1,"161":1,"162":1,"166":2,"167":1}}],["wanted",{"2":{"178":1}}],["wants",{"2":{"63":1,"136":1}}],["want",{"0":{"23":1,"55":1},"2":{"13":1,"18":1,"23":1,"40":1,"45":1,"126":1,"170":2,"172":1,"177":1,"178":1}}],["ways",{"2":{"143":1}}],["way",{"2":{"6":1,"17":1,"18":1,"24":1,"29":1,"38":1,"129":1,"140":1,"153":1,"164":1,"166":2,"172":1}}],["warn",{"2":{"127":2}}],["warned",{"2":{"6":1,"166":1}}],["warning",{"2":{"0":1,"5":1,"6":3,"24":1,"40":1,"63":1,"136":1,"152":1,"163":1,"177":1}}],["wong",{"2":{"60":1,"61":1,"174":1}}],["won",{"2":{"23":1,"45":1,"136":1}}],["wouldn",{"2":{"54":1}}],["would",{"0":{"55":1},"2":{"6":3,"23":1,"51":1,"53":1,"54":1,"56":1,"63":4,"127":1,"165":2,"170":1,"177":1,"178":1}}],["wound",{"2":{"6":1,"63":1}}],["world",{"0":{"177":1},"2":{"175":1}}],["worrying",{"2":{"24":1}}],["words",{"2":{"3":1,"6":1,"71":1,"99":1,"105":1,"106":1}}],["workflow",{"2":{"86":1,"103":1}}],["workflows",{"2":{"23":1,"25":1,"27":1}}],["works",{"2":{"26":1,"147":1,"150":1}}],["working",{"2":{"3":1,"6":1,"86":1,"170":1}}],["work",{"2":{"1":3,"6":3,"9":1,"34":1,"37":2,"44":1,"47":2,"50":2,"58":1,"66":1,"69":1,"97":1,"103":1,"126":1,"136":2,"147":1,"161":1,"177":1}}],["whole",{"2":{"97":1}}],["whose",{"2":{"3":1,"6":1,"86":1}}],["white",{"2":{"39":1}}],["while",{"2":{"34":1,"43":1,"44":1,"45":5,"54":2,"62":2,"65":1,"69":1,"86":1,"97":1,"127":3,"145":1,"158":1,"160":2,"176":1}}],["whichever",{"2":{"6":1,"156":1}}],["which",{"2":{"1":1,"4":2,"5":1,"6":8,"7":1,"11":1,"13":1,"14":1,"17":1,"18":4,"20":1,"23":2,"36":1,"37":1,"38":1,"39":2,"40":5,"41":1,"45":11,"47":2,"54":2,"58":1,"63":1,"69":2,"97":3,"127":3,"128":1,"129":1,"136":1,"137":2,"138":1,"141":1,"143":1,"144":1,"148":1,"150":1,"151":1,"152":3,"153":2,"156":1,"158":2,"161":1,"164":1,"166":4,"173":3,"175":3,"176":6,"178":1}}],["what",{"0":{"22":1,"25":1,"30":1,"33":1,"36":2,"43":1,"46":1,"49":1,"65":2,"68":1,"71":1,"74":1,"84":1,"88":1,"99":1,"102":1,"105":1,"115":1,"134":1},"2":{"13":1,"14":1,"24":1,"43":1,"126":1,"127":1,"151":1,"165":1,"170":1,"177":1}}],["whatever",{"2":{"1":1,"6":1,"22":1,"136":1}}],["whyatt",{"2":{"154":1}}],["why",{"0":{"22":1,"23":1},"2":{"9":1,"17":1,"30":1,"37":1}}],["wheel",{"2":{"17":1}}],["whether",{"2":{"1":4,"4":1,"6":10,"125":1,"126":1,"133":2,"137":1}}],["when",{"2":{"1":1,"4":2,"5":1,"6":5,"18":1,"20":1,"23":2,"24":1,"37":1,"40":3,"44":1,"45":2,"52":5,"54":6,"57":7,"97":1,"127":1,"134":3,"136":1,"138":1,"141":1,"146":2,"156":1,"170":1,"171":2,"173":1,"178":1}}],["wherever",{"2":{"6":1,"162":1}}],["where",{"2":{"1":2,"4":5,"6":11,"20":1,"31":2,"34":8,"37":12,"38":2,"40":24,"44":8,"45":14,"47":8,"50":5,"51":2,"52":5,"53":3,"54":18,"56":2,"57":9,"66":25,"69":1,"97":9,"127":3,"136":52,"143":1,"147":1,"151":1,"162":1,"163":1,"164":5,"167":3,"169":4}}],["widely",{"2":{"173":1}}],["widths",{"2":{"14":1}}],["width",{"2":{"6":2}}],["wiki",{"2":{"97":1,"158":1}}],["wikipedia",{"2":{"97":1,"158":2}}],["wind",{"2":{"4":1,"6":2,"37":1,"69":1}}],["winding",{"0":{"62":1},"2":{"4":2,"6":3,"37":3,"45":7,"62":4,"63":1,"69":1,"127":1}}],["without",{"2":{"1":2,"6":1,"17":1,"24":1,"45":1,"88":1,"103":1,"136":3,"147":1,"161":1}}],["with",{"0":{"52":1,"54":1,"57":1,"157":1,"158":1,"159":1,"171":1,"172":1},"2":{"1":5,"3":5,"4":7,"6":27,"11":1,"20":1,"22":2,"23":1,"33":1,"34":2,"37":7,"38":4,"39":1,"40":2,"44":1,"45":14,"47":6,"52":8,"53":5,"54":15,"56":1,"57":12,"65":1,"66":2,"75":1,"88":1,"92":1,"97":28,"99":1,"102":2,"103":5,"105":1,"106":1,"109":3,"110":2,"111":2,"121":1,"127":7,"129":1,"131":2,"134":1,"136":17,"138":1,"143":1,"146":1,"147":1,"150":1,"153":2,"156":2,"158":2,"159":1,"161":1,"165":1,"166":1,"168":1,"169":4,"170":6,"171":2,"172":2,"173":2,"175":1,"176":1,"177":1}}],["within",{"0":{"114":1,"115":1,"118":1,"119":1,"121":1,"122":1,"123":1},"1":{"115":1,"116":1},"2":{"0":2,"3":9,"4":3,"5":1,"6":13,"7":1,"9":1,"31":1,"34":2,"37":1,"38":3,"40":1,"44":1,"45":9,"46":2,"47":5,"52":1,"54":2,"56":1,"57":6,"65":1,"66":5,"71":2,"72":3,"74":2,"91":1,"97":9,"102":1,"103":9,"114":1,"115":6,"116":11,"117":6,"118":14,"119":15,"120":15,"121":7,"122":4,"123":4,"129":1,"175":1,"176":4,"177":2}}],["will",{"2":{"1":8,"4":7,"5":1,"6":44,"11":1,"18":3,"23":2,"24":1,"34":4,"37":3,"40":2,"44":1,"45":5,"47":1,"50":1,"51":4,"52":4,"53":4,"54":4,"56":4,"57":4,"63":1,"65":2,"66":4,"69":1,"86":1,"126":1,"127":2,"131":2,"134":1,"135":2,"136":8,"138":1,"142":2,"143":1,"145":2,"147":3,"150":2,"152":3,"156":2,"158":1,"160":1,"161":2,"166":1,"170":1,"173":1,"175":2,"177":1,"178":1}}],["wip",{"2":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/dev/assets/chunks/VPLocalSearchBox.DPtKuvfy.js b/dev/assets/chunks/VPLocalSearchBox.DrU8J17p.js similarity index 99% rename from dev/assets/chunks/VPLocalSearchBox.DPtKuvfy.js rename to dev/assets/chunks/VPLocalSearchBox.DrU8J17p.js index abf7f047b..ef24475a8 100644 --- a/dev/assets/chunks/VPLocalSearchBox.DPtKuvfy.js +++ b/dev/assets/chunks/VPLocalSearchBox.DrU8J17p.js @@ -1,4 +1,4 @@ -var kt=Object.defineProperty;var Ft=(a,e,t)=>e in a?kt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ce=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{X as Ot,s as ne,v as Ve,al as Rt,am as Ct,d as Mt,G as be,an as et,h as ye,ao as At,ap as Lt,x as Dt,aq as zt,y as Me,R as de,Q as we,ar as Pt,as as jt,Y as Vt,U as $t,a1 as Bt,o as Q,b as Wt,j as x,a2 as Kt,k as D,at as Jt,au as Ut,av as qt,c as Z,n as tt,e as _e,E as st,F as nt,a as he,t as fe,aw as Gt,p as Qt,l as Ht,ax as it,ay as Yt,ab as Zt,ah as Xt,az as es,_ as ts}from"./framework.BBBwll2u.js";import{u as ss,c as ns}from"./theme.BLE0Gq7c.js";const is={root:()=>Ot(()=>import("./@localSearchIndexroot.BKnKO2Yj.js"),[])};/*! +var kt=Object.defineProperty;var Ft=(a,e,t)=>e in a?kt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ce=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{X as Ot,s as ne,v as Ve,al as Rt,am as Ct,d as Mt,G as be,an as et,h as ye,ao as At,ap as Lt,x as Dt,aq as zt,y as Me,R as de,Q as we,ar as Pt,as as jt,Y as Vt,U as $t,a1 as Bt,o as Q,b as Wt,j as x,a2 as Kt,k as D,at as Jt,au as Ut,av as qt,c as Z,n as tt,e as _e,E as st,F as nt,a as he,t as fe,aw as Gt,p as Qt,l as Ht,ax as it,ay as Yt,ab as Zt,ah as Xt,az as es,_ as ts}from"./framework.Bvl2j7qw.js";import{u as ss,c as ns}from"./theme.Bp-liF74.js";const is={root:()=>Ot(()=>import("./@localSearchIndexroot.BXhyoer8.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var vt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ie=vt.join(","),mt=typeof Element>"u",re=mt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ne=!mt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},ke=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},rs=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},gt=function(e,t,s){if(ke(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ie));return t&&re.call(e,Ie)&&n.unshift(e),n=n.filter(s),n},bt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!ke(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),c=o.length?o:i.children,l=a(c,!0,s);s.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=re.call(i,Ie);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var f=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),v=!ke(f,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(f&&v){var b=a(f===!0?i.children:f.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},yt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ie=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||rs(e))&&!yt(e)?0:e.tabIndex},as=function(e,t){var s=ie(e);return s<0&&t&&!yt(e)?0:s},os=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},wt=function(e){return e.tagName==="INPUT"},cs=function(e){return wt(e)&&e.type==="hidden"},ls=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},us=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(re.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var c=e.parentElement,l=Ne(e);if(c&&!c.shadowRoot&&n(c)===!0)return rt(e);e.assignedSlot?e=e.assignedSlot:!c&&l!==e.ownerDocument?e=l.host:e=c}e=o}if(ps(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return rt(e);return!1},ms=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s=0)},bs=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,c=as(o,i),l=i?a(n.candidates):o;c===0?i?t.push.apply(t,l):t.push(o):s.push({documentOrder:r,tabIndex:c,item:n,isScope:i,content:l})}),s.sort(os).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},ys=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:$e.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:gs}):s=gt(e,t.includeContainer,$e.bind(null,t)),bs(s)},ws=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:Fe.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=gt(e,t.includeContainer,Fe.bind(null,t)),s},ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,Ie)===!1?!1:$e(t,e)},_s=vt.concat("iframe").join(","),Ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,_s)===!1?!1:Fe(t,e)};/*! diff --git a/dev/assets/chunks/framework.BBBwll2u.js b/dev/assets/chunks/framework.BBBwll2u.js deleted file mode 100644 index a3f06f8ca..000000000 --- a/dev/assets/chunks/framework.BBBwll2u.js +++ /dev/null @@ -1,17 +0,0 @@ -/** -* @vue/shared v3.4.34 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function wr(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const ne={},yt=[],Te=()=>{},Pi=()=>!1,Kt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Er=e=>e.startsWith("onUpdate:"),fe=Object.assign,Cr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ni=Object.prototype.hasOwnProperty,z=(e,t)=>Ni.call(e,t),B=Array.isArray,_t=e=>xn(e)==="[object Map]",zs=e=>xn(e)==="[object Set]",K=e=>typeof e=="function",ie=e=>typeof e=="string",Qe=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Js=e=>(Z(e)||K(e))&&K(e.then)&&K(e.catch),Qs=Object.prototype.toString,xn=e=>Qs.call(e),Fi=e=>xn(e).slice(8,-1),Zs=e=>xn(e)==="[object Object]",Sr=e=>ie(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,vt=wr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Tn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},$i=/-(\w)/g,Oe=Tn(e=>e.replace($i,(t,n)=>n?n.toUpperCase():"")),Hi=/\B([A-Z])/g,Ze=Tn(e=>e.replace(Hi,"-$1").toLowerCase()),An=Tn(e=>e.charAt(0).toUpperCase()+e.slice(1)),fn=Tn(e=>e?`on${An(e)}`:""),ze=(e,t)=>!Object.is(e,t),dn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},cr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ji=e=>{const t=ie(e)?Number(e):NaN;return isNaN(t)?e:t};let Jr;const to=()=>Jr||(Jr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xr(e){if(B(e)){const t={};for(let n=0;n{if(n){const r=n.split(Di);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Tr(e){let t="";if(ie(e))t=e;else if(B(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Wi=e=>ie(e)?e:e==null?"":B(e)||Z(e)&&(e.toString===Qs||!K(e.toString))?ro(e)?Wi(e.value):JSON.stringify(e,so,2):String(e),so=(e,t)=>ro(t)?so(e,t.value):_t(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[kn(r,o)+" =>"]=s,n),{})}:zs(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>kn(n))}:Qe(t)?kn(t):Z(t)&&!B(t)&&!Zs(t)?String(t):t,kn=(e,t="")=>{var n;return Qe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.4.34 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let we;class qi{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=we,!t&&we&&(this.index=(we.scopes||(we.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=we;try{return we=this,t()}finally{we=n}}}on(){we=this}off(){we=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),tt()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Xe,n=ct;try{return Xe=!0,ct=this,this._runnings++,Qr(this),this.fn()}finally{Zr(this),this._runnings--,ct=n,Xe=t}}stop(){this.active&&(Qr(this),Zr(this),this.onStop&&this.onStop(),this.active=!1)}}function Yi(e){return e.value}function Qr(e){e._trackId++,e._depsLength=0}function Zr(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},yn=new WeakMap,at=Symbol(""),fr=Symbol("");function ve(e,t,n){if(Xe&&ct){let r=yn.get(e);r||yn.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=uo(()=>r.delete(n))),co(ct,s)}}function Ve(e,t,n,r,s,o){const i=yn.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&B(e)){const c=Number(r);i.forEach((u,f)=>{(f==="length"||!Qe(f)&&f>=c)&&l.push(u)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":B(e)?Sr(n)&&l.push(i.get("length")):(l.push(i.get(at)),_t(e)&&l.push(i.get(fr)));break;case"delete":B(e)||(l.push(i.get(at)),_t(e)&&l.push(i.get(fr)));break;case"set":_t(e)&&l.push(i.get(at));break}Rr();for(const c of l)c&&ao(c,4);Or()}function zi(e,t){const n=yn.get(e);return n&&n.get(t)}const Ji=wr("__proto__,__v_isRef,__isVue"),fo=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Qe)),es=Qi();function Qi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=J(this);for(let o=0,i=this.length;o{e[t]=function(...n){et(),Rr();const r=J(this)[t].apply(this,n);return Or(),tt(),r}}),e}function Zi(e){Qe(e)||(e=String(e));const t=J(this);return ve(t,"has",e),t.hasOwnProperty(e)}class ho{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?dl:yo:o?mo:go).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=B(t);if(!s){if(i&&z(es,n))return Reflect.get(es,n,r);if(n==="hasOwnProperty")return Zi}const l=Reflect.get(t,n,r);return(Qe(n)?fo.has(n):Ji(n))||(s||ve(t,"get",n),o)?l:de(l)?i&&Sr(n)?l:l.value:Z(l)?s?Ln(l):On(l):l}}class po extends ho{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const c=dt(o);if(!St(r)&&!dt(r)&&(o=J(o),r=J(r)),!B(t)&&de(o)&&!de(r))return c?!1:(o.value=r,!0)}const i=B(t)&&Sr(n)?Number(n)e,Rn=e=>Reflect.getPrototypeOf(e);function Jt(e,t,n=!1,r=!1){e=e.__v_raw;const s=J(e),o=J(t);n||(ze(t,o)&&ve(s,"get",t),ve(s,"get",o));const{has:i}=Rn(s),l=r?Lr:n?Pr:jt;if(i.call(s,t))return l(e.get(t));if(i.call(s,o))return l(e.get(o));e!==s&&e.get(t)}function Qt(e,t=!1){const n=this.__v_raw,r=J(n),s=J(e);return t||(ze(e,s)&&ve(r,"has",e),ve(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Zt(e,t=!1){return e=e.__v_raw,!t&&ve(J(e),"iterate",at),Reflect.get(e,"size",e)}function ts(e,t=!1){!t&&!St(e)&&!dt(e)&&(e=J(e));const n=J(this);return Rn(n).has.call(n,e)||(n.add(e),Ve(n,"add",e,e)),this}function ns(e,t,n=!1){!n&&!St(t)&&!dt(t)&&(t=J(t));const r=J(this),{has:s,get:o}=Rn(r);let i=s.call(r,e);i||(e=J(e),i=s.call(r,e));const l=o.call(r,e);return r.set(e,t),i?ze(t,l)&&Ve(r,"set",e,t):Ve(r,"add",e,t),this}function rs(e){const t=J(this),{has:n,get:r}=Rn(t);let s=n.call(t,e);s||(e=J(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&Ve(t,"delete",e,void 0),o}function ss(){const e=J(this),t=e.size!==0,n=e.clear();return t&&Ve(e,"clear",void 0,void 0),n}function en(e,t){return function(r,s){const o=this,i=o.__v_raw,l=J(i),c=t?Lr:e?Pr:jt;return!e&&ve(l,"iterate",at),i.forEach((u,f)=>r.call(s,c(u),c(f),o))}}function tn(e,t,n){return function(...r){const s=this.__v_raw,o=J(s),i=_t(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),f=n?Lr:t?Pr:jt;return!t&&ve(o,"iterate",c?fr:at),{next(){const{value:h,done:m}=u.next();return m?{value:h,done:m}:{value:l?[f(h[0]),f(h[1])]:f(h),done:m}},[Symbol.iterator](){return this}}}}function Ue(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function sl(){const e={get(o){return Jt(this,o)},get size(){return Zt(this)},has:Qt,add:ts,set:ns,delete:rs,clear:ss,forEach:en(!1,!1)},t={get(o){return Jt(this,o,!1,!0)},get size(){return Zt(this)},has:Qt,add(o){return ts.call(this,o,!0)},set(o,i){return ns.call(this,o,i,!0)},delete:rs,clear:ss,forEach:en(!1,!0)},n={get(o){return Jt(this,o,!0)},get size(){return Zt(this,!0)},has(o){return Qt.call(this,o,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:en(!0,!1)},r={get(o){return Jt(this,o,!0,!0)},get size(){return Zt(this,!0)},has(o){return Qt.call(this,o,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:en(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=tn(o,!1,!1),n[o]=tn(o,!0,!1),t[o]=tn(o,!1,!0),r[o]=tn(o,!0,!0)}),[e,n,t,r]}const[ol,il,ll,cl]=sl();function Mr(e,t){const n=t?e?cl:ll:e?il:ol;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(z(n,s)&&s in r?n:r,s,o)}const al={get:Mr(!1,!1)},ul={get:Mr(!1,!0)},fl={get:Mr(!0,!1)};const go=new WeakMap,mo=new WeakMap,yo=new WeakMap,dl=new WeakMap;function hl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pl(e){return e.__v_skip||!Object.isExtensible(e)?0:hl(Fi(e))}function On(e){return dt(e)?e:Ir(e,!1,tl,al,go)}function gl(e){return Ir(e,!1,rl,ul,mo)}function Ln(e){return Ir(e,!0,nl,fl,yo)}function Ir(e,t,n,r,s){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=pl(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function bt(e){return dt(e)?bt(e.__v_raw):!!(e&&e.__v_isReactive)}function dt(e){return!!(e&&e.__v_isReadonly)}function St(e){return!!(e&&e.__v_isShallow)}function _o(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function hn(e){return Object.isExtensible(e)&&eo(e,"__v_skip",!0),e}const jt=e=>Z(e)?On(e):e,Pr=e=>Z(e)?Ln(e):e;class vo{constructor(t,n,r,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Ar(()=>t(this._value),()=>Mt(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=J(this);return(!t._cacheable||t.effect.dirty)&&ze(t._value,t._value=t.effect.run())&&Mt(t,4),Nr(t),t.effect._dirtyLevel>=2&&Mt(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function ml(e,t,n=!1){let r,s;const o=K(e);return o?(r=e,s=Te):(r=e.get,s=e.set),new vo(r,s,o||!s,n)}function Nr(e){var t;Xe&&ct&&(e=J(e),co(ct,(t=e.dep)!=null?t:e.dep=uo(()=>e.dep=void 0,e instanceof vo?e:void 0)))}function Mt(e,t=4,n,r){e=J(e);const s=e.dep;s&&ao(s,t)}function de(e){return!!(e&&e.__v_isRef===!0)}function oe(e){return bo(e,!1)}function Fr(e){return bo(e,!0)}function bo(e,t){return de(e)?e:new yl(e,t)}class yl{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:jt(t)}get value(){return Nr(this),this._value}set value(t){const n=this.__v_isShallow||St(t)||dt(t);t=n?t:J(t),ze(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:jt(t),Mt(this,4))}}function wo(e){return de(e)?e.value:e}const _l={get:(e,t,n)=>wo(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Eo(e){return bt(e)?e:new Proxy(e,_l)}class vl{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Nr(this),()=>Mt(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function bl(e){return new vl(e)}class wl{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return zi(J(this._object),this._key)}}class El{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Cl(e,t,n){return de(e)?e:K(e)?new El(e):Z(e)&&arguments.length>1?Sl(e,t,n):oe(e)}function Sl(e,t,n){const r=e[t];return de(r)?r:new wl(e,t,n)}/** -* @vue/runtime-core v3.4.34 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Ye(e,t,n,r){try{return r?e(...r):e()}catch(s){Wt(s,t,n)}}function Ae(e,t,n,r){if(K(e)){const s=Ye(e,t,n,r);return s&&Js(s)&&s.catch(o=>{Wt(o,t,n)}),s}if(B(e)){const s=[];for(let o=0;o>>1,s=pe[r],o=Dt(s);oNe&&pe.splice(t,1)}function Rl(e){B(e)?wt.push(...e):(!Ke||!Ke.includes(e,e.allowRecurse?it+1:it))&&wt.push(e),So()}function os(e,t,n=Vt?Ne+1:0){for(;nDt(n)-Dt(r));if(wt.length=0,Ke){Ke.push(...t);return}for(Ke=t,it=0;ite.id==null?1/0:e.id,Ol=(e,t)=>{const n=Dt(e)-Dt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function xo(e){dr=!1,Vt=!0,pe.sort(Ol);try{for(Ne=0;Ne{r._d&&ws(-1);const o=vn(t);let i;try{i=e(...s)}finally{vn(o),r._d&&ws(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function uu(e,t){if(ue===null)return e;const n=Vn(ue),r=e.dirs||(e.dirs=[]);for(let s=0;s{e.isMounted=!0}),Mo(()=>{e.isUnmounting=!0}),e}const Ce=[Function,Array],To={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ce,onEnter:Ce,onAfterEnter:Ce,onEnterCancelled:Ce,onBeforeLeave:Ce,onLeave:Ce,onAfterLeave:Ce,onLeaveCancelled:Ce,onBeforeAppear:Ce,onAppear:Ce,onAfterAppear:Ce,onAppearCancelled:Ce},Ao=e=>{const t=e.subTree;return t.component?Ao(t.component):t},Il={name:"BaseTransition",props:To,setup(e,{slots:t}){const n=jn(),r=Ml();return()=>{const s=t.default&&Oo(t.default(),!0);if(!s||!s.length)return;let o=s[0];if(s.length>1){for(const m of s)if(m.type!==me){o=m;break}}const i=J(e),{mode:l}=i;if(r.isLeaving)return Kn(o);const c=is(o);if(!c)return Kn(o);let u=hr(c,i,r,n,m=>u=m);bn(c,u);const f=n.subTree,h=f&&is(f);if(h&&h.type!==me&&!lt(c,h)&&Ao(n).type!==me){const m=hr(h,i,r,n);if(bn(h,m),l==="out-in"&&c.type!==me)return r.isLeaving=!0,m.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Kn(o);l==="in-out"&&c.type!==me&&(m.delayLeave=(b,S,O)=>{const k=Ro(r,h);k[String(h.key)]=h,b[We]=()=>{S(),b[We]=void 0,delete u.delayedLeave},u.delayedLeave=O})}return o}}},Pl=Il;function Ro(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hr(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:f,onEnterCancelled:h,onBeforeLeave:m,onLeave:b,onAfterLeave:S,onLeaveCancelled:O,onBeforeAppear:k,onAppear:W,onAfterAppear:D,onAppearCancelled:p}=t,y=String(e.key),I=Ro(n,e),T=(M,_)=>{M&&Ae(M,r,9,_)},F=(M,_)=>{const N=_[1];T(M,_),B(M)?M.every(x=>x.length<=1)&&N():M.length<=1&&N()},$={mode:i,persisted:l,beforeEnter(M){let _=c;if(!n.isMounted)if(o)_=k||c;else return;M[We]&&M[We](!0);const N=I[y];N&<(e,N)&&N.el[We]&&N.el[We](),T(_,[M])},enter(M){let _=u,N=f,x=h;if(!n.isMounted)if(o)_=W||u,N=D||f,x=p||h;else return;let G=!1;const ee=M[nn]=re=>{G||(G=!0,re?T(x,[M]):T(N,[M]),$.delayedLeave&&$.delayedLeave(),M[nn]=void 0)};_?F(_,[M,ee]):ee()},leave(M,_){const N=String(e.key);if(M[nn]&&M[nn](!0),n.isUnmounting)return _();T(m,[M]);let x=!1;const G=M[We]=ee=>{x||(x=!0,_(),ee?T(O,[M]):T(S,[M]),M[We]=void 0,I[N]===e&&delete I[N])};I[N]=e,b?F(b,[M,G]):G()},clone(M){const _=hr(M,t,n,r,s);return s&&s(_),_}};return $}function Kn(e){if(qt(e))return e=Je(e),e.children=null,e}function is(e){if(!qt(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&K(n.default))return n.default()}}function bn(e,t){e.shapeFlag&6&&e.component?bn(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Oo(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;o!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function fu(e){K(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,timeout:o,suspensible:i=!0,onError:l}=e;let c=null,u,f=0;const h=()=>(f++,c=null,m()),m=()=>{let b;return c||(b=c=t().catch(S=>{if(S=S instanceof Error?S:new Error(String(S)),l)return new Promise((O,k)=>{l(S,()=>O(h()),()=>k(S),f+1)});throw S}).then(S=>b!==c&&c?c:(S&&(S.__esModule||S[Symbol.toStringTag]==="Module")&&(S=S.default),u=S,S)))};return Hr({name:"AsyncComponentWrapper",__asyncLoader:m,get __asyncResolved(){return u},setup(){const b=ae;if(u)return()=>Wn(u,b);const S=D=>{c=null,Wt(D,b,13,!r)};if(i&&b.suspense||Xt)return m().then(D=>()=>Wn(D,b)).catch(D=>(S(D),()=>r?le(r,{error:D}):null));const O=oe(!1),k=oe(),W=oe(!!s);return s&&setTimeout(()=>{W.value=!1},s),o!=null&&setTimeout(()=>{if(!O.value&&!k.value){const D=new Error(`Async component timed out after ${o}ms.`);S(D),k.value=D}},o),m().then(()=>{O.value=!0,b.parent&&qt(b.parent.vnode)&&(b.parent.effect.dirty=!0,In(b.parent.update))}).catch(D=>{S(D),k.value=D}),()=>{if(O.value&&u)return Wn(u,b);if(k.value&&r)return le(r,{error:k.value});if(n&&!W.value)return le(n)}}})}function Wn(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=le(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const qt=e=>e.type.__isKeepAlive;function Nl(e,t){Lo(e,"a",t)}function Fl(e,t){Lo(e,"da",t)}function Lo(e,t,n=ae){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Nn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)qt(s.parent.vnode)&&$l(r,t,n,s),s=s.parent}}function $l(e,t,n,r){const s=Nn(t,e,r,!0);Fn(()=>{Cr(r[t],s)},n)}function Nn(e,t,n=ae,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{et();const l=Gt(n),c=Ae(t,n,e,i);return l(),tt(),c});return r?s.unshift(o):s.push(o),o}}const De=e=>(t,n=ae)=>{(!Xt||e==="sp")&&Nn(e,(...r)=>t(...r),n)},Hl=De("bm"),Tt=De("m"),jl=De("bu"),Vl=De("u"),Mo=De("bum"),Fn=De("um"),Dl=De("sp"),Ul=De("rtg"),Bl=De("rtc");function kl(e,t=ae){Nn("ec",e,t)}const Io="components";function du(e,t){return No(Io,e,!0,t)||e}const Po=Symbol.for("v-ndc");function hu(e){return ie(e)?No(Io,e,!1)||e:e||Po}function No(e,t,n=!0,r=!1){const s=ue||ae;if(s){const o=s.type;{const l=Fc(o,!1);if(l&&(l===t||l===Oe(t)||l===An(Oe(t))))return o}const i=ls(s[e]||o[e],t)||ls(s.appContext[e],t);return!i&&r?o:i}}function ls(e,t){return e&&(e[t]||e[Oe(t)]||e[An(Oe(t))])}function pu(e,t,n,r){let s;const o=n;if(B(e)||ie(e)){s=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,o));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;lCn(t)?!(t.type===me||t.type===_e&&!Fo(t.children)):!0)?e:null}function mu(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:fn(r)]=e[r];return n}const pr=e=>e?li(e)?Vn(e):pr(e.parent):null,It=fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>pr(e.parent),$root:e=>pr(e.root),$emit:e=>e.emit,$options:e=>jr(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,In(e.update)}),$nextTick:e=>e.n||(e.n=Mn.bind(e.proxy)),$watch:e=>yc.bind(e)}),qn=(e,t)=>e!==ne&&!e.__isScriptSetup&&z(e,t),Kl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const b=i[t];if(b!==void 0)switch(b){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(qn(r,t))return i[t]=1,r[t];if(s!==ne&&z(s,t))return i[t]=2,s[t];if((u=e.propsOptions[0])&&z(u,t))return i[t]=3,o[t];if(n!==ne&&z(n,t))return i[t]=4,n[t];gr&&(i[t]=0)}}const f=It[t];let h,m;if(f)return t==="$attrs"&&ve(e.attrs,"get",""),f(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==ne&&z(n,t))return i[t]=4,n[t];if(m=c.config.globalProperties,z(m,t))return m[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return qn(s,t)?(s[t]=n,!0):r!==ne&&z(r,t)?(r[t]=n,!0):z(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let l;return!!n[i]||e!==ne&&z(e,i)||qn(t,i)||(l=o[0])&&z(l,i)||z(r,i)||z(It,i)||z(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:z(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function yu(){return Wl().slots}function Wl(){const e=jn();return e.setupContext||(e.setupContext=ai(e))}function cs(e){return B(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let gr=!0;function ql(e){const t=jr(e),n=e.proxy,r=e.ctx;gr=!1,t.beforeCreate&&as(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:f,beforeMount:h,mounted:m,beforeUpdate:b,updated:S,activated:O,deactivated:k,beforeDestroy:W,beforeUnmount:D,destroyed:p,unmounted:y,render:I,renderTracked:T,renderTriggered:F,errorCaptured:$,serverPrefetch:M,expose:_,inheritAttrs:N,components:x,directives:G,filters:ee}=t;if(u&&Gl(u,r,null),i)for(const Y in i){const j=i[Y];K(j)&&(r[Y]=j.bind(n))}if(s){const Y=s.call(n,n);Z(Y)&&(e.data=On(Y))}if(gr=!0,o)for(const Y in o){const j=o[Y],He=K(j)?j.bind(n,n):K(j.get)?j.get.bind(n,n):Te,Yt=!K(j)&&K(j.set)?j.set.bind(n):Te,nt=se({get:He,set:Yt});Object.defineProperty(r,Y,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Me=>nt.value=Me})}if(l)for(const Y in l)$o(l[Y],r,n,Y);if(c){const Y=K(c)?c.call(n):c;Reflect.ownKeys(Y).forEach(j=>{Zl(j,Y[j])})}f&&as(f,e,"c");function U(Y,j){B(j)?j.forEach(He=>Y(He.bind(n))):j&&Y(j.bind(n))}if(U(Hl,h),U(Tt,m),U(jl,b),U(Vl,S),U(Nl,O),U(Fl,k),U(kl,$),U(Bl,T),U(Ul,F),U(Mo,D),U(Fn,y),U(Dl,M),B(_))if(_.length){const Y=e.exposed||(e.exposed={});_.forEach(j=>{Object.defineProperty(Y,j,{get:()=>n[j],set:He=>n[j]=He})})}else e.exposed||(e.exposed={});I&&e.render===Te&&(e.render=I),N!=null&&(e.inheritAttrs=N),x&&(e.components=x),G&&(e.directives=G)}function Gl(e,t,n=Te){B(e)&&(e=mr(e));for(const r in e){const s=e[r];let o;Z(s)?"default"in s?o=Ct(s.from||r,s.default,!0):o=Ct(s.from||r):o=Ct(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function as(e,t,n){Ae(B(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function $o(e,t,n,r){const s=r.includes(".")?Qo(n,r):()=>n[r];if(ie(e)){const o=t[e];K(o)&&Fe(s,o)}else if(K(e))Fe(s,e.bind(n));else if(Z(e))if(B(e))e.forEach(o=>$o(o,t,n,r));else{const o=K(e.handler)?e.handler.bind(n):t[e.handler];K(o)&&Fe(s,o,e)}}function jr(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>wn(c,u,i,!0)),wn(c,t,i)),Z(t)&&o.set(t,c),c}function wn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&wn(e,o,n,!0),s&&s.forEach(i=>wn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Xl[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Xl={data:us,props:fs,emits:fs,methods:Lt,computed:Lt,beforeCreate:ge,created:ge,beforeMount:ge,mounted:ge,beforeUpdate:ge,updated:ge,beforeDestroy:ge,beforeUnmount:ge,destroyed:ge,unmounted:ge,activated:ge,deactivated:ge,errorCaptured:ge,serverPrefetch:ge,components:Lt,directives:Lt,watch:zl,provide:us,inject:Yl};function us(e,t){return t?e?function(){return fe(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function Yl(e,t){return Lt(mr(e),mr(t))}function mr(e){if(B(e)){const t={};for(let n=0;n1)return n&&K(t)?t.call(r&&r.proxy):t}}const jo={},Vo=()=>Object.create(jo),Do=e=>Object.getPrototypeOf(e)===jo;function ec(e,t,n,r=!1){const s={},o=Vo();e.propsDefaults=Object.create(null),Uo(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:gl(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function tc(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=J(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,b]=Bo(h,t,!0);fe(i,m),b&&l.push(...b)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!c)return Z(e)&&r.set(e,yt),yt;if(B(o))for(let f=0;f-1,b[1]=O<0||S-1||z(b,"default"))&&l.push(h)}}}const u=[i,l];return Z(e)&&r.set(e,u),u}function ds(e){return e[0]!=="$"&&!vt(e)}function hs(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function ps(e,t){return hs(e)===hs(t)}function gs(e,t){return B(t)?t.findIndex(n=>ps(n,e)):K(t)&&ps(t,e)?0:-1}const ko=e=>e[0]==="_"||e==="$stable",Vr=e=>B(e)?e.map(xe):[xe(e)],rc=(e,t,n)=>{if(t._n)return t;const r=Ll((...s)=>Vr(t(...s)),n);return r._c=!1,r},Ko=(e,t,n)=>{const r=e._ctx;for(const s in e){if(ko(s))continue;const o=e[s];if(K(o))t[s]=rc(s,o,r);else if(o!=null){const i=Vr(o);t[s]=()=>i}}},Wo=(e,t)=>{const n=Vr(t);e.slots.default=()=>n},qo=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},sc=(e,t,n)=>{const r=e.slots=Vo();if(e.vnode.shapeFlag&32){const s=t._;s?(qo(r,t,n),n&&eo(r,"_",s,!0)):Ko(t,r)}else t&&Wo(e,t)},oc=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ne;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:qo(s,t,n):(o=!t.$stable,Ko(t,s)),i=t}else t&&(Wo(e,t),i={default:1});if(o)for(const l in s)!ko(l)&&i[l]==null&&delete s[l]};function En(e,t,n,r,s=!1){if(B(e)){e.forEach((m,b)=>En(m,t&&(B(t)?t[b]:t),n,r,s));return}if(Et(r)&&!s)return;const o=r.shapeFlag&4?Vn(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,f=l.refs===ne?l.refs={}:l.refs,h=l.setupState;if(u!=null&&u!==c&&(ie(u)?(f[u]=null,z(h,u)&&(h[u]=null)):de(u)&&(u.value=null)),K(c))Ye(c,l,12,[i,f]);else{const m=ie(c),b=de(c);if(m||b){const S=()=>{if(e.f){const O=m?z(h,c)?h[c]:f[c]:c.value;s?B(O)&&Cr(O,o):B(O)?O.includes(o)||O.push(o):m?(f[c]=[o],z(h,c)&&(h[c]=f[c])):(c.value=[o],e.k&&(f[e.k]=c.value))}else m?(f[c]=i,z(h,c)&&(h[c]=i)):b&&(c.value=i,e.k&&(f[e.k]=i))};i?(S.id=-1,ye(S,n)):S()}}}const Go=Symbol("_vte"),ic=e=>e.__isTeleport,Nt=e=>e&&(e.disabled||e.disabled===""),ms=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ys=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,_r=(e,t)=>{const n=e&&e.to;return ie(n)?t?t(n):null:n},lc={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:f,pc:h,pbc:m,o:{insert:b,querySelector:S,createText:O,createComment:k}}=u,W=Nt(t.props);let{shapeFlag:D,children:p,dynamicChildren:y}=t;if(e==null){const I=t.el=O(""),T=t.anchor=O(""),F=t.target=_r(t.props,S),$=t.targetStart=O(""),M=t.targetAnchor=O("");b(I,n,r),b(T,n,r),$[Go]=M,F&&(b($,F),b(M,F),i==="svg"||ms(F)?i="svg":(i==="mathml"||ys(F))&&(i="mathml"));const _=(N,x)=>{D&16&&f(p,N,x,s,o,i,l,c)};W?_(n,T):F&&_(F,M)}else{t.el=e.el,t.targetStart=e.targetStart;const I=t.anchor=e.anchor,T=t.target=e.target,F=t.targetAnchor=e.targetAnchor,$=Nt(e.props),M=$?n:T,_=$?I:F;if(i==="svg"||ms(T)?i="svg":(i==="mathml"||ys(T))&&(i="mathml"),y?(m(e.dynamicChildren,y,M,s,o,i,l),Dr(e,t,!0)):c||h(e,t,M,_,s,o,i,l,!1),W)$?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):rn(t,n,I,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const N=t.target=_r(t.props,S);N&&rn(t,N,null,u,0)}else $&&rn(t,T,F,u,1)}Xo(t)},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:f,target:h,props:m}=e;if(h&&(s(u),s(f)),o&&s(c),i&16){const b=o||!Nt(m);for(let S=0;S{_s||(console.error("Hydration completed but contains mismatches."),_s=!0)},ac=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",uc=e=>e.namespaceURI.includes("MathML"),sn=e=>{if(ac(e))return"svg";if(uc(e))return"mathml"},on=e=>e.nodeType===8;function fc(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:c,createComment:u}}=e,f=(p,y)=>{if(!y.hasChildNodes()){n(null,p,y),_n(),y._vnode=p;return}h(y.firstChild,p,null,null,null),_n(),y._vnode=p},h=(p,y,I,T,F,$=!1)=>{$=$||!!y.dynamicChildren;const M=on(p)&&p.data==="[",_=()=>O(p,y,I,T,F,M),{type:N,ref:x,shapeFlag:G,patchFlag:ee}=y;let re=p.nodeType;y.el=p,ee===-2&&($=!1,y.dynamicChildren=null);let U=null;switch(N){case ut:re!==3?y.children===""?(c(y.el=s(""),i(p),p),U=p):U=_():(p.data!==y.children&&(gt(),p.data=y.children),U=o(p));break;case me:D(p)?(U=o(p),W(y.el=p.content.firstChild,p,I)):re!==8||M?U=_():U=o(p);break;case Ft:if(M&&(p=o(p),re=p.nodeType),re===1||re===3){U=p;const Y=!y.children.length;for(let j=0;j{$=$||!!y.dynamicChildren;const{type:M,props:_,patchFlag:N,shapeFlag:x,dirs:G,transition:ee}=y,re=M==="input"||M==="option";if(re||N!==-1){G&&Pe(y,null,I,"created");let U=!1;if(D(p)){U=zo(T,ee)&&I&&I.vnode.props&&I.vnode.props.appear;const j=p.content.firstChild;U&&ee.beforeEnter(j),W(j,p,I),y.el=p=j}if(x&16&&!(_&&(_.innerHTML||_.textContent))){let j=b(p.firstChild,y,p,I,T,F,$);for(;j;){gt();const He=j;j=j.nextSibling,l(He)}}else x&8&&p.textContent!==y.children&&(gt(),p.textContent=y.children);if(_){if(re||!$||N&48)for(const j in _)(re&&(j.endsWith("value")||j==="indeterminate")||Kt(j)&&!vt(j)||j[0]===".")&&r(p,j,null,_[j],void 0,I);else if(_.onClick)r(p,"onClick",null,_.onClick,void 0,I);else if(N&4&&bt(_.style))for(const j in _.style)_.style[j]}let Y;(Y=_&&_.onVnodeBeforeMount)&&Se(Y,I,y),G&&Pe(y,null,I,"beforeMount"),((Y=_&&_.onVnodeMounted)||G||U)&&ei(()=>{Y&&Se(Y,I,y),U&&ee.enter(p),G&&Pe(y,null,I,"mounted")},T)}return p.nextSibling},b=(p,y,I,T,F,$,M)=>{M=M||!!y.dynamicChildren;const _=y.children,N=_.length;for(let x=0;x{const{slotScopeIds:M}=y;M&&(F=F?F.concat(M):M);const _=i(p),N=b(o(p),y,_,I,T,F,$);return N&&on(N)&&N.data==="]"?o(y.anchor=N):(gt(),c(y.anchor=u("]"),_,N),N)},O=(p,y,I,T,F,$)=>{if(gt(),y.el=null,$){const N=k(p);for(;;){const x=o(p);if(x&&x!==N)l(x);else break}}const M=o(p),_=i(p);return l(p),n(null,y,_,M,I,T,sn(_),F),M},k=(p,y="[",I="]")=>{let T=0;for(;p;)if(p=o(p),p&&on(p)&&(p.data===y&&T++,p.data===I)){if(T===0)return o(p);T--}return p},W=(p,y,I)=>{const T=y.parentNode;T&&T.replaceChild(p,y);let F=I;for(;F;)F.vnode.el===y&&(F.vnode.el=F.subTree.el=p),F=F.parent},D=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[f,h]}const ye=ei;function dc(e){return Yo(e)}function hc(e){return Yo(e,fc)}function Yo(e,t){const n=to();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:f,parentNode:h,nextSibling:m,setScopeId:b=Te,insertStaticContent:S}=e,O=(a,d,g,E=null,v=null,C=null,L=void 0,A=null,R=!!d.dynamicChildren)=>{if(a===d)return;a&&!lt(a,d)&&(E=zt(a),Me(a,v,C,!0),a=null),d.patchFlag===-2&&(R=!1,d.dynamicChildren=null);const{type:w,ref:P,shapeFlag:V}=d;switch(w){case ut:k(a,d,g,E);break;case me:W(a,d,g,E);break;case Ft:a==null&&D(d,g,E,L);break;case _e:x(a,d,g,E,v,C,L,A,R);break;default:V&1?I(a,d,g,E,v,C,L,A,R):V&6?G(a,d,g,E,v,C,L,A,R):(V&64||V&128)&&w.process(a,d,g,E,v,C,L,A,R,ht)}P!=null&&v&&En(P,a&&a.ref,C,d||a,!d)},k=(a,d,g,E)=>{if(a==null)r(d.el=l(d.children),g,E);else{const v=d.el=a.el;d.children!==a.children&&u(v,d.children)}},W=(a,d,g,E)=>{a==null?r(d.el=c(d.children||""),g,E):d.el=a.el},D=(a,d,g,E)=>{[a.el,a.anchor]=S(a.children,d,g,E,a.el,a.anchor)},p=({el:a,anchor:d},g,E)=>{let v;for(;a&&a!==d;)v=m(a),r(a,g,E),a=v;r(d,g,E)},y=({el:a,anchor:d})=>{let g;for(;a&&a!==d;)g=m(a),s(a),a=g;s(d)},I=(a,d,g,E,v,C,L,A,R)=>{d.type==="svg"?L="svg":d.type==="math"&&(L="mathml"),a==null?T(d,g,E,v,C,L,A,R):M(a,d,v,C,L,A,R)},T=(a,d,g,E,v,C,L,A)=>{let R,w;const{props:P,shapeFlag:V,transition:H,dirs:q}=a;if(R=a.el=i(a.type,C,P&&P.is,P),V&8?f(R,a.children):V&16&&$(a.children,R,null,E,v,Gn(a,C),L,A),q&&Pe(a,null,E,"created"),F(R,a,a.scopeId,L,E),P){for(const te in P)te!=="value"&&!vt(te)&&o(R,te,null,P[te],C,E);"value"in P&&o(R,"value",null,P.value,C),(w=P.onVnodeBeforeMount)&&Se(w,E,a)}q&&Pe(a,null,E,"beforeMount");const X=zo(v,H);X&&H.beforeEnter(R),r(R,d,g),((w=P&&P.onVnodeMounted)||X||q)&&ye(()=>{w&&Se(w,E,a),X&&H.enter(R),q&&Pe(a,null,E,"mounted")},v)},F=(a,d,g,E,v)=>{if(g&&b(a,g),E)for(let C=0;C{for(let w=R;w{const A=d.el=a.el;let{patchFlag:R,dynamicChildren:w,dirs:P}=d;R|=a.patchFlag&16;const V=a.props||ne,H=d.props||ne;let q;if(g&&rt(g,!1),(q=H.onVnodeBeforeUpdate)&&Se(q,g,d,a),P&&Pe(d,a,g,"beforeUpdate"),g&&rt(g,!0),(V.innerHTML&&H.innerHTML==null||V.textContent&&H.textContent==null)&&f(A,""),w?_(a.dynamicChildren,w,A,g,E,Gn(d,v),C):L||j(a,d,A,null,g,E,Gn(d,v),C,!1),R>0){if(R&16)N(A,V,H,g,v);else if(R&2&&V.class!==H.class&&o(A,"class",null,H.class,v),R&4&&o(A,"style",V.style,H.style,v),R&8){const X=d.dynamicProps;for(let te=0;te{q&&Se(q,g,d,a),P&&Pe(d,a,g,"updated")},E)},_=(a,d,g,E,v,C,L)=>{for(let A=0;A{if(d!==g){if(d!==ne)for(const C in d)!vt(C)&&!(C in g)&&o(a,C,d[C],null,v,E);for(const C in g){if(vt(C))continue;const L=g[C],A=d[C];L!==A&&C!=="value"&&o(a,C,A,L,v,E)}"value"in g&&o(a,"value",d.value,g.value,v)}},x=(a,d,g,E,v,C,L,A,R)=>{const w=d.el=a?a.el:l(""),P=d.anchor=a?a.anchor:l("");let{patchFlag:V,dynamicChildren:H,slotScopeIds:q}=d;q&&(A=A?A.concat(q):q),a==null?(r(w,g,E),r(P,g,E),$(d.children||[],g,P,v,C,L,A,R)):V>0&&V&64&&H&&a.dynamicChildren?(_(a.dynamicChildren,H,g,v,C,L,A),(d.key!=null||v&&d===v.subTree)&&Dr(a,d,!0)):j(a,d,g,P,v,C,L,A,R)},G=(a,d,g,E,v,C,L,A,R)=>{d.slotScopeIds=A,a==null?d.shapeFlag&512?v.ctx.activate(d,g,E,L,R):ee(d,g,E,v,C,L,R):re(a,d,R)},ee=(a,d,g,E,v,C,L)=>{const A=a.component=Mc(a,E,v);if(qt(a)&&(A.ctx.renderer=ht),Ic(A,!1,L),A.asyncDep){if(v&&v.registerDep(A,U,L),!a.el){const R=A.subTree=le(me);W(null,R,d,g)}}else U(A,a,d,g,v,C,L)},re=(a,d,g)=>{const E=d.component=a.component;if(Ec(a,d,g))if(E.asyncDep&&!E.asyncResolved){Y(E,d,g);return}else E.next=d,Al(E.update),E.effect.dirty=!0,E.update();else d.el=a.el,E.vnode=d},U=(a,d,g,E,v,C,L)=>{const A=()=>{if(a.isMounted){let{next:P,bu:V,u:H,parent:q,vnode:X}=a;{const pt=Jo(a);if(pt){P&&(P.el=X.el,Y(a,P,L)),pt.asyncDep.then(()=>{a.isUnmounted||A()});return}}let te=P,Q;rt(a,!1),P?(P.el=X.el,Y(a,P,L)):P=X,V&&dn(V),(Q=P.props&&P.props.onVnodeBeforeUpdate)&&Se(Q,q,P,X),rt(a,!0);const ce=Xn(a),Re=a.subTree;a.subTree=ce,O(Re,ce,h(Re.el),zt(Re),a,v,C),P.el=ce.el,te===null&&Cc(a,ce.el),H&&ye(H,v),(Q=P.props&&P.props.onVnodeUpdated)&&ye(()=>Se(Q,q,P,X),v)}else{let P;const{el:V,props:H}=d,{bm:q,m:X,parent:te}=a,Q=Et(d);if(rt(a,!1),q&&dn(q),!Q&&(P=H&&H.onVnodeBeforeMount)&&Se(P,te,d),rt(a,!0),V&&Bn){const ce=()=>{a.subTree=Xn(a),Bn(V,a.subTree,a,v,null)};Q?d.type.__asyncLoader().then(()=>!a.isUnmounted&&ce()):ce()}else{const ce=a.subTree=Xn(a);O(null,ce,g,E,a,v,C),d.el=ce.el}if(X&&ye(X,v),!Q&&(P=H&&H.onVnodeMounted)){const ce=d;ye(()=>Se(P,te,ce),v)}(d.shapeFlag&256||te&&Et(te.vnode)&&te.vnode.shapeFlag&256)&&a.a&&ye(a.a,v),a.isMounted=!0,d=g=E=null}},R=a.effect=new Ar(A,Te,()=>In(w),a.scope),w=a.update=()=>{R.dirty&&R.run()};w.i=a,w.id=a.uid,rt(a,!0),w()},Y=(a,d,g)=>{d.component=a;const E=a.vnode.props;a.vnode=d,a.next=null,tc(a,d.props,E,g),oc(a,d.children,g),et(),os(a),tt()},j=(a,d,g,E,v,C,L,A,R=!1)=>{const w=a&&a.children,P=a?a.shapeFlag:0,V=d.children,{patchFlag:H,shapeFlag:q}=d;if(H>0){if(H&128){Yt(w,V,g,E,v,C,L,A,R);return}else if(H&256){He(w,V,g,E,v,C,L,A,R);return}}q&8?(P&16&&At(w,v,C),V!==w&&f(g,V)):P&16?q&16?Yt(w,V,g,E,v,C,L,A,R):At(w,v,C,!0):(P&8&&f(g,""),q&16&&$(V,g,E,v,C,L,A,R))},He=(a,d,g,E,v,C,L,A,R)=>{a=a||yt,d=d||yt;const w=a.length,P=d.length,V=Math.min(w,P);let H;for(H=0;HP?At(a,v,C,!0,!1,V):$(d,g,E,v,C,L,A,R,V)},Yt=(a,d,g,E,v,C,L,A,R)=>{let w=0;const P=d.length;let V=a.length-1,H=P-1;for(;w<=V&&w<=H;){const q=a[w],X=d[w]=R?qe(d[w]):xe(d[w]);if(lt(q,X))O(q,X,g,null,v,C,L,A,R);else break;w++}for(;w<=V&&w<=H;){const q=a[V],X=d[H]=R?qe(d[H]):xe(d[H]);if(lt(q,X))O(q,X,g,null,v,C,L,A,R);else break;V--,H--}if(w>V){if(w<=H){const q=H+1,X=qH)for(;w<=V;)Me(a[w],v,C,!0),w++;else{const q=w,X=w,te=new Map;for(w=X;w<=H;w++){const be=d[w]=R?qe(d[w]):xe(d[w]);be.key!=null&&te.set(be.key,w)}let Q,ce=0;const Re=H-X+1;let pt=!1,Xr=0;const Rt=new Array(Re);for(w=0;w=Re){Me(be,v,C,!0);continue}let Ie;if(be.key!=null)Ie=te.get(be.key);else for(Q=X;Q<=H;Q++)if(Rt[Q-X]===0&<(be,d[Q])){Ie=Q;break}Ie===void 0?Me(be,v,C,!0):(Rt[Ie-X]=w+1,Ie>=Xr?Xr=Ie:pt=!0,O(be,d[Ie],g,null,v,C,L,A,R),ce++)}const Yr=pt?pc(Rt):yt;for(Q=Yr.length-1,w=Re-1;w>=0;w--){const be=X+w,Ie=d[be],zr=be+1{const{el:C,type:L,transition:A,children:R,shapeFlag:w}=a;if(w&6){nt(a.component.subTree,d,g,E);return}if(w&128){a.suspense.move(d,g,E);return}if(w&64){L.move(a,d,g,ht);return}if(L===_e){r(C,d,g);for(let V=0;VA.enter(C),v);else{const{leave:V,delayLeave:H,afterLeave:q}=A,X=()=>r(C,d,g),te=()=>{V(C,()=>{X(),q&&q()})};H?H(C,X,te):te()}else r(C,d,g)},Me=(a,d,g,E=!1,v=!1)=>{const{type:C,props:L,ref:A,children:R,dynamicChildren:w,shapeFlag:P,patchFlag:V,dirs:H,cacheIndex:q}=a;if(V===-2&&(v=!1),A!=null&&En(A,null,g,a,!0),q!=null&&(d.renderCache[q]=void 0),P&256){d.ctx.deactivate(a);return}const X=P&1&&H,te=!Et(a);let Q;if(te&&(Q=L&&L.onVnodeBeforeUnmount)&&Se(Q,d,a),P&6)Ii(a.component,g,E);else{if(P&128){a.suspense.unmount(g,E);return}X&&Pe(a,null,d,"beforeUnmount"),P&64?a.type.remove(a,d,g,ht,E):w&&!w.hasOnce&&(C!==_e||V>0&&V&64)?At(w,d,g,!1,!0):(C===_e&&V&384||!v&&P&16)&&At(R,d,g),E&&qr(a)}(te&&(Q=L&&L.onVnodeUnmounted)||X)&&ye(()=>{Q&&Se(Q,d,a),X&&Pe(a,null,d,"unmounted")},g)},qr=a=>{const{type:d,el:g,anchor:E,transition:v}=a;if(d===_e){Mi(g,E);return}if(d===Ft){y(a);return}const C=()=>{s(g),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(a.shapeFlag&1&&v&&!v.persisted){const{leave:L,delayLeave:A}=v,R=()=>L(g,C);A?A(a.el,C,R):R()}else C()},Mi=(a,d)=>{let g;for(;a!==d;)g=m(a),s(a),a=g;s(d)},Ii=(a,d,g)=>{const{bum:E,scope:v,update:C,subTree:L,um:A,m:R,a:w}=a;vs(R),vs(w),E&&dn(E),v.stop(),C&&(C.active=!1,Me(L,a,d,g)),A&&ye(A,d),ye(()=>{a.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},At=(a,d,g,E=!1,v=!1,C=0)=>{for(let L=C;L{if(a.shapeFlag&6)return zt(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const d=m(a.anchor||a.el),g=d&&d[Go];return g?m(g):d};let Dn=!1;const Gr=(a,d,g)=>{a==null?d._vnode&&Me(d._vnode,null,null,!0):O(d._vnode||null,a,d,null,null,null,g),Dn||(Dn=!0,os(),_n(),Dn=!1),d._vnode=a},ht={p:O,um:Me,m:nt,r:qr,mt:ee,mc:$,pc:j,pbc:_,n:zt,o:e};let Un,Bn;return t&&([Un,Bn]=t(ht)),{render:Gr,hydrate:Un,createApp:Ql(Gr,Un)}}function Gn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function zo(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Dr(e,t,n=!1){const r=e.children,s=t.children;if(B(r)&&B(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Jo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Jo(t)}function vs(e){if(e)for(let t=0;tCt(gc);function Ur(e,t){return $n(e,null,t)}function vu(e,t){return $n(e,null,{flush:"post"})}const ln={};function Fe(e,t,n){return $n(e,t,n)}function $n(e,t,{immediate:n,deep:r,flush:s,once:o,onTrack:i,onTrigger:l}=ne){if(t&&o){const T=t;t=(...F)=>{T(...F),I()}}const c=ae,u=T=>r===!0?T:Ge(T,r===!1?1:void 0);let f,h=!1,m=!1;if(de(e)?(f=()=>e.value,h=St(e)):bt(e)?(f=()=>u(e),h=!0):B(e)?(m=!0,h=e.some(T=>bt(T)||St(T)),f=()=>e.map(T=>{if(de(T))return T.value;if(bt(T))return u(T);if(K(T))return Ye(T,c,2)})):K(e)?t?f=()=>Ye(e,c,2):f=()=>(b&&b(),Ae(e,c,3,[S])):f=Te,t&&r){const T=f;f=()=>Ge(T())}let b,S=T=>{b=p.onStop=()=>{Ye(T,c,4),b=p.onStop=void 0}},O;if(Xt)if(S=Te,t?n&&Ae(t,c,3,[f(),m?[]:void 0,S]):f(),s==="sync"){const T=mc();O=T.__watcherHandles||(T.__watcherHandles=[])}else return Te;let k=m?new Array(e.length).fill(ln):ln;const W=()=>{if(!(!p.active||!p.dirty))if(t){const T=p.run();(r||h||(m?T.some((F,$)=>ze(F,k[$])):ze(T,k)))&&(b&&b(),Ae(t,c,3,[T,k===ln?void 0:m&&k[0]===ln?[]:k,S]),k=T)}else p.run()};W.allowRecurse=!!t;let D;s==="sync"?D=W:s==="post"?D=()=>ye(W,c&&c.suspense):(W.pre=!0,c&&(W.id=c.uid),D=()=>In(W));const p=new Ar(f,Te,D),y=oo(),I=()=>{p.stop(),y&&Cr(y.effects,p)};return t?n?W():k=p.run():s==="post"?ye(p.run.bind(p),c&&c.suspense):p.run(),O&&O.push(I),I}function yc(e,t,n){const r=this.proxy,s=ie(e)?e.includes(".")?Qo(r,e):()=>r[e]:e.bind(r,r);let o;K(t)?o=t:(o=t.handler,n=t);const i=Gt(this),l=$n(s,o.bind(r),n);return i(),l}function Qo(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{Ge(r,t,n)});else if(Zs(e)){for(const r in e)Ge(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Ge(e[r],t,n)}return e}const _c=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Oe(t)}Modifiers`]||e[`${Ze(t)}Modifiers`];function vc(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ne;let s=n;const o=t.startsWith("update:"),i=o&&_c(r,t.slice(7));i&&(i.trim&&(s=n.map(f=>ie(f)?f.trim():f)),i.number&&(s=n.map(cr)));let l,c=r[l=fn(t)]||r[l=fn(Oe(t))];!c&&o&&(c=r[l=fn(Ze(t))]),c&&Ae(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ae(u,e,6,s)}}function Zo(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!K(e)){const c=u=>{const f=Zo(u,t,!0);f&&(l=!0,fe(i,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(Z(e)&&r.set(e,null),null):(B(o)?o.forEach(c=>i[c]=null):fe(i,o),Z(e)&&r.set(e,i),i)}function Hn(e,t){return!e||!Kt(t)?!1:(t=t.slice(2).replace(/Once$/,""),z(e,t[0].toLowerCase()+t.slice(1))||z(e,Ze(t))||z(e,t))}function Xn(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:f,props:h,data:m,setupState:b,ctx:S,inheritAttrs:O}=e,k=vn(e);let W,D;try{if(n.shapeFlag&4){const y=s||r,I=y;W=xe(u.call(I,y,f,h,b,m,S)),D=l}else{const y=t;W=xe(y.length>1?y(h,{attrs:l,slots:i,emit:c}):y(h,null)),D=t.props?l:bc(l)}}catch(y){$t.length=0,Wt(y,e,1),W=le(me)}let p=W;if(D&&O!==!1){const y=Object.keys(D),{shapeFlag:I}=p;y.length&&I&7&&(o&&y.some(Er)&&(D=wc(D,o)),p=Je(p,D,!1,!0))}return n.dirs&&(p=Je(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&(p.transition=n.transition),W=p,vn(k),W}const bc=e=>{let t;for(const n in e)(n==="class"||n==="style"||Kt(n))&&((t||(t={}))[n]=e[n]);return t},wc=(e,t)=>{const n={};for(const r in e)(!Er(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Ec(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:c}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?bs(r,i,u):!!i;if(c&8){const f=t.dynamicProps;for(let h=0;he.__isSuspense;function ei(e,t){t&&t.pendingBranch?B(e)?t.effects.push(...e):t.effects.push(e):Rl(e)}const _e=Symbol.for("v-fgt"),ut=Symbol.for("v-txt"),me=Symbol.for("v-cmt"),Ft=Symbol.for("v-stc"),$t=[];let Ee=null;function ti(e=!1){$t.push(Ee=e?null:[])}function xc(){$t.pop(),Ee=$t[$t.length-1]||null}let Ut=1;function ws(e){Ut+=e,e<0&&Ee&&(Ee.hasOnce=!0)}function ni(e){return e.dynamicChildren=Ut>0?Ee||yt:null,xc(),Ut>0&&Ee&&Ee.push(e),e}function bu(e,t,n,r,s,o){return ni(oi(e,t,n,r,s,o,!0))}function ri(e,t,n,r,s){return ni(le(e,t,n,r,s,!0))}function Cn(e){return e?e.__v_isVNode===!0:!1}function lt(e,t){return e.type===t.type&&e.key===t.key}const si=({key:e})=>e??null,pn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ie(e)||de(e)||K(e)?{i:ue,r:e,k:t,f:!!n}:e:null);function oi(e,t=null,n=null,r=0,s=null,o=e===_e?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&si(t),ref:t&&pn(t),scopeId:Pn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:ue};return l?(Br(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=ie(n)?8:16),Ut>0&&!i&&Ee&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ee.push(c),c}const le=Tc;function Tc(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Po)&&(e=me),Cn(e)){const l=Je(e,t,!0);return n&&Br(l,n),Ut>0&&!o&&Ee&&(l.shapeFlag&6?Ee[Ee.indexOf(e)]=l:Ee.push(l)),l.patchFlag=-2,l}if($c(e)&&(e=e.__vccOpts),t){t=Ac(t);let{class:l,style:c}=t;l&&!ie(l)&&(t.class=Tr(l)),Z(c)&&(_o(c)&&!B(c)&&(c=fe({},c)),t.style=xr(c))}const i=ie(e)?1:Sc(e)?128:ic(e)?64:Z(e)?4:K(e)?2:0;return oi(e,t,n,r,s,i,o,!0)}function Ac(e){return e?_o(e)||Do(e)?fe({},e):e:null}function Je(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Rc(s||{},t):s,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&si(u),ref:t&&t.ref?n&&o?B(o)?o.concat(pn(t)):[o,pn(t)]:pn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Je(e.ssContent),ssFallback:e.ssFallback&&Je(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&bn(f,c.clone(f)),f}function ii(e=" ",t=0){return le(ut,null,e,t)}function wu(e,t){const n=le(Ft,null,e);return n.staticCount=t,n}function Eu(e="",t=!1){return t?(ti(),ri(me,null,e)):le(me,null,e)}function xe(e){return e==null||typeof e=="boolean"?le(me):B(e)?le(_e,null,e.slice()):typeof e=="object"?qe(e):le(ut,null,String(e))}function qe(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Je(e)}function Br(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(B(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Br(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Do(t)?t._ctx=ue:s===3&&ue&&(ue.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:ue},n=32):(t=String(t),r&64?(n=16,t=[ii(t)]):n=8);e.children=t,e.shapeFlag|=n}function Rc(...e){const t={};for(let n=0;nae||ue;let Sn,vr;{const e=to(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};Sn=t("__VUE_INSTANCE_SETTERS__",n=>ae=n),vr=t("__VUE_SSR_SETTERS__",n=>Xt=n)}const Gt=e=>{const t=ae;return Sn(e),e.scope.on(),()=>{e.scope.off(),Sn(t)}},Es=()=>{ae&&ae.scope.off(),Sn(null)};function li(e){return e.vnode.shapeFlag&4}let Xt=!1;function Ic(e,t=!1,n=!1){t&&vr(t);const{props:r,children:s}=e.vnode,o=li(e);ec(e,r,o,t),sc(e,s,n);const i=o?Pc(e,t):void 0;return t&&vr(!1),i}function Pc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Kl);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?ai(e):null,o=Gt(e);et();const i=Ye(r,e,0,[e.props,s]);if(tt(),o(),Js(i)){if(i.then(Es,Es),t)return i.then(l=>{Cs(e,l,t)}).catch(l=>{Wt(l,e,0)});e.asyncDep=i}else Cs(e,i,t)}else ci(e,t)}function Cs(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=Eo(t)),ci(e,n)}let Ss;function ci(e,t,n){const r=e.type;if(!e.render){if(!t&&Ss&&!r.render){const s=r.template||jr(e).template;if(s){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,u=fe(fe({isCustomElement:o,delimiters:l},i),c);r.render=Ss(s,u)}}e.render=r.render||Te}{const s=Gt(e);et();try{ql(e)}finally{tt(),s()}}}const Nc={get(e,t){return ve(e,"get",""),e[t]}};function ai(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Nc),slots:e.slots,emit:e.emit,expose:t}}function Vn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Eo(hn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in It)return It[n](e)},has(t,n){return n in t||n in It}})):e.proxy}function Fc(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function $c(e){return K(e)&&"__vccOpts"in e}const se=(e,t)=>ml(e,t,Xt);function br(e,t,n){const r=arguments.length;return r===2?Z(t)&&!B(t)?Cn(t)?le(e,null,[t]):le(e,t):le(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Cn(n)&&(n=[n]),le(e,t,n))}const Hc="3.4.34";/** -* @vue/runtime-dom v3.4.34 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const jc="http://www.w3.org/2000/svg",Vc="http://www.w3.org/1998/Math/MathML",je=typeof document<"u"?document:null,xs=je&&je.createElement("template"),Dc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?je.createElementNS(jc,e):t==="mathml"?je.createElementNS(Vc,e):n?je.createElement(e,{is:n}):je.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>je.createTextNode(e),createComment:e=>je.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>je.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{xs.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=xs.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Be="transition",Ot="animation",Bt=Symbol("_vtc"),ui=(e,{slots:t})=>br(Pl,Uc(e),t);ui.displayName="Transition";const fi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};ui.props=fe({},To,fi);const st=(e,t=[])=>{B(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ts=e=>e?B(e)?e.some(t=>t.length>1):e.length>1:!1;function Uc(e){const t={};for(const x in e)x in fi||(t[x]=e[x]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:b=`${n}-leave-to`}=e,S=Bc(s),O=S&&S[0],k=S&&S[1],{onBeforeEnter:W,onEnter:D,onEnterCancelled:p,onLeave:y,onLeaveCancelled:I,onBeforeAppear:T=W,onAppear:F=D,onAppearCancelled:$=p}=t,M=(x,G,ee)=>{ot(x,G?f:l),ot(x,G?u:i),ee&&ee()},_=(x,G)=>{x._isLeaving=!1,ot(x,h),ot(x,b),ot(x,m),G&&G()},N=x=>(G,ee)=>{const re=x?F:D,U=()=>M(G,x,ee);st(re,[G,U]),As(()=>{ot(G,x?c:o),ke(G,x?f:l),Ts(re)||Rs(G,r,O,U)})};return fe(t,{onBeforeEnter(x){st(W,[x]),ke(x,o),ke(x,i)},onBeforeAppear(x){st(T,[x]),ke(x,c),ke(x,u)},onEnter:N(!1),onAppear:N(!0),onLeave(x,G){x._isLeaving=!0;const ee=()=>_(x,G);ke(x,h),ke(x,m),Wc(),As(()=>{x._isLeaving&&(ot(x,h),ke(x,b),Ts(y)||Rs(x,r,k,ee))}),st(y,[x,ee])},onEnterCancelled(x){M(x,!1),st(p,[x])},onAppearCancelled(x){M(x,!0),st($,[x])},onLeaveCancelled(x){_(x),st(I,[x])}})}function Bc(e){if(e==null)return null;if(Z(e))return[Yn(e.enter),Yn(e.leave)];{const t=Yn(e);return[t,t]}}function Yn(e){return ji(e)}function ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Bt]||(e[Bt]=new Set)).add(t)}function ot(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Bt];n&&(n.delete(t),n.size||(e[Bt]=void 0))}function As(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let kc=0;function Rs(e,t,n,r){const s=e._endId=++kc,o=()=>{s===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Kc(e,t);if(!i)return r();const u=i+"end";let f=0;const h=()=>{e.removeEventListener(u,m),o()},m=b=>{b.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[S]||"").split(", "),s=r(`${Be}Delay`),o=r(`${Be}Duration`),i=Os(s,o),l=r(`${Ot}Delay`),c=r(`${Ot}Duration`),u=Os(l,c);let f=null,h=0,m=0;t===Be?i>0&&(f=Be,h=i,m=o.length):t===Ot?u>0&&(f=Ot,h=u,m=c.length):(h=Math.max(i,u),f=h>0?i>u?Be:Ot:null,m=f?f===Be?o.length:c.length:0);const b=f===Be&&/\b(transform|all)(,|$)/.test(r(`${Be}Property`).toString());return{type:f,timeout:h,propCount:m,hasTransform:b}}function Os(e,t){for(;e.lengthLs(n)+Ls(e[r])))}function Ls(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Wc(){return document.body.offsetHeight}function qc(e,t,n){const r=e[Bt];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ms=Symbol("_vod"),Gc=Symbol("_vsh"),Xc=Symbol(""),Yc=/(^|;)\s*display\s*:/;function zc(e,t,n){const r=e.style,s=ie(n);let o=!1;if(n&&!s){if(t)if(ie(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&gn(r,l,"")}else for(const i in t)n[i]==null&&gn(r,i,"");for(const i in n)i==="display"&&(o=!0),gn(r,i,n[i])}else if(s){if(t!==n){const i=r[Xc];i&&(n+=";"+i),r.cssText=n,o=Yc.test(n)}}else t&&e.removeAttribute("style");Ms in e&&(e[Ms]=o?r.display:"",e[Gc]&&(r.display="none"))}const Is=/\s*!important$/;function gn(e,t,n){if(B(n))n.forEach(r=>gn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Jc(e,t);Is.test(n)?e.setProperty(Ze(r),n.replace(Is,""),"important"):e[r]=n}}const Ps=["Webkit","Moz","ms"],zn={};function Jc(e,t){const n=zn[t];if(n)return n;let r=Oe(t);if(r!=="filter"&&r in e)return zn[t]=r;r=An(r);for(let s=0;sJn||(na.then(()=>Jn=0),Jn=Date.now());function sa(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Ae(oa(r,n.value),t,5,[r])};return n.value=e,n.attached=ra(),n}function oa(e,t){if(B(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const js=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ia=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?qc(e,r,i):t==="style"?zc(e,n,r):Kt(t)?Er(t)||ea(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):la(e,t,r,i))?(Qc(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Fs(e,t,r,i,o,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Fs(e,t,r,i))};function la(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&js(t)&&K(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return js(t)&&ie(n)?!1:t in e}const Vs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return B(t)?n=>dn(t,n):t};function ca(e){e.target.composing=!0}function Ds(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Qn=Symbol("_assign"),Cu={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Qn]=Vs(s);const o=r||s.props&&s.props.type==="number";mt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=cr(l)),e[Qn](l)}),n&&mt(e,"change",()=>{e.value=e.value.trim()}),t||(mt(e,"compositionstart",ca),mt(e,"compositionend",Ds),mt(e,"change",Ds))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Qn]=Vs(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?cr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},aa=["ctrl","shift","alt","meta"],ua={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>aa.some(n=>e[`${n}Key`]&&!t.includes(n))},Su=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const o=Ze(s.key);if(t.some(i=>i===o||fa[i]===o))return e(s)})},di=fe({patchProp:ia},Dc);let Ht,Us=!1;function da(){return Ht||(Ht=dc(di))}function ha(){return Ht=Us?Ht:hc(di),Us=!0,Ht}const Tu=(...e)=>{const t=da().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=pi(r);if(!s)return;const o=t._component;!K(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,hi(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},Au=(...e)=>{const t=ha().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=pi(r);if(s)return n(s,!0,hi(s))},t};function hi(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function pi(e){return ie(e)?document.querySelector(e):e}const Ru=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},pa="modulepreload",ga=function(e){return"/GeometryOps.jl/dev/"+e},Bs={},Ou=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.all(n.map(l=>{if(l=ga(l),l in Bs)return;Bs[l]=!0;const c=l.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${u}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":pa,c||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),c)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}return s.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},ma=window.__VP_SITE_DATA__;function kr(e){return oo()?(Xi(e),!0):!1}function $e(e){return typeof e=="function"?e():wo(e)}const gi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ya=Object.prototype.toString,_a=e=>ya.call(e)==="[object Object]",kt=()=>{},ks=va();function va(){var e,t;return gi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function ba(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const mi=e=>e();function wa(e,t={}){let n,r,s=kt;const o=l=>{clearTimeout(l),s(),s=kt};return l=>{const c=$e(e),u=$e(t.maxWait);return n&&o(n),c<=0||u!==void 0&&u<=0?(r&&(o(r),r=null),Promise.resolve(l())):new Promise((f,h)=>{s=t.rejectOnCancel?h:f,u&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,f(l())},u)),n=setTimeout(()=>{r&&o(r),r=null,f(l())},c)})}}function Ea(e=mi){const t=oe(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:Ln(t),pause:n,resume:r,eventFilter:s}}function Ca(e){return jn()}function yi(...e){if(e.length!==1)return Cl(...e);const t=e[0];return typeof t=="function"?Ln(bl(()=>({get:t,set:kt}))):oe(t)}function _i(e,t,n={}){const{eventFilter:r=mi,...s}=n;return Fe(e,ba(r,t),s)}function Sa(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:l,isActive:c}=Ea(r);return{stop:_i(e,t,{...s,eventFilter:o}),pause:i,resume:l,isActive:c}}function Kr(e,t=!0,n){Ca()?Tt(e,n):t?e():Mn(e)}function Lu(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...o}=n;return _i(e,t,{...o,eventFilter:wa(r,{maxWait:s})})}function Mu(e,t,n){let r;de(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:o=void 0,shallow:i=!0,onError:l=kt}=r,c=oe(!s),u=i?Fr(t):oe(t);let f=0;return Ur(async h=>{if(!c.value)return;f++;const m=f;let b=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const S=await e(O=>{h(()=>{o&&(o.value=!1),b||O()})});m===f&&(u.value=S)}catch(S){l(S)}finally{o&&m===f&&(o.value=!1),b=!0}}),s?se(()=>(c.value=!0,u.value)):u}function vi(e){var t;const n=$e(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Le=gi?window:void 0;function xt(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=Le):[t,n,r,s]=e,!t)return kt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(f=>f()),o.length=0},l=(f,h,m,b)=>(f.addEventListener(h,m,b),()=>f.removeEventListener(h,m,b)),c=Fe(()=>[vi(t),$e(s)],([f,h])=>{if(i(),!f)return;const m=_a(h)?{...h}:h;o.push(...n.flatMap(b=>r.map(S=>l(f,b,S,m))))},{immediate:!0,flush:"post"}),u=()=>{c(),i()};return kr(u),u}function xa(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Iu(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Le,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=r,c=xa(t);return xt(s,o,f=>{f.repeat&&$e(l)||c(f)&&n(f)},i)}function Ta(){const e=oe(!1),t=jn();return t&&Tt(()=>{e.value=!0},t),e}function Aa(e){const t=Ta();return se(()=>(t.value,!!e()))}function bi(e,t={}){const{window:n=Le}=t,r=Aa(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=oe(!1),i=u=>{o.value=u.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},c=Ur(()=>{r.value&&(l(),s=n.matchMedia($e(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return kr(()=>{c(),l(),s=void 0}),o}const cn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},an="__vueuse_ssr_handlers__",Ra=Oa();function Oa(){return an in cn||(cn[an]=cn[an]||{}),cn[an]}function wi(e,t){return Ra[e]||t}function La(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Ma={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ks="vueuse-storage";function Wr(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:f,window:h=Le,eventFilter:m,onError:b=_=>{console.error(_)},initOnMounted:S}=r,O=(f?Fr:oe)(typeof t=="function"?t():t);if(!n)try{n=wi("getDefaultStorage",()=>{var _;return(_=Le)==null?void 0:_.localStorage})()}catch(_){b(_)}if(!n)return O;const k=$e(t),W=La(k),D=(s=r.serializer)!=null?s:Ma[W],{pause:p,resume:y}=Sa(O,()=>T(O.value),{flush:o,deep:i,eventFilter:m});h&&l&&Kr(()=>{xt(h,"storage",$),xt(h,Ks,M),S&&$()}),S||$();function I(_,N){h&&h.dispatchEvent(new CustomEvent(Ks,{detail:{key:e,oldValue:_,newValue:N,storageArea:n}}))}function T(_){try{const N=n.getItem(e);if(_==null)I(N,null),n.removeItem(e);else{const x=D.write(_);N!==x&&(n.setItem(e,x),I(N,x))}}catch(N){b(N)}}function F(_){const N=_?_.newValue:n.getItem(e);if(N==null)return c&&k!=null&&n.setItem(e,D.write(k)),k;if(!_&&u){const x=D.read(N);return typeof u=="function"?u(x,k):W==="object"&&!Array.isArray(x)?{...k,...x}:x}else return typeof N!="string"?N:D.read(N)}function $(_){if(!(_&&_.storageArea!==n)){if(_&&_.key==null){O.value=k;return}if(!(_&&_.key!==e)){p();try{(_==null?void 0:_.newValue)!==D.write(O.value)&&(O.value=F(_))}catch(N){b(N)}finally{_?Mn(y):y()}}}}function M(_){$(_.detail)}return O}function Ei(e){return bi("(prefers-color-scheme: dark)",e)}function Ia(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Le,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=Ei({window:s}),b=se(()=>m.value?"dark":"light"),S=c||(i==null?yi(r):Wr(i,r,o,{window:s,listenToStorageChanges:l})),O=se(()=>S.value==="auto"?b.value:S.value),k=wi("updateHTMLAttrs",(y,I,T)=>{const F=typeof y=="string"?s==null?void 0:s.document.querySelector(y):vi(y);if(!F)return;let $;if(f&&($=s.document.createElement("style"),$.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild($)),I==="class"){const M=T.split(/\s/g);Object.values(h).flatMap(_=>(_||"").split(/\s/g)).filter(Boolean).forEach(_=>{M.includes(_)?F.classList.add(_):F.classList.remove(_)})}else F.setAttribute(I,T);f&&(s.getComputedStyle($).opacity,document.head.removeChild($))});function W(y){var I;k(t,n,(I=h[y])!=null?I:y)}function D(y){e.onChanged?e.onChanged(y,W):W(y)}Fe(O,D,{flush:"post",immediate:!0}),Kr(()=>D(O.value));const p=se({get(){return u?S.value:O.value},set(y){S.value=y}});try{return Object.assign(p,{store:S,system:b,state:O})}catch{return p}}function Pa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Le}=e,s=Ia({...e,onChanged:(l,c)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),o=se(()=>s.system?s.system.value:Ei({window:r}).value?"dark":"light");return se({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";o.value===c?s.value="auto":s.value=c}})}function Zn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Pu(e,t,n={}){const{window:r=Le}=n;return Wr(e,t,r==null?void 0:r.localStorage,n)}function Ci(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const er=new WeakMap;function Nu(e,t=!1){const n=oe(t);let r=null,s="";Fe(yi(e),l=>{const c=Zn($e(l));if(c){const u=c;if(er.get(u)||er.set(u,u.style.overflow),u.style.overflow!=="hidden"&&(s=u.style.overflow),u.style.overflow==="hidden")return n.value=!0;if(n.value)return u.style.overflow="hidden"}},{immediate:!0});const o=()=>{const l=Zn($e(e));!l||n.value||(ks&&(r=xt(l,"touchmove",c=>{Na(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=Zn($e(e));!l||!n.value||(ks&&(r==null||r()),l.style.overflow=s,er.delete(l),n.value=!1)};return kr(i),se({get(){return n.value},set(l){l?o():i()}})}function Fu(e,t,n={}){const{window:r=Le}=n;return Wr(e,t,r==null?void 0:r.sessionStorage,n)}function $u(e={}){const{window:t=Le,behavior:n="auto"}=e;if(!t)return{x:oe(0),y:oe(0)};const r=oe(t.scrollX),s=oe(t.scrollY),o=se({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=se({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return xt(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:o,y:i}}function Hu(e={}){const{window:t=Le,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=e,i=oe(n),l=oe(r),c=()=>{t&&(o?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),Kr(c),xt("resize",c,{passive:!0}),s){const u=bi("(orientation: portrait)");Fe(u,()=>c())}return{width:i,height:l}}var tr={BASE_URL:"/GeometryOps.jl/dev/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},nr={};const Si=/^(?:[a-z]+:|\/\/)/i,Fa="vitepress-theme-appearance",$a=/#.*$/,Ha=/[?#].*$/,ja=/(?:(^|\/)index)?\.(?:md|html)$/,he=typeof document<"u",xi={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Va(e,t,n=!1){if(t===void 0)return!1;if(e=Ws(`/${e}`),n)return new RegExp(t).test(e);if(Ws(t)!==e)return!1;const r=t.match($a);return r?(he?location.hash:"")===r[0]:!0}function Ws(e){return decodeURI(e).replace(Ha,"").replace(ja,"$1")}function Da(e){return Si.test(e)}function Ua(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!Da(n)&&Va(t,`/${n}/`,!0))||"root"}function Ba(e,t){var r,s,o,i,l,c,u;const n=Ua(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Ai(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function Ti(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=ka(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function ka(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Ka(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([o,i])=>o===n&&i[s[0]]===s[1])}function Ai(e,t){return[...e.filter(n=>!Ka(t,n)),...t]}const Wa=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,qa=/^[a-z]:/i;function qs(e){const t=qa.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Wa,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const rr=new Set;function Ga(e){if(rr.size===0){const n=typeof process=="object"&&(nr==null?void 0:nr.VITE_EXTRA_EXTENSIONS)||(tr==null?void 0:tr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>rr.add(r))}const t=e.split(".").pop();return t==null||!rr.has(t.toLowerCase())}function ju(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const Xa=Symbol(),ft=Fr(ma);function Vu(e){const t=se(()=>Ba(ft.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?oe(!0):n?Pa({storageKey:Fa,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):oe(!1),s=oe(he?location.hash:"");return he&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Fe(()=>e.data,()=>{s.value=he?location.hash:""}),{site:t,theme:se(()=>t.value.themeConfig),page:se(()=>e.data),frontmatter:se(()=>e.data.frontmatter),params:se(()=>e.data.params),lang:se(()=>t.value.lang),dir:se(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:se(()=>t.value.localeIndex||"root"),title:se(()=>Ti(t.value,e.data)),description:se(()=>e.data.description||t.value.description),isDark:r,hash:se(()=>s.value)}}function Ya(){const e=Ct(Xa);if(!e)throw new Error("vitepress data not properly injected in app");return e}function za(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Gs(e){return Si.test(e)||!e.startsWith("/")?e:za(ft.value.base,e)}function Ja(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/GeometryOps.jl/dev/";t=qs(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${qs(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let mn=[];function Du(e){mn.push(e),Fn(()=>{mn=mn.filter(t=>t!==e)})}function Qa(){let e=ft.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Xs(e,n);else if(Array.isArray(e))for(const r of e){const s=Xs(r,n);if(s){t=s;break}}return t}function Xs(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const Za=Symbol(),Ri="http://a.com",eu=()=>({path:"/",component:null,data:xi});function Uu(e,t){const n=On(eu()),r={route:n,go:s};async function s(l=he?location.href:"/"){var c,u;l=sr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(he&&l!==sr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await i(l),await((u=r.onAfterRouteChanged)==null?void 0:u.call(r,l)))}let o=null;async function i(l,c=0,u=!1){var m;if(await((m=r.onBeforePageLoad)==null?void 0:m.call(r,l))===!1)return;const f=new URL(l,Ri),h=o=f.pathname;try{let b=await e(h);if(!b)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:S,__pageData:O}=b;if(!S)throw new Error(`Invalid route component: ${S}`);n.path=he?h:Gs(h),n.component=hn(S),n.data=hn(O),he&&Mn(()=>{let k=ft.value.base+O.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ft.value.cleanUrls&&!k.endsWith("/")&&(k+=".html"),k!==f.pathname&&(f.pathname=k,l=k+f.search+f.hash,history.replaceState({},"",l)),f.hash&&!c){let W=null;try{W=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(D){console.warn(D)}if(W){Ys(W,f.hash);return}}window.scrollTo(0,c)})}}catch(b){if(!/fetch|Page not found/.test(b.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(b),!u)try{const S=await fetch(ft.value.base+"hashmap.json");window.__VP_HASH_MAP__=await S.json(),await i(l,c,!0);return}catch{}if(o===h){o=null,n.path=he?h:Gs(h),n.component=t?hn(t):null;const S=he?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...xi,relativePath:S}}}}return he&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const u=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(u==null)return;const{href:f,origin:h,pathname:m,hash:b,search:S}=new URL(u,c.baseURI),O=new URL(location.href);h===O.origin&&Ga(m)&&(l.preventDefault(),m===O.pathname&&S===O.search?(b!==O.hash&&(history.pushState({},"",f),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:O.href,newURL:f}))),b?Ys(c,b,c.classList.contains("header-anchor")):window.scrollTo(0,0)):s(f))},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await i(sr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function tu(){const e=Ct(Za);if(!e)throw new Error("useRouter() is called without provider.");return e}function Oi(){return tu().route}function Ys(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const o=parseInt(window.getComputedStyle(r).paddingTop,10),i=window.scrollY+r.getBoundingClientRect().top-Qa()+o;requestAnimationFrame(s)}}function sr(e){const t=new URL(e,Ri);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ft.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const or=()=>mn.forEach(e=>e()),Bu=Hr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Oi(),{site:n}=Ya();return()=>br(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?br(t.component,{onVnodeMounted:or,onVnodeUpdated:or,onVnodeUnmounted:or}):"404 Page Not Found"])}}),ku=Hr({setup(e,{slots:t}){const n=oe(!1);return Tt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Ku(){he&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const o=r.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(u=>u.classList.contains("active"));if(!i)return;const l=o.children[s];if(!l||i===l)return;i.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Wu(){if(he){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,o=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=o.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(f=>f.remove());let u=c.textContent||"";i&&(u=u.replace(/^ *(\$|>) /gm,"").trim()),nu(u).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const f=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,f)})}})}}async function nu(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function qu(e,t){let n=!0,r=[];const s=o=>{if(n){n=!1,o.forEach(l=>{const c=ir(l);for(const u of document.head.children)if(u.isEqualNode(c)){r.push(u);return}});return}const i=o.map(ir);r.forEach((l,c)=>{const u=i.findIndex(f=>f==null?void 0:f.isEqualNode(l??null));u!==-1?delete i[u]:(l==null||l.remove(),delete r[c])}),i.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...i].filter(Boolean)};Ur(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[],u=Ti(i,o);u!==document.title&&(document.title=u);const f=l||i.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==f&&h.setAttribute("content",f):ir(["meta",{name:"description",content:f}]),s(Ai(i.head,su(c)))})}function ir([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function ru(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function su(e){return e.filter(t=>!ru(t))}const lr=new Set,Li=()=>document.createElement("link"),ou=e=>{const t=Li();t.rel="prefetch",t.href=e,document.head.appendChild(t)},iu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let un;const lu=he&&(un=Li())&&un.relList&&un.relList.supports&&un.relList.supports("prefetch")?ou:iu;function Gu(){if(!he||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!lr.has(c)){lr.add(c);const u=Ja(c);u&&lu(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):lr.add(l))})})};Tt(r);const s=Oi();Fe(()=>s.path,r),Fn(()=>{n&&n.disconnect()})}export{xu as $,vu as A,Vl as B,Qa as C,du as D,pu as E,_e as F,Fr as G,Du as H,le as I,hu as J,Si as K,Oi as L,Rc as M,Ct as N,Hu as O,xr as P,Iu as Q,Mn as R,$u as S,ui as T,he as U,Ln as V,fu as W,Ou as X,Nu as Y,Zl as Z,Ru as _,ii as a,mu as a0,Mo as a1,Su as a2,yu as a3,On as a4,Cl as a5,br as a6,wu as a7,qu as a8,Za as a9,Vu as aa,Xa as ab,Bu as ac,ku as ad,ft as ae,Au as af,Uu as ag,Ja as ah,Gu as ai,Wu as aj,Ku as ak,vi as al,kr as am,Mu as an,Fu as ao,Pu as ap,Lu as aq,tu as ar,xt as as,uu as at,Cu as au,de as av,_u as aw,hn as ax,Tu as ay,ju as az,ri as b,bu as c,Hr as d,Eu as e,Ga as f,Gs as g,se as h,Da as i,oi as j,wo as k,au as l,Va as m,Tr as n,ti as o,cu as p,bi as q,gu as r,oe as s,Wi as t,Ya as u,Fe as v,Ll as w,Ur as x,Tt as y,Fn as z}; diff --git a/dev/assets/chunks/framework.Bvl2j7qw.js b/dev/assets/chunks/framework.Bvl2j7qw.js new file mode 100644 index 000000000..72c0f375c --- /dev/null +++ b/dev/assets/chunks/framework.Bvl2j7qw.js @@ -0,0 +1,17 @@ +/** +* @vue/shared v3.4.35 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function wr(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const ne={},yt=[],Te=()=>{},Mi=()=>!1,Kt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Er=e=>e.startsWith("onUpdate:"),fe=Object.assign,Cr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ii=Object.prototype.hasOwnProperty,z=(e,t)=>Ii.call(e,t),k=Array.isArray,_t=e=>xn(e)==="[object Map]",Gs=e=>xn(e)==="[object Set]",W=e=>typeof e=="function",ie=e=>typeof e=="string",Qe=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Xs=e=>(Z(e)||W(e))&&W(e.then)&&W(e.catch),Ys=Object.prototype.toString,xn=e=>Ys.call(e),Pi=e=>xn(e).slice(8,-1),zs=e=>xn(e)==="[object Object]",Sr=e=>ie(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,bt=wr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Tn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Ni=/-(\w)/g,Oe=Tn(e=>e.replace(Ni,(t,n)=>n?n.toUpperCase():"")),Fi=/\B([A-Z])/g,Ze=Tn(e=>e.replace(Fi,"-$1").toLowerCase()),An=Tn(e=>e.charAt(0).toUpperCase()+e.slice(1)),fn=Tn(e=>e?`on${An(e)}`:""),ze=(e,t)=>!Object.is(e,t),dn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},cr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},$i=e=>{const t=ie(e)?Number(e):NaN;return isNaN(t)?e:t};let Jr;const Qs=()=>Jr||(Jr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xr(e){if(k(e)){const t={};for(let n=0;n{if(n){const r=n.split(ji);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Tr(e){let t="";if(ie(e))t=e;else if(k(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ki=e=>ie(e)?e:e==null?"":k(e)||Z(e)&&(e.toString===Ys||!W(e.toString))?eo(e)?ki(e.value):JSON.stringify(e,to,2):String(e),to=(e,t)=>eo(t)?to(e,t.value):_t(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[kn(r,o)+" =>"]=s,n),{})}:Gs(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>kn(n))}:Qe(t)?kn(t):Z(t)&&!k(t)&&!zs(t)?String(t):t,kn=(e,t="")=>{var n;return Qe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.35 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let we;class Ki{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=we,!t&&we&&(this.index=(we.scopes||(we.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=we;try{return we=this,t()}finally{we=n}}}on(){we=this}off(){we=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),tt()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Xe,n=ct;try{return Xe=!0,ct=this,this._runnings++,Qr(this),this.fn()}finally{Zr(this),this._runnings--,ct=n,Xe=t}}stop(){this.active&&(Qr(this),Zr(this),this.onStop&&this.onStop(),this.active=!1)}}function Gi(e){return e.value}function Qr(e){e._trackId++,e._depsLength=0}function Zr(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},yn=new WeakMap,at=Symbol(""),fr=Symbol("");function be(e,t,n){if(Xe&&ct){let r=yn.get(e);r||yn.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=lo(()=>r.delete(n))),oo(ct,s)}}function Ve(e,t,n,r,s,o){const i=yn.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&k(e)){const c=Number(r);i.forEach((u,f)=>{(f==="length"||!Qe(f)&&f>=c)&&l.push(u)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":k(e)?Sr(n)&&l.push(i.get("length")):(l.push(i.get(at)),_t(e)&&l.push(i.get(fr)));break;case"delete":k(e)||(l.push(i.get(at)),_t(e)&&l.push(i.get(fr)));break;case"set":_t(e)&&l.push(i.get(at));break}Rr();for(const c of l)c&&io(c,4);Or()}function Xi(e,t){const n=yn.get(e);return n&&n.get(t)}const Yi=wr("__proto__,__v_isRef,__isVue"),co=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Qe)),es=zi();function zi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=J(this);for(let o=0,i=this.length;o{e[t]=function(...n){et(),Rr();const r=J(this)[t].apply(this,n);return Or(),tt(),r}}),e}function Ji(e){Qe(e)||(e=String(e));const t=J(this);return be(t,"has",e),t.hasOwnProperty(e)}class ao{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?ul:po:o?ho:fo).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=k(t);if(!s){if(i&&z(es,n))return Reflect.get(es,n,r);if(n==="hasOwnProperty")return Ji}const l=Reflect.get(t,n,r);return(Qe(n)?co.has(n):Yi(n))||(s||be(t,"get",n),o)?l:de(l)?i&&Sr(n)?l:l.value:Z(l)?s?Ln(l):On(l):l}}class uo extends ao{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const c=dt(o);if(!St(r)&&!dt(r)&&(o=J(o),r=J(r)),!k(t)&&de(o)&&!de(r))return c?!1:(o.value=r,!0)}const i=k(t)&&Sr(n)?Number(n)e,Rn=e=>Reflect.getPrototypeOf(e);function Jt(e,t,n=!1,r=!1){e=e.__v_raw;const s=J(e),o=J(t);n||(ze(t,o)&&be(s,"get",t),be(s,"get",o));const{has:i}=Rn(s),l=r?Lr:n?Pr:jt;if(i.call(s,t))return l(e.get(t));if(i.call(s,o))return l(e.get(o));e!==s&&e.get(t)}function Qt(e,t=!1){const n=this.__v_raw,r=J(n),s=J(e);return t||(ze(e,s)&&be(r,"has",e),be(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Zt(e,t=!1){return e=e.__v_raw,!t&&be(J(e),"iterate",at),Reflect.get(e,"size",e)}function ts(e,t=!1){!t&&!St(e)&&!dt(e)&&(e=J(e));const n=J(this);return Rn(n).has.call(n,e)||(n.add(e),Ve(n,"add",e,e)),this}function ns(e,t,n=!1){!n&&!St(t)&&!dt(t)&&(t=J(t));const r=J(this),{has:s,get:o}=Rn(r);let i=s.call(r,e);i||(e=J(e),i=s.call(r,e));const l=o.call(r,e);return r.set(e,t),i?ze(t,l)&&Ve(r,"set",e,t):Ve(r,"add",e,t),this}function rs(e){const t=J(this),{has:n,get:r}=Rn(t);let s=n.call(t,e);s||(e=J(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&Ve(t,"delete",e,void 0),o}function ss(){const e=J(this),t=e.size!==0,n=e.clear();return t&&Ve(e,"clear",void 0,void 0),n}function en(e,t){return function(r,s){const o=this,i=o.__v_raw,l=J(i),c=t?Lr:e?Pr:jt;return!e&&be(l,"iterate",at),i.forEach((u,f)=>r.call(s,c(u),c(f),o))}}function tn(e,t,n){return function(...r){const s=this.__v_raw,o=J(s),i=_t(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),f=n?Lr:t?Pr:jt;return!t&&be(o,"iterate",c?fr:at),{next(){const{value:h,done:m}=u.next();return m?{value:h,done:m}:{value:l?[f(h[0]),f(h[1])]:f(h),done:m}},[Symbol.iterator](){return this}}}}function Ue(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function nl(){const e={get(o){return Jt(this,o)},get size(){return Zt(this)},has:Qt,add:ts,set:ns,delete:rs,clear:ss,forEach:en(!1,!1)},t={get(o){return Jt(this,o,!1,!0)},get size(){return Zt(this)},has:Qt,add(o){return ts.call(this,o,!0)},set(o,i){return ns.call(this,o,i,!0)},delete:rs,clear:ss,forEach:en(!1,!0)},n={get(o){return Jt(this,o,!0)},get size(){return Zt(this,!0)},has(o){return Qt.call(this,o,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:en(!0,!1)},r={get(o){return Jt(this,o,!0,!0)},get size(){return Zt(this,!0)},has(o){return Qt.call(this,o,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:en(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=tn(o,!1,!1),n[o]=tn(o,!0,!1),t[o]=tn(o,!1,!0),r[o]=tn(o,!0,!0)}),[e,n,t,r]}const[rl,sl,ol,il]=nl();function Mr(e,t){const n=t?e?il:ol:e?sl:rl;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(z(n,s)&&s in r?n:r,s,o)}const ll={get:Mr(!1,!1)},cl={get:Mr(!1,!0)},al={get:Mr(!0,!1)};const fo=new WeakMap,ho=new WeakMap,po=new WeakMap,ul=new WeakMap;function fl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function dl(e){return e.__v_skip||!Object.isExtensible(e)?0:fl(Pi(e))}function On(e){return dt(e)?e:Ir(e,!1,Zi,ll,fo)}function hl(e){return Ir(e,!1,tl,cl,ho)}function Ln(e){return Ir(e,!0,el,al,po)}function Ir(e,t,n,r,s){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=dl(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function vt(e){return dt(e)?vt(e.__v_raw):!!(e&&e.__v_isReactive)}function dt(e){return!!(e&&e.__v_isReadonly)}function St(e){return!!(e&&e.__v_isShallow)}function go(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function hn(e){return Object.isExtensible(e)&&Js(e,"__v_skip",!0),e}const jt=e=>Z(e)?On(e):e,Pr=e=>Z(e)?Ln(e):e;class mo{constructor(t,n,r,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Ar(()=>t(this._value),()=>Mt(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=J(this);return(!t._cacheable||t.effect.dirty)&&ze(t._value,t._value=t.effect.run())&&Mt(t,4),Nr(t),t.effect._dirtyLevel>=2&&Mt(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function pl(e,t,n=!1){let r,s;const o=W(e);return o?(r=e,s=Te):(r=e.get,s=e.set),new mo(r,s,o||!s,n)}function Nr(e){var t;Xe&&ct&&(e=J(e),oo(ct,(t=e.dep)!=null?t:e.dep=lo(()=>e.dep=void 0,e instanceof mo?e:void 0)))}function Mt(e,t=4,n,r){e=J(e);const s=e.dep;s&&io(s,t)}function de(e){return!!(e&&e.__v_isRef===!0)}function oe(e){return yo(e,!1)}function Fr(e){return yo(e,!0)}function yo(e,t){return de(e)?e:new gl(e,t)}class gl{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:jt(t)}get value(){return Nr(this),this._value}set value(t){const n=this.__v_isShallow||St(t)||dt(t);t=n?t:J(t),ze(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:jt(t),Mt(this,4))}}function _o(e){return de(e)?e.value:e}const ml={get:(e,t,n)=>_o(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function bo(e){return vt(e)?e:new Proxy(e,ml)}class yl{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Nr(this),()=>Mt(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function _l(e){return new yl(e)}class bl{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Xi(J(this._object),this._key)}}class vl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function wl(e,t,n){return de(e)?e:W(e)?new vl(e):Z(e)&&arguments.length>1?El(e,t,n):oe(e)}function El(e,t,n){const r=e[t];return de(r)?r:new bl(e,t,n)}/** +* @vue/runtime-core v3.4.35 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ye(e,t,n,r){try{return r?e(...r):e()}catch(s){Wt(s,t,n)}}function Ae(e,t,n,r){if(W(e)){const s=Ye(e,t,n,r);return s&&Xs(s)&&s.catch(o=>{Wt(o,t,n)}),s}if(k(e)){const s=[];for(let o=0;o>>1,s=pe[r],o=Dt(s);oNe&&pe.splice(t,1)}function Tl(e){k(e)?wt.push(...e):(!Ke||!Ke.includes(e,e.allowRecurse?it+1:it))&&wt.push(e),wo()}function os(e,t,n=Vt?Ne+1:0){for(;nDt(n)-Dt(r));if(wt.length=0,Ke){Ke.push(...t);return}for(Ke=t,it=0;ite.id==null?1/0:e.id,Al=(e,t)=>{const n=Dt(e)-Dt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Eo(e){dr=!1,Vt=!0,pe.sort(Al);try{for(Ne=0;Ne{r._d&&_s(-1);const o=bn(t);let i;try{i=e(...s)}finally{bn(o),r._d&&_s(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function cu(e,t){if(ue===null)return e;const n=Vn(ue),r=e.dirs||(e.dirs=[]);for(let s=0;s{e.isMounted=!0}),Ro(()=>{e.isUnmounting=!0}),e}const Ce=[Function,Array],Co={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ce,onEnter:Ce,onAfterEnter:Ce,onEnterCancelled:Ce,onBeforeLeave:Ce,onLeave:Ce,onAfterLeave:Ce,onLeaveCancelled:Ce,onBeforeAppear:Ce,onAppear:Ce,onAfterAppear:Ce,onAppearCancelled:Ce},So=e=>{const t=e.subTree;return t.component?So(t.component):t},Ll={name:"BaseTransition",props:Co,setup(e,{slots:t}){const n=jn(),r=Ol();return()=>{const s=t.default&&To(t.default(),!0);if(!s||!s.length)return;let o=s[0];if(s.length>1){for(const m of s)if(m.type!==me){o=m;break}}const i=J(e),{mode:l}=i;if(r.isLeaving)return Kn(o);const c=is(o);if(!c)return Kn(o);let u=hr(c,i,r,n,m=>u=m);vn(c,u);const f=n.subTree,h=f&&is(f);if(h&&h.type!==me&&!lt(c,h)&&So(n).type!==me){const m=hr(h,i,r,n);if(vn(h,m),l==="out-in"&&c.type!==me)return r.isLeaving=!0,m.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Kn(o);l==="in-out"&&c.type!==me&&(m.delayLeave=(_,w,O)=>{const B=xo(r,h);B[String(h.key)]=h,_[We]=()=>{w(),_[We]=void 0,delete u.delayedLeave},u.delayedLeave=O})}return o}}},Ml=Ll;function xo(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hr(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:f,onEnterCancelled:h,onBeforeLeave:m,onLeave:_,onAfterLeave:w,onLeaveCancelled:O,onBeforeAppear:B,onAppear:K,onAfterAppear:H,onAppearCancelled:p}=t,y=String(e.key),I=xo(n,e),T=(M,b)=>{M&&Ae(M,r,9,b)},F=(M,b)=>{const N=b[1];T(M,b),k(M)?M.every(x=>x.length<=1)&&N():M.length<=1&&N()},j={mode:i,persisted:l,beforeEnter(M){let b=c;if(!n.isMounted)if(o)b=B||c;else return;M[We]&&M[We](!0);const N=I[y];N&<(e,N)&&N.el[We]&&N.el[We](),T(b,[M])},enter(M){let b=u,N=f,x=h;if(!n.isMounted)if(o)b=K||u,N=H||f,x=p||h;else return;let G=!1;const ee=M[nn]=re=>{G||(G=!0,re?T(x,[M]):T(N,[M]),j.delayedLeave&&j.delayedLeave(),M[nn]=void 0)};b?F(b,[M,ee]):ee()},leave(M,b){const N=String(e.key);if(M[nn]&&M[nn](!0),n.isUnmounting)return b();T(m,[M]);let x=!1;const G=M[We]=ee=>{x||(x=!0,b(),ee?T(O,[M]):T(w,[M]),M[We]=void 0,I[N]===e&&delete I[N])};I[N]=e,_?F(_,[M,G]):G()},clone(M){const b=hr(M,t,n,r,s);return s&&s(b),b}};return j}function Kn(e){if(qt(e))return e=Je(e),e.children=null,e}function is(e){if(!qt(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&W(n.default))return n.default()}}function vn(e,t){e.shapeFlag&6&&e.component?vn(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function To(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;o!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function au(e){W(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,timeout:o,suspensible:i=!0,onError:l}=e;let c=null,u,f=0;const h=()=>(f++,c=null,m()),m=()=>{let _;return c||(_=c=t().catch(w=>{if(w=w instanceof Error?w:new Error(String(w)),l)return new Promise((O,B)=>{l(w,()=>O(h()),()=>B(w),f+1)});throw w}).then(w=>_!==c&&c?c:(w&&(w.__esModule||w[Symbol.toStringTag]==="Module")&&(w=w.default),u=w,w)))};return Hr({name:"AsyncComponentWrapper",__asyncLoader:m,get __asyncResolved(){return u},setup(){const _=ae;if(u)return()=>Wn(u,_);const w=H=>{c=null,Wt(H,_,13,!r)};if(i&&_.suspense||Xt)return m().then(H=>()=>Wn(H,_)).catch(H=>(w(H),()=>r?le(r,{error:H}):null));const O=oe(!1),B=oe(),K=oe(!!s);return s&&setTimeout(()=>{K.value=!1},s),o!=null&&setTimeout(()=>{if(!O.value&&!B.value){const H=new Error(`Async component timed out after ${o}ms.`);w(H),B.value=H}},o),m().then(()=>{O.value=!0,_.parent&&qt(_.parent.vnode)&&(_.parent.effect.dirty=!0,In(_.parent.update))}).catch(H=>{w(H),B.value=H}),()=>{if(O.value&&u)return Wn(u,_);if(B.value&&r)return le(r,{error:B.value});if(n&&!K.value)return le(n)}}})}function Wn(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=le(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const qt=e=>e.type.__isKeepAlive;function Il(e,t){Ao(e,"a",t)}function Pl(e,t){Ao(e,"da",t)}function Ao(e,t,n=ae){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Nn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)qt(s.parent.vnode)&&Nl(r,t,n,s),s=s.parent}}function Nl(e,t,n,r){const s=Nn(t,e,r,!0);Fn(()=>{Cr(r[t],s)},n)}function Nn(e,t,n=ae,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{et();const l=Gt(n),c=Ae(t,n,e,i);return l(),tt(),c});return r?s.unshift(o):s.push(o),o}}const De=e=>(t,n=ae)=>{(!Xt||e==="sp")&&Nn(e,(...r)=>t(...r),n)},Fl=De("bm"),Tt=De("m"),$l=De("bu"),Hl=De("u"),Ro=De("bum"),Fn=De("um"),jl=De("sp"),Vl=De("rtg"),Dl=De("rtc");function Ul(e,t=ae){Nn("ec",e,t)}const Oo="components";function uu(e,t){return Mo(Oo,e,!0,t)||e}const Lo=Symbol.for("v-ndc");function fu(e){return ie(e)?Mo(Oo,e,!1)||e:e||Lo}function Mo(e,t,n=!0,r=!1){const s=ue||ae;if(s){const o=s.type;{const l=Pc(o,!1);if(l&&(l===t||l===Oe(t)||l===An(Oe(t))))return o}const i=ls(s[e]||o[e],t)||ls(s.appContext[e],t);return!i&&r?o:i}}function ls(e,t){return e&&(e[t]||e[Oe(t)]||e[An(Oe(t))])}function du(e,t,n,r){let s;const o=n;if(k(e)||ie(e)){s=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,o));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;lCn(t)?!(t.type===me||t.type===_e&&!Io(t.children)):!0)?e:null}function pu(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:fn(r)]=e[r];return n}const pr=e=>e?oi(e)?Vn(e):pr(e.parent):null,It=fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>pr(e.parent),$root:e=>pr(e.root),$emit:e=>e.emit,$options:e=>jr(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,In(e.update)}),$nextTick:e=>e.n||(e.n=Mn.bind(e.proxy)),$watch:e=>gc.bind(e)}),qn=(e,t)=>e!==ne&&!e.__isScriptSetup&&z(e,t),Bl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const _=i[t];if(_!==void 0)switch(_){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(qn(r,t))return i[t]=1,r[t];if(s!==ne&&z(s,t))return i[t]=2,s[t];if((u=e.propsOptions[0])&&z(u,t))return i[t]=3,o[t];if(n!==ne&&z(n,t))return i[t]=4,n[t];gr&&(i[t]=0)}}const f=It[t];let h,m;if(f)return t==="$attrs"&&be(e.attrs,"get",""),f(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==ne&&z(n,t))return i[t]=4,n[t];if(m=c.config.globalProperties,z(m,t))return m[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return qn(s,t)?(s[t]=n,!0):r!==ne&&z(r,t)?(r[t]=n,!0):z(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let l;return!!n[i]||e!==ne&&z(e,i)||qn(t,i)||(l=o[0])&&z(l,i)||z(r,i)||z(It,i)||z(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:z(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function gu(){return kl().slots}function kl(){const e=jn();return e.setupContext||(e.setupContext=li(e))}function cs(e){return k(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let gr=!0;function Kl(e){const t=jr(e),n=e.proxy,r=e.ctx;gr=!1,t.beforeCreate&&as(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:f,beforeMount:h,mounted:m,beforeUpdate:_,updated:w,activated:O,deactivated:B,beforeDestroy:K,beforeUnmount:H,destroyed:p,unmounted:y,render:I,renderTracked:T,renderTriggered:F,errorCaptured:j,serverPrefetch:M,expose:b,inheritAttrs:N,components:x,directives:G,filters:ee}=t;if(u&&Wl(u,r,null),i)for(const Y in i){const V=i[Y];W(V)&&(r[Y]=V.bind(n))}if(s){const Y=s.call(n,n);Z(Y)&&(e.data=On(Y))}if(gr=!0,o)for(const Y in o){const V=o[Y],He=W(V)?V.bind(n,n):W(V.get)?V.get.bind(n,n):Te,Yt=!W(V)&&W(V.set)?V.set.bind(n):Te,nt=se({get:He,set:Yt});Object.defineProperty(r,Y,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Me=>nt.value=Me})}if(l)for(const Y in l)Po(l[Y],r,n,Y);if(c){const Y=W(c)?c.call(n):c;Reflect.ownKeys(Y).forEach(V=>{Jl(V,Y[V])})}f&&as(f,e,"c");function U(Y,V){k(V)?V.forEach(He=>Y(He.bind(n))):V&&Y(V.bind(n))}if(U(Fl,h),U(Tt,m),U($l,_),U(Hl,w),U(Il,O),U(Pl,B),U(Ul,j),U(Dl,T),U(Vl,F),U(Ro,H),U(Fn,y),U(jl,M),k(b))if(b.length){const Y=e.exposed||(e.exposed={});b.forEach(V=>{Object.defineProperty(Y,V,{get:()=>n[V],set:He=>n[V]=He})})}else e.exposed||(e.exposed={});I&&e.render===Te&&(e.render=I),N!=null&&(e.inheritAttrs=N),x&&(e.components=x),G&&(e.directives=G)}function Wl(e,t,n=Te){k(e)&&(e=mr(e));for(const r in e){const s=e[r];let o;Z(s)?"default"in s?o=Ct(s.from||r,s.default,!0):o=Ct(s.from||r):o=Ct(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function as(e,t,n){Ae(k(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Po(e,t,n,r){const s=r.includes(".")?zo(n,r):()=>n[r];if(ie(e)){const o=t[e];W(o)&&Fe(s,o)}else if(W(e))Fe(s,e.bind(n));else if(Z(e))if(k(e))e.forEach(o=>Po(o,t,n,r));else{const o=W(e.handler)?e.handler.bind(n):t[e.handler];W(o)&&Fe(s,o,e)}}function jr(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>wn(c,u,i,!0)),wn(c,t,i)),Z(t)&&o.set(t,c),c}function wn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&wn(e,o,n,!0),s&&s.forEach(i=>wn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=ql[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const ql={data:us,props:fs,emits:fs,methods:Lt,computed:Lt,beforeCreate:ge,created:ge,beforeMount:ge,mounted:ge,beforeUpdate:ge,updated:ge,beforeDestroy:ge,beforeUnmount:ge,destroyed:ge,unmounted:ge,activated:ge,deactivated:ge,errorCaptured:ge,serverPrefetch:ge,components:Lt,directives:Lt,watch:Xl,provide:us,inject:Gl};function us(e,t){return t?e?function(){return fe(W(e)?e.call(this,this):e,W(t)?t.call(this,this):t)}:t:e}function Gl(e,t){return Lt(mr(e),mr(t))}function mr(e){if(k(e)){const t={};for(let n=0;n1)return n&&W(t)?t.call(r&&r.proxy):t}}const Fo={},$o=()=>Object.create(Fo),Ho=e=>Object.getPrototypeOf(e)===Fo;function Ql(e,t,n,r=!1){const s={},o=$o();e.propsDefaults=Object.create(null),jo(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:hl(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Zl(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=J(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,_]=Vo(h,t,!0);fe(i,m),_&&l.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!c)return Z(e)&&r.set(e,yt),yt;if(k(o))for(let f=0;fe[0]==="_"||e==="$stable",Vr=e=>k(e)?e.map(xe):[xe(e)],tc=(e,t,n)=>{if(t._n)return t;const r=Rl((...s)=>Vr(t(...s)),n);return r._c=!1,r},Uo=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Do(s))continue;const o=e[s];if(W(o))t[s]=tc(s,o,r);else if(o!=null){const i=Vr(o);t[s]=()=>i}}},Bo=(e,t)=>{const n=Vr(t);e.slots.default=()=>n},ko=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},nc=(e,t,n)=>{const r=e.slots=$o();if(e.vnode.shapeFlag&32){const s=t._;s?(ko(r,t,n),n&&Js(r,"_",s,!0)):Uo(t,r)}else t&&Bo(e,t)},rc=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ne;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ko(s,t,n):(o=!t.$stable,Uo(t,s)),i=t}else t&&(Bo(e,t),i={default:1});if(o)for(const l in s)!Do(l)&&i[l]==null&&delete s[l]};function En(e,t,n,r,s=!1){if(k(e)){e.forEach((m,_)=>En(m,t&&(k(t)?t[_]:t),n,r,s));return}if(Et(r)&&!s)return;const o=r.shapeFlag&4?Vn(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,f=l.refs===ne?l.refs={}:l.refs,h=l.setupState;if(u!=null&&u!==c&&(ie(u)?(f[u]=null,z(h,u)&&(h[u]=null)):de(u)&&(u.value=null)),W(c))Ye(c,l,12,[i,f]);else{const m=ie(c),_=de(c);if(m||_){const w=()=>{if(e.f){const O=m?z(h,c)?h[c]:f[c]:c.value;s?k(O)&&Cr(O,o):k(O)?O.includes(o)||O.push(o):m?(f[c]=[o],z(h,c)&&(h[c]=f[c])):(c.value=[o],e.k&&(f[e.k]=c.value))}else m?(f[c]=i,z(h,c)&&(h[c]=i)):_&&(c.value=i,e.k&&(f[e.k]=i))};i?(w.id=-1,ye(w,n)):w()}}}const Ko=Symbol("_vte"),sc=e=>e.__isTeleport,Nt=e=>e&&(e.disabled||e.disabled===""),hs=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ps=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,_r=(e,t)=>{const n=e&&e.to;return ie(n)?t?t(n):null:n},oc={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:f,pc:h,pbc:m,o:{insert:_,querySelector:w,createText:O,createComment:B}}=u,K=Nt(t.props);let{shapeFlag:H,children:p,dynamicChildren:y}=t;if(e==null){const I=t.el=O(""),T=t.anchor=O("");_(I,n,r),_(T,n,r);const F=t.target=_r(t.props,w),j=qo(F,t,O,_);F&&(i==="svg"||hs(F)?i="svg":(i==="mathml"||ps(F))&&(i="mathml"));const M=(b,N)=>{H&16&&f(p,b,N,s,o,i,l,c)};K?M(n,T):F&&M(F,j)}else{t.el=e.el,t.targetStart=e.targetStart;const I=t.anchor=e.anchor,T=t.target=e.target,F=t.targetAnchor=e.targetAnchor,j=Nt(e.props),M=j?n:T,b=j?I:F;if(i==="svg"||hs(T)?i="svg":(i==="mathml"||ps(T))&&(i="mathml"),y?(m(e.dynamicChildren,y,M,s,o,i,l),Dr(e,t,!0)):c||h(e,t,M,b,s,o,i,l,!1),K)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):rn(t,n,I,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const N=t.target=_r(t.props,w);N&&rn(t,N,null,u,0)}else j&&rn(t,T,F,u,1)}Wo(t)},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:f,target:h,props:m}=e;if(h&&(s(u),s(f)),o&&s(c),i&16){const _=o||!Nt(m);for(let w=0;w{gs||(console.error("Hydration completed but contains mismatches."),gs=!0)},lc=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",cc=e=>e.namespaceURI.includes("MathML"),sn=e=>{if(lc(e))return"svg";if(cc(e))return"mathml"},on=e=>e.nodeType===8;function ac(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:c,createComment:u}}=e,f=(p,y)=>{if(!y.hasChildNodes()){n(null,p,y),_n(),y._vnode=p;return}h(y.firstChild,p,null,null,null),_n(),y._vnode=p},h=(p,y,I,T,F,j=!1)=>{j=j||!!y.dynamicChildren;const M=on(p)&&p.data==="[",b=()=>O(p,y,I,T,F,M),{type:N,ref:x,shapeFlag:G,patchFlag:ee}=y;let re=p.nodeType;y.el=p,ee===-2&&(j=!1,y.dynamicChildren=null);let U=null;switch(N){case ut:re!==3?y.children===""?(c(y.el=s(""),i(p),p),U=p):U=b():(p.data!==y.children&&(gt(),p.data=y.children),U=o(p));break;case me:H(p)?(U=o(p),K(y.el=p.content.firstChild,p,I)):re!==8||M?U=b():U=o(p);break;case Ft:if(M&&(p=o(p),re=p.nodeType),re===1||re===3){U=p;const Y=!y.children.length;for(let V=0;V{j=j||!!y.dynamicChildren;const{type:M,props:b,patchFlag:N,shapeFlag:x,dirs:G,transition:ee}=y,re=M==="input"||M==="option";if(re||N!==-1){G&&Pe(y,null,I,"created");let U=!1;if(H(p)){U=Xo(T,ee)&&I&&I.vnode.props&&I.vnode.props.appear;const V=p.content.firstChild;U&&ee.beforeEnter(V),K(V,p,I),y.el=p=V}if(x&16&&!(b&&(b.innerHTML||b.textContent))){let V=_(p.firstChild,y,p,I,T,F,j);for(;V;){gt();const He=V;V=V.nextSibling,l(He)}}else x&8&&p.textContent!==y.children&&(gt(),p.textContent=y.children);if(b){if(re||!j||N&48)for(const V in b)(re&&(V.endsWith("value")||V==="indeterminate")||Kt(V)&&!bt(V)||V[0]===".")&&r(p,V,null,b[V],void 0,I);else if(b.onClick)r(p,"onClick",null,b.onClick,void 0,I);else if(N&4&&vt(b.style))for(const V in b.style)b.style[V]}let Y;(Y=b&&b.onVnodeBeforeMount)&&Se(Y,I,y),G&&Pe(y,null,I,"beforeMount"),((Y=b&&b.onVnodeMounted)||G||U)&&Qo(()=>{Y&&Se(Y,I,y),U&&ee.enter(p),G&&Pe(y,null,I,"mounted")},T)}return p.nextSibling},_=(p,y,I,T,F,j,M)=>{M=M||!!y.dynamicChildren;const b=y.children,N=b.length;for(let x=0;x{const{slotScopeIds:M}=y;M&&(F=F?F.concat(M):M);const b=i(p),N=_(o(p),y,b,I,T,F,j);return N&&on(N)&&N.data==="]"?o(y.anchor=N):(gt(),c(y.anchor=u("]"),b,N),N)},O=(p,y,I,T,F,j)=>{if(gt(),y.el=null,j){const N=B(p);for(;;){const x=o(p);if(x&&x!==N)l(x);else break}}const M=o(p),b=i(p);return l(p),n(null,y,b,M,I,T,sn(b),F),M},B=(p,y="[",I="]")=>{let T=0;for(;p;)if(p=o(p),p&&on(p)&&(p.data===y&&T++,p.data===I)){if(T===0)return o(p);T--}return p},K=(p,y,I)=>{const T=y.parentNode;T&&T.replaceChild(p,y);let F=I;for(;F;)F.vnode.el===y&&(F.vnode.el=F.subTree.el=p),F=F.parent},H=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[f,h]}const ye=Qo;function uc(e){return Go(e)}function fc(e){return Go(e,ac)}function Go(e,t){const n=Qs();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:f,parentNode:h,nextSibling:m,setScopeId:_=Te,insertStaticContent:w}=e,O=(a,d,g,C=null,v=null,S=null,L=void 0,A=null,R=!!d.dynamicChildren)=>{if(a===d)return;a&&!lt(a,d)&&(C=zt(a),Me(a,v,S,!0),a=null),d.patchFlag===-2&&(R=!1,d.dynamicChildren=null);const{type:E,ref:P,shapeFlag:D}=d;switch(E){case ut:B(a,d,g,C);break;case me:K(a,d,g,C);break;case Ft:a==null&&H(d,g,C,L);break;case _e:x(a,d,g,C,v,S,L,A,R);break;default:D&1?I(a,d,g,C,v,S,L,A,R):D&6?G(a,d,g,C,v,S,L,A,R):(D&64||D&128)&&E.process(a,d,g,C,v,S,L,A,R,ht)}P!=null&&v&&En(P,a&&a.ref,S,d||a,!d)},B=(a,d,g,C)=>{if(a==null)r(d.el=l(d.children),g,C);else{const v=d.el=a.el;d.children!==a.children&&u(v,d.children)}},K=(a,d,g,C)=>{a==null?r(d.el=c(d.children||""),g,C):d.el=a.el},H=(a,d,g,C)=>{[a.el,a.anchor]=w(a.children,d,g,C,a.el,a.anchor)},p=({el:a,anchor:d},g,C)=>{let v;for(;a&&a!==d;)v=m(a),r(a,g,C),a=v;r(d,g,C)},y=({el:a,anchor:d})=>{let g;for(;a&&a!==d;)g=m(a),s(a),a=g;s(d)},I=(a,d,g,C,v,S,L,A,R)=>{d.type==="svg"?L="svg":d.type==="math"&&(L="mathml"),a==null?T(d,g,C,v,S,L,A,R):M(a,d,v,S,L,A,R)},T=(a,d,g,C,v,S,L,A)=>{let R,E;const{props:P,shapeFlag:D,transition:$,dirs:q}=a;if(R=a.el=i(a.type,S,P&&P.is,P),D&8?f(R,a.children):D&16&&j(a.children,R,null,C,v,Gn(a,S),L,A),q&&Pe(a,null,C,"created"),F(R,a,a.scopeId,L,C),P){for(const te in P)te!=="value"&&!bt(te)&&o(R,te,null,P[te],S,C);"value"in P&&o(R,"value",null,P.value,S),(E=P.onVnodeBeforeMount)&&Se(E,C,a)}q&&Pe(a,null,C,"beforeMount");const X=Xo(v,$);X&&$.beforeEnter(R),r(R,d,g),((E=P&&P.onVnodeMounted)||X||q)&&ye(()=>{E&&Se(E,C,a),X&&$.enter(R),q&&Pe(a,null,C,"mounted")},v)},F=(a,d,g,C,v)=>{if(g&&_(a,g),C)for(let S=0;S{for(let E=R;E{const A=d.el=a.el;let{patchFlag:R,dynamicChildren:E,dirs:P}=d;R|=a.patchFlag&16;const D=a.props||ne,$=d.props||ne;let q;if(g&&rt(g,!1),(q=$.onVnodeBeforeUpdate)&&Se(q,g,d,a),P&&Pe(d,a,g,"beforeUpdate"),g&&rt(g,!0),(D.innerHTML&&$.innerHTML==null||D.textContent&&$.textContent==null)&&f(A,""),E?b(a.dynamicChildren,E,A,g,C,Gn(d,v),S):L||V(a,d,A,null,g,C,Gn(d,v),S,!1),R>0){if(R&16)N(A,D,$,g,v);else if(R&2&&D.class!==$.class&&o(A,"class",null,$.class,v),R&4&&o(A,"style",D.style,$.style,v),R&8){const X=d.dynamicProps;for(let te=0;te{q&&Se(q,g,d,a),P&&Pe(d,a,g,"updated")},C)},b=(a,d,g,C,v,S,L)=>{for(let A=0;A{if(d!==g){if(d!==ne)for(const S in d)!bt(S)&&!(S in g)&&o(a,S,d[S],null,v,C);for(const S in g){if(bt(S))continue;const L=g[S],A=d[S];L!==A&&S!=="value"&&o(a,S,A,L,v,C)}"value"in g&&o(a,"value",d.value,g.value,v)}},x=(a,d,g,C,v,S,L,A,R)=>{const E=d.el=a?a.el:l(""),P=d.anchor=a?a.anchor:l("");let{patchFlag:D,dynamicChildren:$,slotScopeIds:q}=d;q&&(A=A?A.concat(q):q),a==null?(r(E,g,C),r(P,g,C),j(d.children||[],g,P,v,S,L,A,R)):D>0&&D&64&&$&&a.dynamicChildren?(b(a.dynamicChildren,$,g,v,S,L,A),(d.key!=null||v&&d===v.subTree)&&Dr(a,d,!0)):V(a,d,g,P,v,S,L,A,R)},G=(a,d,g,C,v,S,L,A,R)=>{d.slotScopeIds=A,a==null?d.shapeFlag&512?v.ctx.activate(d,g,C,L,R):ee(d,g,C,v,S,L,R):re(a,d,R)},ee=(a,d,g,C,v,S,L)=>{const A=a.component=Oc(a,C,v);if(qt(a)&&(A.ctx.renderer=ht),Lc(A,!1,L),A.asyncDep){if(v&&v.registerDep(A,U,L),!a.el){const R=A.subTree=le(me);K(null,R,d,g)}}else U(A,a,d,g,v,S,L)},re=(a,d,g)=>{const C=d.component=a.component;if(vc(a,d,g))if(C.asyncDep&&!C.asyncResolved){Y(C,d,g);return}else C.next=d,xl(C.update),C.effect.dirty=!0,C.update();else d.el=a.el,C.vnode=d},U=(a,d,g,C,v,S,L)=>{const A=()=>{if(a.isMounted){let{next:P,bu:D,u:$,parent:q,vnode:X}=a;{const pt=Yo(a);if(pt){P&&(P.el=X.el,Y(a,P,L)),pt.asyncDep.then(()=>{a.isUnmounted||A()});return}}let te=P,Q;rt(a,!1),P?(P.el=X.el,Y(a,P,L)):P=X,D&&dn(D),(Q=P.props&&P.props.onVnodeBeforeUpdate)&&Se(Q,q,P,X),rt(a,!0);const ce=Xn(a),Re=a.subTree;a.subTree=ce,O(Re,ce,h(Re.el),zt(Re),a,v,S),P.el=ce.el,te===null&&wc(a,ce.el),$&&ye($,v),(Q=P.props&&P.props.onVnodeUpdated)&&ye(()=>Se(Q,q,P,X),v)}else{let P;const{el:D,props:$}=d,{bm:q,m:X,parent:te}=a,Q=Et(d);if(rt(a,!1),q&&dn(q),!Q&&(P=$&&$.onVnodeBeforeMount)&&Se(P,te,d),rt(a,!0),D&&Bn){const ce=()=>{a.subTree=Xn(a),Bn(D,a.subTree,a,v,null)};Q?d.type.__asyncLoader().then(()=>!a.isUnmounted&&ce()):ce()}else{const ce=a.subTree=Xn(a);O(null,ce,g,C,a,v,S),d.el=ce.el}if(X&&ye(X,v),!Q&&(P=$&&$.onVnodeMounted)){const ce=d;ye(()=>Se(P,te,ce),v)}(d.shapeFlag&256||te&&Et(te.vnode)&&te.vnode.shapeFlag&256)&&a.a&&ye(a.a,v),a.isMounted=!0,d=g=C=null}},R=a.effect=new Ar(A,Te,()=>In(E),a.scope),E=a.update=()=>{R.dirty&&R.run()};E.i=a,E.id=a.uid,rt(a,!0),E()},Y=(a,d,g)=>{d.component=a;const C=a.vnode.props;a.vnode=d,a.next=null,Zl(a,d.props,C,g),rc(a,d.children,g),et(),os(a),tt()},V=(a,d,g,C,v,S,L,A,R=!1)=>{const E=a&&a.children,P=a?a.shapeFlag:0,D=d.children,{patchFlag:$,shapeFlag:q}=d;if($>0){if($&128){Yt(E,D,g,C,v,S,L,A,R);return}else if($&256){He(E,D,g,C,v,S,L,A,R);return}}q&8?(P&16&&At(E,v,S),D!==E&&f(g,D)):P&16?q&16?Yt(E,D,g,C,v,S,L,A,R):At(E,v,S,!0):(P&8&&f(g,""),q&16&&j(D,g,C,v,S,L,A,R))},He=(a,d,g,C,v,S,L,A,R)=>{a=a||yt,d=d||yt;const E=a.length,P=d.length,D=Math.min(E,P);let $;for($=0;$P?At(a,v,S,!0,!1,D):j(d,g,C,v,S,L,A,R,D)},Yt=(a,d,g,C,v,S,L,A,R)=>{let E=0;const P=d.length;let D=a.length-1,$=P-1;for(;E<=D&&E<=$;){const q=a[E],X=d[E]=R?qe(d[E]):xe(d[E]);if(lt(q,X))O(q,X,g,null,v,S,L,A,R);else break;E++}for(;E<=D&&E<=$;){const q=a[D],X=d[$]=R?qe(d[$]):xe(d[$]);if(lt(q,X))O(q,X,g,null,v,S,L,A,R);else break;D--,$--}if(E>D){if(E<=$){const q=$+1,X=q$)for(;E<=D;)Me(a[E],v,S,!0),E++;else{const q=E,X=E,te=new Map;for(E=X;E<=$;E++){const ve=d[E]=R?qe(d[E]):xe(d[E]);ve.key!=null&&te.set(ve.key,E)}let Q,ce=0;const Re=$-X+1;let pt=!1,Xr=0;const Rt=new Array(Re);for(E=0;E=Re){Me(ve,v,S,!0);continue}let Ie;if(ve.key!=null)Ie=te.get(ve.key);else for(Q=X;Q<=$;Q++)if(Rt[Q-X]===0&<(ve,d[Q])){Ie=Q;break}Ie===void 0?Me(ve,v,S,!0):(Rt[Ie-X]=E+1,Ie>=Xr?Xr=Ie:pt=!0,O(ve,d[Ie],g,null,v,S,L,A,R),ce++)}const Yr=pt?dc(Rt):yt;for(Q=Yr.length-1,E=Re-1;E>=0;E--){const ve=X+E,Ie=d[ve],zr=ve+1{const{el:S,type:L,transition:A,children:R,shapeFlag:E}=a;if(E&6){nt(a.component.subTree,d,g,C);return}if(E&128){a.suspense.move(d,g,C);return}if(E&64){L.move(a,d,g,ht);return}if(L===_e){r(S,d,g);for(let D=0;DA.enter(S),v);else{const{leave:D,delayLeave:$,afterLeave:q}=A,X=()=>r(S,d,g),te=()=>{D(S,()=>{X(),q&&q()})};$?$(S,X,te):te()}else r(S,d,g)},Me=(a,d,g,C=!1,v=!1)=>{const{type:S,props:L,ref:A,children:R,dynamicChildren:E,shapeFlag:P,patchFlag:D,dirs:$,cacheIndex:q}=a;if(D===-2&&(v=!1),A!=null&&En(A,null,g,a,!0),q!=null&&(d.renderCache[q]=void 0),P&256){d.ctx.deactivate(a);return}const X=P&1&&$,te=!Et(a);let Q;if(te&&(Q=L&&L.onVnodeBeforeUnmount)&&Se(Q,d,a),P&6)Li(a.component,g,C);else{if(P&128){a.suspense.unmount(g,C);return}X&&Pe(a,null,d,"beforeUnmount"),P&64?a.type.remove(a,d,g,ht,C):E&&!E.hasOnce&&(S!==_e||D>0&&D&64)?At(E,d,g,!1,!0):(S===_e&&D&384||!v&&P&16)&&At(R,d,g),C&&qr(a)}(te&&(Q=L&&L.onVnodeUnmounted)||X)&&ye(()=>{Q&&Se(Q,d,a),X&&Pe(a,null,d,"unmounted")},g)},qr=a=>{const{type:d,el:g,anchor:C,transition:v}=a;if(d===_e){Oi(g,C);return}if(d===Ft){y(a);return}const S=()=>{s(g),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(a.shapeFlag&1&&v&&!v.persisted){const{leave:L,delayLeave:A}=v,R=()=>L(g,S);A?A(a.el,S,R):R()}else S()},Oi=(a,d)=>{let g;for(;a!==d;)g=m(a),s(a),a=g;s(d)},Li=(a,d,g)=>{const{bum:C,scope:v,update:S,subTree:L,um:A,m:R,a:E}=a;ms(R),ms(E),C&&dn(C),v.stop(),S&&(S.active=!1,Me(L,a,d,g)),A&&ye(A,d),ye(()=>{a.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},At=(a,d,g,C=!1,v=!1,S=0)=>{for(let L=S;L{if(a.shapeFlag&6)return zt(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const d=m(a.anchor||a.el),g=d&&d[Ko];return g?m(g):d};let Dn=!1;const Gr=(a,d,g)=>{a==null?d._vnode&&Me(d._vnode,null,null,!0):O(d._vnode||null,a,d,null,null,null,g),Dn||(Dn=!0,os(),_n(),Dn=!1),d._vnode=a},ht={p:O,um:Me,m:nt,r:qr,mt:ee,mc:j,pc:V,pbc:b,n:zt,o:e};let Un,Bn;return t&&([Un,Bn]=t(ht)),{render:Gr,hydrate:Un,createApp:zl(Gr,Un)}}function Gn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Xo(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Dr(e,t,n=!1){const r=e.children,s=t.children;if(k(r)&&k(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Yo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Yo(t)}function ms(e){if(e)for(let t=0;tCt(hc);function Ur(e,t){return $n(e,null,t)}function yu(e,t){return $n(e,null,{flush:"post"})}const ln={};function Fe(e,t,n){return $n(e,t,n)}function $n(e,t,{immediate:n,deep:r,flush:s,once:o,onTrack:i,onTrigger:l}=ne){if(t&&o){const T=t;t=(...F)=>{T(...F),I()}}const c=ae,u=T=>r===!0?T:Ge(T,r===!1?1:void 0);let f,h=!1,m=!1;if(de(e)?(f=()=>e.value,h=St(e)):vt(e)?(f=()=>u(e),h=!0):k(e)?(m=!0,h=e.some(T=>vt(T)||St(T)),f=()=>e.map(T=>{if(de(T))return T.value;if(vt(T))return u(T);if(W(T))return Ye(T,c,2)})):W(e)?t?f=()=>Ye(e,c,2):f=()=>(_&&_(),Ae(e,c,3,[w])):f=Te,t&&r){const T=f;f=()=>Ge(T())}let _,w=T=>{_=p.onStop=()=>{Ye(T,c,4),_=p.onStop=void 0}},O;if(Xt)if(w=Te,t?n&&Ae(t,c,3,[f(),m?[]:void 0,w]):f(),s==="sync"){const T=pc();O=T.__watcherHandles||(T.__watcherHandles=[])}else return Te;let B=m?new Array(e.length).fill(ln):ln;const K=()=>{if(!(!p.active||!p.dirty))if(t){const T=p.run();(r||h||(m?T.some((F,j)=>ze(F,B[j])):ze(T,B)))&&(_&&_(),Ae(t,c,3,[T,B===ln?void 0:m&&B[0]===ln?[]:B,w]),B=T)}else p.run()};K.allowRecurse=!!t;let H;s==="sync"?H=K:s==="post"?H=()=>ye(K,c&&c.suspense):(K.pre=!0,c&&(K.id=c.uid),H=()=>In(K));const p=new Ar(f,Te,H),y=no(),I=()=>{p.stop(),y&&Cr(y.effects,p)};return t?n?K():B=p.run():s==="post"?ye(p.run.bind(p),c&&c.suspense):p.run(),O&&O.push(I),I}function gc(e,t,n){const r=this.proxy,s=ie(e)?e.includes(".")?zo(r,e):()=>r[e]:e.bind(r,r);let o;W(t)?o=t:(o=t.handler,n=t);const i=Gt(this),l=$n(s,o.bind(r),n);return i(),l}function zo(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{Ge(r,t,n)});else if(zs(e)){for(const r in e)Ge(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Ge(e[r],t,n)}return e}const mc=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Oe(t)}Modifiers`]||e[`${Ze(t)}Modifiers`];function yc(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ne;let s=n;const o=t.startsWith("update:"),i=o&&mc(r,t.slice(7));i&&(i.trim&&(s=n.map(f=>ie(f)?f.trim():f)),i.number&&(s=n.map(cr)));let l,c=r[l=fn(t)]||r[l=fn(Oe(t))];!c&&o&&(c=r[l=fn(Ze(t))]),c&&Ae(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ae(u,e,6,s)}}function Jo(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!W(e)){const c=u=>{const f=Jo(u,t,!0);f&&(l=!0,fe(i,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(Z(e)&&r.set(e,null),null):(k(o)?o.forEach(c=>i[c]=null):fe(i,o),Z(e)&&r.set(e,i),i)}function Hn(e,t){return!e||!Kt(t)?!1:(t=t.slice(2).replace(/Once$/,""),z(e,t[0].toLowerCase()+t.slice(1))||z(e,Ze(t))||z(e,t))}function Xn(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:f,props:h,data:m,setupState:_,ctx:w,inheritAttrs:O}=e,B=bn(e);let K,H;try{if(n.shapeFlag&4){const y=s||r,I=y;K=xe(u.call(I,y,f,h,_,m,w)),H=l}else{const y=t;K=xe(y.length>1?y(h,{attrs:l,slots:i,emit:c}):y(h,null)),H=t.props?l:_c(l)}}catch(y){$t.length=0,Wt(y,e,1),K=le(me)}let p=K;if(H&&O!==!1){const y=Object.keys(H),{shapeFlag:I}=p;y.length&&I&7&&(o&&y.some(Er)&&(H=bc(H,o)),p=Je(p,H,!1,!0))}return n.dirs&&(p=Je(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&(p.transition=n.transition),K=p,bn(B),K}const _c=e=>{let t;for(const n in e)(n==="class"||n==="style"||Kt(n))&&((t||(t={}))[n]=e[n]);return t},bc=(e,t)=>{const n={};for(const r in e)(!Er(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function vc(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:c}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?ys(r,i,u):!!i;if(c&8){const f=t.dynamicProps;for(let h=0;he.__isSuspense;function Qo(e,t){t&&t.pendingBranch?k(e)?t.effects.push(...e):t.effects.push(e):Tl(e)}const _e=Symbol.for("v-fgt"),ut=Symbol.for("v-txt"),me=Symbol.for("v-cmt"),Ft=Symbol.for("v-stc"),$t=[];let Ee=null;function Zo(e=!1){$t.push(Ee=e?null:[])}function Cc(){$t.pop(),Ee=$t[$t.length-1]||null}let Ut=1;function _s(e){Ut+=e,e<0&&Ee&&(Ee.hasOnce=!0)}function ei(e){return e.dynamicChildren=Ut>0?Ee||yt:null,Cc(),Ut>0&&Ee&&Ee.push(e),e}function _u(e,t,n,r,s,o){return ei(ri(e,t,n,r,s,o,!0))}function ti(e,t,n,r,s){return ei(le(e,t,n,r,s,!0))}function Cn(e){return e?e.__v_isVNode===!0:!1}function lt(e,t){return e.type===t.type&&e.key===t.key}const ni=({key:e})=>e??null,pn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ie(e)||de(e)||W(e)?{i:ue,r:e,k:t,f:!!n}:e:null);function ri(e,t=null,n=null,r=0,s=null,o=e===_e?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ni(t),ref:t&&pn(t),scopeId:Pn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:ue};return l?(Br(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=ie(n)?8:16),Ut>0&&!i&&Ee&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ee.push(c),c}const le=Sc;function Sc(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Lo)&&(e=me),Cn(e)){const l=Je(e,t,!0);return n&&Br(l,n),Ut>0&&!o&&Ee&&(l.shapeFlag&6?Ee[Ee.indexOf(e)]=l:Ee.push(l)),l.patchFlag=-2,l}if(Nc(e)&&(e=e.__vccOpts),t){t=xc(t);let{class:l,style:c}=t;l&&!ie(l)&&(t.class=Tr(l)),Z(c)&&(go(c)&&!k(c)&&(c=fe({},c)),t.style=xr(c))}const i=ie(e)?1:Ec(e)?128:sc(e)?64:Z(e)?4:W(e)?2:0;return ri(e,t,n,r,s,i,o,!0)}function xc(e){return e?go(e)||Ho(e)?fe({},e):e:null}function Je(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Tc(s||{},t):s,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&ni(u),ref:t&&t.ref?n&&o?k(o)?o.concat(pn(t)):[o,pn(t)]:pn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Je(e.ssContent),ssFallback:e.ssFallback&&Je(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&vn(f,c.clone(f)),f}function si(e=" ",t=0){return le(ut,null,e,t)}function bu(e,t){const n=le(Ft,null,e);return n.staticCount=t,n}function vu(e="",t=!1){return t?(Zo(),ti(me,null,e)):le(me,null,e)}function xe(e){return e==null||typeof e=="boolean"?le(me):k(e)?le(_e,null,e.slice()):typeof e=="object"?qe(e):le(ut,null,String(e))}function qe(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Je(e)}function Br(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(k(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Br(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ho(t)?t._ctx=ue:s===3&&ue&&(ue.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else W(t)?(t={default:t,_ctx:ue},n=32):(t=String(t),r&64?(n=16,t=[si(t)]):n=8);e.children=t,e.shapeFlag|=n}function Tc(...e){const t={};for(let n=0;nae||ue;let Sn,br;{const e=Qs(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};Sn=t("__VUE_INSTANCE_SETTERS__",n=>ae=n),br=t("__VUE_SSR_SETTERS__",n=>Xt=n)}const Gt=e=>{const t=ae;return Sn(e),e.scope.on(),()=>{e.scope.off(),Sn(t)}},bs=()=>{ae&&ae.scope.off(),Sn(null)};function oi(e){return e.vnode.shapeFlag&4}let Xt=!1;function Lc(e,t=!1,n=!1){t&&br(t);const{props:r,children:s}=e.vnode,o=oi(e);Ql(e,r,o,t),nc(e,s,n);const i=o?Mc(e,t):void 0;return t&&br(!1),i}function Mc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Bl);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?li(e):null,o=Gt(e);et();const i=Ye(r,e,0,[e.props,s]);if(tt(),o(),Xs(i)){if(i.then(bs,bs),t)return i.then(l=>{vs(e,l,t)}).catch(l=>{Wt(l,e,0)});e.asyncDep=i}else vs(e,i,t)}else ii(e,t)}function vs(e,t,n){W(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=bo(t)),ii(e,n)}let ws;function ii(e,t,n){const r=e.type;if(!e.render){if(!t&&ws&&!r.render){const s=r.template||jr(e).template;if(s){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,u=fe(fe({isCustomElement:o,delimiters:l},i),c);r.render=ws(s,u)}}e.render=r.render||Te}{const s=Gt(e);et();try{Kl(e)}finally{tt(),s()}}}const Ic={get(e,t){return be(e,"get",""),e[t]}};function li(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Ic),slots:e.slots,emit:e.emit,expose:t}}function Vn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(bo(hn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in It)return It[n](e)},has(t,n){return n in t||n in It}})):e.proxy}function Pc(e,t=!0){return W(e)?e.displayName||e.name:e.name||t&&e.__name}function Nc(e){return W(e)&&"__vccOpts"in e}const se=(e,t)=>pl(e,t,Xt);function vr(e,t,n){const r=arguments.length;return r===2?Z(t)&&!k(t)?Cn(t)?le(e,null,[t]):le(e,t):le(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Cn(n)&&(n=[n]),le(e,t,n))}const Fc="3.4.35";/** +* @vue/runtime-dom v3.4.35 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const $c="http://www.w3.org/2000/svg",Hc="http://www.w3.org/1998/Math/MathML",je=typeof document<"u"?document:null,Es=je&&je.createElement("template"),jc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?je.createElementNS($c,e):t==="mathml"?je.createElementNS(Hc,e):n?je.createElement(e,{is:n}):je.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>je.createTextNode(e),createComment:e=>je.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>je.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Es.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=Es.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Be="transition",Ot="animation",Bt=Symbol("_vtc"),ci=(e,{slots:t})=>vr(Ml,Vc(e),t);ci.displayName="Transition";const ai={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};ci.props=fe({},Co,ai);const st=(e,t=[])=>{k(e)?e.forEach(n=>n(...t)):e&&e(...t)},Cs=e=>e?k(e)?e.some(t=>t.length>1):e.length>1:!1;function Vc(e){const t={};for(const x in e)x in ai||(t[x]=e[x]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,w=Dc(s),O=w&&w[0],B=w&&w[1],{onBeforeEnter:K,onEnter:H,onEnterCancelled:p,onLeave:y,onLeaveCancelled:I,onBeforeAppear:T=K,onAppear:F=H,onAppearCancelled:j=p}=t,M=(x,G,ee)=>{ot(x,G?f:l),ot(x,G?u:i),ee&&ee()},b=(x,G)=>{x._isLeaving=!1,ot(x,h),ot(x,_),ot(x,m),G&&G()},N=x=>(G,ee)=>{const re=x?F:H,U=()=>M(G,x,ee);st(re,[G,U]),Ss(()=>{ot(G,x?c:o),ke(G,x?f:l),Cs(re)||xs(G,r,O,U)})};return fe(t,{onBeforeEnter(x){st(K,[x]),ke(x,o),ke(x,i)},onBeforeAppear(x){st(T,[x]),ke(x,c),ke(x,u)},onEnter:N(!1),onAppear:N(!0),onLeave(x,G){x._isLeaving=!0;const ee=()=>b(x,G);ke(x,h),ke(x,m),kc(),Ss(()=>{x._isLeaving&&(ot(x,h),ke(x,_),Cs(y)||xs(x,r,B,ee))}),st(y,[x,ee])},onEnterCancelled(x){M(x,!1),st(p,[x])},onAppearCancelled(x){M(x,!0),st(j,[x])},onLeaveCancelled(x){b(x),st(I,[x])}})}function Dc(e){if(e==null)return null;if(Z(e))return[Yn(e.enter),Yn(e.leave)];{const t=Yn(e);return[t,t]}}function Yn(e){return $i(e)}function ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Bt]||(e[Bt]=new Set)).add(t)}function ot(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Bt];n&&(n.delete(t),n.size||(e[Bt]=void 0))}function Ss(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Uc=0;function xs(e,t,n,r){const s=e._endId=++Uc,o=()=>{s===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Bc(e,t);if(!i)return r();const u=i+"end";let f=0;const h=()=>{e.removeEventListener(u,m),o()},m=_=>{_.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[w]||"").split(", "),s=r(`${Be}Delay`),o=r(`${Be}Duration`),i=Ts(s,o),l=r(`${Ot}Delay`),c=r(`${Ot}Duration`),u=Ts(l,c);let f=null,h=0,m=0;t===Be?i>0&&(f=Be,h=i,m=o.length):t===Ot?u>0&&(f=Ot,h=u,m=c.length):(h=Math.max(i,u),f=h>0?i>u?Be:Ot:null,m=f?f===Be?o.length:c.length:0);const _=f===Be&&/\b(transform|all)(,|$)/.test(r(`${Be}Property`).toString());return{type:f,timeout:h,propCount:m,hasTransform:_}}function Ts(e,t){for(;e.lengthAs(n)+As(e[r])))}function As(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function kc(){return document.body.offsetHeight}function Kc(e,t,n){const r=e[Bt];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Rs=Symbol("_vod"),Wc=Symbol("_vsh"),qc=Symbol(""),Gc=/(^|;)\s*display\s*:/;function Xc(e,t,n){const r=e.style,s=ie(n);let o=!1;if(n&&!s){if(t)if(ie(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&gn(r,l,"")}else for(const i in t)n[i]==null&&gn(r,i,"");for(const i in n)i==="display"&&(o=!0),gn(r,i,n[i])}else if(s){if(t!==n){const i=r[qc];i&&(n+=";"+i),r.cssText=n,o=Gc.test(n)}}else t&&e.removeAttribute("style");Rs in e&&(e[Rs]=o?r.display:"",e[Wc]&&(r.display="none"))}const Os=/\s*!important$/;function gn(e,t,n){if(k(n))n.forEach(r=>gn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Yc(e,t);Os.test(n)?e.setProperty(Ze(r),n.replace(Os,""),"important"):e[r]=n}}const Ls=["Webkit","Moz","ms"],zn={};function Yc(e,t){const n=zn[t];if(n)return n;let r=Oe(t);if(r!=="filter"&&r in e)return zn[t]=r;r=An(r);for(let s=0;sJn||(ea.then(()=>Jn=0),Jn=Date.now());function na(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Ae(ra(r,n.value),t,5,[r])};return n.value=e,n.attached=ta(),n}function ra(e,t){if(k(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Fs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,sa=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Kc(e,r,i):t==="style"?Xc(e,n,r):Kt(t)?Er(t)||Qc(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):oa(e,t,r,i))?(zc(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Is(e,t,r,i,o,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Is(e,t,r,i))};function oa(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Fs(t)&&W(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Fs(t)&&ie(n)?!1:t in e}const $s=e=>{const t=e.props["onUpdate:modelValue"]||!1;return k(t)?n=>dn(t,n):t};function ia(e){e.target.composing=!0}function Hs(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Qn=Symbol("_assign"),wu={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Qn]=$s(s);const o=r||s.props&&s.props.type==="number";mt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=cr(l)),e[Qn](l)}),n&&mt(e,"change",()=>{e.value=e.value.trim()}),t||(mt(e,"compositionstart",ia),mt(e,"compositionend",Hs),mt(e,"change",Hs))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Qn]=$s(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?cr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},la=["ctrl","shift","alt","meta"],ca={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>la.some(n=>e[`${n}Key`]&&!t.includes(n))},Eu=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const o=Ze(s.key);if(t.some(i=>i===o||aa[i]===o))return e(s)})},ui=fe({patchProp:sa},jc);let Ht,js=!1;function ua(){return Ht||(Ht=uc(ui))}function fa(){return Ht=js?Ht:fc(ui),js=!0,Ht}const Su=(...e)=>{const t=ua().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=di(r);if(!s)return;const o=t._component;!W(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,fi(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},xu=(...e)=>{const t=fa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=di(r);if(s)return n(s,!0,fi(s))},t};function fi(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function di(e){return ie(e)?document.querySelector(e):e}const Tu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},da="modulepreload",ha=function(e){return"/GeometryOps.jl/dev/"+e},Vs={},Au=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.all(n.map(l=>{if(l=ha(l),l in Vs)return;Vs[l]=!0;const c=l.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${u}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":da,c||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),c)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}return s.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},pa=window.__VP_SITE_DATA__;function kr(e){return no()?(qi(e),!0):!1}function $e(e){return typeof e=="function"?e():_o(e)}const hi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ga=Object.prototype.toString,ma=e=>ga.call(e)==="[object Object]",kt=()=>{},Ds=ya();function ya(){var e,t;return hi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function _a(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const pi=e=>e();function ba(e,t={}){let n,r,s=kt;const o=l=>{clearTimeout(l),s(),s=kt};return l=>{const c=$e(e),u=$e(t.maxWait);return n&&o(n),c<=0||u!==void 0&&u<=0?(r&&(o(r),r=null),Promise.resolve(l())):new Promise((f,h)=>{s=t.rejectOnCancel?h:f,u&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,f(l())},u)),n=setTimeout(()=>{r&&o(r),r=null,f(l())},c)})}}function va(e=pi){const t=oe(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:Ln(t),pause:n,resume:r,eventFilter:s}}function wa(e){return jn()}function gi(...e){if(e.length!==1)return wl(...e);const t=e[0];return typeof t=="function"?Ln(_l(()=>({get:t,set:kt}))):oe(t)}function mi(e,t,n={}){const{eventFilter:r=pi,...s}=n;return Fe(e,_a(r,t),s)}function Ea(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:l,isActive:c}=va(r);return{stop:mi(e,t,{...s,eventFilter:o}),pause:i,resume:l,isActive:c}}function Kr(e,t=!0,n){wa()?Tt(e,n):t?e():Mn(e)}function Ru(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...o}=n;return mi(e,t,{...o,eventFilter:ba(r,{maxWait:s})})}function Ou(e,t,n){let r;de(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:o=void 0,shallow:i=!0,onError:l=kt}=r,c=oe(!s),u=i?Fr(t):oe(t);let f=0;return Ur(async h=>{if(!c.value)return;f++;const m=f;let _=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const w=await e(O=>{h(()=>{o&&(o.value=!1),_||O()})});m===f&&(u.value=w)}catch(w){l(w)}finally{o&&m===f&&(o.value=!1),_=!0}}),s?se(()=>(c.value=!0,u.value)):u}function yi(e){var t;const n=$e(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Le=hi?window:void 0;function xt(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=Le):[t,n,r,s]=e,!t)return kt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(f=>f()),o.length=0},l=(f,h,m,_)=>(f.addEventListener(h,m,_),()=>f.removeEventListener(h,m,_)),c=Fe(()=>[yi(t),$e(s)],([f,h])=>{if(i(),!f)return;const m=ma(h)?{...h}:h;o.push(...n.flatMap(_=>r.map(w=>l(f,_,w,m))))},{immediate:!0,flush:"post"}),u=()=>{c(),i()};return kr(u),u}function Ca(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Lu(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Le,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=r,c=Ca(t);return xt(s,o,f=>{f.repeat&&$e(l)||c(f)&&n(f)},i)}function Sa(){const e=oe(!1),t=jn();return t&&Tt(()=>{e.value=!0},t),e}function xa(e){const t=Sa();return se(()=>(t.value,!!e()))}function _i(e,t={}){const{window:n=Le}=t,r=xa(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=oe(!1),i=u=>{o.value=u.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},c=Ur(()=>{r.value&&(l(),s=n.matchMedia($e(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return kr(()=>{c(),l(),s=void 0}),o}const cn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},an="__vueuse_ssr_handlers__",Ta=Aa();function Aa(){return an in cn||(cn[an]=cn[an]||{}),cn[an]}function bi(e,t){return Ta[e]||t}function Ra(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Oa={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Us="vueuse-storage";function Wr(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:f,window:h=Le,eventFilter:m,onError:_=b=>{console.error(b)},initOnMounted:w}=r,O=(f?Fr:oe)(typeof t=="function"?t():t);if(!n)try{n=bi("getDefaultStorage",()=>{var b;return(b=Le)==null?void 0:b.localStorage})()}catch(b){_(b)}if(!n)return O;const B=$e(t),K=Ra(B),H=(s=r.serializer)!=null?s:Oa[K],{pause:p,resume:y}=Ea(O,()=>T(O.value),{flush:o,deep:i,eventFilter:m});h&&l&&Kr(()=>{xt(h,"storage",j),xt(h,Us,M),w&&j()}),w||j();function I(b,N){h&&h.dispatchEvent(new CustomEvent(Us,{detail:{key:e,oldValue:b,newValue:N,storageArea:n}}))}function T(b){try{const N=n.getItem(e);if(b==null)I(N,null),n.removeItem(e);else{const x=H.write(b);N!==x&&(n.setItem(e,x),I(N,x))}}catch(N){_(N)}}function F(b){const N=b?b.newValue:n.getItem(e);if(N==null)return c&&B!=null&&n.setItem(e,H.write(B)),B;if(!b&&u){const x=H.read(N);return typeof u=="function"?u(x,B):K==="object"&&!Array.isArray(x)?{...B,...x}:x}else return typeof N!="string"?N:H.read(N)}function j(b){if(!(b&&b.storageArea!==n)){if(b&&b.key==null){O.value=B;return}if(!(b&&b.key!==e)){p();try{(b==null?void 0:b.newValue)!==H.write(O.value)&&(O.value=F(b))}catch(N){_(N)}finally{b?Mn(y):y()}}}}function M(b){j(b.detail)}return O}function vi(e){return _i("(prefers-color-scheme: dark)",e)}function La(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Le,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=vi({window:s}),_=se(()=>m.value?"dark":"light"),w=c||(i==null?gi(r):Wr(i,r,o,{window:s,listenToStorageChanges:l})),O=se(()=>w.value==="auto"?_.value:w.value),B=bi("updateHTMLAttrs",(y,I,T)=>{const F=typeof y=="string"?s==null?void 0:s.document.querySelector(y):yi(y);if(!F)return;let j;if(f&&(j=s.document.createElement("style"),j.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild(j)),I==="class"){const M=T.split(/\s/g);Object.values(h).flatMap(b=>(b||"").split(/\s/g)).filter(Boolean).forEach(b=>{M.includes(b)?F.classList.add(b):F.classList.remove(b)})}else F.setAttribute(I,T);f&&(s.getComputedStyle(j).opacity,document.head.removeChild(j))});function K(y){var I;B(t,n,(I=h[y])!=null?I:y)}function H(y){e.onChanged?e.onChanged(y,K):K(y)}Fe(O,H,{flush:"post",immediate:!0}),Kr(()=>H(O.value));const p=se({get(){return u?w.value:O.value},set(y){w.value=y}});try{return Object.assign(p,{store:w,system:_,state:O})}catch{return p}}function Ma(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Le}=e,s=La({...e,onChanged:(l,c)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),o=se(()=>s.system?s.system.value:vi({window:r}).value?"dark":"light");return se({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";o.value===c?s.value="auto":s.value=c}})}function Zn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Mu(e,t,n={}){const{window:r=Le}=n;return Wr(e,t,r==null?void 0:r.localStorage,n)}function wi(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const er=new WeakMap;function Iu(e,t=!1){const n=oe(t);let r=null,s="";Fe(gi(e),l=>{const c=Zn($e(l));if(c){const u=c;if(er.get(u)||er.set(u,u.style.overflow),u.style.overflow!=="hidden"&&(s=u.style.overflow),u.style.overflow==="hidden")return n.value=!0;if(n.value)return u.style.overflow="hidden"}},{immediate:!0});const o=()=>{const l=Zn($e(e));!l||n.value||(Ds&&(r=xt(l,"touchmove",c=>{Ia(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=Zn($e(e));!l||!n.value||(Ds&&(r==null||r()),l.style.overflow=s,er.delete(l),n.value=!1)};return kr(i),se({get(){return n.value},set(l){l?o():i()}})}function Pu(e,t,n={}){const{window:r=Le}=n;return Wr(e,t,r==null?void 0:r.sessionStorage,n)}function Nu(e={}){const{window:t=Le,behavior:n="auto"}=e;if(!t)return{x:oe(0),y:oe(0)};const r=oe(t.scrollX),s=oe(t.scrollY),o=se({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=se({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return xt(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:o,y:i}}function Fu(e={}){const{window:t=Le,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=e,i=oe(n),l=oe(r),c=()=>{t&&(o?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),Kr(c),xt("resize",c,{passive:!0}),s){const u=_i("(orientation: portrait)");Fe(u,()=>c())}return{width:i,height:l}}var tr={BASE_URL:"/GeometryOps.jl/dev/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},nr={};const Ei=/^(?:[a-z]+:|\/\/)/i,Pa="vitepress-theme-appearance",Na=/#.*$/,Fa=/[?#].*$/,$a=/(?:(^|\/)index)?\.(?:md|html)$/,he=typeof document<"u",Ci={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Ha(e,t,n=!1){if(t===void 0)return!1;if(e=Bs(`/${e}`),n)return new RegExp(t).test(e);if(Bs(t)!==e)return!1;const r=t.match(Na);return r?(he?location.hash:"")===r[0]:!0}function Bs(e){return decodeURI(e).replace(Fa,"").replace($a,"$1")}function ja(e){return Ei.test(e)}function Va(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!ja(n)&&Ha(t,`/${n}/`,!0))||"root"}function Da(e,t){var r,s,o,i,l,c,u;const n=Va(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:xi(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function Si(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=Ua(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function Ua(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Ba(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([o,i])=>o===n&&i[s[0]]===s[1])}function xi(e,t){return[...e.filter(n=>!Ba(t,n)),...t]}const ka=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Ka=/^[a-z]:/i;function ks(e){const t=Ka.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(ka,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const rr=new Set;function Wa(e){if(rr.size===0){const n=typeof process=="object"&&(nr==null?void 0:nr.VITE_EXTRA_EXTENSIONS)||(tr==null?void 0:tr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>rr.add(r))}const t=e.split(".").pop();return t==null||!rr.has(t.toLowerCase())}function $u(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const qa=Symbol(),ft=Fr(pa);function Hu(e){const t=se(()=>Da(ft.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?oe(!0):n?Ma({storageKey:Pa,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):oe(!1),s=oe(he?location.hash:"");return he&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Fe(()=>e.data,()=>{s.value=he?location.hash:""}),{site:t,theme:se(()=>t.value.themeConfig),page:se(()=>e.data),frontmatter:se(()=>e.data.frontmatter),params:se(()=>e.data.params),lang:se(()=>t.value.lang),dir:se(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:se(()=>t.value.localeIndex||"root"),title:se(()=>Si(t.value,e.data)),description:se(()=>e.data.description||t.value.description),isDark:r,hash:se(()=>s.value)}}function Ga(){const e=Ct(qa);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Xa(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Ks(e){return Ei.test(e)||!e.startsWith("/")?e:Xa(ft.value.base,e)}function Ya(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/GeometryOps.jl/dev/";t=ks(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${ks(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let mn=[];function ju(e){mn.push(e),Fn(()=>{mn=mn.filter(t=>t!==e)})}function za(){let e=ft.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Ws(e,n);else if(Array.isArray(e))for(const r of e){const s=Ws(r,n);if(s){t=s;break}}return t}function Ws(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const Ja=Symbol(),Ti="http://a.com",Qa=()=>({path:"/",component:null,data:Ci});function Vu(e,t){const n=On(Qa()),r={route:n,go:s};async function s(l=he?location.href:"/"){var c,u;l=sr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(he&&l!==sr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await i(l),await((u=r.onAfterRouteChanged)==null?void 0:u.call(r,l)))}let o=null;async function i(l,c=0,u=!1){var m;if(await((m=r.onBeforePageLoad)==null?void 0:m.call(r,l))===!1)return;const f=new URL(l,Ti),h=o=f.pathname;try{let _=await e(h);if(!_)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:w,__pageData:O}=_;if(!w)throw new Error(`Invalid route component: ${w}`);n.path=he?h:Ks(h),n.component=hn(w),n.data=hn(O),he&&Mn(()=>{let B=ft.value.base+O.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ft.value.cleanUrls&&!B.endsWith("/")&&(B+=".html"),B!==f.pathname&&(f.pathname=B,l=B+f.search+f.hash,history.replaceState({},"",l)),f.hash&&!c){let K=null;try{K=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(H){console.warn(H)}if(K){qs(K,f.hash);return}}window.scrollTo(0,c)})}}catch(_){if(!/fetch|Page not found/.test(_.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(_),!u)try{const w=await fetch(ft.value.base+"hashmap.json");window.__VP_HASH_MAP__=await w.json(),await i(l,c,!0);return}catch{}if(o===h){o=null,n.path=he?h:Ks(h),n.component=t?hn(t):null;const w=he?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Ci,relativePath:w}}}}return he&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const u=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(u==null)return;const{href:f,origin:h,pathname:m,hash:_,search:w}=new URL(u,c.baseURI),O=new URL(location.href);h===O.origin&&Wa(m)&&(l.preventDefault(),m===O.pathname&&w===O.search?(_!==O.hash&&(history.pushState({},"",f),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:O.href,newURL:f}))),_?qs(c,_,c.classList.contains("header-anchor")):window.scrollTo(0,0)):s(f))},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await i(sr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Za(){const e=Ct(Ja);if(!e)throw new Error("useRouter() is called without provider.");return e}function Ai(){return Za().route}function qs(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const o=parseInt(window.getComputedStyle(r).paddingTop,10),i=window.scrollY+r.getBoundingClientRect().top-za()+o;requestAnimationFrame(s)}}function sr(e){const t=new URL(e,Ti);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ft.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const or=()=>mn.forEach(e=>e()),Du=Hr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Ai(),{site:n}=Ga();return()=>vr(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?vr(t.component,{onVnodeMounted:or,onVnodeUpdated:or,onVnodeUnmounted:or}):"404 Page Not Found"])}}),Uu=Hr({setup(e,{slots:t}){const n=oe(!1);return Tt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Bu(){he&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const o=r.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(u=>u.classList.contains("active"));if(!i)return;const l=o.children[s];if(!l||i===l)return;i.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function ku(){if(he){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,o=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=o.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(f=>f.remove());let u=c.textContent||"";i&&(u=u.replace(/^ *(\$|>) /gm,"").trim()),eu(u).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const f=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,f)})}})}}async function eu(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function Ku(e,t){let n=!0,r=[];const s=o=>{if(n){n=!1,o.forEach(l=>{const c=ir(l);for(const u of document.head.children)if(u.isEqualNode(c)){r.push(u);return}});return}const i=o.map(ir);r.forEach((l,c)=>{const u=i.findIndex(f=>f==null?void 0:f.isEqualNode(l??null));u!==-1?delete i[u]:(l==null||l.remove(),delete r[c])}),i.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...i].filter(Boolean)};Ur(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[],u=Si(i,o);u!==document.title&&(document.title=u);const f=l||i.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==f&&h.setAttribute("content",f):ir(["meta",{name:"description",content:f}]),s(xi(i.head,nu(c)))})}function ir([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function tu(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function nu(e){return e.filter(t=>!tu(t))}const lr=new Set,Ri=()=>document.createElement("link"),ru=e=>{const t=Ri();t.rel="prefetch",t.href=e,document.head.appendChild(t)},su=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let un;const ou=he&&(un=Ri())&&un.relList&&un.relList.supports&&un.relList.supports("prefetch")?ru:su;function Wu(){if(!he||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!lr.has(c)){lr.add(c);const u=Ya(c);u&&ou(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):lr.add(l))})})};Tt(r);const s=Ai();Fe(()=>s.path,r),Fn(()=>{n&&n.disconnect()})}export{Cu as $,yu as A,Hl as B,za as C,uu as D,du as E,_e as F,Fr as G,ju as H,le as I,fu as J,Ei as K,Ai as L,Tc as M,Ct as N,Fu as O,xr as P,Lu as Q,Mn as R,Nu as S,ci as T,he as U,Ln as V,au as W,Au as X,Iu as Y,Jl as Z,Tu as _,si as a,pu as a0,Ro as a1,Eu as a2,gu as a3,On as a4,wl as a5,vr as a6,bu as a7,Ku as a8,Ja as a9,Hu as aa,qa as ab,Du as ac,Uu as ad,ft as ae,xu as af,Vu as ag,Ya as ah,Wu as ai,ku as aj,Bu as ak,yi as al,kr as am,Ou as an,Pu as ao,Mu as ap,Ru as aq,Za as ar,xt as as,cu as at,wu as au,de as av,mu as aw,hn as ax,Su as ay,$u as az,ti as b,_u as c,Hr as d,vu as e,Wa as f,Ks as g,se as h,ja as i,ri as j,_o as k,lu as l,Ha as m,Tr as n,Zo as o,iu as p,_i as q,hu as r,oe as s,ki as t,Ga as u,Fe as v,Rl as w,Ur as x,Tt as y,Fn as z}; diff --git a/dev/assets/chunks/theme.BLE0Gq7c.js b/dev/assets/chunks/theme.Bp-liF74.js similarity index 99% rename from dev/assets/chunks/theme.BLE0Gq7c.js rename to dev/assets/chunks/theme.Bp-liF74.js index 583c7b921..6378e8960 100644 --- a/dev/assets/chunks/theme.BLE0Gq7c.js +++ b/dev/assets/chunks/theme.Bp-liF74.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.DPtKuvfy.js","assets/chunks/framework.BBBwll2u.js"])))=>i.map(i=>d[i]); -import{d as _,o as a,c as u,r as c,n as N,a as j,t as I,b as $,w as f,e as h,T as pe,_ as g,u as Je,i as Ye,f as Xe,g as fe,h as y,j as p,k as r,p as B,l as H,m as q,q as le,s as T,v as O,x as ee,y as R,z as he,A as _e,B as Qe,C as Ze,D as W,F as M,E,G as Te,H as te,I as k,J as D,K as we,L as ne,M as K,N as Y,O as xe,P as Ie,Q as ce,R as Ne,S as Me,U as oe,V as et,W as tt,X as nt,Y as Ae,Z as me,$ as ot,a0 as st,a1 as at,a2 as rt,a3 as Ce,a4 as it,a5 as lt,a6 as ct}from"./framework.BBBwll2u.js";const ut=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(n){return(e,t)=>(a(),u("span",{class:N(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[j(I(e.text),1)])],2))}}),dt={key:0,class:"VPBackdrop"},vt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),$(pe,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",dt)):h("",!0)]),_:1}))}}),pt=g(vt,[["__scopeId","data-v-b06cdb19"]]),V=Je;function ft(n,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(n,e):(n(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ue(n){return/^\//.test(n)?n:`/${n}`}function be(n){const{pathname:e,search:t,hash:s,protocol:o}=new URL(n,"http://a.com");if(Ye(n)||n.startsWith("#")||!o.startsWith("http")||!Xe(e))return n;const{site:i}=V(),l=e.endsWith("/")||e.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return fe(l)}function Q({correspondingLink:n=!1}={}){const{site:e,localeIndex:t,page:s,theme:o,hash:i}=V(),l=y(()=>{var v,m;return{label:(v=e.value.locales[t.value])==null?void 0:v.label,link:((m=e.value.locales[t.value])==null?void 0:m.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([v,m])=>l.value.label===m.label?[]:{text:m.label,link:ht(m.link||(v==="root"?"/":`/${v}/`),o.value.i18nRouting!==!1&&n,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:l}}function ht(n,e,t,s){return e?n.replace(/\/$/,"")+ue(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):n}const _t=n=>(B("data-v-951cab6c"),n=n(),H(),n),mt={class:"NotFound"},bt={class:"code"},kt={class:"title"},$t=_t(()=>p("div",{class:"divider"},null,-1)),gt={class:"quote"},yt={class:"action"},Pt=["href","aria-label"],St=_({__name:"NotFound",setup(n){const{theme:e}=V(),{currentLang:t}=Q();return(s,o)=>{var i,l,d,v,m;return a(),u("div",mt,[p("p",bt,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),p("h1",kt,I(((l=r(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),$t,p("blockquote",gt,I(((d=r(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",yt,[p("a",{class:"link",href:r(fe)(r(t).link),"aria-label":((v=r(e).notFound)==null?void 0:v.linkLabel)??"go to home"},I(((m=r(e).notFound)==null?void 0:m.linkText)??"Take me home"),9,Pt)])])}}}),Vt=g(St,[["__scopeId","data-v-951cab6c"]]);function Be(n,e){if(Array.isArray(n))return Z(n);if(n==null)return[];e=ue(e);const t=Object.keys(n).sort((o,i)=>i.split("/").length-o.split("/").length).find(o=>e.startsWith(ue(o))),s=t?n[t]:[];return Array.isArray(s)?Z(s):Z(s.items,s.base)}function Lt(n){const e=[];let t=0;for(const s in n){const o=n[s];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function Tt(n){const e=[];function t(s){for(const o of s)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(n),e}function de(n,e){return Array.isArray(e)?e.some(t=>de(n,t)):q(n,e.link)?!0:e.items?de(n,e.items):!1}function Z(n,e){return[...n].map(t=>{const s={...t},o=s.base||e;return o&&s.link&&(s.link=o+s.link),s.items&&(s.items=Z(s.items,o)),s})}function U(){const{frontmatter:n,page:e,theme:t}=V(),s=le("(min-width: 960px)"),o=T(!1),i=y(()=>{const C=t.value.sidebar,w=e.value.relativePath;return C?Be(C,w):[]}),l=T(i.value);O(i,(C,w)=>{JSON.stringify(C)!==JSON.stringify(w)&&(l.value=i.value)});const d=y(()=>n.value.sidebar!==!1&&l.value.length>0&&n.value.layout!=="home"),v=y(()=>m?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),m=y(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),L=y(()=>d.value&&s.value),b=y(()=>d.value?Lt(l.value):[]);function P(){o.value=!0}function S(){o.value=!1}function A(){o.value?S():P()}return{isOpen:o,sidebar:l,sidebarGroups:b,hasSidebar:d,hasAside:m,leftAside:v,isSidebarEnabled:L,open:P,close:S,toggle:A}}function wt(n,e){let t;ee(()=>{t=n.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",s)}),he(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function It(n){const{page:e,hash:t}=V(),s=T(!1),o=y(()=>n.value.collapsed!=null),i=y(()=>!!n.value.link),l=T(!1),d=()=>{l.value=q(e.value.relativePath,n.value.link)};O([e,n,t],d),R(d);const v=y(()=>l.value?!0:n.value.items?de(e.value.relativePath,n.value.items):!1),m=y(()=>!!(n.value.items&&n.value.items.length));ee(()=>{s.value=!!(o.value&&n.value.collapsed)}),_e(()=>{(l.value||v.value)&&(s.value=!1)});function L(){o.value&&(s.value=!s.value)}return{collapsed:s,collapsible:o,isLink:i,isActiveLink:l,hasActiveLink:v,hasChildren:m,toggle:L}}function Nt(){const{hasSidebar:n}=U(),e=le("(min-width: 960px)"),t=le("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const ve=[];function He(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function ke(n){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:Mt(t),link:"#"+t.id,level:s}});return At(e,n)}function Mt(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function At(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;n=n.filter(l=>l.level>=s&&l.level<=o),ve.length=0;for(const{element:l,link:d}of n)ve.push({element:l,link:d});const i=[];e:for(let l=0;l=0;v--){const m=n[v];if(m.level{requestAnimationFrame(i),window.addEventListener("scroll",s)}),Qe(()=>{l(location.hash)}),he(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,m=document.body.offsetHeight,L=Math.abs(d+v-m)<1,b=ve.map(({element:S,link:A})=>({link:A,top:Bt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!b.length){l(null);return}if(d<1){l(null);return}if(L){l(b[b.length-1].link);return}let P=null;for(const{link:S,top:A}of b){if(A>d+Ze()+4)break;P=S}l(P)}function l(d){o&&o.classList.remove("active"),d==null?o=null:o=n.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=o;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Bt(n){let e=0;for(;n!==document.body;){if(n===null)return NaN;e+=n.offsetTop,n=n.offsetParent}return e}const Ht=["href","title"],Et=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(n){function e({target:t}){const s=t.href.split("#")[1],o=document.getElementById(decodeURIComponent(s));o==null||o.focus({preventScroll:!0})}return(t,s)=>{const o=W("VPDocOutlineItem",!0);return a(),u("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,E(t.headers,({children:i,link:l,title:d})=>(a(),u("li",null,[p("a",{class:"outline-link",href:l,onClick:e,title:d},I(d),9,Ht),i!=null&&i.length?(a(),$(o,{key:0,headers:i},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Ee=g(Et,[["__scopeId","data-v-3f927ebe"]]),Dt={class:"content"},Ft={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Ot=_({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=V(),s=Te([]);te(()=>{s.value=ke(e.value.outline??t.value.outline)});const o=T(),i=T();return Ct(o,i),(l,d)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:o},[p("div",Dt,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",Ft,I(r(He)(r(t))),1),k(Ee,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),jt=g(Ot,[["__scopeId","data-v-b38bf2ff"]]),Ut={class:"VPDocAsideCarbonAds"},Gt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,s)=>(a(),u("div",Ut,[k(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),zt=n=>(B("data-v-6d7b3c46"),n=n(),H(),n),Kt={class:"VPDocAside"},Rt=zt(()=>p("div",{class:"spacer"},null,-1)),qt=_({__name:"VPDocAside",setup(n){const{theme:e}=V();return(t,s)=>(a(),u("div",Kt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),k(jt),c(t.$slots,"aside-outline-after",{},void 0,!0),Rt,c(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),$(Gt,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):h("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Wt=g(qt,[["__scopeId","data-v-6d7b3c46"]]);function Jt(){const{theme:n,page:e}=V();return y(()=>{const{text:t="Edit this page",pattern:s=""}=n.value.editLink||{};let o;return typeof s=="function"?o=s(e.value):o=s.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function Yt(){const{page:n,theme:e,frontmatter:t}=V();return y(()=>{var m,L,b,P,S,A,C,w;const s=Be(e.value.sidebar,n.value.relativePath),o=Tt(s),i=Xt(o,G=>G.link.replace(/[?#].*$/,"")),l=i.findIndex(G=>q(n.value.relativePath,G.link)),d=((m=e.value.docFooter)==null?void 0:m.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=i[l-1])==null?void 0:b.docFooterText)??((P=i[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=i[l-1])==null?void 0:S.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[l+1])==null?void 0:A.docFooterText)??((C=i[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=i[l+1])==null?void 0:w.link)}}})}function Xt(n,e){const t=new Set;return n.filter(s=>{const o=e(s);return t.has(o)?!1:t.add(o)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&we.test(e.href)||e.target==="_blank");return(o,i)=>(a(),$(D(t.value),{class:N(["VPLink",{link:o.href,"vp-external-link-icon":s.value,"no-icon":o.noIcon}]),href:o.href?r(be)(o.href):void 0,target:o.target??(s.value?"_blank":void 0),rel:o.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Qt={class:"VPLastUpdated"},Zt=["datetime"],xt=_({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:s}=V(),o=y(()=>new Date(t.value.lastUpdated)),i=y(()=>o.value.toISOString()),l=T("");return R(()=>{ee(()=>{var d,v,m;l.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?s.value:void 0,((m=e.value.lastUpdated)==null?void 0:m.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(d,v)=>{var m;return a(),u("p",Qt,[j(I(((m=r(e).lastUpdated)==null?void 0:m.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:i.value},I(l.value),9,Zt)])}}}),en=g(xt,[["__scopeId","data-v-475f71b8"]]),De=n=>(B("data-v-4f9813fa"),n=n(),H(),n),tn={key:0,class:"VPDocFooter"},nn={key:0,class:"edit-info"},on={key:0,class:"edit-link"},sn=De(()=>p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),an={key:1,class:"last-updated"},rn={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},ln=De(()=>p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),cn={class:"pager"},un=["innerHTML"],dn=["innerHTML"],vn={class:"pager"},pn=["innerHTML"],fn=["innerHTML"],hn=_({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:s}=V(),o=Jt(),i=Yt(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),d=y(()=>t.value.lastUpdated),v=y(()=>l.value||d.value||i.value.prev||i.value.next);return(m,L)=>{var b,P,S,A;return v.value?(a(),u("footer",tn,[c(m.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),u("div",nn,[l.value?(a(),u("div",on,[k(F,{class:"edit-link-button",href:r(o).url,"no-icon":!0},{default:f(()=>[sn,j(" "+I(r(o).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(a(),u("div",an,[k(en)])):h("",!0)])):h("",!0),(b=r(i).prev)!=null&&b.link||(P=r(i).next)!=null&&P.link?(a(),u("nav",rn,[ln,p("div",cn,[(S=r(i).prev)!=null&&S.link?(a(),$(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,un),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,dn)]}),_:1},8,["href"])):h("",!0)]),p("div",vn,[(A=r(i).next)!=null&&A.link?(a(),$(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,pn),p("span",{class:"title",innerHTML:r(i).next.text},null,8,fn)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),_n=g(hn,[["__scopeId","data-v-4f9813fa"]]),mn=n=>(B("data-v-83890dd9"),n=n(),H(),n),bn={class:"container"},kn=mn(()=>p("div",{class:"aside-curtain"},null,-1)),$n={class:"aside-container"},gn={class:"aside-content"},yn={class:"content"},Pn={class:"content-container"},Sn={class:"main"},Vn=_({__name:"VPDoc",setup(n){const{theme:e}=V(),t=ne(),{hasSidebar:s,hasAside:o,leftAside:i}=U(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const m=W("Content");return a(),u("div",{class:N(["VPDoc",{"has-sidebar":r(s),"has-aside":r(o)}])},[c(d.$slots,"doc-top",{},void 0,!0),p("div",bn,[r(o)?(a(),u("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[kn,p("div",$n,[p("div",gn,[k(Wt,null,{"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",yn,[p("div",Pn,[c(d.$slots,"doc-before",{},void 0,!0),p("main",Sn,[k(m,{class:N(["vp-doc",[l.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(_n,null,{"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),Ln=g(Vn,[["__scopeId","data-v-83890dd9"]]),Tn=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.href&&we.test(e.href)),s=y(()=>e.tag||e.href?"a":"button");return(o,i)=>(a(),$(D(s.value),{class:N(["VPButton",[o.size,o.theme]]),href:o.href?r(be)(o.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[j(I(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),wn=g(Tn,[["__scopeId","data-v-14206e74"]]),In=["src","alt"],Nn=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const s=W("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",K({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,In)):(a(),u(M,{key:1},[k(s,K({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(s,K({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),x=g(Nn,[["__scopeId","data-v-35a7d0b8"]]),Mn=n=>(B("data-v-955009fc"),n=n(),H(),n),An={class:"container"},Cn={class:"main"},Bn={key:0,class:"name"},Hn=["innerHTML"],En=["innerHTML"],Dn=["innerHTML"],Fn={key:0,class:"actions"},On={key:0,class:"image"},jn={class:"image-container"},Un=Mn(()=>p("div",{class:"image-bg"},null,-1)),Gn=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=Y("hero-image-slot-exists");return(t,s)=>(a(),u("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[p("div",An,[p("div",Cn,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",Bn,[p("span",{innerHTML:t.name,class:"clip"},null,8,Hn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,En)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Dn)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Fn,[(a(!0),u(M,null,E(t.actions,o=>(a(),u("div",{key:o.link,class:"action"},[k(wn,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),u("div",On,[p("div",jn,[Un,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(x,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),zn=g(Gn,[["__scopeId","data-v-955009fc"]]),Kn=_({__name:"VPHomeHero",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).hero?(a(),$(zn,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),Rn=n=>(B("data-v-f5e9645b"),n=n(),H(),n),qn={class:"box"},Wn={key:0,class:"icon"},Jn=["innerHTML"],Yn=["innerHTML"],Xn=["innerHTML"],Qn={key:4,class:"link-text"},Zn={class:"link-text-value"},xn=Rn(()=>p("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),eo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(n){return(e,t)=>(a(),$(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[p("article",qn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",Wn,[k(x,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(x,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Jn)):h("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Yn),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Xn)):h("",!0),e.linkText?(a(),u("div",Qn,[p("p",Zn,[j(I(e.linkText)+" ",1),xn])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),to=g(eo,[["__scopeId","data-v-f5e9645b"]]),no={key:0,class:"VPFeatures"},oo={class:"container"},so={class:"items"},ao=_({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,o)=>s.features?(a(),u("div",no,[p("div",oo,[p("div",so,[(a(!0),u(M,null,E(s.features,i=>(a(),u("div",{key:i.title,class:N(["item",[t.value]])},[k(to,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),ro=g(ao,[["__scopeId","data-v-d0a190d7"]]),io=_({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).features?(a(),$(ro,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):h("",!0)}}),lo=_({__name:"VPHomeContent",setup(n){const{width:e}=xe({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),u("div",{class:"vp-doc container",style:Ie(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),co=g(lo,[["__scopeId","data-v-7a48a447"]]),uo={class:"VPHome"},vo=_({__name:"VPHome",setup(n){const{frontmatter:e}=V();return(t,s)=>{const o=W("Content");return a(),u("div",uo,[c(t.$slots,"home-hero-before",{},void 0,!0),k(Kn,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),k(io),c(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),$(co,{key:0},{default:f(()=>[k(o)]),_:1})):(a(),$(o,{key:1}))])}}}),po=g(vo,[["__scopeId","data-v-cbb6ec48"]]),fo={},ho={class:"VPPage"};function _o(n,e){const t=W("Content");return a(),u("div",ho,[c(n.$slots,"page-top"),k(t),c(n.$slots,"page-bottom")])}const mo=g(fo,[["render",_o]]),bo=_({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>(a(),u("div",{class:N(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?c(o.$slots,"not-found",{key:0},()=>[k(Vt)],!0):r(t).layout==="page"?(a(),$(mo,{key:1},{"page-top":f(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),$(po,{key:2},{"home-hero-before":f(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),$(D(r(t).layout),{key:3})):(a(),$(Ln,{key:4},{"doc-top":f(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ko=g(bo,[["__scopeId","data-v-91765379"]]),$o={class:"container"},go=["innerHTML"],yo=["innerHTML"],Po=_({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>r(e).footer&&r(t).footer!==!1?(a(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(s)}])},[p("div",$o,[r(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,go)):h("",!0),r(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,yo)):h("",!0)])],2)):h("",!0)}}),So=g(Po,[["__scopeId","data-v-c970a860"]]);function Vo(){const{theme:n,frontmatter:e}=V(),t=Te([]),s=y(()=>t.value.length>0);return te(()=>{t.value=ke(e.value.outline??n.value.outline)}),{headers:t,hasLocalNav:s}}const Lo=n=>(B("data-v-bc9dc845"),n=n(),H(),n),To={class:"menu-text"},wo=Lo(()=>p("span",{class:"vpi-chevron-right icon"},null,-1)),Io={class:"header"},No={class:"outline"},Mo=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=V(),s=T(!1),o=T(0),i=T(),l=T();function d(b){var P;(P=i.value)!=null&&P.contains(b.target)||(s.value=!1)}O(s,b=>{if(b){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ce("Escape",()=>{s.value=!1}),te(()=>{s.value=!1});function v(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function m(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Ne(()=>{s.value=!1}))}function L(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Ie({"--vp-vh":o.value+"px"}),ref_key:"main",ref:i},[b.headers.length>0?(a(),u("button",{key:0,onClick:v,class:N({open:s.value})},[p("span",To,I(r(He)(r(t))),1),wo],2)):(a(),u("button",{key:1,onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)),k(pe,{name:"flyout"},{default:f(()=>[s.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:m},[p("div",Io,[p("a",{class:"top-link",href:"#",onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)]),p("div",No,[k(Ee,{headers:b.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),Ao=g(Mo,[["__scopeId","data-v-bc9dc845"]]),Co=n=>(B("data-v-070ab83d"),n=n(),H(),n),Bo={class:"container"},Ho=["aria-expanded"],Eo=Co(()=>p("span",{class:"vpi-align-left menu-icon"},null,-1)),Do={class:"menu-text"},Fo=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U(),{headers:o}=Vo(),{y:i}=Me(),l=T(0);R(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),te(()=>{o.value=ke(t.value.outline??e.value.outline)});const d=y(()=>o.value.length===0),v=y(()=>d.value&&!s.value),m=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:d.value,fixed:v.value}));return(L,b)=>r(t).layout!=="home"&&(!v.value||r(i)>=l.value)?(a(),u("div",{key:0,class:N(m.value)},[p("div",Bo,[r(s)?(a(),u("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>L.$emit("open-menu"))},[Eo,p("span",Do,I(r(e).sidebarMenuLabel||"Menu"),1)],8,Ho)):h("",!0),k(Ao,{headers:r(o),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),Oo=g(Fo,[["__scopeId","data-v-070ab83d"]]);function jo(){const n=T(!1);function e(){n.value=!0,window.addEventListener("resize",o)}function t(){n.value=!1,window.removeEventListener("resize",o)}function s(){n.value?t():e()}function o(){window.outerWidth>=768&&t()}const i=ne();return O(()=>i.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:s}}const Uo={},Go={class:"VPSwitch",type:"button",role:"switch"},zo={class:"check"},Ko={key:0,class:"icon"};function Ro(n,e){return a(),u("button",Go,[p("span",zo,[n.$slots.default?(a(),u("span",Ko,[c(n.$slots,"default",{},void 0,!0)])):h("",!0)])])}const qo=g(Uo,[["render",Ro],["__scopeId","data-v-4a1c76db"]]),Fe=n=>(B("data-v-e40a8bb6"),n=n(),H(),n),Wo=Fe(()=>p("span",{class:"vpi-sun sun"},null,-1)),Jo=Fe(()=>p("span",{class:"vpi-moon moon"},null,-1)),Yo=_({__name:"VPSwitchAppearance",setup(n){const{isDark:e,theme:t}=V(),s=Y("toggle-appearance",()=>{e.value=!e.value}),o=T("");return _e(()=>{o.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,l)=>(a(),$(qo,{title:o.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:f(()=>[Wo,Jo]),_:1},8,["title","aria-checked","onClick"]))}}),$e=g(Yo,[["__scopeId","data-v-e40a8bb6"]]),Xo={key:0,class:"VPNavBarAppearance"},Qo=_({__name:"VPNavBarAppearance",setup(n){const{site:e}=V();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Xo,[k($e)])):h("",!0)}}),Zo=g(Qo,[["__scopeId","data-v-af096f4a"]]),ge=T();let Oe=!1,ie=0;function xo(n){const e=T(!1);if(oe){!Oe&&es(),ie++;const t=O(ge,s=>{var o,i,l;s===n.el.value||(o=n.el.value)!=null&&o.contains(s)?(e.value=!0,(i=n.onFocus)==null||i.call(n)):(e.value=!1,(l=n.onBlur)==null||l.call(n))});he(()=>{t(),ie--,ie||ts()})}return et(e)}function es(){document.addEventListener("focusin",je),Oe=!0,ge.value=document.activeElement}function ts(){document.removeEventListener("focusin",je)}function je(){ge.value=document.activeElement}const ns={class:"VPMenuLink"},os=_({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),u("div",ns,[k(F,{class:N({active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=g(os,[["__scopeId","data-v-8b74d055"]]),ss={class:"VPMenuGroup"},as={key:0,class:"title"},rs=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",ss,[e.text?(a(),u("p",as,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),u(M,null,["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),is=g(rs,[["__scopeId","data-v-48c802d0"]]),ls={class:"VPMenu"},cs={key:0,class:"items"},us=_({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),u("div",ls,[e.items?(a(),u("div",cs,[(a(!0),u(M,null,E(e.items,s=>(a(),u(M,{key:JSON.stringify(s)},["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):"component"in s?(a(),$(D(s.component),K({key:1,ref_for:!0},s.props),null,16)):(a(),$(is,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),ds=g(us,[["__scopeId","data-v-7dd3104a"]]),vs=n=>(B("data-v-e5380155"),n=n(),H(),n),ps=["aria-expanded","aria-label"],fs={key:0,class:"text"},hs=["innerHTML"],_s=vs(()=>p("span",{class:"vpi-chevron-down text-icon"},null,-1)),ms={key:1,class:"vpi-more-horizontal icon"},bs={class:"menu"},ks=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=T(!1),t=T();xo({el:t,onBlur:s});function s(){e.value=!1}return(o,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=l=>e.value=!0),onMouseleave:i[2]||(i[2]=l=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:i[0]||(i[0]=l=>e.value=!e.value)},[o.button||o.icon?(a(),u("span",fs,[o.icon?(a(),u("span",{key:0,class:N([o.icon,"option-icon"])},null,2)):h("",!0),o.button?(a(),u("span",{key:1,innerHTML:o.button},null,8,hs)):h("",!0),_s])):(a(),u("span",ms))],8,ps),p("div",bs,[k(ds,{items:o.items},{default:f(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=g(ks,[["__scopeId","data-v-e5380155"]]),$s=["href","aria-label","innerHTML"],gs=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,o)=>(a(),u("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,$s))}}),ys=g(gs,[["__scopeId","data-v-717b8b75"]]),Ps={class:"VPSocialLinks"},Ss=_({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(a(),u("div",Ps,[(a(!0),u(M,null,E(e.links,({link:s,icon:o,ariaLabel:i})=>(a(),$(ys,{key:s,icon:o,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),Pe=g(Ss,[["__scopeId","data-v-ee7a9424"]]),Vs={key:0,class:"group translations"},Ls={class:"trans-title"},Ts={key:1,class:"group"},ws={class:"item appearance"},Is={class:"label"},Ns={class:"appearance-action"},Ms={key:2,class:"group"},As={class:"item social-links"},Cs=_({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=V(),{localeLinks:s,currentLang:o}=Q({correspondingLink:!0}),i=y(()=>s.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(l,d)=>i.value?(a(),$(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[r(s).length&&r(o).label?(a(),u("div",Vs,[p("p",Ls,I(r(o).label),1),(a(!0),u(M,null,E(r(s),v=>(a(),$(se,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Ts,[p("div",ws,[p("p",Is,I(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",Ns,[k($e)])])])):h("",!0),r(t).socialLinks?(a(),u("div",Ms,[p("div",As,[k(Pe,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),Bs=g(Cs,[["__scopeId","data-v-925effce"]]),Hs=n=>(B("data-v-5dea55bf"),n=n(),H(),n),Es=["aria-expanded"],Ds=Hs(()=>p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)),Fs=[Ds],Os=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(a(),u("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},Fs,10,Es))}}),js=g(Os,[["__scopeId","data-v-5dea55bf"]]),Us=["innerHTML"],Gs=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),$(F,{class:N({VPNavBarMenuLink:!0,active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,Us)]),_:1},8,["class","href","noIcon","target","rel"]))}}),zs=g(Gs,[["__scopeId","data-v-ed5ac1f6"]]),Ks=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const e=n,{page:t}=V(),s=i=>"component"in i?!1:"link"in i?q(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),o=y(()=>s(e.item));return(i,l)=>(a(),$(ye,{class:N({VPNavBarMenuGroup:!0,active:r(q)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||o.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Rs=n=>(B("data-v-e6d46098"),n=n(),H(),n),qs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ws=Rs(()=>p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Js=_({__name:"VPNavBarMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",qs,[Ws,(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(zs,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props),null,16)):(a(),$(Ks,{key:2,item:o},null,8,["item"]))],64))),128))])):h("",!0)}}),Ys=g(Js,[["__scopeId","data-v-e6d46098"]]);function Xs(n){const{localeIndex:e,theme:t}=V();function s(o){var A,C,w;const i=o.split("."),l=(A=t.value.search)==null?void 0:A.options,d=l&&typeof l=="object",v=d&&((w=(C=l.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,m=d&&l.translations||null;let L=v,b=m,P=n;const S=i.pop();for(const G of i){let z=null;const J=P==null?void 0:P[G];J&&(z=P=J);const ae=b==null?void 0:b[G];ae&&(z=b=ae);const re=L==null?void 0:L[G];re&&(z=L=re),J||(P=z),ae||(b=z),re||(L=z)}return(L==null?void 0:L[S])??(b==null?void 0:b[S])??(P==null?void 0:P[S])??""}return s}const Qs=["aria-label"],Zs={class:"DocSearch-Button-Container"},xs=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),ea={class:"DocSearch-Button-Placeholder"},ta=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Se=_({__name:"VPNavBarSearchButton",setup(n){const t=Xs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,o)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",Zs,[xs,p("span",ea,I(r(t)("button.buttonText")),1)]),ta],8,Qs))}}),na={class:"VPNavBarSearch"},oa={id:"local-search"},sa={key:1,id:"docsearch"},aa=_({__name:"VPNavBarSearch",setup(n){const e=tt(()=>nt(()=>import("./VPLocalSearchBox.DPtKuvfy.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=V(),o=T(!1),i=T(!1);R(()=>{});function l(){o.value||(o.value=!0,setTimeout(d,16))}function d(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function v(b){const P=b.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const m=T(!1);ce("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),m.value=!0)}),ce("/",b=>{v(b)||(b.preventDefault(),m.value=!0)});const L="local";return(b,P)=>{var S;return a(),u("div",na,[r(L)==="local"?(a(),u(M,{key:0},[m.value?(a(),$(r(e),{key:0,onClose:P[0]||(P[0]=A=>m.value=!1)})):h("",!0),p("div",oa,[k(Se,{onClick:P[1]||(P[1]=A=>m.value=!0)})])],64)):r(L)==="algolia"?(a(),u(M,{key:1},[o.value?(a(),$(r(t),{key:0,algolia:((S=r(s).search)==null?void 0:S.options)??r(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>i.value=!0)},null,8,["algolia"])):h("",!0),i.value?h("",!0):(a(),u("div",sa,[k(Se,{onClick:l})]))],64)):h("",!0)])}}}),ra=_({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),ia=g(ra,[["__scopeId","data-v-164c457f"]]),la=["href","rel","target"],ca={key:1},ua={key:2},da=_({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=V(),{hasSidebar:s}=U(),{currentLang:o}=Q(),i=y(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),l=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,m)=>(a(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(s)}])},[p("a",{class:"title",href:i.value??r(be)(r(o).link),rel:l.value,target:d.value},[c(v.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),$(x,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):h("",!0),r(t).siteTitle?(a(),u("span",ca,I(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),u("span",ua,I(r(e).title),1)):h("",!0),c(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,la)],2))}}),va=g(da,[["__scopeId","data-v-28a961f9"]]),pa={class:"items"},fa={class:"title"},ha=_({__name:"VPNavBarTranslations",setup(n){const{theme:e}=V(),{localeLinks:t,currentLang:s}=Q({correspondingLink:!0});return(o,i)=>r(t).length&&r(s).label?(a(),$(ye,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",pa,[p("p",fa,I(r(s).label),1),(a(!0),u(M,null,E(r(t),l=>(a(),$(se,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),_a=g(ha,[["__scopeId","data-v-c80d9ad0"]]),ma=n=>(B("data-v-822684d1"),n=n(),H(),n),ba={class:"wrapper"},ka={class:"container"},$a={class:"title"},ga={class:"content"},ya={class:"content-body"},Pa=ma(()=>p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1)),Sa=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const e=n,{y:t}=Me(),{hasSidebar:s}=U(),{frontmatter:o}=V(),i=T({});return _e(()=>{i.value={"has-sidebar":s.value,home:o.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),u("div",{class:N(["VPNavBar",i.value])},[p("div",ba,[p("div",ka,[p("div",$a,[k(va,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",ga,[p("div",ya,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(aa,{class:"search"}),k(Ys,{class:"menu"}),k(_a,{class:"translations"}),k(Zo,{class:"appearance"}),k(ia,{class:"social-links"}),k(Bs,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(js,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=v=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),Pa],2))}}),Va=g(Sa,[["__scopeId","data-v-822684d1"]]),La={key:0,class:"VPNavScreenAppearance"},Ta={class:"text"},wa=_({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=V();return(s,o)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",La,[p("p",Ta,I(r(t).darkModeSwitchLabel||"Appearance"),1),k($e)])):h("",!0)}}),Ia=g(wa,[["__scopeId","data-v-ffb44008"]]),Na=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Ma=g(Na,[["__scopeId","data-v-27d04aeb"]]),Aa=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ue=g(Aa,[["__scopeId","data-v-7179dbb7"]]),Ca={class:"VPNavScreenMenuGroupSection"},Ba={key:0,class:"title"},Ha=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",Ca,[e.text?(a(),u("p",Ba,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),$(Ue,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ea=g(Ha,[["__scopeId","data-v-4b8941ac"]]),Da=n=>(B("data-v-875057a5"),n=n(),H(),n),Fa=["aria-controls","aria-expanded"],Oa=["innerHTML"],ja=Da(()=>p("span",{class:"vpi-plus button-icon"},null,-1)),Ua=["id"],Ga={key:0,class:"item"},za={key:1,class:"item"},Ka={key:2,class:"group"},Ra=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(i,l)=>(a(),u("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:o},[p("span",{class:"button-text",innerHTML:i.text},null,8,Oa),ja],8,Fa),p("div",{id:s.value,class:"items"},[(a(!0),u(M,null,E(i.items,d=>(a(),u(M,{key:JSON.stringify(d)},["link"in d?(a(),u("div",Ga,[k(Ue,{item:d},null,8,["item"])])):"component"in d?(a(),u("div",za,[(a(),$(D(d.component),K({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),u("div",Ka,[k(Ea,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,Ua)],2))}}),qa=g(Ra,[["__scopeId","data-v-875057a5"]]),Wa={key:0,class:"VPNavScreenMenu"},Ja=_({__name:"VPNavScreenMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",Wa,[(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(Ma,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(a(),$(qa,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),Ya=_({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),Ge=n=>(B("data-v-362991c2"),n=n(),H(),n),Xa=Ge(()=>p("span",{class:"vpi-languages icon lang"},null,-1)),Qa=Ge(()=>p("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Za={class:"list"},xa=_({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=Q({correspondingLink:!0}),s=T(!1);function o(){s.value=!s.value}return(i,l)=>r(e).length&&r(t).label?(a(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[p("button",{class:"title",onClick:o},[Xa,j(" "+I(r(t).label)+" ",1),Qa]),p("ul",Za,[(a(!0),u(M,null,E(r(e),d=>(a(),u("li",{key:d.link,class:"item"},[k(F,{class:"link",href:d.link},{default:f(()=>[j(I(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),er=g(xa,[["__scopeId","data-v-362991c2"]]),tr={class:"container"},nr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=T(null),t=Ae(oe?document.body:null);return(s,o)=>(a(),$(pe,{name:"fade",onEnter:o[0]||(o[0]=i=>t.value=!0),onAfterLeave:o[1]||(o[1]=i=>t.value=!1)},{default:f(()=>[s.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",tr,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),k(Ja,{class:"menu"}),k(er,{class:"translations"}),k(Ia,{class:"appearance"}),k(Ya,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),or=g(nr,[["__scopeId","data-v-833aabba"]]),sr={key:0,class:"VPNav"},ar=_({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=jo(),{frontmatter:o}=V(),i=y(()=>o.value.navbar!==!1);return me("close-screen",t),ee(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,d)=>i.value?(a(),u("header",sr,[k(Va,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(or,{open:r(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),rr=g(ar,[["__scopeId","data-v-f1e365da"]]),ze=n=>(B("data-v-196b2e5f"),n=n(),H(),n),ir=["role","tabindex"],lr=ze(()=>p("div",{class:"indicator"},null,-1)),cr=ze(()=>p("span",{class:"vpi-chevron-right caret-icon"},null,-1)),ur=[cr],dr={key:1,class:"items"},vr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:s,isLink:o,isActiveLink:i,hasActiveLink:l,hasChildren:d,toggle:v}=It(y(()=>e.item)),m=y(()=>d.value?"section":"div"),L=y(()=>o.value?"a":"div"),b=y(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>o.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":o.value},{"is-active":i.value},{"has-active":l.value}]);function A(w){"key"in w&&w.key!=="Enter"||!e.item.link&&v()}function C(){e.item.link&&v()}return(w,G)=>{const z=W("VPSidebarItem",!0);return a(),$(D(m.value),{class:N(["VPSidebarItem",S.value])},{default:f(()=>[w.item.text?(a(),u("div",K({key:0,class:"item",role:P.value},st(w.item.items?{click:A,keydown:A}:{},!0),{tabindex:w.item.items&&0}),[lr,w.item.link?(a(),$(F,{key:0,tag:L.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:f(()=>[(a(),$(D(b.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(D(b.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:ot(C,["enter"]),tabindex:"0"},ur,32)):h("",!0)],16,ir)):h("",!0),w.item.items&&w.item.items.length?(a(),u("div",dr,[w.depth<5?(a(!0),u(M,{key:0},E(w.item.items,J=>(a(),$(z,{key:J.text,item:J,depth:w.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),pr=g(vr,[["__scopeId","data-v-196b2e5f"]]),fr=_({__name:"VPSidebarGroup",props:{items:{}},setup(n){const e=T(!0);let t=null;return R(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),at(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,o)=>(a(!0),u(M,null,E(s.items,i=>(a(),u("div",{key:i.text,class:N(["group",{"no-transition":e.value}])},[k(pr,{item:i,depth:0},null,8,["item"])],2))),128))}}),hr=g(fr,[["__scopeId","data-v-9e426adc"]]),Ke=n=>(B("data-v-18756405"),n=n(),H(),n),_r=Ke(()=>p("div",{class:"curtain"},null,-1)),mr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},br=Ke(()=>p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),kr=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const{sidebarGroups:e,hasSidebar:t}=U(),s=n,o=T(null),i=Ae(oe?document.body:null);O([s,o],()=>{var d;s.open?(i.value=!0,(d=o.value)==null||d.focus()):i.value=!1},{immediate:!0,flush:"post"});const l=T(0);return O(e,()=>{l.value+=1},{deep:!0}),(d,v)=>r(t)?(a(),u("aside",{key:0,class:N(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:o,onClick:v[0]||(v[0]=rt(()=>{},["stop"]))},[_r,p("nav",mr,[br,c(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),$(hr,{items:r(e),key:l.value},null,8,["items"])),c(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),$r=g(kr,[["__scopeId","data-v-18756405"]]),gr=_({__name:"VPSkipLink",setup(n){const e=ne(),t=T();O(()=>e.path,()=>t.value.focus());function s({target:o}){const i=document.getElementById(decodeURIComponent(o.hash).slice(1));if(i){const l=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",l)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",l),i.focus(),window.scrollTo(0,0)}}return(o,i)=>(a(),u(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),yr=g(gr,[["__scopeId","data-v-c3508ec8"]]),Pr=_({__name:"Layout",setup(n){const{isOpen:e,open:t,close:s}=U(),o=ne();O(()=>o.path,s),wt(e,s);const{frontmatter:i}=V(),l=Ce(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(v,m)=>{const L=W("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:N(["Layout",r(i).pageClass])},[c(v.$slots,"layout-top",{},void 0,!0),k(yr),k(pt,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),k(rr,null,{"nav-bar-title-before":f(()=>[c(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(Oo,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),k($r,{open:r(e)},{"sidebar-nav-before":f(()=>[c(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(ko,null,{"page-top":f(()=>[c(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(So),c(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(L,{key:1}))}}}),Sr=g(Pr,[["__scopeId","data-v-a9a9e638"]]),Ve={Layout:Sr,enhanceApp:({app:n})=>{n.component("Badge",ut)}},Vr=n=>{if(typeof document>"u")return{stabilizeScrollPosition:o=>async(...i)=>o(...i)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...o)=>{const i=s(...o),l=n.value;if(!l)return i;const d=l.offsetTop-e.scrollTop;return await Ne(),e.scrollTop=l.offsetTop-d,i}}},Re="vitepress:tabSharedState",X=typeof localStorage<"u"?localStorage:null,qe="vitepress:tabsSharedState",Lr=()=>{const n=X==null?void 0:X.getItem(qe);if(n)try{return JSON.parse(n)}catch{}return{}},Tr=n=>{X&&X.setItem(qe,JSON.stringify(n))},wr=n=>{const e=it({});O(()=>e.content,(t,s)=>{t&&s&&Tr(t)},{deep:!0}),n.provide(Re,e)},Ir=(n,e)=>{const t=Y(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");R(()=>{t.content||(t.content=Lr())});const s=T(),o=y({get(){var v;const l=e.value,d=n.value;if(l){const m=(v=t.content)==null?void 0:v[l];if(m&&d.includes(m))return m}else{const m=s.value;if(m)return m}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):s.value=l}});return{selected:o,select:l=>{o.value=l}}};let Le=0;const Nr=()=>(Le++,""+Le);function Mr(){const n=Ce();return y(()=>{var s;const t=(s=n.default)==null?void 0:s.call(n);return t?t.filter(o=>typeof o.type=="object"&&"__name"in o.type&&o.type.__name==="PluginTabsTab"&&o.props).map(o=>{var i;return(i=o.props)==null?void 0:i.label}):[]})}const We="vitepress:tabSingleState",Ar=n=>{me(We,n)},Cr=()=>{const n=Y(We);if(!n)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return n},Br={class:"plugin-tabs"},Hr=["id","aria-selected","aria-controls","tabindex","onClick"],Er=_({__name:"PluginTabs",props:{sharedStateKey:{}},setup(n){const e=n,t=Mr(),{selected:s,select:o}=Ir(t,lt(e,"sharedStateKey")),i=T(),{stabilizeScrollPosition:l}=Vr(i),d=l(o),v=T([]),m=b=>{var A;const P=t.value.indexOf(s.value);let S;b.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:b.key==="ArrowRight"&&(S=P(a(),u("div",Br,[p("div",{ref_key:"tablist",ref:i,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:m},[(a(!0),u(M,null,E(r(t),S=>(a(),u("button",{id:`tab-${S}-${r(L)}`,ref_for:!0,ref_key:"buttonRefs",ref:v,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===r(s),"aria-controls":`panel-${S}-${r(L)}`,tabindex:S===r(s)?0:-1,onClick:()=>r(d)(S)},I(S),9,Hr))),128))],544),c(b.$slots,"default")]))}}),Dr=["id","aria-labelledby"],Fr=_({__name:"PluginTabsTab",props:{label:{}},setup(n){const{uid:e,selected:t}=Cr();return(s,o)=>r(t)===s.label?(a(),u("div",{key:0,id:`panel-${s.label}-${r(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${r(e)}`},[c(s.$slots,"default",{},void 0,!0)],8,Dr)):h("",!0)}}),Or=g(Fr,[["__scopeId","data-v-9b0d03d2"]]),jr=n=>{wr(n),n.component("PluginTabs",Er),n.component("PluginTabsTab",Or)},Gr={extends:Ve,Layout(){return ct(Ve.Layout,null,{})},enhanceApp({app:n,router:e,siteData:t}){jr(n)}};export{Gr as R,Xs as c,V as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.DrU8J17p.js","assets/chunks/framework.Bvl2j7qw.js"])))=>i.map(i=>d[i]); +import{d as _,o as a,c as u,r as c,n as N,a as j,t as I,b as $,w as f,e as h,T as pe,_ as g,u as Je,i as Ye,f as Xe,g as fe,h as y,j as p,k as r,p as B,l as H,m as q,q as le,s as T,v as O,x as ee,y as R,z as he,A as _e,B as Qe,C as Ze,D as W,F as M,E,G as Te,H as te,I as k,J as D,K as we,L as ne,M as K,N as Y,O as xe,P as Ie,Q as ce,R as Ne,S as Me,U as oe,V as et,W as tt,X as nt,Y as Ae,Z as me,$ as ot,a0 as st,a1 as at,a2 as rt,a3 as Ce,a4 as it,a5 as lt,a6 as ct}from"./framework.Bvl2j7qw.js";const ut=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(n){return(e,t)=>(a(),u("span",{class:N(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[j(I(e.text),1)])],2))}}),dt={key:0,class:"VPBackdrop"},vt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),$(pe,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",dt)):h("",!0)]),_:1}))}}),pt=g(vt,[["__scopeId","data-v-b06cdb19"]]),V=Je;function ft(n,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(n,e):(n(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ue(n){return/^\//.test(n)?n:`/${n}`}function be(n){const{pathname:e,search:t,hash:s,protocol:o}=new URL(n,"http://a.com");if(Ye(n)||n.startsWith("#")||!o.startsWith("http")||!Xe(e))return n;const{site:i}=V(),l=e.endsWith("/")||e.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return fe(l)}function Q({correspondingLink:n=!1}={}){const{site:e,localeIndex:t,page:s,theme:o,hash:i}=V(),l=y(()=>{var v,m;return{label:(v=e.value.locales[t.value])==null?void 0:v.label,link:((m=e.value.locales[t.value])==null?void 0:m.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([v,m])=>l.value.label===m.label?[]:{text:m.label,link:ht(m.link||(v==="root"?"/":`/${v}/`),o.value.i18nRouting!==!1&&n,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:l}}function ht(n,e,t,s){return e?n.replace(/\/$/,"")+ue(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):n}const _t=n=>(B("data-v-951cab6c"),n=n(),H(),n),mt={class:"NotFound"},bt={class:"code"},kt={class:"title"},$t=_t(()=>p("div",{class:"divider"},null,-1)),gt={class:"quote"},yt={class:"action"},Pt=["href","aria-label"],St=_({__name:"NotFound",setup(n){const{theme:e}=V(),{currentLang:t}=Q();return(s,o)=>{var i,l,d,v,m;return a(),u("div",mt,[p("p",bt,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),p("h1",kt,I(((l=r(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),$t,p("blockquote",gt,I(((d=r(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",yt,[p("a",{class:"link",href:r(fe)(r(t).link),"aria-label":((v=r(e).notFound)==null?void 0:v.linkLabel)??"go to home"},I(((m=r(e).notFound)==null?void 0:m.linkText)??"Take me home"),9,Pt)])])}}}),Vt=g(St,[["__scopeId","data-v-951cab6c"]]);function Be(n,e){if(Array.isArray(n))return Z(n);if(n==null)return[];e=ue(e);const t=Object.keys(n).sort((o,i)=>i.split("/").length-o.split("/").length).find(o=>e.startsWith(ue(o))),s=t?n[t]:[];return Array.isArray(s)?Z(s):Z(s.items,s.base)}function Lt(n){const e=[];let t=0;for(const s in n){const o=n[s];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function Tt(n){const e=[];function t(s){for(const o of s)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(n),e}function de(n,e){return Array.isArray(e)?e.some(t=>de(n,t)):q(n,e.link)?!0:e.items?de(n,e.items):!1}function Z(n,e){return[...n].map(t=>{const s={...t},o=s.base||e;return o&&s.link&&(s.link=o+s.link),s.items&&(s.items=Z(s.items,o)),s})}function U(){const{frontmatter:n,page:e,theme:t}=V(),s=le("(min-width: 960px)"),o=T(!1),i=y(()=>{const C=t.value.sidebar,w=e.value.relativePath;return C?Be(C,w):[]}),l=T(i.value);O(i,(C,w)=>{JSON.stringify(C)!==JSON.stringify(w)&&(l.value=i.value)});const d=y(()=>n.value.sidebar!==!1&&l.value.length>0&&n.value.layout!=="home"),v=y(()=>m?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),m=y(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),L=y(()=>d.value&&s.value),b=y(()=>d.value?Lt(l.value):[]);function P(){o.value=!0}function S(){o.value=!1}function A(){o.value?S():P()}return{isOpen:o,sidebar:l,sidebarGroups:b,hasSidebar:d,hasAside:m,leftAside:v,isSidebarEnabled:L,open:P,close:S,toggle:A}}function wt(n,e){let t;ee(()=>{t=n.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",s)}),he(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function It(n){const{page:e,hash:t}=V(),s=T(!1),o=y(()=>n.value.collapsed!=null),i=y(()=>!!n.value.link),l=T(!1),d=()=>{l.value=q(e.value.relativePath,n.value.link)};O([e,n,t],d),R(d);const v=y(()=>l.value?!0:n.value.items?de(e.value.relativePath,n.value.items):!1),m=y(()=>!!(n.value.items&&n.value.items.length));ee(()=>{s.value=!!(o.value&&n.value.collapsed)}),_e(()=>{(l.value||v.value)&&(s.value=!1)});function L(){o.value&&(s.value=!s.value)}return{collapsed:s,collapsible:o,isLink:i,isActiveLink:l,hasActiveLink:v,hasChildren:m,toggle:L}}function Nt(){const{hasSidebar:n}=U(),e=le("(min-width: 960px)"),t=le("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const ve=[];function He(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function ke(n){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:Mt(t),link:"#"+t.id,level:s}});return At(e,n)}function Mt(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function At(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;n=n.filter(l=>l.level>=s&&l.level<=o),ve.length=0;for(const{element:l,link:d}of n)ve.push({element:l,link:d});const i=[];e:for(let l=0;l=0;v--){const m=n[v];if(m.level{requestAnimationFrame(i),window.addEventListener("scroll",s)}),Qe(()=>{l(location.hash)}),he(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,m=document.body.offsetHeight,L=Math.abs(d+v-m)<1,b=ve.map(({element:S,link:A})=>({link:A,top:Bt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!b.length){l(null);return}if(d<1){l(null);return}if(L){l(b[b.length-1].link);return}let P=null;for(const{link:S,top:A}of b){if(A>d+Ze()+4)break;P=S}l(P)}function l(d){o&&o.classList.remove("active"),d==null?o=null:o=n.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=o;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Bt(n){let e=0;for(;n!==document.body;){if(n===null)return NaN;e+=n.offsetTop,n=n.offsetParent}return e}const Ht=["href","title"],Et=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(n){function e({target:t}){const s=t.href.split("#")[1],o=document.getElementById(decodeURIComponent(s));o==null||o.focus({preventScroll:!0})}return(t,s)=>{const o=W("VPDocOutlineItem",!0);return a(),u("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,E(t.headers,({children:i,link:l,title:d})=>(a(),u("li",null,[p("a",{class:"outline-link",href:l,onClick:e,title:d},I(d),9,Ht),i!=null&&i.length?(a(),$(o,{key:0,headers:i},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Ee=g(Et,[["__scopeId","data-v-3f927ebe"]]),Dt={class:"content"},Ft={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Ot=_({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=V(),s=Te([]);te(()=>{s.value=ke(e.value.outline??t.value.outline)});const o=T(),i=T();return Ct(o,i),(l,d)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:o},[p("div",Dt,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",Ft,I(r(He)(r(t))),1),k(Ee,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),jt=g(Ot,[["__scopeId","data-v-b38bf2ff"]]),Ut={class:"VPDocAsideCarbonAds"},Gt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,s)=>(a(),u("div",Ut,[k(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),zt=n=>(B("data-v-6d7b3c46"),n=n(),H(),n),Kt={class:"VPDocAside"},Rt=zt(()=>p("div",{class:"spacer"},null,-1)),qt=_({__name:"VPDocAside",setup(n){const{theme:e}=V();return(t,s)=>(a(),u("div",Kt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),k(jt),c(t.$slots,"aside-outline-after",{},void 0,!0),Rt,c(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),$(Gt,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):h("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Wt=g(qt,[["__scopeId","data-v-6d7b3c46"]]);function Jt(){const{theme:n,page:e}=V();return y(()=>{const{text:t="Edit this page",pattern:s=""}=n.value.editLink||{};let o;return typeof s=="function"?o=s(e.value):o=s.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function Yt(){const{page:n,theme:e,frontmatter:t}=V();return y(()=>{var m,L,b,P,S,A,C,w;const s=Be(e.value.sidebar,n.value.relativePath),o=Tt(s),i=Xt(o,G=>G.link.replace(/[?#].*$/,"")),l=i.findIndex(G=>q(n.value.relativePath,G.link)),d=((m=e.value.docFooter)==null?void 0:m.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=i[l-1])==null?void 0:b.docFooterText)??((P=i[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=i[l-1])==null?void 0:S.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[l+1])==null?void 0:A.docFooterText)??((C=i[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=i[l+1])==null?void 0:w.link)}}})}function Xt(n,e){const t=new Set;return n.filter(s=>{const o=e(s);return t.has(o)?!1:t.add(o)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&we.test(e.href)||e.target==="_blank");return(o,i)=>(a(),$(D(t.value),{class:N(["VPLink",{link:o.href,"vp-external-link-icon":s.value,"no-icon":o.noIcon}]),href:o.href?r(be)(o.href):void 0,target:o.target??(s.value?"_blank":void 0),rel:o.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Qt={class:"VPLastUpdated"},Zt=["datetime"],xt=_({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:s}=V(),o=y(()=>new Date(t.value.lastUpdated)),i=y(()=>o.value.toISOString()),l=T("");return R(()=>{ee(()=>{var d,v,m;l.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?s.value:void 0,((m=e.value.lastUpdated)==null?void 0:m.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(d,v)=>{var m;return a(),u("p",Qt,[j(I(((m=r(e).lastUpdated)==null?void 0:m.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:i.value},I(l.value),9,Zt)])}}}),en=g(xt,[["__scopeId","data-v-475f71b8"]]),De=n=>(B("data-v-4f9813fa"),n=n(),H(),n),tn={key:0,class:"VPDocFooter"},nn={key:0,class:"edit-info"},on={key:0,class:"edit-link"},sn=De(()=>p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),an={key:1,class:"last-updated"},rn={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},ln=De(()=>p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),cn={class:"pager"},un=["innerHTML"],dn=["innerHTML"],vn={class:"pager"},pn=["innerHTML"],fn=["innerHTML"],hn=_({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:s}=V(),o=Jt(),i=Yt(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),d=y(()=>t.value.lastUpdated),v=y(()=>l.value||d.value||i.value.prev||i.value.next);return(m,L)=>{var b,P,S,A;return v.value?(a(),u("footer",tn,[c(m.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),u("div",nn,[l.value?(a(),u("div",on,[k(F,{class:"edit-link-button",href:r(o).url,"no-icon":!0},{default:f(()=>[sn,j(" "+I(r(o).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(a(),u("div",an,[k(en)])):h("",!0)])):h("",!0),(b=r(i).prev)!=null&&b.link||(P=r(i).next)!=null&&P.link?(a(),u("nav",rn,[ln,p("div",cn,[(S=r(i).prev)!=null&&S.link?(a(),$(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,un),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,dn)]}),_:1},8,["href"])):h("",!0)]),p("div",vn,[(A=r(i).next)!=null&&A.link?(a(),$(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,pn),p("span",{class:"title",innerHTML:r(i).next.text},null,8,fn)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),_n=g(hn,[["__scopeId","data-v-4f9813fa"]]),mn=n=>(B("data-v-83890dd9"),n=n(),H(),n),bn={class:"container"},kn=mn(()=>p("div",{class:"aside-curtain"},null,-1)),$n={class:"aside-container"},gn={class:"aside-content"},yn={class:"content"},Pn={class:"content-container"},Sn={class:"main"},Vn=_({__name:"VPDoc",setup(n){const{theme:e}=V(),t=ne(),{hasSidebar:s,hasAside:o,leftAside:i}=U(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const m=W("Content");return a(),u("div",{class:N(["VPDoc",{"has-sidebar":r(s),"has-aside":r(o)}])},[c(d.$slots,"doc-top",{},void 0,!0),p("div",bn,[r(o)?(a(),u("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[kn,p("div",$n,[p("div",gn,[k(Wt,null,{"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",yn,[p("div",Pn,[c(d.$slots,"doc-before",{},void 0,!0),p("main",Sn,[k(m,{class:N(["vp-doc",[l.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(_n,null,{"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),Ln=g(Vn,[["__scopeId","data-v-83890dd9"]]),Tn=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.href&&we.test(e.href)),s=y(()=>e.tag||e.href?"a":"button");return(o,i)=>(a(),$(D(s.value),{class:N(["VPButton",[o.size,o.theme]]),href:o.href?r(be)(o.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[j(I(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),wn=g(Tn,[["__scopeId","data-v-14206e74"]]),In=["src","alt"],Nn=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const s=W("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",K({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,In)):(a(),u(M,{key:1},[k(s,K({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(s,K({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),x=g(Nn,[["__scopeId","data-v-35a7d0b8"]]),Mn=n=>(B("data-v-955009fc"),n=n(),H(),n),An={class:"container"},Cn={class:"main"},Bn={key:0,class:"name"},Hn=["innerHTML"],En=["innerHTML"],Dn=["innerHTML"],Fn={key:0,class:"actions"},On={key:0,class:"image"},jn={class:"image-container"},Un=Mn(()=>p("div",{class:"image-bg"},null,-1)),Gn=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=Y("hero-image-slot-exists");return(t,s)=>(a(),u("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[p("div",An,[p("div",Cn,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",Bn,[p("span",{innerHTML:t.name,class:"clip"},null,8,Hn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,En)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Dn)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Fn,[(a(!0),u(M,null,E(t.actions,o=>(a(),u("div",{key:o.link,class:"action"},[k(wn,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),u("div",On,[p("div",jn,[Un,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(x,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),zn=g(Gn,[["__scopeId","data-v-955009fc"]]),Kn=_({__name:"VPHomeHero",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).hero?(a(),$(zn,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),Rn=n=>(B("data-v-f5e9645b"),n=n(),H(),n),qn={class:"box"},Wn={key:0,class:"icon"},Jn=["innerHTML"],Yn=["innerHTML"],Xn=["innerHTML"],Qn={key:4,class:"link-text"},Zn={class:"link-text-value"},xn=Rn(()=>p("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),eo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(n){return(e,t)=>(a(),$(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[p("article",qn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",Wn,[k(x,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(x,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Jn)):h("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Yn),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Xn)):h("",!0),e.linkText?(a(),u("div",Qn,[p("p",Zn,[j(I(e.linkText)+" ",1),xn])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),to=g(eo,[["__scopeId","data-v-f5e9645b"]]),no={key:0,class:"VPFeatures"},oo={class:"container"},so={class:"items"},ao=_({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,o)=>s.features?(a(),u("div",no,[p("div",oo,[p("div",so,[(a(!0),u(M,null,E(s.features,i=>(a(),u("div",{key:i.title,class:N(["item",[t.value]])},[k(to,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),ro=g(ao,[["__scopeId","data-v-d0a190d7"]]),io=_({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).features?(a(),$(ro,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):h("",!0)}}),lo=_({__name:"VPHomeContent",setup(n){const{width:e}=xe({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),u("div",{class:"vp-doc container",style:Ie(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),co=g(lo,[["__scopeId","data-v-7a48a447"]]),uo={class:"VPHome"},vo=_({__name:"VPHome",setup(n){const{frontmatter:e}=V();return(t,s)=>{const o=W("Content");return a(),u("div",uo,[c(t.$slots,"home-hero-before",{},void 0,!0),k(Kn,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),k(io),c(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),$(co,{key:0},{default:f(()=>[k(o)]),_:1})):(a(),$(o,{key:1}))])}}}),po=g(vo,[["__scopeId","data-v-cbb6ec48"]]),fo={},ho={class:"VPPage"};function _o(n,e){const t=W("Content");return a(),u("div",ho,[c(n.$slots,"page-top"),k(t),c(n.$slots,"page-bottom")])}const mo=g(fo,[["render",_o]]),bo=_({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>(a(),u("div",{class:N(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?c(o.$slots,"not-found",{key:0},()=>[k(Vt)],!0):r(t).layout==="page"?(a(),$(mo,{key:1},{"page-top":f(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),$(po,{key:2},{"home-hero-before":f(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),$(D(r(t).layout),{key:3})):(a(),$(Ln,{key:4},{"doc-top":f(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ko=g(bo,[["__scopeId","data-v-91765379"]]),$o={class:"container"},go=["innerHTML"],yo=["innerHTML"],Po=_({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>r(e).footer&&r(t).footer!==!1?(a(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(s)}])},[p("div",$o,[r(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,go)):h("",!0),r(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,yo)):h("",!0)])],2)):h("",!0)}}),So=g(Po,[["__scopeId","data-v-c970a860"]]);function Vo(){const{theme:n,frontmatter:e}=V(),t=Te([]),s=y(()=>t.value.length>0);return te(()=>{t.value=ke(e.value.outline??n.value.outline)}),{headers:t,hasLocalNav:s}}const Lo=n=>(B("data-v-bc9dc845"),n=n(),H(),n),To={class:"menu-text"},wo=Lo(()=>p("span",{class:"vpi-chevron-right icon"},null,-1)),Io={class:"header"},No={class:"outline"},Mo=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=V(),s=T(!1),o=T(0),i=T(),l=T();function d(b){var P;(P=i.value)!=null&&P.contains(b.target)||(s.value=!1)}O(s,b=>{if(b){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ce("Escape",()=>{s.value=!1}),te(()=>{s.value=!1});function v(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function m(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Ne(()=>{s.value=!1}))}function L(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Ie({"--vp-vh":o.value+"px"}),ref_key:"main",ref:i},[b.headers.length>0?(a(),u("button",{key:0,onClick:v,class:N({open:s.value})},[p("span",To,I(r(He)(r(t))),1),wo],2)):(a(),u("button",{key:1,onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)),k(pe,{name:"flyout"},{default:f(()=>[s.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:m},[p("div",Io,[p("a",{class:"top-link",href:"#",onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)]),p("div",No,[k(Ee,{headers:b.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),Ao=g(Mo,[["__scopeId","data-v-bc9dc845"]]),Co=n=>(B("data-v-070ab83d"),n=n(),H(),n),Bo={class:"container"},Ho=["aria-expanded"],Eo=Co(()=>p("span",{class:"vpi-align-left menu-icon"},null,-1)),Do={class:"menu-text"},Fo=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U(),{headers:o}=Vo(),{y:i}=Me(),l=T(0);R(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),te(()=>{o.value=ke(t.value.outline??e.value.outline)});const d=y(()=>o.value.length===0),v=y(()=>d.value&&!s.value),m=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:d.value,fixed:v.value}));return(L,b)=>r(t).layout!=="home"&&(!v.value||r(i)>=l.value)?(a(),u("div",{key:0,class:N(m.value)},[p("div",Bo,[r(s)?(a(),u("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>L.$emit("open-menu"))},[Eo,p("span",Do,I(r(e).sidebarMenuLabel||"Menu"),1)],8,Ho)):h("",!0),k(Ao,{headers:r(o),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),Oo=g(Fo,[["__scopeId","data-v-070ab83d"]]);function jo(){const n=T(!1);function e(){n.value=!0,window.addEventListener("resize",o)}function t(){n.value=!1,window.removeEventListener("resize",o)}function s(){n.value?t():e()}function o(){window.outerWidth>=768&&t()}const i=ne();return O(()=>i.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:s}}const Uo={},Go={class:"VPSwitch",type:"button",role:"switch"},zo={class:"check"},Ko={key:0,class:"icon"};function Ro(n,e){return a(),u("button",Go,[p("span",zo,[n.$slots.default?(a(),u("span",Ko,[c(n.$slots,"default",{},void 0,!0)])):h("",!0)])])}const qo=g(Uo,[["render",Ro],["__scopeId","data-v-4a1c76db"]]),Fe=n=>(B("data-v-e40a8bb6"),n=n(),H(),n),Wo=Fe(()=>p("span",{class:"vpi-sun sun"},null,-1)),Jo=Fe(()=>p("span",{class:"vpi-moon moon"},null,-1)),Yo=_({__name:"VPSwitchAppearance",setup(n){const{isDark:e,theme:t}=V(),s=Y("toggle-appearance",()=>{e.value=!e.value}),o=T("");return _e(()=>{o.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,l)=>(a(),$(qo,{title:o.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:f(()=>[Wo,Jo]),_:1},8,["title","aria-checked","onClick"]))}}),$e=g(Yo,[["__scopeId","data-v-e40a8bb6"]]),Xo={key:0,class:"VPNavBarAppearance"},Qo=_({__name:"VPNavBarAppearance",setup(n){const{site:e}=V();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Xo,[k($e)])):h("",!0)}}),Zo=g(Qo,[["__scopeId","data-v-af096f4a"]]),ge=T();let Oe=!1,ie=0;function xo(n){const e=T(!1);if(oe){!Oe&&es(),ie++;const t=O(ge,s=>{var o,i,l;s===n.el.value||(o=n.el.value)!=null&&o.contains(s)?(e.value=!0,(i=n.onFocus)==null||i.call(n)):(e.value=!1,(l=n.onBlur)==null||l.call(n))});he(()=>{t(),ie--,ie||ts()})}return et(e)}function es(){document.addEventListener("focusin",je),Oe=!0,ge.value=document.activeElement}function ts(){document.removeEventListener("focusin",je)}function je(){ge.value=document.activeElement}const ns={class:"VPMenuLink"},os=_({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),u("div",ns,[k(F,{class:N({active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=g(os,[["__scopeId","data-v-8b74d055"]]),ss={class:"VPMenuGroup"},as={key:0,class:"title"},rs=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",ss,[e.text?(a(),u("p",as,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),u(M,null,["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),is=g(rs,[["__scopeId","data-v-48c802d0"]]),ls={class:"VPMenu"},cs={key:0,class:"items"},us=_({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),u("div",ls,[e.items?(a(),u("div",cs,[(a(!0),u(M,null,E(e.items,s=>(a(),u(M,{key:JSON.stringify(s)},["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):"component"in s?(a(),$(D(s.component),K({key:1,ref_for:!0},s.props),null,16)):(a(),$(is,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),ds=g(us,[["__scopeId","data-v-7dd3104a"]]),vs=n=>(B("data-v-e5380155"),n=n(),H(),n),ps=["aria-expanded","aria-label"],fs={key:0,class:"text"},hs=["innerHTML"],_s=vs(()=>p("span",{class:"vpi-chevron-down text-icon"},null,-1)),ms={key:1,class:"vpi-more-horizontal icon"},bs={class:"menu"},ks=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=T(!1),t=T();xo({el:t,onBlur:s});function s(){e.value=!1}return(o,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=l=>e.value=!0),onMouseleave:i[2]||(i[2]=l=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:i[0]||(i[0]=l=>e.value=!e.value)},[o.button||o.icon?(a(),u("span",fs,[o.icon?(a(),u("span",{key:0,class:N([o.icon,"option-icon"])},null,2)):h("",!0),o.button?(a(),u("span",{key:1,innerHTML:o.button},null,8,hs)):h("",!0),_s])):(a(),u("span",ms))],8,ps),p("div",bs,[k(ds,{items:o.items},{default:f(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=g(ks,[["__scopeId","data-v-e5380155"]]),$s=["href","aria-label","innerHTML"],gs=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,o)=>(a(),u("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,$s))}}),ys=g(gs,[["__scopeId","data-v-717b8b75"]]),Ps={class:"VPSocialLinks"},Ss=_({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(a(),u("div",Ps,[(a(!0),u(M,null,E(e.links,({link:s,icon:o,ariaLabel:i})=>(a(),$(ys,{key:s,icon:o,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),Pe=g(Ss,[["__scopeId","data-v-ee7a9424"]]),Vs={key:0,class:"group translations"},Ls={class:"trans-title"},Ts={key:1,class:"group"},ws={class:"item appearance"},Is={class:"label"},Ns={class:"appearance-action"},Ms={key:2,class:"group"},As={class:"item social-links"},Cs=_({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=V(),{localeLinks:s,currentLang:o}=Q({correspondingLink:!0}),i=y(()=>s.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(l,d)=>i.value?(a(),$(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[r(s).length&&r(o).label?(a(),u("div",Vs,[p("p",Ls,I(r(o).label),1),(a(!0),u(M,null,E(r(s),v=>(a(),$(se,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Ts,[p("div",ws,[p("p",Is,I(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",Ns,[k($e)])])])):h("",!0),r(t).socialLinks?(a(),u("div",Ms,[p("div",As,[k(Pe,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),Bs=g(Cs,[["__scopeId","data-v-925effce"]]),Hs=n=>(B("data-v-5dea55bf"),n=n(),H(),n),Es=["aria-expanded"],Ds=Hs(()=>p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)),Fs=[Ds],Os=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(a(),u("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},Fs,10,Es))}}),js=g(Os,[["__scopeId","data-v-5dea55bf"]]),Us=["innerHTML"],Gs=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),$(F,{class:N({VPNavBarMenuLink:!0,active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,Us)]),_:1},8,["class","href","noIcon","target","rel"]))}}),zs=g(Gs,[["__scopeId","data-v-ed5ac1f6"]]),Ks=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const e=n,{page:t}=V(),s=i=>"component"in i?!1:"link"in i?q(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),o=y(()=>s(e.item));return(i,l)=>(a(),$(ye,{class:N({VPNavBarMenuGroup:!0,active:r(q)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||o.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Rs=n=>(B("data-v-e6d46098"),n=n(),H(),n),qs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ws=Rs(()=>p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Js=_({__name:"VPNavBarMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",qs,[Ws,(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(zs,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props),null,16)):(a(),$(Ks,{key:2,item:o},null,8,["item"]))],64))),128))])):h("",!0)}}),Ys=g(Js,[["__scopeId","data-v-e6d46098"]]);function Xs(n){const{localeIndex:e,theme:t}=V();function s(o){var A,C,w;const i=o.split("."),l=(A=t.value.search)==null?void 0:A.options,d=l&&typeof l=="object",v=d&&((w=(C=l.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,m=d&&l.translations||null;let L=v,b=m,P=n;const S=i.pop();for(const G of i){let z=null;const J=P==null?void 0:P[G];J&&(z=P=J);const ae=b==null?void 0:b[G];ae&&(z=b=ae);const re=L==null?void 0:L[G];re&&(z=L=re),J||(P=z),ae||(b=z),re||(L=z)}return(L==null?void 0:L[S])??(b==null?void 0:b[S])??(P==null?void 0:P[S])??""}return s}const Qs=["aria-label"],Zs={class:"DocSearch-Button-Container"},xs=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),ea={class:"DocSearch-Button-Placeholder"},ta=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Se=_({__name:"VPNavBarSearchButton",setup(n){const t=Xs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,o)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",Zs,[xs,p("span",ea,I(r(t)("button.buttonText")),1)]),ta],8,Qs))}}),na={class:"VPNavBarSearch"},oa={id:"local-search"},sa={key:1,id:"docsearch"},aa=_({__name:"VPNavBarSearch",setup(n){const e=tt(()=>nt(()=>import("./VPLocalSearchBox.DrU8J17p.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=V(),o=T(!1),i=T(!1);R(()=>{});function l(){o.value||(o.value=!0,setTimeout(d,16))}function d(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function v(b){const P=b.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const m=T(!1);ce("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),m.value=!0)}),ce("/",b=>{v(b)||(b.preventDefault(),m.value=!0)});const L="local";return(b,P)=>{var S;return a(),u("div",na,[r(L)==="local"?(a(),u(M,{key:0},[m.value?(a(),$(r(e),{key:0,onClose:P[0]||(P[0]=A=>m.value=!1)})):h("",!0),p("div",oa,[k(Se,{onClick:P[1]||(P[1]=A=>m.value=!0)})])],64)):r(L)==="algolia"?(a(),u(M,{key:1},[o.value?(a(),$(r(t),{key:0,algolia:((S=r(s).search)==null?void 0:S.options)??r(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>i.value=!0)},null,8,["algolia"])):h("",!0),i.value?h("",!0):(a(),u("div",sa,[k(Se,{onClick:l})]))],64)):h("",!0)])}}}),ra=_({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),ia=g(ra,[["__scopeId","data-v-164c457f"]]),la=["href","rel","target"],ca={key:1},ua={key:2},da=_({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=V(),{hasSidebar:s}=U(),{currentLang:o}=Q(),i=y(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),l=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,m)=>(a(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(s)}])},[p("a",{class:"title",href:i.value??r(be)(r(o).link),rel:l.value,target:d.value},[c(v.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),$(x,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):h("",!0),r(t).siteTitle?(a(),u("span",ca,I(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),u("span",ua,I(r(e).title),1)):h("",!0),c(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,la)],2))}}),va=g(da,[["__scopeId","data-v-28a961f9"]]),pa={class:"items"},fa={class:"title"},ha=_({__name:"VPNavBarTranslations",setup(n){const{theme:e}=V(),{localeLinks:t,currentLang:s}=Q({correspondingLink:!0});return(o,i)=>r(t).length&&r(s).label?(a(),$(ye,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",pa,[p("p",fa,I(r(s).label),1),(a(!0),u(M,null,E(r(t),l=>(a(),$(se,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),_a=g(ha,[["__scopeId","data-v-c80d9ad0"]]),ma=n=>(B("data-v-822684d1"),n=n(),H(),n),ba={class:"wrapper"},ka={class:"container"},$a={class:"title"},ga={class:"content"},ya={class:"content-body"},Pa=ma(()=>p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1)),Sa=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const e=n,{y:t}=Me(),{hasSidebar:s}=U(),{frontmatter:o}=V(),i=T({});return _e(()=>{i.value={"has-sidebar":s.value,home:o.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),u("div",{class:N(["VPNavBar",i.value])},[p("div",ba,[p("div",ka,[p("div",$a,[k(va,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",ga,[p("div",ya,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(aa,{class:"search"}),k(Ys,{class:"menu"}),k(_a,{class:"translations"}),k(Zo,{class:"appearance"}),k(ia,{class:"social-links"}),k(Bs,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(js,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=v=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),Pa],2))}}),Va=g(Sa,[["__scopeId","data-v-822684d1"]]),La={key:0,class:"VPNavScreenAppearance"},Ta={class:"text"},wa=_({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=V();return(s,o)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",La,[p("p",Ta,I(r(t).darkModeSwitchLabel||"Appearance"),1),k($e)])):h("",!0)}}),Ia=g(wa,[["__scopeId","data-v-ffb44008"]]),Na=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Ma=g(Na,[["__scopeId","data-v-27d04aeb"]]),Aa=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ue=g(Aa,[["__scopeId","data-v-7179dbb7"]]),Ca={class:"VPNavScreenMenuGroupSection"},Ba={key:0,class:"title"},Ha=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",Ca,[e.text?(a(),u("p",Ba,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),$(Ue,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ea=g(Ha,[["__scopeId","data-v-4b8941ac"]]),Da=n=>(B("data-v-875057a5"),n=n(),H(),n),Fa=["aria-controls","aria-expanded"],Oa=["innerHTML"],ja=Da(()=>p("span",{class:"vpi-plus button-icon"},null,-1)),Ua=["id"],Ga={key:0,class:"item"},za={key:1,class:"item"},Ka={key:2,class:"group"},Ra=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(i,l)=>(a(),u("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:o},[p("span",{class:"button-text",innerHTML:i.text},null,8,Oa),ja],8,Fa),p("div",{id:s.value,class:"items"},[(a(!0),u(M,null,E(i.items,d=>(a(),u(M,{key:JSON.stringify(d)},["link"in d?(a(),u("div",Ga,[k(Ue,{item:d},null,8,["item"])])):"component"in d?(a(),u("div",za,[(a(),$(D(d.component),K({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),u("div",Ka,[k(Ea,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,Ua)],2))}}),qa=g(Ra,[["__scopeId","data-v-875057a5"]]),Wa={key:0,class:"VPNavScreenMenu"},Ja=_({__name:"VPNavScreenMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",Wa,[(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(Ma,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(a(),$(qa,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),Ya=_({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),Ge=n=>(B("data-v-362991c2"),n=n(),H(),n),Xa=Ge(()=>p("span",{class:"vpi-languages icon lang"},null,-1)),Qa=Ge(()=>p("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Za={class:"list"},xa=_({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=Q({correspondingLink:!0}),s=T(!1);function o(){s.value=!s.value}return(i,l)=>r(e).length&&r(t).label?(a(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[p("button",{class:"title",onClick:o},[Xa,j(" "+I(r(t).label)+" ",1),Qa]),p("ul",Za,[(a(!0),u(M,null,E(r(e),d=>(a(),u("li",{key:d.link,class:"item"},[k(F,{class:"link",href:d.link},{default:f(()=>[j(I(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),er=g(xa,[["__scopeId","data-v-362991c2"]]),tr={class:"container"},nr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=T(null),t=Ae(oe?document.body:null);return(s,o)=>(a(),$(pe,{name:"fade",onEnter:o[0]||(o[0]=i=>t.value=!0),onAfterLeave:o[1]||(o[1]=i=>t.value=!1)},{default:f(()=>[s.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",tr,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),k(Ja,{class:"menu"}),k(er,{class:"translations"}),k(Ia,{class:"appearance"}),k(Ya,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),or=g(nr,[["__scopeId","data-v-833aabba"]]),sr={key:0,class:"VPNav"},ar=_({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=jo(),{frontmatter:o}=V(),i=y(()=>o.value.navbar!==!1);return me("close-screen",t),ee(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,d)=>i.value?(a(),u("header",sr,[k(Va,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(or,{open:r(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),rr=g(ar,[["__scopeId","data-v-f1e365da"]]),ze=n=>(B("data-v-196b2e5f"),n=n(),H(),n),ir=["role","tabindex"],lr=ze(()=>p("div",{class:"indicator"},null,-1)),cr=ze(()=>p("span",{class:"vpi-chevron-right caret-icon"},null,-1)),ur=[cr],dr={key:1,class:"items"},vr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:s,isLink:o,isActiveLink:i,hasActiveLink:l,hasChildren:d,toggle:v}=It(y(()=>e.item)),m=y(()=>d.value?"section":"div"),L=y(()=>o.value?"a":"div"),b=y(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>o.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":o.value},{"is-active":i.value},{"has-active":l.value}]);function A(w){"key"in w&&w.key!=="Enter"||!e.item.link&&v()}function C(){e.item.link&&v()}return(w,G)=>{const z=W("VPSidebarItem",!0);return a(),$(D(m.value),{class:N(["VPSidebarItem",S.value])},{default:f(()=>[w.item.text?(a(),u("div",K({key:0,class:"item",role:P.value},st(w.item.items?{click:A,keydown:A}:{},!0),{tabindex:w.item.items&&0}),[lr,w.item.link?(a(),$(F,{key:0,tag:L.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:f(()=>[(a(),$(D(b.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(D(b.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:ot(C,["enter"]),tabindex:"0"},ur,32)):h("",!0)],16,ir)):h("",!0),w.item.items&&w.item.items.length?(a(),u("div",dr,[w.depth<5?(a(!0),u(M,{key:0},E(w.item.items,J=>(a(),$(z,{key:J.text,item:J,depth:w.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),pr=g(vr,[["__scopeId","data-v-196b2e5f"]]),fr=_({__name:"VPSidebarGroup",props:{items:{}},setup(n){const e=T(!0);let t=null;return R(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),at(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,o)=>(a(!0),u(M,null,E(s.items,i=>(a(),u("div",{key:i.text,class:N(["group",{"no-transition":e.value}])},[k(pr,{item:i,depth:0},null,8,["item"])],2))),128))}}),hr=g(fr,[["__scopeId","data-v-9e426adc"]]),Ke=n=>(B("data-v-18756405"),n=n(),H(),n),_r=Ke(()=>p("div",{class:"curtain"},null,-1)),mr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},br=Ke(()=>p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),kr=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const{sidebarGroups:e,hasSidebar:t}=U(),s=n,o=T(null),i=Ae(oe?document.body:null);O([s,o],()=>{var d;s.open?(i.value=!0,(d=o.value)==null||d.focus()):i.value=!1},{immediate:!0,flush:"post"});const l=T(0);return O(e,()=>{l.value+=1},{deep:!0}),(d,v)=>r(t)?(a(),u("aside",{key:0,class:N(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:o,onClick:v[0]||(v[0]=rt(()=>{},["stop"]))},[_r,p("nav",mr,[br,c(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),$(hr,{items:r(e),key:l.value},null,8,["items"])),c(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),$r=g(kr,[["__scopeId","data-v-18756405"]]),gr=_({__name:"VPSkipLink",setup(n){const e=ne(),t=T();O(()=>e.path,()=>t.value.focus());function s({target:o}){const i=document.getElementById(decodeURIComponent(o.hash).slice(1));if(i){const l=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",l)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",l),i.focus(),window.scrollTo(0,0)}}return(o,i)=>(a(),u(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),yr=g(gr,[["__scopeId","data-v-c3508ec8"]]),Pr=_({__name:"Layout",setup(n){const{isOpen:e,open:t,close:s}=U(),o=ne();O(()=>o.path,s),wt(e,s);const{frontmatter:i}=V(),l=Ce(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(v,m)=>{const L=W("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:N(["Layout",r(i).pageClass])},[c(v.$slots,"layout-top",{},void 0,!0),k(yr),k(pt,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),k(rr,null,{"nav-bar-title-before":f(()=>[c(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(Oo,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),k($r,{open:r(e)},{"sidebar-nav-before":f(()=>[c(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(ko,null,{"page-top":f(()=>[c(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(So),c(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(L,{key:1}))}}}),Sr=g(Pr,[["__scopeId","data-v-a9a9e638"]]),Ve={Layout:Sr,enhanceApp:({app:n})=>{n.component("Badge",ut)}},Vr=n=>{if(typeof document>"u")return{stabilizeScrollPosition:o=>async(...i)=>o(...i)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...o)=>{const i=s(...o),l=n.value;if(!l)return i;const d=l.offsetTop-e.scrollTop;return await Ne(),e.scrollTop=l.offsetTop-d,i}}},Re="vitepress:tabSharedState",X=typeof localStorage<"u"?localStorage:null,qe="vitepress:tabsSharedState",Lr=()=>{const n=X==null?void 0:X.getItem(qe);if(n)try{return JSON.parse(n)}catch{}return{}},Tr=n=>{X&&X.setItem(qe,JSON.stringify(n))},wr=n=>{const e=it({});O(()=>e.content,(t,s)=>{t&&s&&Tr(t)},{deep:!0}),n.provide(Re,e)},Ir=(n,e)=>{const t=Y(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");R(()=>{t.content||(t.content=Lr())});const s=T(),o=y({get(){var v;const l=e.value,d=n.value;if(l){const m=(v=t.content)==null?void 0:v[l];if(m&&d.includes(m))return m}else{const m=s.value;if(m)return m}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):s.value=l}});return{selected:o,select:l=>{o.value=l}}};let Le=0;const Nr=()=>(Le++,""+Le);function Mr(){const n=Ce();return y(()=>{var s;const t=(s=n.default)==null?void 0:s.call(n);return t?t.filter(o=>typeof o.type=="object"&&"__name"in o.type&&o.type.__name==="PluginTabsTab"&&o.props).map(o=>{var i;return(i=o.props)==null?void 0:i.label}):[]})}const We="vitepress:tabSingleState",Ar=n=>{me(We,n)},Cr=()=>{const n=Y(We);if(!n)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return n},Br={class:"plugin-tabs"},Hr=["id","aria-selected","aria-controls","tabindex","onClick"],Er=_({__name:"PluginTabs",props:{sharedStateKey:{}},setup(n){const e=n,t=Mr(),{selected:s,select:o}=Ir(t,lt(e,"sharedStateKey")),i=T(),{stabilizeScrollPosition:l}=Vr(i),d=l(o),v=T([]),m=b=>{var A;const P=t.value.indexOf(s.value);let S;b.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:b.key==="ArrowRight"&&(S=P(a(),u("div",Br,[p("div",{ref_key:"tablist",ref:i,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:m},[(a(!0),u(M,null,E(r(t),S=>(a(),u("button",{id:`tab-${S}-${r(L)}`,ref_for:!0,ref_key:"buttonRefs",ref:v,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===r(s),"aria-controls":`panel-${S}-${r(L)}`,tabindex:S===r(s)?0:-1,onClick:()=>r(d)(S)},I(S),9,Hr))),128))],544),c(b.$slots,"default")]))}}),Dr=["id","aria-labelledby"],Fr=_({__name:"PluginTabsTab",props:{label:{}},setup(n){const{uid:e,selected:t}=Cr();return(s,o)=>r(t)===s.label?(a(),u("div",{key:0,id:`panel-${s.label}-${r(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${r(e)}`},[c(s.$slots,"default",{},void 0,!0)],8,Dr)):h("",!0)}}),Or=g(Fr,[["__scopeId","data-v-9b0d03d2"]]),jr=n=>{wr(n),n.component("PluginTabs",Er),n.component("PluginTabsTab",Or)},Gr={extends:Ve,Layout(){return ct(Ve.Layout,null,{})},enhanceApp({app:n,router:e,siteData:t}){jr(n)}};export{Gr as R,Xs as c,V as u}; diff --git a/dev/assets/wdmpxci.CULn5saZ.png b/dev/assets/cqbhmxs.CULn5saZ.png similarity index 100% rename from dev/assets/wdmpxci.CULn5saZ.png rename to dev/assets/cqbhmxs.CULn5saZ.png diff --git a/dev/assets/cqiofsw.C4S9aMke.png b/dev/assets/cqiofsw.C4S9aMke.png new file mode 100644 index 000000000..aa35634a1 Binary files /dev/null and b/dev/assets/cqiofsw.C4S9aMke.png differ diff --git a/dev/assets/yyuepdy.Dab1-ETk.png b/dev/assets/cwuahcp.Dab1-ETk.png similarity index 100% rename from dev/assets/yyuepdy.Dab1-ETk.png rename to dev/assets/cwuahcp.Dab1-ETk.png diff --git a/dev/assets/gbzmfml.CLtpJ5Wb.png b/dev/assets/dohjiba.CLtpJ5Wb.png similarity index 100% rename from dev/assets/gbzmfml.CLtpJ5Wb.png rename to dev/assets/dohjiba.CLtpJ5Wb.png diff --git a/dev/assets/drdsbxr.CVInGu0N.png b/dev/assets/drdsbxr.CVInGu0N.png new file mode 100644 index 000000000..52700536d Binary files /dev/null and b/dev/assets/drdsbxr.CVInGu0N.png differ diff --git a/dev/assets/dulgnhm.D9gdz71V.png b/dev/assets/dulgnhm.D9gdz71V.png deleted file mode 100644 index d1990c617..000000000 Binary files a/dev/assets/dulgnhm.D9gdz71V.png and /dev/null differ diff --git a/dev/assets/eftkkye.Jfjywzde.png b/dev/assets/eftkkye.Jfjywzde.png deleted file mode 100644 index 7a9458171..000000000 Binary files a/dev/assets/eftkkye.Jfjywzde.png and /dev/null differ diff --git a/dev/assets/yukudfh.BD0hVfse.png b/dev/assets/ehapsdu.BD0hVfse.png similarity index 100% rename from dev/assets/yukudfh.BD0hVfse.png rename to dev/assets/ehapsdu.BD0hVfse.png diff --git a/dev/assets/acxdwnh.CgiryX2p.png b/dev/assets/ejbycwd.CgiryX2p.png similarity index 100% rename from dev/assets/acxdwnh.CgiryX2p.png rename to dev/assets/ejbycwd.CgiryX2p.png diff --git a/dev/assets/qwhcpuw.DwqDxlAG.png b/dev/assets/estqxzh.DwqDxlAG.png similarity index 100% rename from dev/assets/qwhcpuw.DwqDxlAG.png rename to dev/assets/estqxzh.DwqDxlAG.png diff --git a/dev/assets/iqedrns.0OJvb21A.png b/dev/assets/esxwezo.0OJvb21A.png similarity index 100% rename from dev/assets/iqedrns.0OJvb21A.png rename to dev/assets/esxwezo.0OJvb21A.png diff --git a/dev/assets/experiments_accurate_accumulators.md.tm23aPDo.js b/dev/assets/experiments_accurate_accumulators.md.0APfZPiv.js similarity index 98% rename from dev/assets/experiments_accurate_accumulators.md.tm23aPDo.js rename to dev/assets/experiments_accurate_accumulators.md.0APfZPiv.js index b9d15d7dd..afa5c3972 100644 --- a/dev/assets/experiments_accurate_accumulators.md.tm23aPDo.js +++ b/dev/assets/experiments_accurate_accumulators.md.0APfZPiv.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),e={name:"experiments/accurate_accumulators.md"},n=t(`

Accurate accumulation

Accurate arithmetic is a technique which allows you to calculate using more precision than the provided numeric type.

We will use the accurate sum routines from AccurateArithmetic.jl to show the difference!

julia
import GeometryOps as GO, GeoInterface as GI
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),e={name:"experiments/accurate_accumulators.md"},n=t(`

Accurate accumulation

Accurate arithmetic is a technique which allows you to calculate using more precision than the provided numeric type.

We will use the accurate sum routines from AccurateArithmetic.jl to show the difference!

julia
import GeometryOps as GO, GeoInterface as GI
 using GeoJSON
 using AccurateArithmetic
 using NaturalEarth
diff --git a/dev/assets/experiments_accurate_accumulators.md.tm23aPDo.lean.js b/dev/assets/experiments_accurate_accumulators.md.0APfZPiv.lean.js
similarity index 73%
rename from dev/assets/experiments_accurate_accumulators.md.tm23aPDo.lean.js
rename to dev/assets/experiments_accurate_accumulators.md.0APfZPiv.lean.js
index fea74a0cb..22bccb069 100644
--- a/dev/assets/experiments_accurate_accumulators.md.tm23aPDo.lean.js
+++ b/dev/assets/experiments_accurate_accumulators.md.0APfZPiv.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),e={name:"experiments/accurate_accumulators.md"},n=t("",16),l=[n];function h(p,k,d,r,c,g){return a(),i("div",null,l)}const u=s(e,[["render",h]]);export{o as __pageData,u as default};
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),e={name:"experiments/accurate_accumulators.md"},n=t("",16),l=[n];function h(p,k,d,r,c,g){return a(),i("div",null,l)}const u=s(e,[["render",h]]);export{o as __pageData,u as default};
diff --git a/dev/assets/experiments_predicates.md.Bi05OR81.js b/dev/assets/experiments_predicates.md.DKvpluJ4.js
similarity index 99%
rename from dev/assets/experiments_predicates.md.Bi05OR81.js
rename to dev/assets/experiments_predicates.md.DKvpluJ4.js
index 17f6b7bcf..823dc45f2 100644
--- a/dev/assets/experiments_predicates.md.Bi05OR81.js
+++ b/dev/assets/experiments_predicates.md.DKvpluJ4.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.BBBwll2u.js";const k="/GeometryOps.jl/dev/assets/dulgnhm.D9gdz71V.png",C=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),n={name:"experiments/predicates.md"},p=h(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
+import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.Bvl2j7qw.js";const k="/GeometryOps.jl/dev/assets/drdsbxr.CVInGu0N.png",C=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),n={name:"experiments/predicates.md"},p=h(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
 import GeometryOps as GO, GeoInterface as GI, LibGEOS as LG
 import ExactPredicates
 using MultiFloats
diff --git a/dev/assets/experiments_predicates.md.Bi05OR81.lean.js b/dev/assets/experiments_predicates.md.DKvpluJ4.lean.js
similarity index 73%
rename from dev/assets/experiments_predicates.md.Bi05OR81.lean.js
rename to dev/assets/experiments_predicates.md.DKvpluJ4.lean.js
index bfd571eb7..8284cb22c 100644
--- a/dev/assets/experiments_predicates.md.Bi05OR81.lean.js
+++ b/dev/assets/experiments_predicates.md.DKvpluJ4.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.BBBwll2u.js";const k="/GeometryOps.jl/dev/assets/dulgnhm.D9gdz71V.png",C=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),n={name:"experiments/predicates.md"},p=h("",10),l=[p];function t(E,e,r,d,g,y){return a(),i("div",null,l)}const A=s(n,[["render",t]]);export{C as __pageData,A as default};
+import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.Bvl2j7qw.js";const k="/GeometryOps.jl/dev/assets/drdsbxr.CVInGu0N.png",C=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),n={name:"experiments/predicates.md"},p=h("",10),l=[p];function t(E,e,r,d,g,y){return a(),i("div",null,l)}const A=s(n,[["render",t]]);export{C as __pageData,A as default};
diff --git a/dev/assets/explanations_crs.md.f61KoUcJ.js b/dev/assets/explanations_crs.md.5TweEyor.js
similarity index 83%
rename from dev/assets/explanations_crs.md.f61KoUcJ.js
rename to dev/assets/explanations_crs.md.5TweEyor.js
index e5ce41623..3a353c432 100644
--- a/dev/assets/explanations_crs.md.f61KoUcJ.js
+++ b/dev/assets/explanations_crs.md.5TweEyor.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a}from"./chunks/framework.BBBwll2u.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
+import{_ as e,c as t,o as a}from"./chunks/framework.Bvl2j7qw.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
diff --git a/dev/assets/explanations_crs.md.f61KoUcJ.lean.js b/dev/assets/explanations_crs.md.5TweEyor.lean.js
similarity index 83%
rename from dev/assets/explanations_crs.md.f61KoUcJ.lean.js
rename to dev/assets/explanations_crs.md.5TweEyor.lean.js
index e5ce41623..3a353c432 100644
--- a/dev/assets/explanations_crs.md.f61KoUcJ.lean.js
+++ b/dev/assets/explanations_crs.md.5TweEyor.lean.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a}from"./chunks/framework.BBBwll2u.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
+import{_ as e,c as t,o as a}from"./chunks/framework.Bvl2j7qw.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
diff --git a/dev/assets/explanations_paradigms.md.BuVFy2Z8.js b/dev/assets/explanations_paradigms.md.BLuSsrj0.js
similarity index 97%
rename from dev/assets/explanations_paradigms.md.BuVFy2Z8.js
rename to dev/assets/explanations_paradigms.md.BLuSsrj0.js
index b138d2efe..9261e3ada 100644
--- a/dev/assets/explanations_paradigms.md.BuVFy2Z8.js
+++ b/dev/assets/explanations_paradigms.md.BLuSsrj0.js
@@ -1 +1 @@
-import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),i={name:"explanations/paradigms.md"},s=o('

Paradigms

GeometryOps exposes functions like apply and applyreduce, as well as the fix and prepare APIs, that represent paradigms of programming, by which we mean the ability to program in a certain way, and in so doing, fit neatly into the tools we've built without needing to re-implement the wheel.

Below, we'll describe some of the foundational paradigms of GeometryOps, and why you should care!

apply

The apply function allows you to decompose a given collection of geometries down to a certain level, operate on it, and reconstruct it back to the same nested form as the original. In general, its invocation is:

julia
apply(f, trait::Trait, geom)

Functionally, it's similar to map in the way you apply it to geometries - except that you tell it at which level it should stop, by passing a trait to it.

apply will start by decomposing the geometry, feature, featurecollection, iterable, or table that you pass to it, and stop when it encounters a geometry for which GI.trait(geom) isa Trait. This encompasses unions of traits especially, but beware that any geometry which is not explicitly handled, and hits GI.PointTrait, will cause an error.

apply is unlike map in that it returns reconstructed geometries, instead of the raw output of the function. If you want a purely map-like behaviour, like calculating the length of each linestring in your feature collection, then call GO.flatten(f, trait, geom), which will decompose each geometry to the given trait and apply f to it, returning the decomposition as a flattened vector.

applyreduce

applyreduce is like the previous map-based approach that we mentioned, except that it reduces the result of f by op. Note that applyreduce does not guarantee associativity, so it's best to have typeof(init) == returntype(op).

fix and prepare

The fix and prepare paradigms are different from apply, though they are built on top of it. They involve the use of structs as "actions", where a constructed object indicates an action that should be taken. A trait like interface prescribes the level (polygon, linestring, point, etc) at which each action should be applied.

In general, the idea here is to be able to invoke several actions efficiently and simultaneously, for example when correcting invalid geometries, or instantiating a Prepared geometry with several preparations (sorted edge lists, rtrees, monotone chains, etc.)

',14),n=[s];function r(c,d,p,l,h,u){return t(),a("div",null,n)}const g=e(i,[["render",r]]);export{y as __pageData,g as default}; +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),i={name:"explanations/paradigms.md"},s=o('

Paradigms

GeometryOps exposes functions like apply and applyreduce, as well as the fix and prepare APIs, that represent paradigms of programming, by which we mean the ability to program in a certain way, and in so doing, fit neatly into the tools we've built without needing to re-implement the wheel.

Below, we'll describe some of the foundational paradigms of GeometryOps, and why you should care!

apply

The apply function allows you to decompose a given collection of geometries down to a certain level, operate on it, and reconstruct it back to the same nested form as the original. In general, its invocation is:

julia
apply(f, trait::Trait, geom)

Functionally, it's similar to map in the way you apply it to geometries - except that you tell it at which level it should stop, by passing a trait to it.

apply will start by decomposing the geometry, feature, featurecollection, iterable, or table that you pass to it, and stop when it encounters a geometry for which GI.trait(geom) isa Trait. This encompasses unions of traits especially, but beware that any geometry which is not explicitly handled, and hits GI.PointTrait, will cause an error.

apply is unlike map in that it returns reconstructed geometries, instead of the raw output of the function. If you want a purely map-like behaviour, like calculating the length of each linestring in your feature collection, then call GO.flatten(f, trait, geom), which will decompose each geometry to the given trait and apply f to it, returning the decomposition as a flattened vector.

applyreduce

applyreduce is like the previous map-based approach that we mentioned, except that it reduces the result of f by op. Note that applyreduce does not guarantee associativity, so it's best to have typeof(init) == returntype(op).

fix and prepare

The fix and prepare paradigms are different from apply, though they are built on top of it. They involve the use of structs as "actions", where a constructed object indicates an action that should be taken. A trait like interface prescribes the level (polygon, linestring, point, etc) at which each action should be applied.

In general, the idea here is to be able to invoke several actions efficiently and simultaneously, for example when correcting invalid geometries, or instantiating a Prepared geometry with several preparations (sorted edge lists, rtrees, monotone chains, etc.)

',14),n=[s];function r(c,d,p,l,h,u){return t(),a("div",null,n)}const g=e(i,[["render",r]]);export{y as __pageData,g as default}; diff --git a/dev/assets/explanations_paradigms.md.BuVFy2Z8.lean.js b/dev/assets/explanations_paradigms.md.BLuSsrj0.lean.js similarity index 70% rename from dev/assets/explanations_paradigms.md.BuVFy2Z8.lean.js rename to dev/assets/explanations_paradigms.md.BLuSsrj0.lean.js index 65b9e109d..76db68748 100644 --- a/dev/assets/explanations_paradigms.md.BuVFy2Z8.lean.js +++ b/dev/assets/explanations_paradigms.md.BLuSsrj0.lean.js @@ -1 +1 @@ -import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),i={name:"explanations/paradigms.md"},s=o("",14),n=[s];function r(c,d,p,l,h,u){return t(),a("div",null,n)}const g=e(i,[["render",r]]);export{y as __pageData,g as default}; +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),i={name:"explanations/paradigms.md"},s=o("",14),n=[s];function r(c,d,p,l,h,u){return t(),a("div",null,n)}const g=e(i,[["render",r]]);export{y as __pageData,g as default}; diff --git a/dev/assets/explanations_peculiarities.md.DSyf0m1z.js b/dev/assets/explanations_peculiarities.md.K2z-L1z_.js similarity index 96% rename from dev/assets/explanations_peculiarities.md.DSyf0m1z.js rename to dev/assets/explanations_peculiarities.md.K2z-L1z_.js index 2e510b017..ff86d971b 100644 --- a/dev/assets/explanations_peculiarities.md.DSyf0m1z.js +++ b/dev/assets/explanations_peculiarities.md.K2z-L1z_.js @@ -1 +1 @@ -import{_ as e,c as o,o as t,a7 as a}from"./chunks/framework.BBBwll2u.js";const m=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),r={name:"explanations/peculiarities.md"},n=a('

Peculiarities

What does apply return and why?

apply returns the target geometries returned by f, whatever type/package they are from, but geometries, features or feature collections that wrapped the target are replaced with GeoInterace.jl wrappers with matching GeoInterface.trait to the originals. All non-geointerface iterables become Arrays. Tables.jl compatible tables are converted either back to the original type if a Tables.materializer is defined, and if not then returned as generic NamedTuple column tables (i.e., a NamedTuple of vectors).

It is recommended for consistency that f returns GeoInterface geometries unless there is a performance/conversion overhead to doing that.

Why do you want me to provide a target in set operations?

In polygon set operations like intersection, difference, and union, many different geometry types may be obtained - depending on the relationship between the polygons. For example, when performing an union on two nonintersecting polygons, one would technically have two disjoint polygons as an output.

We use the target keyword to allow the user to control which kinds of geometry they want back. For example, setting target to PolygonTrait will cause a vector of polygons to be returned (this is the only currently supported behaviour). In future, we may implement MultiPolygonTrait or GeometryCollectionTrait targets which will return a single geometry, as LibGEOS and ArchGDAL do.

This also allows for a lot more type stability - when you ask for polygons, we won't return a geometrycollection with line segments. Especially in simulation workflows, this is excellent for simplified data processing.

_True and _False (or BoolsAsTypes)

Warning

These are internals and explicitly not public API, meaning they may change at any time!

When dispatch can be controlled by the value of a boolean variable, this introduces type instability. Instead of introducing type instability, we chose to encode our boolean decision variables, like threaded and calc_extent in apply, as types. This allows the compiler to reason about what will happen, and call the correct compiled method, in a stable way without worrying about

',11),i=[n];function s(l,c,d,p,h,u){return t(),o("div",null,i)}const g=e(r,[["render",s]]);export{m as __pageData,g as default}; +import{_ as e,c as o,o as t,a7 as a}from"./chunks/framework.Bvl2j7qw.js";const m=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),r={name:"explanations/peculiarities.md"},n=a('

Peculiarities

What does apply return and why?

apply returns the target geometries returned by f, whatever type/package they are from, but geometries, features or feature collections that wrapped the target are replaced with GeoInterace.jl wrappers with matching GeoInterface.trait to the originals. All non-geointerface iterables become Arrays. Tables.jl compatible tables are converted either back to the original type if a Tables.materializer is defined, and if not then returned as generic NamedTuple column tables (i.e., a NamedTuple of vectors).

It is recommended for consistency that f returns GeoInterface geometries unless there is a performance/conversion overhead to doing that.

Why do you want me to provide a target in set operations?

In polygon set operations like intersection, difference, and union, many different geometry types may be obtained - depending on the relationship between the polygons. For example, when performing an union on two nonintersecting polygons, one would technically have two disjoint polygons as an output.

We use the target keyword to allow the user to control which kinds of geometry they want back. For example, setting target to PolygonTrait will cause a vector of polygons to be returned (this is the only currently supported behaviour). In future, we may implement MultiPolygonTrait or GeometryCollectionTrait targets which will return a single geometry, as LibGEOS and ArchGDAL do.

This also allows for a lot more type stability - when you ask for polygons, we won't return a geometrycollection with line segments. Especially in simulation workflows, this is excellent for simplified data processing.

_True and _False (or BoolsAsTypes)

Warning

These are internals and explicitly not public API, meaning they may change at any time!

When dispatch can be controlled by the value of a boolean variable, this introduces type instability. Instead of introducing type instability, we chose to encode our boolean decision variables, like threaded and calc_extent in apply, as types. This allows the compiler to reason about what will happen, and call the correct compiled method, in a stable way without worrying about

',11),i=[n];function s(l,c,d,p,h,u){return t(),o("div",null,i)}const g=e(r,[["render",s]]);export{m as __pageData,g as default}; diff --git a/dev/assets/explanations_peculiarities.md.DSyf0m1z.lean.js b/dev/assets/explanations_peculiarities.md.K2z-L1z_.lean.js similarity index 71% rename from dev/assets/explanations_peculiarities.md.DSyf0m1z.lean.js rename to dev/assets/explanations_peculiarities.md.K2z-L1z_.lean.js index 36bb171be..f771d1717 100644 --- a/dev/assets/explanations_peculiarities.md.DSyf0m1z.lean.js +++ b/dev/assets/explanations_peculiarities.md.K2z-L1z_.lean.js @@ -1 +1 @@ -import{_ as e,c as o,o as t,a7 as a}from"./chunks/framework.BBBwll2u.js";const m=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),r={name:"explanations/peculiarities.md"},n=a("",11),i=[n];function s(l,c,d,p,h,u){return t(),o("div",null,i)}const g=e(r,[["render",s]]);export{m as __pageData,g as default}; +import{_ as e,c as o,o as t,a7 as a}from"./chunks/framework.Bvl2j7qw.js";const m=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),r={name:"explanations/peculiarities.md"},n=a("",11),i=[n];function s(l,c,d,p,h,u){return t(),o("div",null,i)}const g=e(r,[["render",s]]);export{m as __pageData,g as default}; diff --git a/dev/assets/explanations_winding_order.md.Cv2ddiWJ.js b/dev/assets/explanations_winding_order.md.C3ZQ8HOE.js similarity index 84% rename from dev/assets/explanations_winding_order.md.Cv2ddiWJ.js rename to dev/assets/explanations_winding_order.md.C3ZQ8HOE.js index b7e495e9f..d8d7965f6 100644 --- a/dev/assets/explanations_winding_order.md.Cv2ddiWJ.js +++ b/dev/assets/explanations_winding_order.md.C3ZQ8HOE.js @@ -1 +1 @@ -import{_ as e,c as n,o as t}from"./chunks/framework.BBBwll2u.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; +import{_ as e,c as n,o as t}from"./chunks/framework.Bvl2j7qw.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; diff --git a/dev/assets/explanations_winding_order.md.Cv2ddiWJ.lean.js b/dev/assets/explanations_winding_order.md.C3ZQ8HOE.lean.js similarity index 84% rename from dev/assets/explanations_winding_order.md.Cv2ddiWJ.lean.js rename to dev/assets/explanations_winding_order.md.C3ZQ8HOE.lean.js index b7e495e9f..d8d7965f6 100644 --- a/dev/assets/explanations_winding_order.md.Cv2ddiWJ.lean.js +++ b/dev/assets/explanations_winding_order.md.C3ZQ8HOE.lean.js @@ -1 +1 @@ -import{_ as e,c as n,o as t}from"./chunks/framework.BBBwll2u.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; +import{_ as e,c as n,o as t}from"./chunks/framework.Bvl2j7qw.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; diff --git a/dev/assets/oyxabac.DaovVbE6.png b/dev/assets/fhbrvza.DaovVbE6.png similarity index 100% rename from dev/assets/oyxabac.DaovVbE6.png rename to dev/assets/fhbrvza.DaovVbE6.png diff --git a/dev/assets/brrwtbk.mCtKcWOr.png b/dev/assets/fhzdolk.mCtKcWOr.png similarity index 100% rename from dev/assets/brrwtbk.mCtKcWOr.png rename to dev/assets/fhzdolk.mCtKcWOr.png diff --git a/dev/assets/fkqxeno.CxZYc1mT.png b/dev/assets/fkqxeno.CxZYc1mT.png new file mode 100644 index 000000000..319f6228f Binary files /dev/null and b/dev/assets/fkqxeno.CxZYc1mT.png differ diff --git a/dev/assets/xowbqpo.lu4jwpi-.png b/dev/assets/gcvvjgp.lu4jwpi-.png similarity index 100% rename from dev/assets/xowbqpo.lu4jwpi-.png rename to dev/assets/gcvvjgp.lu4jwpi-.png diff --git a/dev/assets/dtpvufq.-VpeHhXX.png b/dev/assets/ghlpogr.-VpeHhXX.png similarity index 100% rename from dev/assets/dtpvufq.-VpeHhXX.png rename to dev/assets/ghlpogr.-VpeHhXX.png diff --git a/dev/assets/tpepvdl.CG4dr3Lx.png b/dev/assets/gwvldbs.CG4dr3Lx.png similarity index 100% rename from dev/assets/tpepvdl.CG4dr3Lx.png rename to dev/assets/gwvldbs.CG4dr3Lx.png diff --git a/dev/assets/ijkjdaz.BEFUMtlf.png b/dev/assets/hlltgdn.BEFUMtlf.png similarity index 100% rename from dev/assets/ijkjdaz.BEFUMtlf.png rename to dev/assets/hlltgdn.BEFUMtlf.png diff --git a/dev/assets/tuvqqqw.DeeQUply.png b/dev/assets/hmsbhqf.DeeQUply.png similarity index 100% rename from dev/assets/tuvqqqw.DeeQUply.png rename to dev/assets/hmsbhqf.DeeQUply.png diff --git a/dev/assets/mxehgnq.Bglvb-jp.png b/dev/assets/htontks.Bglvb-jp.png similarity index 100% rename from dev/assets/mxehgnq.Bglvb-jp.png rename to dev/assets/htontks.Bglvb-jp.png diff --git a/dev/assets/dgvrgxv.3UVIT8DR.png b/dev/assets/hvjpftj.3UVIT8DR.png similarity index 100% rename from dev/assets/dgvrgxv.3UVIT8DR.png rename to dev/assets/hvjpftj.3UVIT8DR.png diff --git a/dev/assets/fwyxcbl._0R9BbFk.png b/dev/assets/hxadaxf._0R9BbFk.png similarity index 100% rename from dev/assets/fwyxcbl._0R9BbFk.png rename to dev/assets/hxadaxf._0R9BbFk.png diff --git a/dev/assets/index.md.DvEQFP4N.js b/dev/assets/index.md.bDKzXHR2.js similarity index 96% rename from dev/assets/index.md.DvEQFP4N.js rename to dev/assets/index.md.bDKzXHR2.js index 3281864a7..5034bc092 100644 --- a/dev/assets/index.md.DvEQFP4N.js +++ b/dev/assets/index.md.bDKzXHR2.js @@ -1 +1 @@ -import{_ as e,c as t,o as a,a7 as o}from"./chunks/framework.BBBwll2u.js";const g=JSON.parse('{"title":"What is GeometryOps.jl?","description":"","frontmatter":{"layout":"home","hero":{"name":"GeometryOps.jl","text":"","tagline":"Blazing fast geometry operations in pure Julia","image":{"src":"/logo.png","alt":"GeometryOps"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaGeo/GeometryOps.jl"},{"theme":"alt","text":"API Reference","link":"/api"}]},"features":[{"icon":"\\"Julia","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),i={name:"index.md"},n=o('

What is GeometryOps.jl?

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

How to navigate the docs

GeometryOps' docs are divided into three main sections: tutorials, explanations and source code.
Documentation and examples for many functions can be found in the source code section, since we use literate programming in GeometryOps.

  • Tutorials are meant to teach the fundamental concepts behind GeometryOps, and how to perform certain operations.
  • Explanations usually contain little code, and explain in more detail how GeometryOps works.
  • Source code usually contains explanations and examples at the top of the page, followed by annotated source code from that file.
',2),s=[n];function r(l,c,d,h,p,m){return a(),t("div",null,s)}const f=e(i,[["render",r]]);export{g as __pageData,f as default}; +import{_ as e,c as t,o as a,a7 as o}from"./chunks/framework.Bvl2j7qw.js";const g=JSON.parse('{"title":"What is GeometryOps.jl?","description":"","frontmatter":{"layout":"home","hero":{"name":"GeometryOps.jl","text":"","tagline":"Blazing fast geometry operations in pure Julia","image":{"src":"/logo.png","alt":"GeometryOps"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaGeo/GeometryOps.jl"},{"theme":"alt","text":"API Reference","link":"/api"}]},"features":[{"icon":"\\"Julia","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),i={name:"index.md"},n=o('

What is GeometryOps.jl?

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

How to navigate the docs

GeometryOps' docs are divided into three main sections: tutorials, explanations and source code.
Documentation and examples for many functions can be found in the source code section, since we use literate programming in GeometryOps.

  • Tutorials are meant to teach the fundamental concepts behind GeometryOps, and how to perform certain operations.
  • Explanations usually contain little code, and explain in more detail how GeometryOps works.
  • Source code usually contains explanations and examples at the top of the page, followed by annotated source code from that file.
',2),s=[n];function r(l,c,d,h,p,m){return a(),t("div",null,s)}const f=e(i,[["render",r]]);export{g as __pageData,f as default}; diff --git a/dev/assets/index.md.DvEQFP4N.lean.js b/dev/assets/index.md.bDKzXHR2.lean.js similarity index 92% rename from dev/assets/index.md.DvEQFP4N.lean.js rename to dev/assets/index.md.bDKzXHR2.lean.js index cc6586167..a9efb848f 100644 --- a/dev/assets/index.md.DvEQFP4N.lean.js +++ b/dev/assets/index.md.bDKzXHR2.lean.js @@ -1 +1 @@ -import{_ as e,c as t,o as a,a7 as o}from"./chunks/framework.BBBwll2u.js";const g=JSON.parse('{"title":"What is GeometryOps.jl?","description":"","frontmatter":{"layout":"home","hero":{"name":"GeometryOps.jl","text":"","tagline":"Blazing fast geometry operations in pure Julia","image":{"src":"/logo.png","alt":"GeometryOps"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaGeo/GeometryOps.jl"},{"theme":"alt","text":"API Reference","link":"/api"}]},"features":[{"icon":"\\"Julia","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),i={name:"index.md"},n=o("",2),s=[n];function r(l,c,d,h,p,m){return a(),t("div",null,s)}const f=e(i,[["render",r]]);export{g as __pageData,f as default}; +import{_ as e,c as t,o as a,a7 as o}from"./chunks/framework.Bvl2j7qw.js";const g=JSON.parse('{"title":"What is GeometryOps.jl?","description":"","frontmatter":{"layout":"home","hero":{"name":"GeometryOps.jl","text":"","tagline":"Blazing fast geometry operations in pure Julia","image":{"src":"/logo.png","alt":"GeometryOps"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaGeo/GeometryOps.jl"},{"theme":"alt","text":"API Reference","link":"/api"}]},"features":[{"icon":"\\"Julia","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),i={name:"index.md"},n=o("",2),s=[n];function r(l,c,d,h,p,m){return a(),t("div",null,s)}const f=e(i,[["render",r]]);export{g as __pageData,f as default}; diff --git a/dev/assets/introduction.md.DD0uwX5m.js b/dev/assets/introduction.md.COCf0hDh.js similarity index 95% rename from dev/assets/introduction.md.DD0uwX5m.js rename to dev/assets/introduction.md.COCf0hDh.js index b8ae0d9a7..baf219b6b 100644 --- a/dev/assets/introduction.md.DD0uwX5m.js +++ b/dev/assets/introduction.md.COCf0hDh.js @@ -1 +1 @@ -import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.BBBwll2u.js";const f=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),i={name:"introduction.md"},r=o('

Introduction

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

Main concepts

The apply paradigm

Note

See the Primitive Functions page for more information on this.

The apply function allows you to decompose a given collection of geometries down to a certain level, and then operate on it.

Functionally, it's similar to map in the way you apply it to geometries.

apply and applyreduce take any geometry, vector of geometries, collection of geometries, or table (like Shapefile.Table, DataFrame, or GeoTable)!

What's this GeoInterface.Wrapper thing?

Write a comment about GeoInterface.Wrapper and why it helps in type stability to guarantee a particular return type.

',13),n=[r];function c(s,p,l,d,h,m){return t(),a("div",null,n)}const g=e(i,[["render",c]]);export{f as __pageData,g as default}; +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Bvl2j7qw.js";const f=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),i={name:"introduction.md"},r=o('

Introduction

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

Main concepts

The apply paradigm

Note

See the Primitive Functions page for more information on this.

The apply function allows you to decompose a given collection of geometries down to a certain level, and then operate on it.

Functionally, it's similar to map in the way you apply it to geometries.

apply and applyreduce take any geometry, vector of geometries, collection of geometries, or table (like Shapefile.Table, DataFrame, or GeoTable)!

What's this GeoInterface.Wrapper thing?

Write a comment about GeoInterface.Wrapper and why it helps in type stability to guarantee a particular return type.

',13),n=[r];function c(s,p,l,d,h,m){return t(),a("div",null,n)}const g=e(i,[["render",c]]);export{f as __pageData,g as default}; diff --git a/dev/assets/introduction.md.DD0uwX5m.lean.js b/dev/assets/introduction.md.COCf0hDh.lean.js similarity index 68% rename from dev/assets/introduction.md.DD0uwX5m.lean.js rename to dev/assets/introduction.md.COCf0hDh.lean.js index c97fd8087..d9fd70099 100644 --- a/dev/assets/introduction.md.DD0uwX5m.lean.js +++ b/dev/assets/introduction.md.COCf0hDh.lean.js @@ -1 +1 @@ -import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.BBBwll2u.js";const f=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),i={name:"introduction.md"},r=o("",13),n=[r];function c(s,p,l,d,h,m){return t(),a("div",null,n)}const g=e(i,[["render",c]]);export{f as __pageData,g as default}; +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.Bvl2j7qw.js";const f=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),i={name:"introduction.md"},r=o("",13),n=[r];function c(s,p,l,d,h,m){return t(),a("div",null,n)}const g=e(i,[["render",c]]);export{f as __pageData,g as default}; diff --git a/dev/assets/oirajdr.3sfpQl2i.png b/dev/assets/jkmutre.3sfpQl2i.png similarity index 100% rename from dev/assets/oirajdr.3sfpQl2i.png rename to dev/assets/jkmutre.3sfpQl2i.png diff --git a/dev/assets/nggpidy.B9NpLJr_.png b/dev/assets/jnskugc.B9NpLJr_.png similarity index 100% rename from dev/assets/nggpidy.B9NpLJr_.png rename to dev/assets/jnskugc.B9NpLJr_.png diff --git a/dev/assets/jxxvtcx.CMLaaqyC.png b/dev/assets/jxxvtcx.CMLaaqyC.png new file mode 100644 index 000000000..2cb58785d Binary files /dev/null and b/dev/assets/jxxvtcx.CMLaaqyC.png differ diff --git a/dev/assets/avsfylo.Dz86q2IX.png b/dev/assets/kezckmj.Dz86q2IX.png similarity index 100% rename from dev/assets/avsfylo.Dz86q2IX.png rename to dev/assets/kezckmj.Dz86q2IX.png diff --git a/dev/assets/bjyccxx.Cx40vhB3.png b/dev/assets/khxawds.Cx40vhB3.png similarity index 100% rename from dev/assets/bjyccxx.Cx40vhB3.png rename to dev/assets/khxawds.Cx40vhB3.png diff --git a/dev/assets/pvwrtpk.Dig-DWOQ.png b/dev/assets/klhhoes.Dig-DWOQ.png similarity index 100% rename from dev/assets/pvwrtpk.Dig-DWOQ.png rename to dev/assets/klhhoes.Dig-DWOQ.png diff --git a/dev/assets/jykmawc.CZy9YIUA.png b/dev/assets/lknnfey.CZy9YIUA.png similarity index 100% rename from dev/assets/jykmawc.CZy9YIUA.png rename to dev/assets/lknnfey.CZy9YIUA.png diff --git a/dev/assets/lnskvvs._80lAQlU.png b/dev/assets/lnskvvs._80lAQlU.png new file mode 100644 index 000000000..1f042ebd7 Binary files /dev/null and b/dev/assets/lnskvvs._80lAQlU.png differ diff --git a/dev/assets/lunfxzs.BuEu35X2.png b/dev/assets/lunfxzs.BuEu35X2.png new file mode 100644 index 000000000..f3857a210 Binary files /dev/null and b/dev/assets/lunfxzs.BuEu35X2.png differ diff --git a/dev/assets/reernfm.B94PsR1K.png b/dev/assets/miqqeoz.B94PsR1K.png similarity index 100% rename from dev/assets/reernfm.B94PsR1K.png rename to dev/assets/miqqeoz.B94PsR1K.png diff --git a/dev/assets/mlqknyj.BUbNIhNJ.png b/dev/assets/mlqknyj.BUbNIhNJ.png deleted file mode 100644 index ab91107b8..000000000 Binary files a/dev/assets/mlqknyj.BUbNIhNJ.png and /dev/null differ diff --git a/dev/assets/rzbipwp.Cb0_DiYE.png b/dev/assets/mnhruli.Cb0_DiYE.png similarity index 100% rename from dev/assets/rzbipwp.Cb0_DiYE.png rename to dev/assets/mnhruli.Cb0_DiYE.png diff --git a/dev/assets/mvkdsle.CUIzZ_nZ.png b/dev/assets/mvkdsle.CUIzZ_nZ.png deleted file mode 100644 index 62a80b7ca..000000000 Binary files a/dev/assets/mvkdsle.CUIzZ_nZ.png and /dev/null differ diff --git a/dev/assets/kxjwxkf.C3SxJ3x-.png b/dev/assets/nkeavxx.C3SxJ3x-.png similarity index 100% rename from dev/assets/kxjwxkf.C3SxJ3x-.png rename to dev/assets/nkeavxx.C3SxJ3x-.png diff --git a/dev/assets/kbhytkn.DC3TvBOO.png b/dev/assets/pppwegz.DC3TvBOO.png similarity index 100% rename from dev/assets/kbhytkn.DC3TvBOO.png rename to dev/assets/pppwegz.DC3TvBOO.png diff --git a/dev/assets/ivugxpp.BOOG5oTW.png b/dev/assets/psbpzzd.BOOG5oTW.png similarity index 100% rename from dev/assets/ivugxpp.BOOG5oTW.png rename to dev/assets/psbpzzd.BOOG5oTW.png diff --git a/dev/assets/rchoylg.Bdud5wnf.png b/dev/assets/rchoylg.Bdud5wnf.png deleted file mode 100644 index 5a95ef855..000000000 Binary files a/dev/assets/rchoylg.Bdud5wnf.png and /dev/null differ diff --git a/dev/assets/source_GeometryOps.md.BuavElQI.js b/dev/assets/source_GeometryOps.md.MuE8AgXl.js similarity index 99% rename from dev/assets/source_GeometryOps.md.BuavElQI.js rename to dev/assets/source_GeometryOps.md.MuE8AgXl.js index 7bcfaeb67..8c3020b33 100644 --- a/dev/assets/source_GeometryOps.md.BuavElQI.js +++ b/dev/assets/source_GeometryOps.md.MuE8AgXl.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"GeometryOps.jl","description":"","frontmatter":{},"headers":[],"relativePath":"source/GeometryOps.md","filePath":"source/GeometryOps.md","lastUpdated":null}'),l={name:"source/GeometryOps.md"},h=n(`

GeometryOps.jl

julia
module GeometryOps
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"GeometryOps.jl","description":"","frontmatter":{},"headers":[],"relativePath":"source/GeometryOps.md","filePath":"source/GeometryOps.md","lastUpdated":null}'),l={name:"source/GeometryOps.md"},h=n(`

GeometryOps.jl

julia
module GeometryOps
 
 using GeoInterface
 using GeometryBasics
diff --git a/dev/assets/source_GeometryOps.md.BuavElQI.lean.js b/dev/assets/source_GeometryOps.md.MuE8AgXl.lean.js
similarity index 70%
rename from dev/assets/source_GeometryOps.md.BuavElQI.lean.js
rename to dev/assets/source_GeometryOps.md.MuE8AgXl.lean.js
index 84a01c00d..bc84ab341 100644
--- a/dev/assets/source_GeometryOps.md.BuavElQI.lean.js
+++ b/dev/assets/source_GeometryOps.md.MuE8AgXl.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"GeometryOps.jl","description":"","frontmatter":{},"headers":[],"relativePath":"source/GeometryOps.md","filePath":"source/GeometryOps.md","lastUpdated":null}'),l={name:"source/GeometryOps.md"},h=n("",8),t=[h];function k(p,e,E,r,d,g){return a(),i("div",null,t)}const F=s(l,[["render",k]]);export{y as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"GeometryOps.jl","description":"","frontmatter":{},"headers":[],"relativePath":"source/GeometryOps.md","filePath":"source/GeometryOps.md","lastUpdated":null}'),l={name:"source/GeometryOps.md"},h=n("",8),t=[h];function k(p,e,E,r,d,g){return a(),i("div",null,t)}const F=s(l,[["render",k]]);export{y as __pageData,F as default};
diff --git a/dev/assets/source_methods_angles.md.XkG4imC-.js b/dev/assets/source_methods_angles.md.BKUrbRhM.js
similarity index 99%
rename from dev/assets/source_methods_angles.md.XkG4imC-.js
rename to dev/assets/source_methods_angles.md.BKUrbRhM.js
index 609ec39c1..6607cffd4 100644
--- a/dev/assets/source_methods_angles.md.XkG4imC-.js
+++ b/dev/assets/source_methods_angles.md.BKUrbRhM.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/pvwrtpk.Dig-DWOQ.png",o=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),l={name:"source/methods/angles.md"},k=n(`

Angles

julia
export angles

What is angles?

Angles are the angles formed by a given geometries line segments, if it has line segments.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/klhhoes.Dig-DWOQ.png",o=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),l={name:"source/methods/angles.md"},k=n(`

Angles

julia
export angles

What is angles?

Angles are the angles formed by a given geometries line segments, if it has line segments.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie, CairoMakie
 
diff --git a/dev/assets/source_methods_angles.md.XkG4imC-.lean.js b/dev/assets/source_methods_angles.md.BKUrbRhM.lean.js
similarity index 73%
rename from dev/assets/source_methods_angles.md.XkG4imC-.lean.js
rename to dev/assets/source_methods_angles.md.BKUrbRhM.lean.js
index 0e20cf5ea..4e072bf26 100644
--- a/dev/assets/source_methods_angles.md.XkG4imC-.lean.js
+++ b/dev/assets/source_methods_angles.md.BKUrbRhM.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/pvwrtpk.Dig-DWOQ.png",o=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),l={name:"source/methods/angles.md"},k=n("",27),t=[k];function p(e,r,E,g,d,y){return a(),i("div",null,t)}const c=s(l,[["render",p]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/klhhoes.Dig-DWOQ.png",o=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),l={name:"source/methods/angles.md"},k=n("",27),t=[k];function p(e,r,E,g,d,y){return a(),i("div",null,t)}const c=s(l,[["render",p]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_methods_area.md.jUVDeUKx.js b/dev/assets/source_methods_area.md.Bxq0v74l.js
similarity index 99%
rename from dev/assets/source_methods_area.md.jUVDeUKx.js
rename to dev/assets/source_methods_area.md.Bxq0v74l.js
index 91983e7ba..7748adf86 100644
--- a/dev/assets/source_methods_area.md.jUVDeUKx.js
+++ b/dev/assets/source_methods_area.md.Bxq0v74l.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/pvwrtpk.Dig-DWOQ.png",t="/GeometryOps.jl/dev/assets/wdmpxci.CULn5saZ.png",c=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),e={name:"source/methods/area.md"},l=n(`

Area and signed area

julia
export area, signed_area

What is area? What is signed area?

Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/klhhoes.Dig-DWOQ.png",t="/GeometryOps.jl/dev/assets/cqbhmxs.CULn5saZ.png",c=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),e={name:"source/methods/area.md"},l=n(`

Area and signed area

julia
export area, signed_area

What is area? What is signed area?

Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_area.md.jUVDeUKx.lean.js b/dev/assets/source_methods_area.md.Bxq0v74l.lean.js
similarity index 64%
rename from dev/assets/source_methods_area.md.jUVDeUKx.lean.js
rename to dev/assets/source_methods_area.md.Bxq0v74l.lean.js
index 2e0dd33f3..a185eb714 100644
--- a/dev/assets/source_methods_area.md.jUVDeUKx.lean.js
+++ b/dev/assets/source_methods_area.md.Bxq0v74l.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/pvwrtpk.Dig-DWOQ.png",t="/GeometryOps.jl/dev/assets/wdmpxci.CULn5saZ.png",c=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),e={name:"source/methods/area.md"},l=n("",40),p=[l];function k(r,d,g,E,o,y){return a(),i("div",null,p)}const C=s(e,[["render",k]]);export{c as __pageData,C as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/klhhoes.Dig-DWOQ.png",t="/GeometryOps.jl/dev/assets/cqbhmxs.CULn5saZ.png",c=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),e={name:"source/methods/area.md"},l=n("",40),p=[l];function k(r,d,g,E,o,y){return a(),i("div",null,p)}const C=s(e,[["render",k]]);export{c as __pageData,C as default};
diff --git a/dev/assets/source_methods_barycentric.md.BI20A63P.js b/dev/assets/source_methods_barycentric.md.CvCdLQEW.js
similarity index 99%
rename from dev/assets/source_methods_barycentric.md.BI20A63P.js
rename to dev/assets/source_methods_barycentric.md.CvCdLQEW.js
index 537978830..7de7ad102 100644
--- a/dev/assets/source_methods_barycentric.md.BI20A63P.js
+++ b/dev/assets/source_methods_barycentric.md.CvCdLQEW.js
@@ -1,4 +1,4 @@
-import{_ as t,c as a,j as s,a as i,a7 as h,o as n}from"./chunks/framework.BBBwll2u.js";const k="/GeometryOps.jl/dev/assets/jykmawc.CZy9YIUA.png",R=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),l={name:"source/methods/barycentric.md"},p=h(`

Barycentric coordinates

julia
export barycentric_coordinates, barycentric_coordinates!, barycentric_interpolate
+import{_ as t,c as a,j as s,a as i,a7 as h,o as n}from"./chunks/framework.Bvl2j7qw.js";const k="/GeometryOps.jl/dev/assets/lknnfey.CZy9YIUA.png",R=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),l={name:"source/methods/barycentric.md"},p=h(`

Barycentric coordinates

julia
export barycentric_coordinates, barycentric_coordinates!, barycentric_interpolate
 export MeanValue

Generalized barycentric coordinates are a generalization of barycentric coordinates, which are typically used in triangles, to arbitrary polygons.

They provide a way to express a point within a polygon as a weighted average of the polygon's vertices.

`,4),e={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.692ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4726 1000","aria-hidden":"true"},r=h('',1),d=[r],g=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"3")]),s("mo",{stretchy:"false"},")")])],-1),y={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},o=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),c=[o],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),B={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},A={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},D=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),u=[D],T=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},b={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.876ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 6575.4 1000","aria-hidden":"true"},Q=h('',1),_=[Q],v=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("mo",null,"."),s("mo",null,"."),s("mo",null,"."),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mi",null,"n")]),s("mo",{stretchy:"false"},")")])],-1),w=h(`

As with the triangle case, the weights sum to 1, and each is non-negative.

Example

This example was taken from this page of CGAL's documentation.

julia
using GeometryOps
 using GeometryOps.GeometryBasics
 using Makie
diff --git a/dev/assets/source_methods_barycentric.md.BI20A63P.lean.js b/dev/assets/source_methods_barycentric.md.CvCdLQEW.lean.js
similarity index 98%
rename from dev/assets/source_methods_barycentric.md.BI20A63P.lean.js
rename to dev/assets/source_methods_barycentric.md.CvCdLQEW.lean.js
index e8b7f733b..aadb73281 100644
--- a/dev/assets/source_methods_barycentric.md.BI20A63P.lean.js
+++ b/dev/assets/source_methods_barycentric.md.CvCdLQEW.lean.js
@@ -1 +1 @@
-import{_ as t,c as a,j as s,a as i,a7 as h,o as n}from"./chunks/framework.BBBwll2u.js";const k="/GeometryOps.jl/dev/assets/jykmawc.CZy9YIUA.png",R=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),l={name:"source/methods/barycentric.md"},p=h("",4),e={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.692ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4726 1000","aria-hidden":"true"},r=h("",1),d=[r],g=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"3")]),s("mo",{stretchy:"false"},")")])],-1),y={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},o=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),c=[o],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),B={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},A={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},D=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),u=[D],T=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},b={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.876ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 6575.4 1000","aria-hidden":"true"},Q=h("",1),_=[Q],v=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("mo",null,"."),s("mo",null,"."),s("mo",null,"."),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mi",null,"n")]),s("mo",{stretchy:"false"},")")])],-1),w=h("",35);function f(x,V,P,M,q,N){return n(),a("div",null,[p,s("p",null,[i("In the case of a triangle, barycentric coordinates are a set of three numbers "),s("mjx-container",e,[(n(),a("svg",E,d)),g]),i(", each associated with a vertex of the triangle. Any point within the triangle can be expressed as a weighted average of the vertices, where the weights are the barycentric coordinates. The weights sum to 1, and each is non-negative.")]),s("p",null,[i("For a polygon with "),s("mjx-container",y,[(n(),a("svg",F,c)),C]),i(" vertices, generalized barycentric coordinates are a set of "),s("mjx-container",B,[(n(),a("svg",A,u)),T]),i(" numbers "),s("mjx-container",m,[(n(),a("svg",b,_)),v]),i(", each associated with a vertex of the polygon. Any point within the polygon can be expressed as a weighted average of the vertices, where the weights are the generalized barycentric coordinates.")]),w])}const G=t(l,[["render",f]]);export{R as __pageData,G as default};
+import{_ as t,c as a,j as s,a as i,a7 as h,o as n}from"./chunks/framework.Bvl2j7qw.js";const k="/GeometryOps.jl/dev/assets/lknnfey.CZy9YIUA.png",R=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),l={name:"source/methods/barycentric.md"},p=h("",4),e={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.692ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4726 1000","aria-hidden":"true"},r=h("",1),d=[r],g=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"3")]),s("mo",{stretchy:"false"},")")])],-1),y={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},o=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),c=[o],C=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),B={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},A={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},D=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),u=[D],T=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},b={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.876ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 6575.4 1000","aria-hidden":"true"},Q=h("",1),_=[Q],v=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"λ"),s("mn",null,"1")]),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mn",null,"2")]),s("mo",null,","),s("mo",null,"."),s("mo",null,"."),s("mo",null,"."),s("mo",null,","),s("msub",null,[s("mi",null,"λ"),s("mi",null,"n")]),s("mo",{stretchy:"false"},")")])],-1),w=h("",35);function f(x,V,P,M,q,N){return n(),a("div",null,[p,s("p",null,[i("In the case of a triangle, barycentric coordinates are a set of three numbers "),s("mjx-container",e,[(n(),a("svg",E,d)),g]),i(", each associated with a vertex of the triangle. Any point within the triangle can be expressed as a weighted average of the vertices, where the weights are the barycentric coordinates. The weights sum to 1, and each is non-negative.")]),s("p",null,[i("For a polygon with "),s("mjx-container",y,[(n(),a("svg",F,c)),C]),i(" vertices, generalized barycentric coordinates are a set of "),s("mjx-container",B,[(n(),a("svg",A,u)),T]),i(" numbers "),s("mjx-container",m,[(n(),a("svg",b,_)),v]),i(", each associated with a vertex of the polygon. Any point within the polygon can be expressed as a weighted average of the vertices, where the weights are the generalized barycentric coordinates.")]),w])}const G=t(l,[["render",f]]);export{R as __pageData,G as default};
diff --git a/dev/assets/source_methods_buffer.md.T9eAlFvy.js b/dev/assets/source_methods_buffer.md.BPfajikS.js
similarity index 98%
rename from dev/assets/source_methods_buffer.md.T9eAlFvy.js
rename to dev/assets/source_methods_buffer.md.BPfajikS.js
index e8ce880fa..68868698b 100644
--- a/dev/assets/source_methods_buffer.md.T9eAlFvy.js
+++ b/dev/assets/source_methods_buffer.md.BPfajikS.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),n={name:"source/methods/buffer.md"},e=t(`

Buffer

Buffering a geometry means computing the region distance away from it, and returning that region as the new geometry.

As of now, we only support GEOS as the backend, meaning that LibGEOS must be loaded.

julia
function buffer(geometry, distance; kwargs...)
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),n={name:"source/methods/buffer.md"},e=t(`

Buffer

Buffering a geometry means computing the region distance away from it, and returning that region as the new geometry.

As of now, we only support GEOS as the backend, meaning that LibGEOS must be loaded.

julia
function buffer(geometry, distance; kwargs...)
     buffered = buffer(GEOS(; kwargs...), geometry, distance)
     return tuples(buffered)
 end

Below is an error handler similar to the others we have for e.g. segmentize, which checks if there is a method error for the geos backend.

Add an error hint for buffer if LibGEOS is not loaded!

julia
function _buffer_error_hinter(io, exc, argtypes, kwargs)
diff --git a/dev/assets/source_methods_buffer.md.T9eAlFvy.lean.js b/dev/assets/source_methods_buffer.md.BPfajikS.lean.js
similarity index 70%
rename from dev/assets/source_methods_buffer.md.T9eAlFvy.lean.js
rename to dev/assets/source_methods_buffer.md.BPfajikS.lean.js
index 58e9138df..d441b95ba 100644
--- a/dev/assets/source_methods_buffer.md.T9eAlFvy.lean.js
+++ b/dev/assets/source_methods_buffer.md.BPfajikS.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),n={name:"source/methods/buffer.md"},e=t("",9),h=[e];function k(p,l,r,d,E,o){return a(),i("div",null,h)}const c=s(n,[["render",k]]);export{y as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),n={name:"source/methods/buffer.md"},e=t("",9),h=[e];function k(p,l,r,d,E,o){return a(),i("div",null,h)}const c=s(n,[["render",k]]);export{y as __pageData,c as default};
diff --git a/dev/assets/source_methods_centroid.md.C-V56RIQ.js b/dev/assets/source_methods_centroid.md.B_QUoO-9.js
similarity index 99%
rename from dev/assets/source_methods_centroid.md.C-V56RIQ.js
rename to dev/assets/source_methods_centroid.md.B_QUoO-9.js
index 99a8435ce..0111d9ca6 100644
--- a/dev/assets/source_methods_centroid.md.C-V56RIQ.js
+++ b/dev/assets/source_methods_centroid.md.B_QUoO-9.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/yukudfh.BD0hVfse.png",t="/GeometryOps.jl/dev/assets/kfwpeaq.DHcwB147.png",F=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),k={name:"source/methods/centroid.md"},l=n(`

Centroid

julia
export centroid, centroid_and_length, centroid_and_area

What is the centroid?

The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

To provide an example, consider this concave polygon in the shape of a 'C':

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/ehapsdu.BD0hVfse.png",t="/GeometryOps.jl/dev/assets/cgiamym.DHcwB147.png",F=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),k={name:"source/methods/centroid.md"},l=n(`

Centroid

julia
export centroid, centroid_and_length, centroid_and_area

What is the centroid?

The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

To provide an example, consider this concave polygon in the shape of a 'C':

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_centroid.md.C-V56RIQ.lean.js b/dev/assets/source_methods_centroid.md.B_QUoO-9.lean.js
similarity index 64%
rename from dev/assets/source_methods_centroid.md.C-V56RIQ.lean.js
rename to dev/assets/source_methods_centroid.md.B_QUoO-9.lean.js
index f41c116d4..b4f35b6ae 100644
--- a/dev/assets/source_methods_centroid.md.C-V56RIQ.lean.js
+++ b/dev/assets/source_methods_centroid.md.B_QUoO-9.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/yukudfh.BD0hVfse.png",t="/GeometryOps.jl/dev/assets/kfwpeaq.DHcwB147.png",F=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),k={name:"source/methods/centroid.md"},l=n("",57),p=[l];function e(r,E,d,g,y,o){return a(),i("div",null,p)}const C=s(k,[["render",e]]);export{F as __pageData,C as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/ehapsdu.BD0hVfse.png",t="/GeometryOps.jl/dev/assets/cgiamym.DHcwB147.png",F=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),k={name:"source/methods/centroid.md"},l=n("",57),p=[l];function e(r,E,d,g,y,o){return a(),i("div",null,p)}const C=s(k,[["render",e]]);export{F as __pageData,C as default};
diff --git a/dev/assets/source_methods_clipping_clipping_processor.md.DuXdI0p4.js b/dev/assets/source_methods_clipping_clipping_processor.md.B1cUzsmO.js
similarity index 99%
rename from dev/assets/source_methods_clipping_clipping_processor.md.DuXdI0p4.js
rename to dev/assets/source_methods_clipping_clipping_processor.md.B1cUzsmO.js
index 20e008b18..c9fcad39c 100644
--- a/dev/assets/source_methods_clipping_clipping_processor.md.DuXdI0p4.js
+++ b/dev/assets/source_methods_clipping_clipping_processor.md.B1cUzsmO.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),h={name:"source/methods/clipping/clipping_processor.md"},t=n(`

Polygon clipping helpers

This file contains the shared helper functions for the polygon clipping functionalities.

This enum defines which side of an edge a point is on

julia
@enum PointEdgeSide left=1 right=2 unknown=3

Constants assigned for readability

julia
const enter, exit = true, false
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),h={name:"source/methods/clipping/clipping_processor.md"},t=n(`

Polygon clipping helpers

This file contains the shared helper functions for the polygon clipping functionalities.

This enum defines which side of an edge a point is on

julia
@enum PointEdgeSide left=1 right=2 unknown=3

Constants assigned for readability

julia
const enter, exit = true, false
 const crossing, bouncing = true, false
 
 #= A point can either be the start or end of an overlapping chain of points between two
diff --git a/dev/assets/source_methods_clipping_clipping_processor.md.DuXdI0p4.lean.js b/dev/assets/source_methods_clipping_clipping_processor.md.B1cUzsmO.lean.js
similarity index 75%
rename from dev/assets/source_methods_clipping_clipping_processor.md.DuXdI0p4.lean.js
rename to dev/assets/source_methods_clipping_clipping_processor.md.B1cUzsmO.lean.js
index 288750c99..318d73d66 100644
--- a/dev/assets/source_methods_clipping_clipping_processor.md.DuXdI0p4.lean.js
+++ b/dev/assets/source_methods_clipping_clipping_processor.md.B1cUzsmO.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),h={name:"source/methods/clipping/clipping_processor.md"},t=n("",169),p=[t];function l(k,e,E,r,d,g){return a(),i("div",null,p)}const c=s(h,[["render",l]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Polygon clipping helpers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/clipping_processor.md","filePath":"source/methods/clipping/clipping_processor.md","lastUpdated":null}'),h={name:"source/methods/clipping/clipping_processor.md"},t=n("",169),p=[t];function l(k,e,E,r,d,g){return a(),i("div",null,p)}const c=s(h,[["render",l]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_methods_clipping_coverage.md.DC6323Ql.js b/dev/assets/source_methods_clipping_coverage.md.DzRGrIJd.js
similarity index 99%
rename from dev/assets/source_methods_clipping_coverage.md.DC6323Ql.js
rename to dev/assets/source_methods_clipping_coverage.md.DzRGrIJd.js
index 41adcb54d..6e895e57f 100644
--- a/dev/assets/source_methods_clipping_coverage.md.DC6323Ql.js
+++ b/dev/assets/source_methods_clipping_coverage.md.DzRGrIJd.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/rzbipwp.Cb0_DiYE.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),l={name:"source/methods/clipping/coverage.md"},k=n(`
julia
export coverage

What is coverage?

Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordinates of that bounding box, or an Extent containing that information.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/mnhruli.Cb0_DiYE.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),l={name:"source/methods/clipping/coverage.md"},k=n(`
julia
export coverage

What is coverage?

Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordinates of that bounding box, or an Extent containing that information.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_clipping_coverage.md.DC6323Ql.lean.js b/dev/assets/source_methods_clipping_coverage.md.DzRGrIJd.lean.js
similarity index 74%
rename from dev/assets/source_methods_clipping_coverage.md.DC6323Ql.lean.js
rename to dev/assets/source_methods_clipping_coverage.md.DzRGrIJd.lean.js
index 6a7cabde4..5cce7bafd 100644
--- a/dev/assets/source_methods_clipping_coverage.md.DC6323Ql.lean.js
+++ b/dev/assets/source_methods_clipping_coverage.md.DzRGrIJd.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/rzbipwp.Cb0_DiYE.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),l={name:"source/methods/clipping/coverage.md"},k=n("",58),p=[k];function t(e,E,r,d,g,y){return a(),i("div",null,p)}const o=s(l,[["render",t]]);export{c as __pageData,o as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/mnhruli.Cb0_DiYE.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),l={name:"source/methods/clipping/coverage.md"},k=n("",58),p=[k];function t(e,E,r,d,g,y){return a(),i("div",null,p)}const o=s(l,[["render",t]]);export{c as __pageData,o as default};
diff --git a/dev/assets/source_methods_clipping_cut.md.uF7qguk7.js b/dev/assets/source_methods_clipping_cut.md.DGxv6k01.js
similarity index 99%
rename from dev/assets/source_methods_clipping_cut.md.uF7qguk7.js
rename to dev/assets/source_methods_clipping_cut.md.DGxv6k01.js
index 7fd48c307..63479a82b 100644
--- a/dev/assets/source_methods_clipping_cut.md.uF7qguk7.js
+++ b/dev/assets/source_methods_clipping_cut.md.DGxv6k01.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/dtpvufq.-VpeHhXX.png",c=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),t={name:"source/methods/clipping/cut.md"},l=n(`

Polygon cutting

julia
export cut

What is cut?

The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

To provide an example, consider the following polygon and line:

julia
import GeoInterface as GI, GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/ghlpogr.-VpeHhXX.png",c=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),t={name:"source/methods/clipping/cut.md"},l=n(`

Polygon cutting

julia
export cut

What is cut?

The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

To provide an example, consider the following polygon and line:

julia
import GeoInterface as GI, GeometryOps as GO
 using CairoMakie
 using Makie
 
diff --git a/dev/assets/source_methods_clipping_cut.md.uF7qguk7.lean.js b/dev/assets/source_methods_clipping_cut.md.DGxv6k01.lean.js
similarity index 74%
rename from dev/assets/source_methods_clipping_cut.md.uF7qguk7.lean.js
rename to dev/assets/source_methods_clipping_cut.md.DGxv6k01.lean.js
index bba3bd5ef..b7f31e181 100644
--- a/dev/assets/source_methods_clipping_cut.md.uF7qguk7.lean.js
+++ b/dev/assets/source_methods_clipping_cut.md.DGxv6k01.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/dtpvufq.-VpeHhXX.png",c=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),t={name:"source/methods/clipping/cut.md"},l=n("",34),p=[l];function k(e,r,E,d,g,y){return a(),i("div",null,p)}const F=s(t,[["render",k]]);export{c as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/ghlpogr.-VpeHhXX.png",c=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),t={name:"source/methods/clipping/cut.md"},l=n("",34),p=[l];function k(e,r,E,d,g,y){return a(),i("div",null,p)}const F=s(t,[["render",k]]);export{c as __pageData,F as default};
diff --git a/dev/assets/source_methods_clipping_difference.md.BoZ8QHrZ.js b/dev/assets/source_methods_clipping_difference.md.B-9yqlhQ.js
similarity index 99%
rename from dev/assets/source_methods_clipping_difference.md.BoZ8QHrZ.js
rename to dev/assets/source_methods_clipping_difference.md.B-9yqlhQ.js
index a163bde2d..9b3b6f8a7 100644
--- a/dev/assets/source_methods_clipping_difference.md.BoZ8QHrZ.js
+++ b/dev/assets/source_methods_clipping_difference.md.B-9yqlhQ.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),l={name:"source/methods/clipping/difference.md"},p=n(`

Difference Polygon Clipping

julia
export difference
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),l={name:"source/methods/clipping/difference.md"},p=n(`

Difference Polygon Clipping

julia
export difference
 
 
 """
diff --git a/dev/assets/source_methods_clipping_difference.md.BoZ8QHrZ.lean.js b/dev/assets/source_methods_clipping_difference.md.B-9yqlhQ.lean.js
similarity index 73%
rename from dev/assets/source_methods_clipping_difference.md.BoZ8QHrZ.lean.js
rename to dev/assets/source_methods_clipping_difference.md.B-9yqlhQ.lean.js
index e43d336e6..5bd81c4d4 100644
--- a/dev/assets/source_methods_clipping_difference.md.BoZ8QHrZ.lean.js
+++ b/dev/assets/source_methods_clipping_difference.md.B-9yqlhQ.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),l={name:"source/methods/clipping/difference.md"},p=n("",22),t=[p];function h(e,k,r,d,g,y){return a(),i("div",null,t)}const F=s(l,[["render",h]]);export{o as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),l={name:"source/methods/clipping/difference.md"},p=n("",22),t=[p];function h(e,k,r,d,g,y){return a(),i("div",null,t)}const F=s(l,[["render",h]]);export{o as __pageData,F as default};
diff --git a/dev/assets/source_methods_clipping_intersection.md.B0RDskSI.js b/dev/assets/source_methods_clipping_intersection.md.BafvkqNr.js
similarity index 99%
rename from dev/assets/source_methods_clipping_intersection.md.B0RDskSI.js
rename to dev/assets/source_methods_clipping_intersection.md.BafvkqNr.js
index 8d87ffe94..80ab6c722 100644
--- a/dev/assets/source_methods_clipping_intersection.md.B0RDskSI.js
+++ b/dev/assets/source_methods_clipping_intersection.md.BafvkqNr.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),t={name:"source/methods/clipping/intersection.md"},h=n(`

Geometry Intersection

julia
export intersection, intersection_points
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),t={name:"source/methods/clipping/intersection.md"},h=n(`

Geometry Intersection

julia
export intersection, intersection_points
 
 """
     Enum LineOrientation
diff --git a/dev/assets/source_methods_clipping_intersection.md.B0RDskSI.lean.js b/dev/assets/source_methods_clipping_intersection.md.BafvkqNr.lean.js
similarity index 73%
rename from dev/assets/source_methods_clipping_intersection.md.B0RDskSI.lean.js
rename to dev/assets/source_methods_clipping_intersection.md.BafvkqNr.lean.js
index 6f11ce5a4..6073e7c6e 100644
--- a/dev/assets/source_methods_clipping_intersection.md.B0RDskSI.lean.js
+++ b/dev/assets/source_methods_clipping_intersection.md.BafvkqNr.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),t={name:"source/methods/clipping/intersection.md"},h=n("",80),l=[h];function p(k,e,r,E,d,g){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),t={name:"source/methods/clipping/intersection.md"},h=n("",80),l=[h];function p(k,e,r,E,d,g){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_methods_clipping_predicates.md.BhbUSMt6.js b/dev/assets/source_methods_clipping_predicates.md.BHLK8Ehm.js
similarity index 99%
rename from dev/assets/source_methods_clipping_predicates.md.BhbUSMt6.js
rename to dev/assets/source_methods_clipping_predicates.md.BHLK8Ehm.js
index c71d23715..8101f0d38 100644
--- a/dev/assets/source_methods_clipping_predicates.md.BhbUSMt6.js
+++ b/dev/assets/source_methods_clipping_predicates.md.BHLK8Ehm.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),t={name:"source/methods/clipping/predicates.md"},h=n(`
julia
module Predicates
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),t={name:"source/methods/clipping/predicates.md"},h=n(`
julia
module Predicates
     using ExactPredicates, ExactPredicates.Codegen
     import ExactPredicates: ext
     import ExactPredicates.Codegen: group!, @genpredicate
diff --git a/dev/assets/source_methods_clipping_predicates.md.BhbUSMt6.lean.js b/dev/assets/source_methods_clipping_predicates.md.BHLK8Ehm.lean.js
similarity index 75%
rename from dev/assets/source_methods_clipping_predicates.md.BhbUSMt6.lean.js
rename to dev/assets/source_methods_clipping_predicates.md.BHLK8Ehm.lean.js
index 6080e259e..d73028302 100644
--- a/dev/assets/source_methods_clipping_predicates.md.BhbUSMt6.lean.js
+++ b/dev/assets/source_methods_clipping_predicates.md.BHLK8Ehm.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),t={name:"source/methods/clipping/predicates.md"},h=n("",13),e=[h];function p(l,k,r,d,E,c){return a(),i("div",null,e)}const y=s(t,[["render",p]]);export{o as __pageData,y as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),t={name:"source/methods/clipping/predicates.md"},h=n("",13),e=[h];function p(l,k,r,d,E,c){return a(),i("div",null,e)}const y=s(t,[["render",p]]);export{o as __pageData,y as default};
diff --git a/dev/assets/source_methods_clipping_union.md.BCmBtF8l.js b/dev/assets/source_methods_clipping_union.md._1E5UcPD.js
similarity index 99%
rename from dev/assets/source_methods_clipping_union.md.BCmBtF8l.js
rename to dev/assets/source_methods_clipping_union.md._1E5UcPD.js
index 2188b81f3..5f9c3875a 100644
--- a/dev/assets/source_methods_clipping_union.md.BCmBtF8l.js
+++ b/dev/assets/source_methods_clipping_union.md._1E5UcPD.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),l={name:"source/methods/clipping/union.md"},h=n(`

Union Polygon Clipping

julia
export union
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),l={name:"source/methods/clipping/union.md"},h=n(`

Union Polygon Clipping

julia
export union
 
 """
     union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())
diff --git a/dev/assets/source_methods_clipping_union.md.BCmBtF8l.lean.js b/dev/assets/source_methods_clipping_union.md._1E5UcPD.lean.js
similarity index 72%
rename from dev/assets/source_methods_clipping_union.md.BCmBtF8l.lean.js
rename to dev/assets/source_methods_clipping_union.md._1E5UcPD.lean.js
index 540a769f4..64b4aa5d9 100644
--- a/dev/assets/source_methods_clipping_union.md.BCmBtF8l.lean.js
+++ b/dev/assets/source_methods_clipping_union.md._1E5UcPD.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),l={name:"source/methods/clipping/union.md"},h=n("",28),p=[h];function t(k,e,r,E,g,y){return a(),i("div",null,p)}const F=s(l,[["render",t]]);export{o as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Union Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/union.md","filePath":"source/methods/clipping/union.md","lastUpdated":null}'),l={name:"source/methods/clipping/union.md"},h=n("",28),p=[h];function t(k,e,r,E,g,y){return a(),i("div",null,p)}const F=s(l,[["render",t]]);export{o as __pageData,F as default};
diff --git a/dev/assets/source_methods_convex_hull.md.CNuxM8Y5.js b/dev/assets/source_methods_convex_hull.md.DEwMw2Dz.js
similarity index 99%
rename from dev/assets/source_methods_convex_hull.md.CNuxM8Y5.js
rename to dev/assets/source_methods_convex_hull.md.DEwMw2Dz.js
index 471784f5d..3199ff5d2 100644
--- a/dev/assets/source_methods_convex_hull.md.CNuxM8Y5.js
+++ b/dev/assets/source_methods_convex_hull.md.DEwMw2Dz.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const l="/GeometryOps.jl/dev/assets/wquugge.BB3ZNGbw.png",t="/GeometryOps.jl/dev/assets/brrwtbk.mCtKcWOr.png",h="/GeometryOps.jl/dev/assets/mlqknyj.BUbNIhNJ.png",F=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),e={name:"source/methods/convex_hull.md"},p=n(`

Convex hull

The convex hull of a set of points is the smallest convex polygon that contains all the points.

GeometryOps.jl provides a number of methods for computing the convex hull of a set of points, usually linked to other Julia packages.

For now, we expose one algorithm, MonotoneChainMethod, which uses the DelaunayTriangulation.jl package. The GEOS() interface also supports convex hulls.

Future work could include other algorithms, such as Quickhull.jl, or similar, via package extensions.

Example

Simple hull

julia
import GeometryOps as GO, GeoInterface as GI
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const l="/GeometryOps.jl/dev/assets/uuavejm.BJOKKlSH.png",t="/GeometryOps.jl/dev/assets/fhzdolk.mCtKcWOr.png",h="/GeometryOps.jl/dev/assets/jxxvtcx.CMLaaqyC.png",F=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),e={name:"source/methods/convex_hull.md"},p=n(`

Convex hull

The convex hull of a set of points is the smallest convex polygon that contains all the points.

GeometryOps.jl provides a number of methods for computing the convex hull of a set of points, usually linked to other Julia packages.

For now, we expose one algorithm, MonotoneChainMethod, which uses the DelaunayTriangulation.jl package. The GEOS() interface also supports convex hulls.

Future work could include other algorithms, such as Quickhull.jl, or similar, via package extensions.

Example

Simple hull

julia
import GeometryOps as GO, GeoInterface as GI
 using CairoMakie # to plot
 
 points = randn(GO.Point2f, 100)
diff --git a/dev/assets/source_methods_convex_hull.md.CNuxM8Y5.lean.js b/dev/assets/source_methods_convex_hull.md.DEwMw2Dz.lean.js
similarity index 57%
rename from dev/assets/source_methods_convex_hull.md.CNuxM8Y5.lean.js
rename to dev/assets/source_methods_convex_hull.md.DEwMw2Dz.lean.js
index bc492d397..41b60c760 100644
--- a/dev/assets/source_methods_convex_hull.md.CNuxM8Y5.lean.js
+++ b/dev/assets/source_methods_convex_hull.md.DEwMw2Dz.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const l="/GeometryOps.jl/dev/assets/wquugge.BB3ZNGbw.png",t="/GeometryOps.jl/dev/assets/brrwtbk.mCtKcWOr.png",h="/GeometryOps.jl/dev/assets/mlqknyj.BUbNIhNJ.png",F=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),e={name:"source/methods/convex_hull.md"},p=n("",35),k=[p];function r(o,d,E,g,y,c){return a(),i("div",null,k)}const C=s(e,[["render",r]]);export{F as __pageData,C as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const l="/GeometryOps.jl/dev/assets/uuavejm.BJOKKlSH.png",t="/GeometryOps.jl/dev/assets/fhzdolk.mCtKcWOr.png",h="/GeometryOps.jl/dev/assets/jxxvtcx.CMLaaqyC.png",F=JSON.parse('{"title":"Convex hull","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/convex_hull.md","filePath":"source/methods/convex_hull.md","lastUpdated":null}'),e={name:"source/methods/convex_hull.md"},p=n("",35),k=[p];function r(o,d,E,g,y,c){return a(),i("div",null,k)}const C=s(e,[["render",r]]);export{F as __pageData,C as default};
diff --git a/dev/assets/source_methods_distance.md.BS4hyoxT.js b/dev/assets/source_methods_distance.md.Bjehg6Q4.js
similarity index 99%
rename from dev/assets/source_methods_distance.md.BS4hyoxT.js
rename to dev/assets/source_methods_distance.md.Bjehg6Q4.js
index 145e4d323..fae323b39 100644
--- a/dev/assets/source_methods_distance.md.BS4hyoxT.js
+++ b/dev/assets/source_methods_distance.md.Bjehg6Q4.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/qnkrkmn.DiwGEg2f.png",t="/GeometryOps.jl/dev/assets/kolhwvo.DuBHk1fh.png",c=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),k={name:"source/methods/distance.md"},p=n(`

Distance and signed distance

julia
export distance, signed_distance

What is distance? What is signed distance?

Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be positive or 0.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/ydnoqnx.DiwGEg2f.png",t="/GeometryOps.jl/dev/assets/yafnlhj.DuBHk1fh.png",c=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),k={name:"source/methods/distance.md"},p=n(`

Distance and signed distance

julia
export distance, signed_distance

What is distance? What is signed distance?

Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be positive or 0.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_distance.md.BS4hyoxT.lean.js b/dev/assets/source_methods_distance.md.Bjehg6Q4.lean.js
similarity index 65%
rename from dev/assets/source_methods_distance.md.BS4hyoxT.lean.js
rename to dev/assets/source_methods_distance.md.Bjehg6Q4.lean.js
index fcc58c933..564aebea4 100644
--- a/dev/assets/source_methods_distance.md.BS4hyoxT.lean.js
+++ b/dev/assets/source_methods_distance.md.Bjehg6Q4.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/qnkrkmn.DiwGEg2f.png",t="/GeometryOps.jl/dev/assets/kolhwvo.DuBHk1fh.png",c=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),k={name:"source/methods/distance.md"},p=n("",54),l=[p];function e(d,E,r,g,y,F){return a(),i("div",null,l)}const C=s(k,[["render",e]]);export{c as __pageData,C as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/ydnoqnx.DiwGEg2f.png",t="/GeometryOps.jl/dev/assets/yafnlhj.DuBHk1fh.png",c=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),k={name:"source/methods/distance.md"},p=n("",54),l=[p];function e(d,E,r,g,y,F){return a(),i("div",null,l)}const C=s(k,[["render",e]]);export{c as __pageData,C as default};
diff --git a/dev/assets/source_methods_equals.md.UqY3mg_F.js b/dev/assets/source_methods_equals.md.B88UDWk1.js
similarity index 99%
rename from dev/assets/source_methods_equals.md.UqY3mg_F.js
rename to dev/assets/source_methods_equals.md.B88UDWk1.js
index 0bc42bb77..f1759a5dc 100644
--- a/dev/assets/source_methods_equals.md.UqY3mg_F.js
+++ b/dev/assets/source_methods_equals.md.B88UDWk1.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const l="/GeometryOps.jl/dev/assets/acxdwnh.CgiryX2p.png",y=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),t={name:"source/methods/equals.md"},h=n(`

Equals

julia
export equals

What is equals?

The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const l="/GeometryOps.jl/dev/assets/ejbycwd.CgiryX2p.png",y=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),t={name:"source/methods/equals.md"},h=n(`

Equals

julia
export equals

What is equals?

The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_equals.md.UqY3mg_F.lean.js b/dev/assets/source_methods_equals.md.B88UDWk1.lean.js
similarity index 73%
rename from dev/assets/source_methods_equals.md.UqY3mg_F.lean.js
rename to dev/assets/source_methods_equals.md.B88UDWk1.lean.js
index 164233996..3c0da6b7e 100644
--- a/dev/assets/source_methods_equals.md.UqY3mg_F.lean.js
+++ b/dev/assets/source_methods_equals.md.B88UDWk1.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const l="/GeometryOps.jl/dev/assets/acxdwnh.CgiryX2p.png",y=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),t={name:"source/methods/equals.md"},h=n("",47),p=[h];function k(e,r,d,g,E,F){return a(),i("div",null,p)}const c=s(t,[["render",k]]);export{y as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const l="/GeometryOps.jl/dev/assets/ejbycwd.CgiryX2p.png",y=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),t={name:"source/methods/equals.md"},h=n("",47),p=[h];function k(e,r,d,g,E,F){return a(),i("div",null,p)}const c=s(t,[["render",k]]);export{y as __pageData,c as default};
diff --git a/dev/assets/source_methods_geom_relations_contains.md.A2Qwjszx.js b/dev/assets/source_methods_geom_relations_contains.md.DkvLClLe.js
similarity index 98%
rename from dev/assets/source_methods_geom_relations_contains.md.A2Qwjszx.js
rename to dev/assets/source_methods_geom_relations_contains.md.DkvLClLe.js
index 6e3c4899b..c1f8e8b44 100644
--- a/dev/assets/source_methods_geom_relations_contains.md.A2Qwjszx.js
+++ b/dev/assets/source_methods_geom_relations_contains.md.DkvLClLe.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const t="/GeometryOps.jl/dev/assets/fwyxcbl._0R9BbFk.png",y=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),e={name:"source/methods/geom_relations/contains.md"},h=n(`

Contains

julia
export contains

What is contains?

The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const t="/GeometryOps.jl/dev/assets/hxadaxf._0R9BbFk.png",y=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),e={name:"source/methods/geom_relations/contains.md"},h=n(`

Contains

julia
export contains

What is contains?

The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_contains.md.A2Qwjszx.lean.js b/dev/assets/source_methods_geom_relations_contains.md.DkvLClLe.lean.js
similarity index 76%
rename from dev/assets/source_methods_geom_relations_contains.md.A2Qwjszx.lean.js
rename to dev/assets/source_methods_geom_relations_contains.md.DkvLClLe.lean.js
index 948c36da9..708f69ea5 100644
--- a/dev/assets/source_methods_geom_relations_contains.md.A2Qwjszx.lean.js
+++ b/dev/assets/source_methods_geom_relations_contains.md.DkvLClLe.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const t="/GeometryOps.jl/dev/assets/fwyxcbl._0R9BbFk.png",y=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),e={name:"source/methods/geom_relations/contains.md"},h=n("",18),l=[h];function p(k,r,o,d,g,E){return a(),i("div",null,l)}const F=s(e,[["render",p]]);export{y as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const t="/GeometryOps.jl/dev/assets/hxadaxf._0R9BbFk.png",y=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),e={name:"source/methods/geom_relations/contains.md"},h=n("",18),l=[h];function p(k,r,o,d,g,E){return a(),i("div",null,l)}const F=s(e,[["render",p]]);export{y as __pageData,F as default};
diff --git a/dev/assets/source_methods_geom_relations_coveredby.md.D5HIbX-g.js b/dev/assets/source_methods_geom_relations_coveredby.md.IdonWU9W.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_coveredby.md.D5HIbX-g.js
rename to dev/assets/source_methods_geom_relations_coveredby.md.IdonWU9W.js
index 2d466d6e9..e8cffaf01 100644
--- a/dev/assets/source_methods_geom_relations_coveredby.md.D5HIbX-g.js
+++ b/dev/assets/source_methods_geom_relations_coveredby.md.IdonWU9W.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const e="/GeometryOps.jl/dev/assets/kbhytkn.DC3TvBOO.png",c=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/coveredby.md"},h=n(`

CoveredBy

julia
export coveredby

What is coveredby?

The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

To provide an example, consider this point and line:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const e="/GeometryOps.jl/dev/assets/pppwegz.DC3TvBOO.png",c=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/coveredby.md"},h=n(`

CoveredBy

julia
export coveredby

What is coveredby?

The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

To provide an example, consider this point and line:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_coveredby.md.D5HIbX-g.lean.js b/dev/assets/source_methods_geom_relations_coveredby.md.IdonWU9W.lean.js
similarity index 76%
rename from dev/assets/source_methods_geom_relations_coveredby.md.D5HIbX-g.lean.js
rename to dev/assets/source_methods_geom_relations_coveredby.md.IdonWU9W.lean.js
index b2d4d6e43..cf708aeaf 100644
--- a/dev/assets/source_methods_geom_relations_coveredby.md.D5HIbX-g.lean.js
+++ b/dev/assets/source_methods_geom_relations_coveredby.md.IdonWU9W.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const e="/GeometryOps.jl/dev/assets/kbhytkn.DC3TvBOO.png",c=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/coveredby.md"},h=n("",45),t=[h];function p(k,r,E,d,g,o){return a(),i("div",null,t)}const F=s(l,[["render",p]]);export{c as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const e="/GeometryOps.jl/dev/assets/pppwegz.DC3TvBOO.png",c=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/coveredby.md"},h=n("",45),t=[h];function p(k,r,E,d,g,o){return a(),i("div",null,t)}const F=s(l,[["render",p]]);export{c as __pageData,F as default};
diff --git a/dev/assets/source_methods_geom_relations_covers.md.C2KxtqRB.js b/dev/assets/source_methods_geom_relations_covers.md.c9KpoxAC.js
similarity index 98%
rename from dev/assets/source_methods_geom_relations_covers.md.C2KxtqRB.js
rename to dev/assets/source_methods_geom_relations_covers.md.c9KpoxAC.js
index 6b3ba75fd..e83671f74 100644
--- a/dev/assets/source_methods_geom_relations_covers.md.C2KxtqRB.js
+++ b/dev/assets/source_methods_geom_relations_covers.md.c9KpoxAC.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.BBBwll2u.js";const n="/GeometryOps.jl/dev/assets/kbhytkn.DC3TvBOO.png",y=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/covers.md"},p=e(`

Covers

julia
export covers

What is covers?

The covers function checks if a given geometry completely covers another geometry. For this to be true, the "contained" geometry's interior and boundaries must be covered by the "covering" geometry's interior and boundaries. The interiors do not need to overlap.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.Bvl2j7qw.js";const n="/GeometryOps.jl/dev/assets/pppwegz.DC3TvBOO.png",y=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/covers.md"},p=e(`

Covers

julia
export covers

What is covers?

The covers function checks if a given geometry completely covers another geometry. For this to be true, the "contained" geometry's interior and boundaries must be covered by the "covering" geometry's interior and boundaries. The interiors do not need to overlap.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_covers.md.C2KxtqRB.lean.js b/dev/assets/source_methods_geom_relations_covers.md.c9KpoxAC.lean.js
similarity index 75%
rename from dev/assets/source_methods_geom_relations_covers.md.C2KxtqRB.lean.js
rename to dev/assets/source_methods_geom_relations_covers.md.c9KpoxAC.lean.js
index 7385176f0..8b759434e 100644
--- a/dev/assets/source_methods_geom_relations_covers.md.C2KxtqRB.lean.js
+++ b/dev/assets/source_methods_geom_relations_covers.md.c9KpoxAC.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.BBBwll2u.js";const n="/GeometryOps.jl/dev/assets/kbhytkn.DC3TvBOO.png",y=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/covers.md"},p=e("",17),l=[p];function h(k,r,o,d,c,g){return a(),i("div",null,l)}const u=s(t,[["render",h]]);export{y as __pageData,u as default};
+import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.Bvl2j7qw.js";const n="/GeometryOps.jl/dev/assets/pppwegz.DC3TvBOO.png",y=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/covers.md"},p=e("",17),l=[p];function h(k,r,o,d,c,g){return a(),i("div",null,l)}const u=s(t,[["render",h]]);export{y as __pageData,u as default};
diff --git a/dev/assets/source_methods_geom_relations_crosses.md.C3M3Jphu.js b/dev/assets/source_methods_geom_relations_crosses.md.DLQm71oy.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_crosses.md.C3M3Jphu.js
rename to dev/assets/source_methods_geom_relations_crosses.md.DLQm71oy.js
index f49a3b08d..983f70535 100644
--- a/dev/assets/source_methods_geom_relations_crosses.md.C3M3Jphu.js
+++ b/dev/assets/source_methods_geom_relations_crosses.md.DLQm71oy.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/crosses.md"},p=n(`

Crossing checks

julia
"""
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/crosses.md"},p=n(`

Crossing checks

julia
"""
      crosses(geom1, geom2)::Bool
 
 Return \`true\` if the intersection results in a geometry whose dimension is one less than
diff --git a/dev/assets/source_methods_geom_relations_crosses.md.C3M3Jphu.lean.js b/dev/assets/source_methods_geom_relations_crosses.md.DLQm71oy.lean.js
similarity index 73%
rename from dev/assets/source_methods_geom_relations_crosses.md.C3M3Jphu.lean.js
rename to dev/assets/source_methods_geom_relations_crosses.md.DLQm71oy.lean.js
index e24083fb2..e48999c18 100644
--- a/dev/assets/source_methods_geom_relations_crosses.md.C3M3Jphu.lean.js
+++ b/dev/assets/source_methods_geom_relations_crosses.md.DLQm71oy.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/crosses.md"},p=n("",10),h=[p];function t(k,e,r,E,g,d){return a(),i("div",null,h)}const o=s(l,[["render",t]]);export{y as __pageData,o as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/crosses.md"},p=n("",10),h=[p];function t(k,e,r,E,g,d){return a(),i("div",null,h)}const o=s(l,[["render",t]]);export{y as __pageData,o as default};
diff --git a/dev/assets/source_methods_geom_relations_disjoint.md.Bgw8KuWq.js b/dev/assets/source_methods_geom_relations_disjoint.md.Demo0wGa.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_disjoint.md.Bgw8KuWq.js
rename to dev/assets/source_methods_geom_relations_disjoint.md.Demo0wGa.js
index 868638f3a..e7e7f3e75 100644
--- a/dev/assets/source_methods_geom_relations_disjoint.md.Bgw8KuWq.js
+++ b/dev/assets/source_methods_geom_relations_disjoint.md.Demo0wGa.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const t="/GeometryOps.jl/dev/assets/kxjwxkf.C3SxJ3x-.png",c=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/disjoint.md"},l=n(`

Disjoint

julia
export disjoint

What is disjoint?

The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const t="/GeometryOps.jl/dev/assets/nkeavxx.C3SxJ3x-.png",c=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/disjoint.md"},l=n(`

Disjoint

julia
export disjoint

What is disjoint?

The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_disjoint.md.Bgw8KuWq.lean.js b/dev/assets/source_methods_geom_relations_disjoint.md.Demo0wGa.lean.js
similarity index 76%
rename from dev/assets/source_methods_geom_relations_disjoint.md.Bgw8KuWq.lean.js
rename to dev/assets/source_methods_geom_relations_disjoint.md.Demo0wGa.lean.js
index d721f7b64..0dbe28680 100644
--- a/dev/assets/source_methods_geom_relations_disjoint.md.Bgw8KuWq.lean.js
+++ b/dev/assets/source_methods_geom_relations_disjoint.md.Demo0wGa.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const t="/GeometryOps.jl/dev/assets/kxjwxkf.C3SxJ3x-.png",c=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/disjoint.md"},l=n("",39),p=[l];function k(e,r,E,g,d,o){return a(),i("div",null,p)}const F=s(h,[["render",k]]);export{c as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const t="/GeometryOps.jl/dev/assets/nkeavxx.C3SxJ3x-.png",c=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/disjoint.md"},l=n("",39),p=[l];function k(e,r,E,g,d,o){return a(),i("div",null,p)}const F=s(h,[["render",k]]);export{c as __pageData,F as default};
diff --git a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DPing0Qe.js b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DmTJXCoK.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_geom_geom_processors.md.DPing0Qe.js
rename to dev/assets/source_methods_geom_relations_geom_geom_processors.md.DmTJXCoK.js
index bbc580edb..a7ccd0cd9 100644
--- a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DPing0Qe.js
+++ b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DmTJXCoK.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/geom_geom_processors.md"},l=n(`

Line-curve interaction

julia
#= Code is based off of DE-9IM Standards (https://en.wikipedia.org/wiki/DE-9IM)
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/geom_geom_processors.md"},l=n(`

Line-curve interaction

julia
#= Code is based off of DE-9IM Standards (https://en.wikipedia.org/wiki/DE-9IM)
 and attempts a standardized solution for most of the functions.
 =#
 
diff --git a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DPing0Qe.lean.js b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DmTJXCoK.lean.js
similarity index 76%
rename from dev/assets/source_methods_geom_relations_geom_geom_processors.md.DPing0Qe.lean.js
rename to dev/assets/source_methods_geom_relations_geom_geom_processors.md.DmTJXCoK.lean.js
index 8c241e271..0d4bd686b 100644
--- a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DPing0Qe.lean.js
+++ b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.DmTJXCoK.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/geom_geom_processors.md"},l=n("",142),t=[l];function p(k,e,r,E,d,g){return a(),i("div",null,t)}const c=s(h,[["render",p]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/geom_geom_processors.md"},l=n("",142),t=[l];function p(k,e,r,E,d,g){return a(),i("div",null,t)}const c=s(h,[["render",p]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_methods_geom_relations_intersects.md.DDH8C6jB.js b/dev/assets/source_methods_geom_relations_intersects.md.Bxoc9mJi.js
similarity index 96%
rename from dev/assets/source_methods_geom_relations_intersects.md.DDH8C6jB.js
rename to dev/assets/source_methods_geom_relations_intersects.md.Bxoc9mJi.js
index 3ec8daf4c..8b1edc31d 100644
--- a/dev/assets/source_methods_geom_relations_intersects.md.DDH8C6jB.js
+++ b/dev/assets/source_methods_geom_relations_intersects.md.Bxoc9mJi.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.BBBwll2u.js";const n="/GeometryOps.jl/dev/assets/tuvqqqw.DeeQUply.png",y=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/intersects.md"},p=e(`

Intersection checks

julia
export intersects

What is intersects?

The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.Bvl2j7qw.js";const n="/GeometryOps.jl/dev/assets/hmsbhqf.DeeQUply.png",y=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/intersects.md"},p=e(`

Intersection checks

julia
export intersects

What is intersects?

The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
@@ -24,4 +24,4 @@ import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.BBBwll2u.js";const n
 GO.intersects(line1, line2)

output

julia
true
 \`\`\`
 """
-intersects(geom1, geom2) = !disjoint(geom1, geom2)

This page was generated using Literate.jl.

`,18),l=[p];function h(k,r,o,d,c,g){return a(),i("div",null,l)}const F=s(t,[["render",h]]);export{y as __pageData,F as default}; +intersects(geom1, geom2) = !disjoint(geom1, geom2)

This page was generated using Literate.jl.

`,18),h=[p];function l(k,r,o,d,c,g){return a(),i("div",null,h)}const F=s(t,[["render",l]]);export{y as __pageData,F as default}; diff --git a/dev/assets/source_methods_geom_relations_intersects.md.DDH8C6jB.lean.js b/dev/assets/source_methods_geom_relations_intersects.md.Bxoc9mJi.lean.js similarity index 53% rename from dev/assets/source_methods_geom_relations_intersects.md.DDH8C6jB.lean.js rename to dev/assets/source_methods_geom_relations_intersects.md.Bxoc9mJi.lean.js index 75ac0ea6d..a0e427dd8 100644 --- a/dev/assets/source_methods_geom_relations_intersects.md.DDH8C6jB.lean.js +++ b/dev/assets/source_methods_geom_relations_intersects.md.Bxoc9mJi.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.BBBwll2u.js";const n="/GeometryOps.jl/dev/assets/tuvqqqw.DeeQUply.png",y=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/intersects.md"},p=e("",18),l=[p];function h(k,r,o,d,c,g){return a(),i("div",null,l)}const F=s(t,[["render",h]]);export{y as __pageData,F as default}; +import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.Bvl2j7qw.js";const n="/GeometryOps.jl/dev/assets/hmsbhqf.DeeQUply.png",y=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/intersects.md"},p=e("",18),h=[p];function l(k,r,o,d,c,g){return a(),i("div",null,h)}const F=s(t,[["render",l]]);export{y as __pageData,F as default}; diff --git a/dev/assets/source_methods_geom_relations_overlaps.md.XbDRm-DH.js b/dev/assets/source_methods_geom_relations_overlaps.md.DtiGHuqu.js similarity index 99% rename from dev/assets/source_methods_geom_relations_overlaps.md.XbDRm-DH.js rename to dev/assets/source_methods_geom_relations_overlaps.md.DtiGHuqu.js index 060c3694c..4d465710d 100644 --- a/dev/assets/source_methods_geom_relations_overlaps.md.XbDRm-DH.js +++ b/dev/assets/source_methods_geom_relations_overlaps.md.DtiGHuqu.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const l="/GeometryOps.jl/dev/assets/acxdwnh.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"},t=n(`

Overlaps

julia
export overlaps

What is overlaps?

The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is collinear.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const l="/GeometryOps.jl/dev/assets/ejbycwd.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"},t=n(`

Overlaps

julia
export overlaps

What is overlaps?

The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is collinear.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_overlaps.md.XbDRm-DH.lean.js b/dev/assets/source_methods_geom_relations_overlaps.md.DtiGHuqu.lean.js
similarity index 76%
rename from dev/assets/source_methods_geom_relations_overlaps.md.XbDRm-DH.lean.js
rename to dev/assets/source_methods_geom_relations_overlaps.md.DtiGHuqu.lean.js
index c098a8531..80649ec40 100644
--- a/dev/assets/source_methods_geom_relations_overlaps.md.XbDRm-DH.lean.js
+++ b/dev/assets/source_methods_geom_relations_overlaps.md.DtiGHuqu.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const l="/GeometryOps.jl/dev/assets/acxdwnh.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"},t=n("",37),e=[t];function h(k,r,d,g,o,F){return a(),i("div",null,e)}const c=s(p,[["render",h]]);export{y as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const l="/GeometryOps.jl/dev/assets/ejbycwd.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"},t=n("",37),e=[t];function h(k,r,d,g,o,F){return a(),i("div",null,e)}const c=s(p,[["render",h]]);export{y as __pageData,c as default};
diff --git a/dev/assets/source_methods_geom_relations_touches.md.DpTWrVZo.js b/dev/assets/source_methods_geom_relations_touches.md.v6REtJ5W.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_touches.md.DpTWrVZo.js
rename to dev/assets/source_methods_geom_relations_touches.md.v6REtJ5W.js
index ff4b73dc7..b98755274 100644
--- a/dev/assets/source_methods_geom_relations_touches.md.DpTWrVZo.js
+++ b/dev/assets/source_methods_geom_relations_touches.md.v6REtJ5W.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const t="/GeometryOps.jl/dev/assets/ijkjdaz.BEFUMtlf.png",c=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/touches.md"},l=n(`

Touches

julia
export touches

What is touches?

The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const t="/GeometryOps.jl/dev/assets/hlltgdn.BEFUMtlf.png",c=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/touches.md"},l=n(`

Touches

julia
export touches

What is touches?

The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_touches.md.DpTWrVZo.lean.js b/dev/assets/source_methods_geom_relations_touches.md.v6REtJ5W.lean.js
similarity index 75%
rename from dev/assets/source_methods_geom_relations_touches.md.DpTWrVZo.lean.js
rename to dev/assets/source_methods_geom_relations_touches.md.v6REtJ5W.lean.js
index a02ba49c4..0f31998eb 100644
--- a/dev/assets/source_methods_geom_relations_touches.md.DpTWrVZo.lean.js
+++ b/dev/assets/source_methods_geom_relations_touches.md.v6REtJ5W.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const t="/GeometryOps.jl/dev/assets/ijkjdaz.BEFUMtlf.png",c=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/touches.md"},l=n("",41),e=[l];function p(k,r,E,g,d,o){return a(),i("div",null,e)}const F=s(h,[["render",p]]);export{c as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const t="/GeometryOps.jl/dev/assets/hlltgdn.BEFUMtlf.png",c=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/touches.md"},l=n("",41),e=[l];function p(k,r,E,g,d,o){return a(),i("div",null,e)}const F=s(h,[["render",p]]);export{c as __pageData,F as default};
diff --git a/dev/assets/source_methods_geom_relations_within.md.QtIwcNxG.js b/dev/assets/source_methods_geom_relations_within.md.De6yCkf5.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_within.md.QtIwcNxG.js
rename to dev/assets/source_methods_geom_relations_within.md.De6yCkf5.js
index c31016c57..9289fc52d 100644
--- a/dev/assets/source_methods_geom_relations_within.md.QtIwcNxG.js
+++ b/dev/assets/source_methods_geom_relations_within.md.De6yCkf5.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/fwyxcbl._0R9BbFk.png",c=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/within.md"},l=n(`

Within

julia
export within

What is within?

The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/hxadaxf._0R9BbFk.png",c=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/within.md"},l=n(`

Within

julia
export within

What is within?

The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_within.md.QtIwcNxG.lean.js b/dev/assets/source_methods_geom_relations_within.md.De6yCkf5.lean.js
similarity index 75%
rename from dev/assets/source_methods_geom_relations_within.md.QtIwcNxG.lean.js
rename to dev/assets/source_methods_geom_relations_within.md.De6yCkf5.lean.js
index 20410d589..080f5b0e8 100644
--- a/dev/assets/source_methods_geom_relations_within.md.QtIwcNxG.lean.js
+++ b/dev/assets/source_methods_geom_relations_within.md.De6yCkf5.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/fwyxcbl._0R9BbFk.png",c=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/within.md"},l=n("",41),e=[l];function p(k,r,E,g,d,o){return a(),i("div",null,e)}const F=s(t,[["render",p]]);export{c as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/hxadaxf._0R9BbFk.png",c=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/within.md"},l=n("",41),e=[l];function p(k,r,E,g,d,o){return a(),i("div",null,e)}const F=s(t,[["render",p]]);export{c as __pageData,F as default};
diff --git a/dev/assets/source_methods_orientation.md.DW4nCP6X.js b/dev/assets/source_methods_orientation.md.DOfnQhap.js
similarity index 99%
rename from dev/assets/source_methods_orientation.md.DW4nCP6X.js
rename to dev/assets/source_methods_orientation.md.DOfnQhap.js
index dd37a9722..eae90b47d 100644
--- a/dev/assets/source_methods_orientation.md.DW4nCP6X.js
+++ b/dev/assets/source_methods_orientation.md.DOfnQhap.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),l={name:"source/methods/orientation.md"},p=n(`

Orientation

julia
export isclockwise, isconcave

isclockwise

The orientation of a geometry is whether it runs clockwise or counter-clockwise.

This is defined for linestrings, linear rings, or vectors of points.

isconcave

A polygon is concave if it has at least one interior angle greater than 180 degrees, meaning that the interior of the polygon is not a convex set.

These are all adapted from Turf.jl.

The may not necessarily be what want in the end but work for now!

julia
"""
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),l={name:"source/methods/orientation.md"},p=n(`

Orientation

julia
export isclockwise, isconcave

isclockwise

The orientation of a geometry is whether it runs clockwise or counter-clockwise.

This is defined for linestrings, linear rings, or vectors of points.

isconcave

A polygon is concave if it has at least one interior angle greater than 180 degrees, meaning that the interior of the polygon is not a convex set.

These are all adapted from Turf.jl.

The may not necessarily be what want in the end but work for now!

julia
"""
     isclockwise(line::Union{LineString, Vector{Position}})::Bool
 
 Take a ring and return \`true\` if the line goes clockwise, or \`false\` if the line goes
diff --git a/dev/assets/source_methods_orientation.md.DW4nCP6X.lean.js b/dev/assets/source_methods_orientation.md.DOfnQhap.lean.js
similarity index 71%
rename from dev/assets/source_methods_orientation.md.DW4nCP6X.lean.js
rename to dev/assets/source_methods_orientation.md.DOfnQhap.lean.js
index 2845acb29..3df61a5e5 100644
--- a/dev/assets/source_methods_orientation.md.DW4nCP6X.lean.js
+++ b/dev/assets/source_methods_orientation.md.DOfnQhap.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),l={name:"source/methods/orientation.md"},p=n("",28),h=[p];function t(e,k,r,d,g,E){return a(),i("div",null,h)}const c=s(l,[["render",t]]);export{y as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),l={name:"source/methods/orientation.md"},p=n("",28),h=[p];function t(e,k,r,d,g,E){return a(),i("div",null,h)}const c=s(l,[["render",t]]);export{y as __pageData,c as default};
diff --git a/dev/assets/source_methods_polygonize.md.BFKNh2jY.js b/dev/assets/source_methods_polygonize.md.BVXHZDDo.js
similarity index 99%
rename from dev/assets/source_methods_polygonize.md.BFKNh2jY.js
rename to dev/assets/source_methods_polygonize.md.BVXHZDDo.js
index 12b40ff10..2e70e9566 100644
--- a/dev/assets/source_methods_polygonize.md.BFKNh2jY.js
+++ b/dev/assets/source_methods_polygonize.md.BVXHZDDo.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),h={name:"source/methods/polygonize.md"},l=n(`

Polygonizing raster data

julia
export polygonize
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),h={name:"source/methods/polygonize.md"},l=n(`

Polygonizing raster data

julia
export polygonize
 
 #=
 The methods in this file convert a raster image into a set of polygons,
diff --git a/dev/assets/source_methods_polygonize.md.BFKNh2jY.lean.js b/dev/assets/source_methods_polygonize.md.BVXHZDDo.lean.js
similarity index 72%
rename from dev/assets/source_methods_polygonize.md.BFKNh2jY.lean.js
rename to dev/assets/source_methods_polygonize.md.BVXHZDDo.lean.js
index 889c00ce7..d020558d2 100644
--- a/dev/assets/source_methods_polygonize.md.BFKNh2jY.lean.js
+++ b/dev/assets/source_methods_polygonize.md.BVXHZDDo.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),h={name:"source/methods/polygonize.md"},l=n("",86),p=[l];function t(k,e,d,E,r,g){return a(),i("div",null,p)}const c=s(h,[["render",t]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),h={name:"source/methods/polygonize.md"},l=n("",86),p=[l];function t(k,e,d,E,r,g){return a(),i("div",null,p)}const c=s(h,[["render",t]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_not_implemented_yet.md.DTGf4RVm.js b/dev/assets/source_not_implemented_yet.md.BLNLD-lK.js
similarity index 94%
rename from dev/assets/source_not_implemented_yet.md.DTGf4RVm.js
rename to dev/assets/source_not_implemented_yet.md.BLNLD-lK.js
index 1ca161e73..451c4b15d 100644
--- a/dev/assets/source_not_implemented_yet.md.DTGf4RVm.js
+++ b/dev/assets/source_not_implemented_yet.md.BLNLD-lK.js
@@ -1,4 +1,4 @@
-import{_ as e,c as i,o as t,a7 as s}from"./chunks/framework.BBBwll2u.js";const _=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),a={name:"source/not_implemented_yet.md"},n=s(`

Not implemented yet

All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

julia
function symdifference end
+import{_ as e,c as i,o as t,a7 as s}from"./chunks/framework.Bvl2j7qw.js";const _=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),a={name:"source/not_implemented_yet.md"},n=s(`

Not implemented yet

All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

julia
function symdifference end
 function buffer end
 function convexhull end
 function concavehull end

This page was generated using Literate.jl.

`,5),l=[n];function p(h,o,r,d,c,m){return t(),i("div",null,l)}const u=e(a,[["render",p]]);export{_ as __pageData,u as default}; diff --git a/dev/assets/source_not_implemented_yet.md.DTGf4RVm.lean.js b/dev/assets/source_not_implemented_yet.md.BLNLD-lK.lean.js similarity index 71% rename from dev/assets/source_not_implemented_yet.md.DTGf4RVm.lean.js rename to dev/assets/source_not_implemented_yet.md.BLNLD-lK.lean.js index 968585dca..a89e195eb 100644 --- a/dev/assets/source_not_implemented_yet.md.DTGf4RVm.lean.js +++ b/dev/assets/source_not_implemented_yet.md.BLNLD-lK.lean.js @@ -1 +1 @@ -import{_ as e,c as i,o as t,a7 as s}from"./chunks/framework.BBBwll2u.js";const _=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),a={name:"source/not_implemented_yet.md"},n=s("",5),l=[n];function p(h,o,r,d,c,m){return t(),i("div",null,l)}const u=e(a,[["render",p]]);export{_ as __pageData,u as default}; +import{_ as e,c as i,o as t,a7 as s}from"./chunks/framework.Bvl2j7qw.js";const _=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),a={name:"source/not_implemented_yet.md"},n=s("",5),l=[n];function p(h,o,r,d,c,m){return t(),i("div",null,l)}const u=e(a,[["render",p]]);export{_ as __pageData,u as default}; diff --git a/dev/assets/source_primitives.md.hKBNjnU2.js b/dev/assets/source_primitives.md.C2PXYTx0.js similarity index 99% rename from dev/assets/source_primitives.md.hKBNjnU2.js rename to dev/assets/source_primitives.md.C2PXYTx0.js index eeec72cf5..01645f1bb 100644 --- a/dev/assets/source_primitives.md.hKBNjnU2.js +++ b/dev/assets/source_primitives.md.C2PXYTx0.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),n={name:"source/primitives.md"},h=t(`

Primitive functions

julia
export apply, applyreduce, TraitTarget

This file mainly defines the apply and applyreduce functions, and some related functionality.

In general, the idea behind the apply framework is to take as input any geometry, vector of geometries, or feature collection, deconstruct it to the given trait target (any arbitrary GI.AbstractTrait or TraitTarget union thereof, like PointTrait or PolygonTrait) and perform some operation on it.

This allows for a simple and consistent framework within which users can define their own operations trivially easily, and removes a lot of the complexity involved with handling complex geometry structures.

For example, a simple way to flip the x and y coordinates of a geometry is:

julia
flipped_geom = GO.apply(GI.PointTrait(), geom) do p
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),n={name:"source/primitives.md"},h=t(`

Primitive functions

julia
export apply, applyreduce, TraitTarget

This file mainly defines the apply and applyreduce functions, and some related functionality.

In general, the idea behind the apply framework is to take as input any geometry, vector of geometries, or feature collection, deconstruct it to the given trait target (any arbitrary GI.AbstractTrait or TraitTarget union thereof, like PointTrait or PolygonTrait) and perform some operation on it.

This allows for a simple and consistent framework within which users can define their own operations trivially easily, and removes a lot of the complexity involved with handling complex geometry structures.

For example, a simple way to flip the x and y coordinates of a geometry is:

julia
flipped_geom = GO.apply(GI.PointTrait(), geom) do p
     (GI.y(p), GI.x(p))
 end

As simple as that. There's no need to implement your own decomposition because it's done for you.

Functions like flip, reproject, transform, even segmentize and simplify have been implemented using the apply framework. Similarly, centroid, area and distance have been implemented using the applyreduce framework.

Docstrings

Functions

Missing docstring.

Missing docstring for apply. Check Documenter's build log for details.

Missing docstring.

Missing docstring for applyreduce. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeometryOps.unwrap. Check Documenter's build log for details.

# GeometryOps.flattenFunction.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
 flatten(f, target::Type{<:GI.AbstractTrait}, obj)

Lazily flatten any AbstractArray, iterator, FeatureCollectionTrait, FeatureTrait or AbstractGeometryTrait object obj, so that objects with the target trait are returned by the iterator.

If f is passed in it will be applied to the target geometries.

source


# GeometryOps.reconstructFunction.
julia
reconstruct(geom, components)

Reconstruct geom from an iterable of component objects that match its structure.

All objects in components must have the same GeoInterface.trait.

Usually used in combination with flatten.

source


# GeometryOps.rebuildFunction.
julia
rebuild(geom, child_geoms)

Rebuild a geometry from child geometries.

By default geometries will be rebuilt as a GeoInterface.Wrappers geometry, but rebuild can have methods added to it to dispatch on geometries from other packages and specify how to rebuild them.

(Maybe it should go into GeoInterface.jl)

source


Types

Missing docstring.

Missing docstring for TraitTarget. Check Documenter's build log for details.

Implementation

julia
const THREADED_KEYWORD = "- \`threaded\`: \`true\` or \`false\`. Whether to use multithreading. Defaults to \`false\`."
diff --git a/dev/assets/source_primitives.md.hKBNjnU2.lean.js b/dev/assets/source_primitives.md.C2PXYTx0.lean.js
similarity index 70%
rename from dev/assets/source_primitives.md.hKBNjnU2.lean.js
rename to dev/assets/source_primitives.md.C2PXYTx0.lean.js
index 2d292a4ac..243734301 100644
--- a/dev/assets/source_primitives.md.hKBNjnU2.lean.js
+++ b/dev/assets/source_primitives.md.C2PXYTx0.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.BBBwll2u.js";const o=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),n={name:"source/primitives.md"},h=t("",194),e=[h];function l(p,k,r,d,g,E){return a(),i("div",null,e)}const c=s(n,[["render",l]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const o=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),n={name:"source/primitives.md"},h=t("",194),e=[h];function l(p,k,r,d,g,E){return a(),i("div",null,e)}const c=s(n,[["render",l]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_transformations_correction_closed_ring.md.D1a6mEpy.js b/dev/assets/source_transformations_correction_closed_ring.md.B6qiy37I.js
similarity index 99%
rename from dev/assets/source_transformations_correction_closed_ring.md.D1a6mEpy.js
rename to dev/assets/source_transformations_correction_closed_ring.md.B6qiy37I.js
index 50e415808..9ea43e562 100644
--- a/dev/assets/source_transformations_correction_closed_ring.md.D1a6mEpy.js
+++ b/dev/assets/source_transformations_correction_closed_ring.md.B6qiy37I.js
@@ -1,4 +1,4 @@
-import{_ as t,c as i,j as s,a,a7 as e,o as n}from"./chunks/framework.BBBwll2u.js";const Q=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),l={name:"source/transformations/correction/closed_ring.md"},h=e(`

Closed Rings

julia
export ClosedRing

A closed ring is a ring that has the same start and end point. This is a requirement for a valid polygon (technically, for a valid LinearRing). This correction is used to ensure that the polygon is valid.

The reason this operates on the polygon level is that several packages are loose about whether they return LinearRings (which is correct) or LineStrings (which is incorrect) for the contents of a polygon. Therefore, we decompose manually to ensure correctness.

Example

Many polygon providers do not close their polygons, which makes them invalid according to the specification. Quite a few geometry algorithms assume that polygons are closed, and leaving them open can lead to incorrect results!

For example, the following polygon is not valid:

julia
import GeoInterface as GI
+import{_ as t,c as i,j as s,a,a7 as e,o as n}from"./chunks/framework.Bvl2j7qw.js";const Q=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),l={name:"source/transformations/correction/closed_ring.md"},h=e(`

Closed Rings

julia
export ClosedRing

A closed ring is a ring that has the same start and end point. This is a requirement for a valid polygon (technically, for a valid LinearRing). This correction is used to ensure that the polygon is valid.

The reason this operates on the polygon level is that several packages are loose about whether they return LinearRings (which is correct) or LineStrings (which is incorrect) for the contents of a polygon. Therefore, we decompose manually to ensure correctness.

Example

Many polygon providers do not close their polygons, which makes them invalid according to the specification. Quite a few geometry algorithms assume that polygons are closed, and leaving them open can lead to incorrect results!

For example, the following polygon is not valid:

julia
import GeoInterface as GI
 polygon = GI.Polygon([[(0, 0), (1, 0), (1, 1), (0, 1)]])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}([(0, 0), (1, 0), (1, 1), (0, 1)], nothing, nothing)], nothing, nothing)

even though it will look correct when visualized, and indeed appears correct.

julia
import GeometryOps as GO
 GO.fix(polygon, corrections = [GO.ClosedRing()])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)
`,12),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},r=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),o=[r],d=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.254ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2322.4 748","aria-hidden":"true"},E=e('',1),y=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mo",null,"+"),s("mn",null,"1")])],-1),F=e(`

Implementation

julia
"""
     ClosedRing() <: GeometryCorrection
diff --git a/dev/assets/source_transformations_correction_closed_ring.md.D1a6mEpy.lean.js b/dev/assets/source_transformations_correction_closed_ring.md.B6qiy37I.lean.js
similarity index 97%
rename from dev/assets/source_transformations_correction_closed_ring.md.D1a6mEpy.lean.js
rename to dev/assets/source_transformations_correction_closed_ring.md.B6qiy37I.lean.js
index eeed2a788..8559b74a7 100644
--- a/dev/assets/source_transformations_correction_closed_ring.md.D1a6mEpy.lean.js
+++ b/dev/assets/source_transformations_correction_closed_ring.md.B6qiy37I.lean.js
@@ -1 +1 @@
-import{_ as t,c as i,j as s,a,a7 as e,o as n}from"./chunks/framework.BBBwll2u.js";const Q=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),l={name:"source/transformations/correction/closed_ring.md"},h=e("",12),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},r=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),o=[r],d=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.254ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2322.4 748","aria-hidden":"true"},E=e("",1),y=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mo",null,"+"),s("mn",null,"1")])],-1),F=e("",12);function m(C,_,v,T,b,f){return n(),i("div",null,[h,s("p",null,[a("You can see that the last point of the ring here is equal to the first point. For a polygon with "),s("mjx-container",p,[(n(),i("svg",k,o)),d]),a(" sides, there should be "),s("mjx-container",g,[(n(),i("svg",c,y)),u]),a(" vertices.")]),F])}const A=t(l,[["render",m]]);export{Q as __pageData,A as default};
+import{_ as t,c as i,j as s,a,a7 as e,o as n}from"./chunks/framework.Bvl2j7qw.js";const Q=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),l={name:"source/transformations/correction/closed_ring.md"},h=e("",12),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},r=s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1),o=[r],d=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1),g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.254ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2322.4 748","aria-hidden":"true"},E=e("",1),y=[E],u=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n"),s("mo",null,"+"),s("mn",null,"1")])],-1),F=e("",12);function m(C,_,v,T,b,f){return n(),i("div",null,[h,s("p",null,[a("You can see that the last point of the ring here is equal to the first point. For a polygon with "),s("mjx-container",p,[(n(),i("svg",k,o)),d]),a(" sides, there should be "),s("mjx-container",g,[(n(),i("svg",c,y)),u]),a(" vertices.")]),F])}const A=t(l,[["render",m]]);export{Q as __pageData,A as default};
diff --git a/dev/assets/source_transformations_correction_geometry_correction.md.Dr9cCVjo.js b/dev/assets/source_transformations_correction_geometry_correction.md.lcG8M7HP.js
similarity index 99%
rename from dev/assets/source_transformations_correction_geometry_correction.md.Dr9cCVjo.js
rename to dev/assets/source_transformations_correction_geometry_correction.md.lcG8M7HP.js
index 73795264c..f78703497 100644
--- a/dev/assets/source_transformations_correction_geometry_correction.md.Dr9cCVjo.js
+++ b/dev/assets/source_transformations_correction_geometry_correction.md.lcG8M7HP.js
@@ -1,4 +1,4 @@
-import{_ as i,c as s,o as e,a7 as t}from"./chunks/framework.BBBwll2u.js";const g=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),a={name:"source/transformations/correction/geometry_correction.md"},n=t(`

Geometry Corrections

julia
export fix

This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

A geometry correction is a transformation that is applied to a geometry to correct it in some way.

For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

Interface

All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

See below for the full interface specification.

# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


Any geometry correction must implement the interface as given above.

julia
"""
+import{_ as i,c as s,o as e,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const g=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),a={name:"source/transformations/correction/geometry_correction.md"},n=t(`

Geometry Corrections

julia
export fix

This file simply defines the GeometryCorrection abstract type, and the interface that any GeometryCorrection must implement.

A geometry correction is a transformation that is applied to a geometry to correct it in some way.

For example, a ClosedRing correction might be applied to a Polygon to ensure that its exterior ring is closed.

Interface

All GeometryCorrections are callable structs which, when called, apply the correction to the given geometry, and return either a copy or the original geometry (if nothing needed to be corrected).

See below for the full interface specification.

# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


Any geometry correction must implement the interface as given above.

julia
"""
     abstract type GeometryCorrection
 
 This abstract type represents a geometry correction.
diff --git a/dev/assets/source_transformations_correction_geometry_correction.md.Dr9cCVjo.lean.js b/dev/assets/source_transformations_correction_geometry_correction.md.lcG8M7HP.lean.js
similarity index 76%
rename from dev/assets/source_transformations_correction_geometry_correction.md.Dr9cCVjo.lean.js
rename to dev/assets/source_transformations_correction_geometry_correction.md.lcG8M7HP.lean.js
index d7a5c5d92..f6c3d41a0 100644
--- a/dev/assets/source_transformations_correction_geometry_correction.md.Dr9cCVjo.lean.js
+++ b/dev/assets/source_transformations_correction_geometry_correction.md.lcG8M7HP.lean.js
@@ -1 +1 @@
-import{_ as i,c as s,o as e,a7 as t}from"./chunks/framework.BBBwll2u.js";const g=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),a={name:"source/transformations/correction/geometry_correction.md"},n=t("",23),r=[n];function o(l,p,h,c,k,d){return e(),s("div",null,r)}const m=i(a,[["render",o]]);export{g as __pageData,m as default};
+import{_ as i,c as s,o as e,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const g=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),a={name:"source/transformations/correction/geometry_correction.md"},n=t("",23),r=[n];function o(l,p,h,c,k,d){return e(),s("div",null,r)}const m=i(a,[["render",o]]);export{g as __pageData,m as default};
diff --git a/dev/assets/source_transformations_correction_intersecting_polygons.md.B3elaA2O.js b/dev/assets/source_transformations_correction_intersecting_polygons.md.CMYt57Jo.js
similarity index 99%
rename from dev/assets/source_transformations_correction_intersecting_polygons.md.B3elaA2O.js
rename to dev/assets/source_transformations_correction_intersecting_polygons.md.CMYt57Jo.js
index cee0f2601..362e7c398 100644
--- a/dev/assets/source_transformations_correction_intersecting_polygons.md.B3elaA2O.js
+++ b/dev/assets/source_transformations_correction_intersecting_polygons.md.CMYt57Jo.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),l={name:"source/transformations/correction/intersecting_polygons.md"},t=n(`

Intersecting Polygons

julia
export UnionIntersectingPolygons

If the sub-polygons of a multipolygon are intersecting, this makes them invalid according to specification. Each sub-polygon of a multipolygon being disjoint (other than by a single point) is a requirement for a valid multipolygon. However, different libraries may achieve this in different ways.

For example, taking the union of all sub-polygons of a multipolygon will create a new multipolygon where each sub-polygon is disjoint. This can be done with the UnionIntersectingPolygons correction.

The reason this operates on a multipolygon level is that it is easy for users to mistakenly create multipolygon's that overlap, which can then be detrimental to polygon clipping performance and even create wrong answers.

Example

Multipolygon providers may not check that the polygons making up their multipolygons do not intersect, which makes them invalid according to the specification.

For example, the following multipolygon is not valid:

julia
import GeoInterface as GI
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),l={name:"source/transformations/correction/intersecting_polygons.md"},t=n(`

Intersecting Polygons

julia
export UnionIntersectingPolygons

If the sub-polygons of a multipolygon are intersecting, this makes them invalid according to specification. Each sub-polygon of a multipolygon being disjoint (other than by a single point) is a requirement for a valid multipolygon. However, different libraries may achieve this in different ways.

For example, taking the union of all sub-polygons of a multipolygon will create a new multipolygon where each sub-polygon is disjoint. This can be done with the UnionIntersectingPolygons correction.

The reason this operates on a multipolygon level is that it is easy for users to mistakenly create multipolygon's that overlap, which can then be detrimental to polygon clipping performance and even create wrong answers.

Example

Multipolygon providers may not check that the polygons making up their multipolygons do not intersect, which makes them invalid according to the specification.

For example, the following multipolygon is not valid:

julia
import GeoInterface as GI
 polygon = GI.Polygon([[(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)]])
 multipolygon = GI.MultiPolygon([polygon, polygon])
GeoInterface.Wrappers.MultiPolygon{false, false, Vector{GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing), GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)], nothing, nothing)

given that the two sub-polygons are the exact same shape.

julia
import GeometryOps as GO
 GO.fix(multipolygon, corrections = [GO.UnionIntersectingPolygons()])
GeoInterface.Wrappers.MultiPolygon{false, false, Vector{GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)], nothing, nothing)

You can see that the the multipolygon now only contains one sub-polygon, rather than the two identical ones provided.

Implementation

julia
"""
diff --git a/dev/assets/source_transformations_correction_intersecting_polygons.md.B3elaA2O.lean.js b/dev/assets/source_transformations_correction_intersecting_polygons.md.CMYt57Jo.lean.js
similarity index 76%
rename from dev/assets/source_transformations_correction_intersecting_polygons.md.B3elaA2O.lean.js
rename to dev/assets/source_transformations_correction_intersecting_polygons.md.CMYt57Jo.lean.js
index f4e7f636d..0b6defeb3 100644
--- a/dev/assets/source_transformations_correction_intersecting_polygons.md.B3elaA2O.lean.js
+++ b/dev/assets/source_transformations_correction_intersecting_polygons.md.CMYt57Jo.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),l={name:"source/transformations/correction/intersecting_polygons.md"},t=n("",22),h=[t];function p(e,k,r,g,o,E){return a(),i("div",null,h)}const c=s(l,[["render",p]]);export{y as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),l={name:"source/transformations/correction/intersecting_polygons.md"},t=n("",22),h=[t];function p(e,k,r,g,o,E){return a(),i("div",null,h)}const c=s(l,[["render",p]]);export{y as __pageData,c as default};
diff --git a/dev/assets/source_transformations_extent.md.C6gSugPE.js b/dev/assets/source_transformations_extent.md.Con1_m1U.js
similarity index 95%
rename from dev/assets/source_transformations_extent.md.C6gSugPE.js
rename to dev/assets/source_transformations_extent.md.Con1_m1U.js
index fd7ea1c77..a56fdabba 100644
--- a/dev/assets/source_transformations_extent.md.C6gSugPE.js
+++ b/dev/assets/source_transformations_extent.md.Con1_m1U.js
@@ -1,4 +1,4 @@
-import{_ as s,c as e,o as a,a7 as t}from"./chunks/framework.BBBwll2u.js";const u=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),n={name:"source/transformations/extent.md"},i=t(`

Extent embedding

julia
"""
+import{_ as s,c as e,o as a,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const u=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),n={name:"source/transformations/extent.md"},i=t(`

Extent embedding

julia
"""
     embed_extent(obj)
 
 Recursively wrap the object with a GeoInterface.jl geometry,
diff --git a/dev/assets/source_transformations_extent.md.C6gSugPE.lean.js b/dev/assets/source_transformations_extent.md.Con1_m1U.lean.js
similarity index 72%
rename from dev/assets/source_transformations_extent.md.C6gSugPE.lean.js
rename to dev/assets/source_transformations_extent.md.Con1_m1U.lean.js
index fefea771b..73aa2d92e 100644
--- a/dev/assets/source_transformations_extent.md.C6gSugPE.lean.js
+++ b/dev/assets/source_transformations_extent.md.Con1_m1U.lean.js
@@ -1 +1 @@
-import{_ as s,c as e,o as a,a7 as t}from"./chunks/framework.BBBwll2u.js";const u=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),n={name:"source/transformations/extent.md"},i=t("",6),l=[i];function p(r,h,d,o,c,k){return a(),e("div",null,l)}const m=s(n,[["render",p]]);export{u as __pageData,m as default};
+import{_ as s,c as e,o as a,a7 as t}from"./chunks/framework.Bvl2j7qw.js";const u=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),n={name:"source/transformations/extent.md"},i=t("",6),l=[i];function p(r,h,d,o,c,k){return a(),e("div",null,l)}const m=s(n,[["render",p]]);export{u as __pageData,m as default};
diff --git a/dev/assets/source_transformations_flip.md.Dc7XZoY8.js b/dev/assets/source_transformations_flip.md.DkYmMWiD.js
similarity index 97%
rename from dev/assets/source_transformations_flip.md.Dc7XZoY8.js
rename to dev/assets/source_transformations_flip.md.DkYmMWiD.js
index 84617e216..81f03d8e4 100644
--- a/dev/assets/source_transformations_flip.md.Dc7XZoY8.js
+++ b/dev/assets/source_transformations_flip.md.DkYmMWiD.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),p={name:"source/transformations/flip.md"},t=n(`

Coordinate flipping

This is a simple example of how to use the apply functionality in a function, by flipping the x and y coordinates of a geometry.

julia
"""
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),p={name:"source/transformations/flip.md"},t=n(`

Coordinate flipping

This is a simple example of how to use the apply functionality in a function, by flipping the x and y coordinates of a geometry.

julia
"""
     flip(obj)
 
 Swap all of the x and y coordinates in obj, otherwise
diff --git a/dev/assets/source_transformations_flip.md.Dc7XZoY8.lean.js b/dev/assets/source_transformations_flip.md.DkYmMWiD.lean.js
similarity index 72%
rename from dev/assets/source_transformations_flip.md.Dc7XZoY8.lean.js
rename to dev/assets/source_transformations_flip.md.DkYmMWiD.lean.js
index fdbd13fce..3898b672b 100644
--- a/dev/assets/source_transformations_flip.md.Dc7XZoY8.lean.js
+++ b/dev/assets/source_transformations_flip.md.DkYmMWiD.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),p={name:"source/transformations/flip.md"},t=n("",5),l=[t];function h(e,k,r,d,o,g){return a(),i("div",null,l)}const c=s(p,[["render",h]]);export{y as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),p={name:"source/transformations/flip.md"},t=n("",5),l=[t];function h(e,k,r,d,o,g){return a(),i("div",null,l)}const c=s(p,[["render",h]]);export{y as __pageData,c as default};
diff --git a/dev/assets/source_transformations_reproject.md.Wnqjvjng.js b/dev/assets/source_transformations_reproject.md.CvcazlVI.js
similarity index 98%
rename from dev/assets/source_transformations_reproject.md.Wnqjvjng.js
rename to dev/assets/source_transformations_reproject.md.CvcazlVI.js
index 8c98402e8..a818449e0 100644
--- a/dev/assets/source_transformations_reproject.md.Wnqjvjng.js
+++ b/dev/assets/source_transformations_reproject.md.CvcazlVI.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),n={name:"source/transformations/reproject.md"},t=e('

Geometry reprojection

julia
export reproject

This file is pretty simple - it simply reprojects a geometry pointwise from one CRS to another. It uses the Proj package for the transformation, but this could be moved to an extension if needed.

Note that the actual implementation is in the GeometryOpsProjExt extension module.

This works using the apply functionality.

julia
"""\n    reproject(geometry; source_crs, target_crs, transform, always_xy, time)\n    reproject(geometry, source_crs, target_crs; always_xy, time)\n    reproject(geometry, transform; always_xy, time)\n\nReproject any GeoInterface.jl compatible `geometry` from `source_crs` to `target_crs`.\n\nThe returned object will be constructed from `GeoInterface.WrapperGeometry`\ngeometries, wrapping views of a `Vector{Proj.Point{D}}`, where `D` is the dimension.\n\n!!! tip\n    The `Proj.jl` package must be loaded for this method to work,\n    since it is implemented in a package extension.\n\n# Arguments\n\n- `geometry`: Any GeoInterface.jl compatible geometries.\n- `source_crs`: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.\n- `target_crs`: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.\n\nIf these a passed as keywords, `transform` will take priority.\nWithout it `target_crs` is always needed, and `source_crs` is\nneeded if it is not retrievable from the geometry with `GeoInterface.crs(geometry)`.\n\n# Keywords\n\n- `always_xy`: force x, y coordinate order, `true` by default.\n    `false` will expect and return points in the crs coordinate order.\n- `time`: the time for the coordinates. `Inf` by default.\n$APPLY_KEYWORDS\n"""\nfunction reproject end

Method error handling

We also inject a method error handler, which prints a suggestion if the Proj extension is not loaded.

julia
function _reproject_error_hinter(io, exc, argtypes, kwargs)\n    if isnothing(Base.get_extension(GeometryOps, :GeometryOpsProjExt)) && exc.f == reproject\n        print(io, "\\n\\nThe `reproject` method requires the Proj.jl package to be explicitly loaded.\\n")\n        print(io, "You can do this by simply typing ")\n        printstyled(io, "using Proj"; color = :cyan, bold = true)\n        println(io, " in your REPL, \\nor otherwise loading Proj.jl via using or import.")\n    else # this is a more general error\n        nothing\n    end\nend

This page was generated using Literate.jl.

',11),p=[t];function l(r,h,o,k,d,c){return a(),i("div",null,p)}const F=s(n,[["render",l]]);export{y as __pageData,F as default}; +import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),n={name:"source/transformations/reproject.md"},t=e('

Geometry reprojection

julia
export reproject

This file is pretty simple - it simply reprojects a geometry pointwise from one CRS to another. It uses the Proj package for the transformation, but this could be moved to an extension if needed.

Note that the actual implementation is in the GeometryOpsProjExt extension module.

This works using the apply functionality.

julia
"""\n    reproject(geometry; source_crs, target_crs, transform, always_xy, time)\n    reproject(geometry, source_crs, target_crs; always_xy, time)\n    reproject(geometry, transform; always_xy, time)\n\nReproject any GeoInterface.jl compatible `geometry` from `source_crs` to `target_crs`.\n\nThe returned object will be constructed from `GeoInterface.WrapperGeometry`\ngeometries, wrapping views of a `Vector{Proj.Point{D}}`, where `D` is the dimension.\n\n!!! tip\n    The `Proj.jl` package must be loaded for this method to work,\n    since it is implemented in a package extension.\n\n# Arguments\n\n- `geometry`: Any GeoInterface.jl compatible geometries.\n- `source_crs`: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.\n- `target_crs`: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.\n\nIf these a passed as keywords, `transform` will take priority.\nWithout it `target_crs` is always needed, and `source_crs` is\nneeded if it is not retrievable from the geometry with `GeoInterface.crs(geometry)`.\n\n# Keywords\n\n- `always_xy`: force x, y coordinate order, `true` by default.\n    `false` will expect and return points in the crs coordinate order.\n- `time`: the time for the coordinates. `Inf` by default.\n$APPLY_KEYWORDS\n"""\nfunction reproject end

Method error handling

We also inject a method error handler, which prints a suggestion if the Proj extension is not loaded.

julia
function _reproject_error_hinter(io, exc, argtypes, kwargs)\n    if isnothing(Base.get_extension(GeometryOps, :GeometryOpsProjExt)) && exc.f == reproject\n        print(io, "\\n\\nThe `reproject` method requires the Proj.jl package to be explicitly loaded.\\n")\n        print(io, "You can do this by simply typing ")\n        printstyled(io, "using Proj"; color = :cyan, bold = true)\n        println(io, " in your REPL, \\nor otherwise loading Proj.jl via using or import.")\n    else # this is a more general error\n        nothing\n    end\nend

This page was generated using Literate.jl.

',11),p=[t];function l(r,h,o,k,d,c){return a(),i("div",null,p)}const F=s(n,[["render",l]]);export{y as __pageData,F as default}; diff --git a/dev/assets/source_transformations_reproject.md.Wnqjvjng.lean.js b/dev/assets/source_transformations_reproject.md.CvcazlVI.lean.js similarity index 73% rename from dev/assets/source_transformations_reproject.md.Wnqjvjng.lean.js rename to dev/assets/source_transformations_reproject.md.CvcazlVI.lean.js index f2b6219e3..8d7621769 100644 --- a/dev/assets/source_transformations_reproject.md.Wnqjvjng.lean.js +++ b/dev/assets/source_transformations_reproject.md.CvcazlVI.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),n={name:"source/transformations/reproject.md"},t=e("",11),p=[t];function l(r,h,o,k,d,c){return a(),i("div",null,p)}const F=s(n,[["render",l]]);export{y as __pageData,F as default}; +import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),n={name:"source/transformations/reproject.md"},t=e("",11),p=[t];function l(r,h,o,k,d,c){return a(),i("div",null,p)}const F=s(n,[["render",l]]);export{y as __pageData,F as default}; diff --git a/dev/assets/source_transformations_segmentize.md.QCebgfpD.js b/dev/assets/source_transformations_segmentize.md.DCN2dN8Q.js similarity index 99% rename from dev/assets/source_transformations_segmentize.md.QCebgfpD.js rename to dev/assets/source_transformations_segmentize.md.DCN2dN8Q.js index b0e0e7dfd..b0f317ee2 100644 --- a/dev/assets/source_transformations_segmentize.md.QCebgfpD.js +++ b/dev/assets/source_transformations_segmentize.md.DCN2dN8Q.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/ivugxpp.BOOG5oTW.png",t="/GeometryOps.jl/dev/assets/rchoylg.Bdud5wnf.png",c=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),l={name:"source/transformations/segmentize.md"},e=n(`

Segmentize

julia
export segmentize
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/psbpzzd.BOOG5oTW.png",t="/GeometryOps.jl/dev/assets/lunfxzs.BuEu35X2.png",c=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),l={name:"source/transformations/segmentize.md"},e=n(`

Segmentize

julia
export segmentize
 export LinearSegments, GeodesicSegments

This function "segmentizes" or "densifies" a geometry by adding extra vertices to the geometry so that no segment is longer than a given distance. This is useful for plotting geometries with a limited number of vertices, or for ensuring that a geometry is not too "coarse" for a given application.

Info

We plan to add interpolated segmentization from DataInterpolations.jl in the future, which will be available to any vector of point-like objects.

For now, this function only works on 2D geometries. We will also support 3D geometries, as well as measure interpolation, in the future.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 rectangle = GI.Wrappers.Polygon([[(0.0, 50.0), (7.071, 57.07), (0, 64.14), (-7.07, 57.07), (0.0, 50.0)]])
 linear = GO.segmentize(rectangle; max_distance = 5)
@@ -151,4 +151,4 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h
         end
     end

End the line with the original coordinate, to avoid any multiplication errors.

julia
    push!(new_coords, (x2, y2))
     return nothing
-end

Note

The _fill_linear_kernel definition for GeodesicSegments is in the GeometryOpsProjExt extension module, in the segmentize.jl file.


This page was generated using Literate.jl.

`,34),k=[e];function p(r,d,E,g,y,o){return a(),i("div",null,k)}const C=s(l,[["render",p]]);export{c as __pageData,C as default}; +end

Note

The _fill_linear_kernel definition for GeodesicSegments is in the GeometryOpsProjExt extension module, in the segmentize.jl file.


This page was generated using Literate.jl.

`,34),k=[e];function p(r,E,d,g,y,o){return a(),i("div",null,k)}const C=s(l,[["render",p]]);export{c as __pageData,C as default}; diff --git a/dev/assets/source_transformations_segmentize.md.QCebgfpD.lean.js b/dev/assets/source_transformations_segmentize.md.DCN2dN8Q.lean.js similarity index 55% rename from dev/assets/source_transformations_segmentize.md.QCebgfpD.lean.js rename to dev/assets/source_transformations_segmentize.md.DCN2dN8Q.lean.js index 6573d8379..6b211dd87 100644 --- a/dev/assets/source_transformations_segmentize.md.QCebgfpD.lean.js +++ b/dev/assets/source_transformations_segmentize.md.DCN2dN8Q.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/ivugxpp.BOOG5oTW.png",t="/GeometryOps.jl/dev/assets/rchoylg.Bdud5wnf.png",c=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),l={name:"source/transformations/segmentize.md"},e=n("",34),k=[e];function p(r,d,E,g,y,o){return a(),i("div",null,k)}const C=s(l,[["render",p]]);export{c as __pageData,C as default}; +import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/psbpzzd.BOOG5oTW.png",t="/GeometryOps.jl/dev/assets/lunfxzs.BuEu35X2.png",c=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),l={name:"source/transformations/segmentize.md"},e=n("",34),k=[e];function p(r,E,d,g,y,o){return a(),i("div",null,k)}const C=s(l,[["render",p]]);export{c as __pageData,C as default}; diff --git a/dev/assets/source_transformations_simplify.md.CZ8SMy68.js b/dev/assets/source_transformations_simplify.md.BfTqOLTu.js similarity index 99% rename from dev/assets/source_transformations_simplify.md.CZ8SMy68.js rename to dev/assets/source_transformations_simplify.md.BfTqOLTu.js index 800a2e570..664ccfabd 100644 --- a/dev/assets/source_transformations_simplify.md.CZ8SMy68.js +++ b/dev/assets/source_transformations_simplify.md.BfTqOLTu.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/mxehgnq.Bglvb-jp.png",l="/GeometryOps.jl/dev/assets/reernfm.B94PsR1K.png",k="/GeometryOps.jl/dev/assets/vphrfxl.Dt3-zIGx.png",t="/GeometryOps.jl/dev/assets/mvkdsle.CUIzZ_nZ.png",u=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),p={name:"source/transformations/simplify.md"},e=n(`

Geometry simplification

This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

Examples

A quick and dirty example is:

julia
using Makie, GeoInterfaceMakie
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/htontks.Bglvb-jp.png",l="/GeometryOps.jl/dev/assets/miqqeoz.B94PsR1K.png",k="/GeometryOps.jl/dev/assets/cqiofsw.C4S9aMke.png",t="/GeometryOps.jl/dev/assets/lnskvvs._80lAQlU.png",u=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),p={name:"source/transformations/simplify.md"},e=n(`

Geometry simplification

This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

Examples

A quick and dirty example is:

julia
using Makie, GeoInterfaceMakie
 import GeoInterface as GI
 import GeometryOps as GO
 
diff --git a/dev/assets/source_transformations_simplify.md.CZ8SMy68.lean.js b/dev/assets/source_transformations_simplify.md.BfTqOLTu.lean.js
similarity index 53%
rename from dev/assets/source_transformations_simplify.md.CZ8SMy68.lean.js
rename to dev/assets/source_transformations_simplify.md.BfTqOLTu.lean.js
index 878f34a0e..a5607df93 100644
--- a/dev/assets/source_transformations_simplify.md.CZ8SMy68.lean.js
+++ b/dev/assets/source_transformations_simplify.md.BfTqOLTu.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/mxehgnq.Bglvb-jp.png",l="/GeometryOps.jl/dev/assets/reernfm.B94PsR1K.png",k="/GeometryOps.jl/dev/assets/vphrfxl.Dt3-zIGx.png",t="/GeometryOps.jl/dev/assets/mvkdsle.CUIzZ_nZ.png",u=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),p={name:"source/transformations/simplify.md"},e=n("",71),E=[e];function r(d,g,y,F,o,c){return a(),i("div",null,E)}const D=s(p,[["render",r]]);export{u as __pageData,D as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/htontks.Bglvb-jp.png",l="/GeometryOps.jl/dev/assets/miqqeoz.B94PsR1K.png",k="/GeometryOps.jl/dev/assets/cqiofsw.C4S9aMke.png",t="/GeometryOps.jl/dev/assets/lnskvvs._80lAQlU.png",u=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),p={name:"source/transformations/simplify.md"},e=n("",71),E=[e];function r(d,g,y,F,o,c){return a(),i("div",null,E)}const D=s(p,[["render",r]]);export{u as __pageData,D as default};
diff --git a/dev/assets/source_transformations_transform.md.CluTv3ni.js b/dev/assets/source_transformations_transform.md.D6Oo_xvE.js
similarity index 98%
rename from dev/assets/source_transformations_transform.md.CluTv3ni.js
rename to dev/assets/source_transformations_transform.md.D6Oo_xvE.js
index c15ac121e..f69e40323 100644
--- a/dev/assets/source_transformations_transform.md.CluTv3ni.js
+++ b/dev/assets/source_transformations_transform.md.D6Oo_xvE.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const d=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),t={name:"source/transformations/transform.md"},l=n(`

Pointwise transformation

julia
"""
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const d=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),t={name:"source/transformations/transform.md"},l=n(`

Pointwise transformation

julia
"""
     transform(f, obj)
 
 Apply a function \`f\` to all the points in \`obj\`.
diff --git a/dev/assets/source_transformations_transform.md.CluTv3ni.lean.js b/dev/assets/source_transformations_transform.md.D6Oo_xvE.lean.js
similarity index 73%
rename from dev/assets/source_transformations_transform.md.CluTv3ni.lean.js
rename to dev/assets/source_transformations_transform.md.D6Oo_xvE.lean.js
index 880e2c7b1..ba9c0538e 100644
--- a/dev/assets/source_transformations_transform.md.CluTv3ni.lean.js
+++ b/dev/assets/source_transformations_transform.md.D6Oo_xvE.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const d=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),t={name:"source/transformations/transform.md"},l=n("",4),e=[l];function p(h,r,k,o,g,F){return a(),i("div",null,e)}const y=s(t,[["render",p]]);export{d as __pageData,y as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const d=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),t={name:"source/transformations/transform.md"},l=n("",4),e=[l];function p(h,r,k,o,g,F){return a(),i("div",null,e)}const y=s(t,[["render",p]]);export{d as __pageData,y as default};
diff --git a/dev/assets/source_transformations_tuples.md.DJ1pjYpQ.js b/dev/assets/source_transformations_tuples.md.DkAtqTaX.js
similarity index 96%
rename from dev/assets/source_transformations_tuples.md.DJ1pjYpQ.js
rename to dev/assets/source_transformations_tuples.md.DkAtqTaX.js
index c1a24303c..9a3604d6e 100644
--- a/dev/assets/source_transformations_tuples.md.DJ1pjYpQ.js
+++ b/dev/assets/source_transformations_tuples.md.DkAtqTaX.js
@@ -1,4 +1,4 @@
-import{_ as s,c as a,o as n,a7 as i}from"./chunks/framework.BBBwll2u.js";const u=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),e={name:"source/transformations/tuples.md"},t=i(`

Tuple conversion

julia
"""
+import{_ as s,c as a,o as n,a7 as i}from"./chunks/framework.Bvl2j7qw.js";const u=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),e={name:"source/transformations/tuples.md"},t=i(`

Tuple conversion

julia
"""
     tuples(obj)
 
 Convert all points in \`obj\` to \`Tuple\`s, wherever the are nested.
diff --git a/dev/assets/source_transformations_tuples.md.DJ1pjYpQ.lean.js b/dev/assets/source_transformations_tuples.md.DkAtqTaX.lean.js
similarity index 72%
rename from dev/assets/source_transformations_tuples.md.DJ1pjYpQ.lean.js
rename to dev/assets/source_transformations_tuples.md.DkAtqTaX.lean.js
index d3140c8c2..0af3f2005 100644
--- a/dev/assets/source_transformations_tuples.md.DJ1pjYpQ.lean.js
+++ b/dev/assets/source_transformations_tuples.md.DkAtqTaX.lean.js
@@ -1 +1 @@
-import{_ as s,c as a,o as n,a7 as i}from"./chunks/framework.BBBwll2u.js";const u=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),e={name:"source/transformations/tuples.md"},t=i("",6),p=[t];function l(o,r,h,c,k,d){return n(),a("div",null,p)}const g=s(e,[["render",l]]);export{u as __pageData,g as default};
+import{_ as s,c as a,o as n,a7 as i}from"./chunks/framework.Bvl2j7qw.js";const u=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),e={name:"source/transformations/tuples.md"},t=i("",6),p=[t];function l(o,r,h,c,k,d){return n(),a("div",null,p)}const g=s(e,[["render",l]]);export{u as __pageData,g as default};
diff --git a/dev/assets/source_types.md.-WBCBPRS.js b/dev/assets/source_types.md.CBJnFgqA.js
similarity index 99%
rename from dev/assets/source_types.md.-WBCBPRS.js
rename to dev/assets/source_types.md.CBJnFgqA.js
index 679ae6a4f..6533d84a0 100644
--- a/dev/assets/source_types.md.-WBCBPRS.js
+++ b/dev/assets/source_types.md.CBJnFgqA.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),t={name:"source/types.md"},e=n(`

Types

This file defines some fundamental types used in GeometryOps.

Warning

Unlike in other Julia packages, only some types are defined in this file, not all. This is because we define types in the files where they are used, to make it easier to understand the code.

julia
export TraitTarget, GEOS

TraitTarget

This struct holds a trait parameter or a union of trait parameters. It's essentially a way to construct unions.

julia
"""
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),t={name:"source/types.md"},e=n(`

Types

This file defines some fundamental types used in GeometryOps.

Warning

Unlike in other Julia packages, only some types are defined in this file, not all. This is because we define types in the files where they are used, to make it easier to understand the code.

julia
export TraitTarget, GEOS

TraitTarget

This struct holds a trait parameter or a union of trait parameters. It's essentially a way to construct unions.

julia
"""
     TraitTarget{T}
 
 This struct holds a trait parameter or a union of trait parameters.
diff --git a/dev/assets/source_types.md.-WBCBPRS.lean.js b/dev/assets/source_types.md.CBJnFgqA.lean.js
similarity index 68%
rename from dev/assets/source_types.md.-WBCBPRS.lean.js
rename to dev/assets/source_types.md.CBJnFgqA.lean.js
index dec7cccb2..4d22b50b1 100644
--- a/dev/assets/source_types.md.-WBCBPRS.lean.js
+++ b/dev/assets/source_types.md.CBJnFgqA.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),t={name:"source/types.md"},e=n("",27),l=[e];function p(h,k,r,d,o,g){return a(),i("div",null,l)}const E=s(t,[["render",p]]);export{y as __pageData,E as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),t={name:"source/types.md"},e=n("",27),l=[e];function p(h,k,r,d,o,g){return a(),i("div",null,l)}const E=s(t,[["render",p]]);export{y as __pageData,E as default};
diff --git a/dev/assets/source_utils.md.BQuxccWk.js b/dev/assets/source_utils.md.CLHYpDHK.js
similarity index 99%
rename from dev/assets/source_utils.md.BQuxccWk.js
rename to dev/assets/source_utils.md.CLHYpDHK.js
index 475161dfc..0ed68a0e3 100644
--- a/dev/assets/source_utils.md.BQuxccWk.js
+++ b/dev/assets/source_utils.md.CLHYpDHK.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),t={name:"source/utils.md"},p=n(`

Utility functions

julia
_is3d(geom)::Bool = _is3d(GI.trait(geom), geom)
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),t={name:"source/utils.md"},p=n(`

Utility functions

julia
_is3d(geom)::Bool = _is3d(GI.trait(geom), geom)
 _is3d(::GI.AbstractGeometryTrait, geom)::Bool = GI.is3d(geom)
 _is3d(::GI.FeatureTrait, feature)::Bool = _is3d(GI.geometry(feature))
 _is3d(::GI.FeatureCollectionTrait, fc)::Bool = _is3d(GI.getfeature(fc, 1))
diff --git a/dev/assets/source_utils.md.BQuxccWk.lean.js b/dev/assets/source_utils.md.CLHYpDHK.lean.js
similarity index 69%
rename from dev/assets/source_utils.md.BQuxccWk.lean.js
rename to dev/assets/source_utils.md.CLHYpDHK.lean.js
index ce13e2629..675eea53d 100644
--- a/dev/assets/source_utils.md.BQuxccWk.lean.js
+++ b/dev/assets/source_utils.md.CLHYpDHK.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const y=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),t={name:"source/utils.md"},p=n("",8),l=[p];function h(k,e,r,F,g,d){return a(),i("div",null,l)}const o=s(t,[["render",h]]);export{y as __pageData,o as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const y=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),t={name:"source/utils.md"},p=n("",8),l=[p];function h(k,e,r,F,g,d){return a(),i("div",null,l)}const o=s(t,[["render",h]]);export{y as __pageData,o as default};
diff --git a/dev/assets/tutorials_creating_geometry.md.D3S54Zw1.js b/dev/assets/tutorials_creating_geometry.md.BUdbUCmx.js
similarity index 99%
rename from dev/assets/tutorials_creating_geometry.md.D3S54Zw1.js
rename to dev/assets/tutorials_creating_geometry.md.BUdbUCmx.js
index 452b62fbe..b691dcdcb 100644
--- a/dev/assets/tutorials_creating_geometry.md.D3S54Zw1.js
+++ b/dev/assets/tutorials_creating_geometry.md.BUdbUCmx.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.BBBwll2u.js";const t="/GeometryOps.jl/dev/assets/avsfylo.Dz86q2IX.png",n="/GeometryOps.jl/dev/assets/bjyccxx.Cx40vhB3.png",l="/GeometryOps.jl/dev/assets/iqedrns.0OJvb21A.png",p="/GeometryOps.jl/dev/assets/oyxabac.DaovVbE6.png",h="/GeometryOps.jl/dev/assets/nggpidy.B9NpLJr_.png",o="/GeometryOps.jl/dev/assets/tpepvdl.CG4dr3Lx.png",k="/GeometryOps.jl/dev/assets/oirajdr.3sfpQl2i.png",r="/GeometryOps.jl/dev/assets/yyuepdy.Dab1-ETk.png",g="/GeometryOps.jl/dev/assets/xowbqpo.lu4jwpi-.png",d="/GeometryOps.jl/dev/assets/qwhcpuw.DwqDxlAG.png",E="/GeometryOps.jl/dev/assets/gbzmfml.CLtpJ5Wb.png",D=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),c={name:"tutorials/creating_geometry.md"},y=e(`

Creating Geometry

In this tutorial, we're going to:

  1. Create and plot geometries

  2. Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

  3. Create geospatial geometries with embedded coordinate reference system information

  4. Assign attributes to geospatial geometries

  5. Save geospatial geometries to common geospatial file formats

First, we load some required packages.

julia
# Geospatial packages from Julia
+import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.Bvl2j7qw.js";const t="/GeometryOps.jl/dev/assets/kezckmj.Dz86q2IX.png",n="/GeometryOps.jl/dev/assets/khxawds.Cx40vhB3.png",l="/GeometryOps.jl/dev/assets/esxwezo.0OJvb21A.png",p="/GeometryOps.jl/dev/assets/fhbrvza.DaovVbE6.png",h="/GeometryOps.jl/dev/assets/jnskugc.B9NpLJr_.png",o="/GeometryOps.jl/dev/assets/gwvldbs.CG4dr3Lx.png",k="/GeometryOps.jl/dev/assets/jkmutre.3sfpQl2i.png",r="/GeometryOps.jl/dev/assets/cwuahcp.Dab1-ETk.png",g="/GeometryOps.jl/dev/assets/gcvvjgp.lu4jwpi-.png",d="/GeometryOps.jl/dev/assets/estqxzh.DwqDxlAG.png",E="/GeometryOps.jl/dev/assets/dohjiba.CLtpJ5Wb.png",D=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),c={name:"tutorials/creating_geometry.md"},y=e(`

Creating Geometry

In this tutorial, we're going to:

  1. Create and plot geometries

  2. Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

  3. Create geospatial geometries with embedded coordinate reference system information

  4. Assign attributes to geospatial geometries

  5. Save geospatial geometries to common geospatial file formats

First, we load some required packages.

julia
# Geospatial packages from Julia
 import GeoInterface as GI
 import GeometryOps as GO
 import GeoFormatTypes as GFT
@@ -48,7 +48,7 @@ import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.BBBwll2u.js";const t
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 multipolygon = GO.transform(f, multipolygon);
 plot!(multipolygon)
-fig

Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

julia
source_crs1 = GFT.EPSG(4326)
GeoFormatTypes.EPSG{1}((4326,))

Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

julia
destination_crs = "+proj=natearth2"
"+proj=natearth2"

Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

julia
land_path = GeoMakie.assetpath("ne_110m_land.geojson")
"/home/runner/.julia/packages/GeoMakie/HExpB/assets/ne_110m_land.geojson"

Note

Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

Read the land MultiPolygons as a GeoJSON.FeatureCollection.

julia
land_geo = GeoJSON.read(land_path)
FeatureCollection with 127 Features

We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

julia
fig = Figure(size=(1000, 500));
+fig

Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

julia
source_crs1 = GFT.EPSG(4326)
GeoFormatTypes.EPSG{1}((4326,))

Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

julia
destination_crs = "+proj=natearth2"
"+proj=natearth2"

Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

julia
land_path = GeoMakie.assetpath("ne_110m_land.geojson")
"/home/runner/.julia/packages/GeoMakie/2upVC/assets/ne_110m_land.geojson"

Note

Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

Read the land MultiPolygons as a GeoJSON.FeatureCollection.

julia
land_geo = GeoJSON.read(land_path)
FeatureCollection with 127 Features

We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

julia
fig = Figure(size=(1000, 500));
 ga = GeoAxis(
     fig[1, 1];
     source = source_crs1,
diff --git a/dev/assets/tutorials_creating_geometry.md.BUdbUCmx.lean.js b/dev/assets/tutorials_creating_geometry.md.BUdbUCmx.lean.js
new file mode 100644
index 000000000..9807b8d89
--- /dev/null
+++ b/dev/assets/tutorials_creating_geometry.md.BUdbUCmx.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.Bvl2j7qw.js";const t="/GeometryOps.jl/dev/assets/kezckmj.Dz86q2IX.png",n="/GeometryOps.jl/dev/assets/khxawds.Cx40vhB3.png",l="/GeometryOps.jl/dev/assets/esxwezo.0OJvb21A.png",p="/GeometryOps.jl/dev/assets/fhbrvza.DaovVbE6.png",h="/GeometryOps.jl/dev/assets/jnskugc.B9NpLJr_.png",o="/GeometryOps.jl/dev/assets/gwvldbs.CG4dr3Lx.png",k="/GeometryOps.jl/dev/assets/jkmutre.3sfpQl2i.png",r="/GeometryOps.jl/dev/assets/cwuahcp.Dab1-ETk.png",g="/GeometryOps.jl/dev/assets/gcvvjgp.lu4jwpi-.png",d="/GeometryOps.jl/dev/assets/estqxzh.DwqDxlAG.png",E="/GeometryOps.jl/dev/assets/dohjiba.CLtpJ5Wb.png",D=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),c={name:"tutorials/creating_geometry.md"},y=e("",120),F=[y];function u(f,C,m,b,v,G){return a(),i("div",null,F)}const N=s(c,[["render",u]]);export{D as __pageData,N as default};
diff --git a/dev/assets/tutorials_creating_geometry.md.D3S54Zw1.lean.js b/dev/assets/tutorials_creating_geometry.md.D3S54Zw1.lean.js
deleted file mode 100644
index bef15a61a..000000000
--- a/dev/assets/tutorials_creating_geometry.md.D3S54Zw1.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.BBBwll2u.js";const t="/GeometryOps.jl/dev/assets/avsfylo.Dz86q2IX.png",n="/GeometryOps.jl/dev/assets/bjyccxx.Cx40vhB3.png",l="/GeometryOps.jl/dev/assets/iqedrns.0OJvb21A.png",p="/GeometryOps.jl/dev/assets/oyxabac.DaovVbE6.png",h="/GeometryOps.jl/dev/assets/nggpidy.B9NpLJr_.png",o="/GeometryOps.jl/dev/assets/tpepvdl.CG4dr3Lx.png",k="/GeometryOps.jl/dev/assets/oirajdr.3sfpQl2i.png",r="/GeometryOps.jl/dev/assets/yyuepdy.Dab1-ETk.png",g="/GeometryOps.jl/dev/assets/xowbqpo.lu4jwpi-.png",d="/GeometryOps.jl/dev/assets/qwhcpuw.DwqDxlAG.png",E="/GeometryOps.jl/dev/assets/gbzmfml.CLtpJ5Wb.png",D=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),c={name:"tutorials/creating_geometry.md"},y=e("",120),F=[y];function u(f,C,m,b,v,G){return a(),i("div",null,F)}const N=s(c,[["render",u]]);export{D as __pageData,N as default};
diff --git a/dev/assets/tutorials_geodesic_paths.md.XCdlUOEo.js b/dev/assets/tutorials_geodesic_paths.md.BTOBaagG.js
similarity index 97%
rename from dev/assets/tutorials_geodesic_paths.md.XCdlUOEo.js
rename to dev/assets/tutorials_geodesic_paths.md.BTOBaagG.js
index a2a282b7f..55d8701a3 100644
--- a/dev/assets/tutorials_geodesic_paths.md.XCdlUOEo.js
+++ b/dev/assets/tutorials_geodesic_paths.md.BTOBaagG.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/tfglkma.Danh069g.png",y=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),t={name:"tutorials/geodesic_paths.md"},p=n(`

Geodesic paths

Geodesic paths are paths computed on an ellipsoid, as opposed to a plane.

julia
import GeometryOps as GO, GeoInterface as GI
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/vpfvkkb.Danh069g.png",y=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),t={name:"tutorials/geodesic_paths.md"},p=n(`

Geodesic paths

Geodesic paths are paths computed on an ellipsoid, as opposed to a plane.

julia
import GeometryOps as GO, GeoInterface as GI
 using CairoMakie, GeoMakie
 
 
diff --git a/dev/assets/tutorials_geodesic_paths.md.XCdlUOEo.lean.js b/dev/assets/tutorials_geodesic_paths.md.BTOBaagG.lean.js
similarity index 74%
rename from dev/assets/tutorials_geodesic_paths.md.XCdlUOEo.lean.js
rename to dev/assets/tutorials_geodesic_paths.md.BTOBaagG.lean.js
index cf722240c..726d3fc82 100644
--- a/dev/assets/tutorials_geodesic_paths.md.XCdlUOEo.lean.js
+++ b/dev/assets/tutorials_geodesic_paths.md.BTOBaagG.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.BBBwll2u.js";const h="/GeometryOps.jl/dev/assets/tfglkma.Danh069g.png",y=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),t={name:"tutorials/geodesic_paths.md"},p=n("",4),k=[p];function e(l,E,d,r,g,o){return a(),i("div",null,k)}const F=s(t,[["render",e]]);export{y as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.Bvl2j7qw.js";const h="/GeometryOps.jl/dev/assets/vpfvkkb.Danh069g.png",y=JSON.parse('{"title":"Geodesic paths","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/geodesic_paths.md","filePath":"tutorials/geodesic_paths.md","lastUpdated":null}'),t={name:"tutorials/geodesic_paths.md"},p=n("",4),k=[p];function e(l,E,d,r,g,o){return a(),i("div",null,k)}const F=s(t,[["render",e]]);export{y as __pageData,F as default};
diff --git a/dev/assets/tutorials_spatial_joins.md.CLXH10Pt.js b/dev/assets/tutorials_spatial_joins.md.CUqLmrVI.js
similarity index 99%
rename from dev/assets/tutorials_spatial_joins.md.CLXH10Pt.js
rename to dev/assets/tutorials_spatial_joins.md.CUqLmrVI.js
index ffe7a6779..56b3a066c 100644
--- a/dev/assets/tutorials_spatial_joins.md.CLXH10Pt.js
+++ b/dev/assets/tutorials_spatial_joins.md.CUqLmrVI.js
@@ -1,4 +1,4 @@
-import{_ as h,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.BBBwll2u.js";const e="/GeometryOps.jl/dev/assets/dgvrgxv.3UVIT8DR.png",l="/GeometryOps.jl/dev/assets/vsqqlok.hNkv8UIY.png",p="/GeometryOps.jl/dev/assets/eftkkye.Jfjywzde.png",B=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),k={name:"tutorials/spatial_joins.md"},r=s("h1",{id:"Spatial-joins",tabindex:"-1"},[i("Spatial joins "),s("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1),E=s("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1),d={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"},g=n('',1),y=[g],c=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"p"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",{stretchy:"false"},")")])],-1),F=s("code",null,"true",-1),u=s("code",null,"false",-1),m=s("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[s("code",null,"DE-9IM")],-1),C=n(`

Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner:

julia
[inner/left/right/outer/...]join((table1, table1),
+import{_ as h,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.Bvl2j7qw.js";const e="/GeometryOps.jl/dev/assets/hvjpftj.3UVIT8DR.png",l="/GeometryOps.jl/dev/assets/aatsppc.1eU7snjD.png",p="/GeometryOps.jl/dev/assets/fkqxeno.CxZYc1mT.png",B=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),k={name:"tutorials/spatial_joins.md"},r=s("h1",{id:"Spatial-joins",tabindex:"-1"},[i("Spatial joins "),s("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1),E=s("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1),d={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"},g=n('',1),y=[g],c=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"p"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",{stretchy:"false"},")")])],-1),F=s("code",null,"true",-1),u=s("code",null,"false",-1),m=s("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[s("code",null,"DE-9IM")],-1),C=n(`

Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner:

julia
[inner/left/right/outer/...]join((table1, table1),
     by_pred(:table1_column, predicate_function, :table2_column) # & add other conditions here
 )

We have enabled the use of all of GeometryOps' boolean comparisons here. These are:

julia
GO.contains, GO.within, GO.intersects, GO.touches, GO.crosses, GO.disjoint, GO.overlaps, GO.covers, GO.coveredby, GO.equals

Tip

Always place the dataframe with more complex geometries second, as that is the one which will be sorted into a tree.

Simple example

This example demonstrates how to perform a spatial join between two datasets: a set of polygons and a set of randomly generated points.

The polygons are represented as a DataFrame with geometries and colors, while the points are stored in a separate DataFrame.

The spatial join is performed using the contains predicate from GeometryOps, which checks if each point is contained within any of the polygons. The resulting joined DataFrame is then used to plot the points, colored according to the containing polygon.

First, we generate our data. We create two triangle polygons which, together, span the rectangle (0, 0, 1, 1), and a set of points which are randomly distributed within this rectangle.

julia
import GeoInterface as GI, GeometryOps as GO
 using FlexiJoins, DataFrames
diff --git a/dev/assets/tutorials_spatial_joins.md.CLXH10Pt.lean.js b/dev/assets/tutorials_spatial_joins.md.CUqLmrVI.lean.js
similarity index 91%
rename from dev/assets/tutorials_spatial_joins.md.CLXH10Pt.lean.js
rename to dev/assets/tutorials_spatial_joins.md.CUqLmrVI.lean.js
index bfb37a400..eb6313369 100644
--- a/dev/assets/tutorials_spatial_joins.md.CLXH10Pt.lean.js
+++ b/dev/assets/tutorials_spatial_joins.md.CUqLmrVI.lean.js
@@ -1 +1 @@
-import{_ as h,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.BBBwll2u.js";const e="/GeometryOps.jl/dev/assets/dgvrgxv.3UVIT8DR.png",l="/GeometryOps.jl/dev/assets/vsqqlok.hNkv8UIY.png",p="/GeometryOps.jl/dev/assets/eftkkye.Jfjywzde.png",B=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),k={name:"tutorials/spatial_joins.md"},r=s("h1",{id:"Spatial-joins",tabindex:"-1"},[i("Spatial joins "),s("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1),E=s("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1),d={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"},g=n("",1),y=[g],c=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"p"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",{stretchy:"false"},")")])],-1),F=s("code",null,"true",-1),u=s("code",null,"false",-1),m=s("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[s("code",null,"DE-9IM")],-1),C=n("",37);function T(_,b,f,D,Q,w){return t(),a("div",null,[r,s("p",null,[i("Spatial joins are "),E,i(" which are based not on equality, but on some predicate "),s("mjx-container",d,[(t(),a("svg",o,y)),c]),i(", which takes two geometries, and returns a value of either "),F,i(" or "),u,i(". For geometries, the "),m,i(" spatial relationship model is used to determine the spatial relationship between two geometries.")]),C])}const v=h(k,[["render",T]]);export{B as __pageData,v as default};
+import{_ as h,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.Bvl2j7qw.js";const e="/GeometryOps.jl/dev/assets/hvjpftj.3UVIT8DR.png",l="/GeometryOps.jl/dev/assets/aatsppc.1eU7snjD.png",p="/GeometryOps.jl/dev/assets/fkqxeno.CxZYc1mT.png",B=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),k={name:"tutorials/spatial_joins.md"},r=s("h1",{id:"Spatial-joins",tabindex:"-1"},[i("Spatial joins "),s("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1),E=s("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1),d={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"},g=n("",1),y=[g],c=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"p"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",{stretchy:"false"},")")])],-1),F=s("code",null,"true",-1),u=s("code",null,"false",-1),m=s("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[s("code",null,"DE-9IM")],-1),C=n("",37);function T(_,b,f,D,Q,w){return t(),a("div",null,[r,s("p",null,[i("Spatial joins are "),E,i(" which are based not on equality, but on some predicate "),s("mjx-container",d,[(t(),a("svg",o,y)),c]),i(", which takes two geometries, and returns a value of either "),F,i(" or "),u,i(". For geometries, the "),m,i(" spatial relationship model is used to determine the spatial relationship between two geometries.")]),C])}const v=h(k,[["render",T]]);export{B as __pageData,v as default};
diff --git a/dev/assets/uuavejm.BJOKKlSH.png b/dev/assets/uuavejm.BJOKKlSH.png
new file mode 100644
index 000000000..48a0ae0a8
Binary files /dev/null and b/dev/assets/uuavejm.BJOKKlSH.png differ
diff --git a/dev/assets/tfglkma.Danh069g.png b/dev/assets/vpfvkkb.Danh069g.png
similarity index 100%
rename from dev/assets/tfglkma.Danh069g.png
rename to dev/assets/vpfvkkb.Danh069g.png
diff --git a/dev/assets/vphrfxl.Dt3-zIGx.png b/dev/assets/vphrfxl.Dt3-zIGx.png
deleted file mode 100644
index b8da83b6a..000000000
Binary files a/dev/assets/vphrfxl.Dt3-zIGx.png and /dev/null differ
diff --git a/dev/assets/vsqqlok.hNkv8UIY.png b/dev/assets/vsqqlok.hNkv8UIY.png
deleted file mode 100644
index 8ae2882c1..000000000
Binary files a/dev/assets/vsqqlok.hNkv8UIY.png and /dev/null differ
diff --git a/dev/assets/wquugge.BB3ZNGbw.png b/dev/assets/wquugge.BB3ZNGbw.png
deleted file mode 100644
index 0ba94df9a..000000000
Binary files a/dev/assets/wquugge.BB3ZNGbw.png and /dev/null differ
diff --git a/dev/assets/kolhwvo.DuBHk1fh.png b/dev/assets/yafnlhj.DuBHk1fh.png
similarity index 100%
rename from dev/assets/kolhwvo.DuBHk1fh.png
rename to dev/assets/yafnlhj.DuBHk1fh.png
diff --git a/dev/assets/qnkrkmn.DiwGEg2f.png b/dev/assets/ydnoqnx.DiwGEg2f.png
similarity index 100%
rename from dev/assets/qnkrkmn.DiwGEg2f.png
rename to dev/assets/ydnoqnx.DiwGEg2f.png
diff --git a/dev/call_notes.html b/dev/call_notes.html
index 286d70aff..90cc06d5b 100644
--- a/dev/call_notes.html
+++ b/dev/call_notes.html
@@ -8,18 +8,18 @@
     
     
     
-    
+    
     
-    
-    
-    
+    
+    
+    
     
     
     
   
   
     
Skip to content

20th April, 2024

See GeometryOps#114.

  • [ ] Exact predicates can be defined for lower-level, more atomic predicates within GeometryOps.

  • [ ] Add Shewchuck's adaptive math as a stage for exact predicates.

  • [x] @skygering to write docstrings for the predicates

29th Feb, 2024

To do

  • [ ] Finish clipping degeneracies

  • [ ] Fix cross & overlap functions

  • [x] Benchmarks to show why things you couldn't concieve of in R are doable in Julia

  • [x] profile functions for exponential improvements

  • [ ] A list of projects people can work on...the beauty here is that each function is kind of self-contained so it's an undergrad level project

  • [ ] Doc improvements

    • more

    • benchmarks page

  • Methods to validate and fix geometry

    • [ ] Polygons and LinearRings:

      • [ ] self-intersection

      • [ ] holes are actually within the polygon

      • [ ] Polygon exteriors must be counterclockwise, holes clockwise.

      • [ ] length of all rings > 4

      • [ ] repeated last point

    • [ ] LineStrings: NaN/Inf points

    • [x] Fix linear rings at some point to make sure the ring is closed, i.e., points[end] == points[begin]

  • Tests

    • [x] Simplify functions

    • [x] Polygonize

    • Barycentric tests for n_vertices > 4

Done

  • Rename bools.jl to something more relevant to the actual code -> orientation.jl

  • Doc improvements:

    • organise sections
- + \ No newline at end of file diff --git a/dev/experiments/accurate_accumulators.html b/dev/experiments/accurate_accumulators.html index 04cd53f9f..38c1abbb2 100644 --- a/dev/experiments/accurate_accumulators.html +++ b/dev/experiments/accurate_accumulators.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -24,7 +24,7 @@ using NaturalEarth all_adm0 = naturalearth("admin_0_countries", 10)
FeatureCollection with 258 Features
julia
GO.area(all_adm0)
21427.909318372607
julia
AccurateArithmetic.sum_oro(GO.area.(all_adm0.geometry))
21427.909318372607
julia
AccurateArithmetic.sum_kbn(GO.area.(all_adm0.geometry))
21427.909318372607
julia
GI.Polygon.(GO.flatten(Union{GI.LineStringTrait, GI.LinearRingTrait}, all_adm0) |> collect .|> x -> [x]) .|> GO.signed_area |> sum
-21427.90063612163
julia
GI.Polygon.(GO.flatten(Union{GI.LineStringTrait, GI.LinearRingTrait}, all_adm0) |> collect .|> x -> [x]) .|> GO.signed_area |> sum_oro
-21427.90063612163

@example accurate GI.Polygon.(GO.flatten(Union{GI.LineStringTrait, GI.LinearRingTrait}, all_adm0) |> collect .|> x -> [x]) .|> GO.signed_area |> sum_kbn ```

- + \ No newline at end of file diff --git a/dev/experiments/predicates.html b/dev/experiments/predicates.html index 562f5c777..75b169050 100644 --- a/dev/experiments/predicates.html +++ b/dev/experiments/predicates.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -59,7 +59,7 @@ display(fig) end resize!(fig, 1000, 450) -fig

Dashboard

julia
using WGLMakie
+fig

Dashboard

julia
using WGLMakie
 import GeometryOps as GO, GeoInterface as GI, LibGEOS as LG
 import ExactPredicates
 using MultiFloats
@@ -116,7 +116,7 @@
 
 GO.intersection(p1_m, p2_m; target = GI.PolygonTrait(), fix_multipoly = nothing)
 LG.intersection(p1_m, p2_m)

Incircle

- + \ No newline at end of file diff --git a/dev/explanations/crs.html b/dev/explanations/crs.html index 5fb5be7d6..286a07038 100644 --- a/dev/explanations/crs.html +++ b/dev/explanations/crs.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content
- + \ No newline at end of file diff --git a/dev/explanations/paradigms.html b/dev/explanations/paradigms.html index af6326214..e6319eb32 100644 --- a/dev/explanations/paradigms.html +++ b/dev/explanations/paradigms.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content

Paradigms

GeometryOps exposes functions like apply and applyreduce, as well as the fix and prepare APIs, that represent paradigms of programming, by which we mean the ability to program in a certain way, and in so doing, fit neatly into the tools we've built without needing to re-implement the wheel.

Below, we'll describe some of the foundational paradigms of GeometryOps, and why you should care!

apply

The apply function allows you to decompose a given collection of geometries down to a certain level, operate on it, and reconstruct it back to the same nested form as the original. In general, its invocation is:

julia
apply(f, trait::Trait, geom)

Functionally, it's similar to map in the way you apply it to geometries - except that you tell it at which level it should stop, by passing a trait to it.

apply will start by decomposing the geometry, feature, featurecollection, iterable, or table that you pass to it, and stop when it encounters a geometry for which GI.trait(geom) isa Trait. This encompasses unions of traits especially, but beware that any geometry which is not explicitly handled, and hits GI.PointTrait, will cause an error.

apply is unlike map in that it returns reconstructed geometries, instead of the raw output of the function. If you want a purely map-like behaviour, like calculating the length of each linestring in your feature collection, then call GO.flatten(f, trait, geom), which will decompose each geometry to the given trait and apply f to it, returning the decomposition as a flattened vector.

applyreduce

applyreduce is like the previous map-based approach that we mentioned, except that it reduces the result of f by op. Note that applyreduce does not guarantee associativity, so it's best to have typeof(init) == returntype(op).

fix and prepare

The fix and prepare paradigms are different from apply, though they are built on top of it. They involve the use of structs as "actions", where a constructed object indicates an action that should be taken. A trait like interface prescribes the level (polygon, linestring, point, etc) at which each action should be applied.

In general, the idea here is to be able to invoke several actions efficiently and simultaneously, for example when correcting invalid geometries, or instantiating a Prepared geometry with several preparations (sorted edge lists, rtrees, monotone chains, etc.)

- + \ No newline at end of file diff --git a/dev/explanations/peculiarities.html b/dev/explanations/peculiarities.html index 27fce25df..c038f0d97 100644 --- a/dev/explanations/peculiarities.html +++ b/dev/explanations/peculiarities.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content

Peculiarities

What does apply return and why?

apply returns the target geometries returned by f, whatever type/package they are from, but geometries, features or feature collections that wrapped the target are replaced with GeoInterace.jl wrappers with matching GeoInterface.trait to the originals. All non-geointerface iterables become Arrays. Tables.jl compatible tables are converted either back to the original type if a Tables.materializer is defined, and if not then returned as generic NamedTuple column tables (i.e., a NamedTuple of vectors).

It is recommended for consistency that f returns GeoInterface geometries unless there is a performance/conversion overhead to doing that.

Why do you want me to provide a target in set operations?

In polygon set operations like intersection, difference, and union, many different geometry types may be obtained - depending on the relationship between the polygons. For example, when performing an union on two nonintersecting polygons, one would technically have two disjoint polygons as an output.

We use the target keyword to allow the user to control which kinds of geometry they want back. For example, setting target to PolygonTrait will cause a vector of polygons to be returned (this is the only currently supported behaviour). In future, we may implement MultiPolygonTrait or GeometryCollectionTrait targets which will return a single geometry, as LibGEOS and ArchGDAL do.

This also allows for a lot more type stability - when you ask for polygons, we won't return a geometrycollection with line segments. Especially in simulation workflows, this is excellent for simplified data processing.

_True and _False (or BoolsAsTypes)

Warning

These are internals and explicitly not public API, meaning they may change at any time!

When dispatch can be controlled by the value of a boolean variable, this introduces type instability. Instead of introducing type instability, we chose to encode our boolean decision variables, like threaded and calc_extent in apply, as types. This allows the compiler to reason about what will happen, and call the correct compiled method, in a stable way without worrying about

- + \ No newline at end of file diff --git a/dev/explanations/winding_order.html b/dev/explanations/winding_order.html index 75757e6b0..feb1c2d5d 100644 --- a/dev/explanations/winding_order.html +++ b/dev/explanations/winding_order.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content
- + \ No newline at end of file diff --git a/dev/hashmap.json b/dev/hashmap.json index b3b851a5f..95d60e469 100644 --- a/dev/hashmap.json +++ b/dev/hashmap.json @@ -1 +1 @@ -{"api.md":"BWaOjP0Y","call_notes.md":"BbjlywY7","experiments_accurate_accumulators.md":"tm23aPDo","experiments_predicates.md":"Bi05OR81","explanations_crs.md":"f61KoUcJ","explanations_paradigms.md":"BuVFy2Z8","explanations_peculiarities.md":"DSyf0m1z","explanations_winding_order.md":"Cv2ddiWJ","index.md":"DvEQFP4N","introduction.md":"DD0uwX5m","source_geometryops.md":"BuavElQI","source_methods_angles.md":"XkG4imC-","source_methods_area.md":"jUVDeUKx","source_methods_barycentric.md":"BI20A63P","source_methods_buffer.md":"T9eAlFvy","source_methods_centroid.md":"C-V56RIQ","source_methods_clipping_clipping_processor.md":"DuXdI0p4","source_methods_clipping_coverage.md":"DC6323Ql","source_methods_clipping_cut.md":"uF7qguk7","source_methods_clipping_difference.md":"BoZ8QHrZ","source_methods_clipping_intersection.md":"B0RDskSI","source_methods_clipping_predicates.md":"BhbUSMt6","source_methods_clipping_union.md":"BCmBtF8l","source_methods_convex_hull.md":"CNuxM8Y5","source_methods_distance.md":"BS4hyoxT","source_methods_equals.md":"UqY3mg_F","source_methods_geom_relations_contains.md":"A2Qwjszx","source_methods_geom_relations_coveredby.md":"D5HIbX-g","source_methods_geom_relations_covers.md":"C2KxtqRB","source_methods_geom_relations_crosses.md":"C3M3Jphu","source_methods_geom_relations_disjoint.md":"Bgw8KuWq","source_methods_geom_relations_geom_geom_processors.md":"DPing0Qe","source_methods_geom_relations_intersects.md":"DDH8C6jB","source_methods_geom_relations_overlaps.md":"XbDRm-DH","source_methods_geom_relations_touches.md":"DpTWrVZo","source_methods_geom_relations_within.md":"QtIwcNxG","source_methods_orientation.md":"DW4nCP6X","source_methods_polygonize.md":"BFKNh2jY","source_not_implemented_yet.md":"DTGf4RVm","source_primitives.md":"hKBNjnU2","source_transformations_correction_closed_ring.md":"D1a6mEpy","source_transformations_correction_geometry_correction.md":"Dr9cCVjo","source_transformations_correction_intersecting_polygons.md":"B3elaA2O","source_transformations_extent.md":"C6gSugPE","source_transformations_flip.md":"Dc7XZoY8","source_transformations_reproject.md":"Wnqjvjng","source_transformations_segmentize.md":"QCebgfpD","source_transformations_simplify.md":"CZ8SMy68","source_transformations_transform.md":"CluTv3ni","source_transformations_tuples.md":"DJ1pjYpQ","source_types.md":"-WBCBPRS","source_utils.md":"BQuxccWk","tutorials_creating_geometry.md":"D3S54Zw1","tutorials_geodesic_paths.md":"XCdlUOEo","tutorials_spatial_joins.md":"CLXH10Pt"} +{"api.md":"5FfvzWVI","call_notes.md":"9cTzDhNW","experiments_accurate_accumulators.md":"0APfZPiv","experiments_predicates.md":"DKvpluJ4","explanations_crs.md":"5TweEyor","explanations_paradigms.md":"BLuSsrj0","explanations_peculiarities.md":"K2z-L1z_","explanations_winding_order.md":"C3ZQ8HOE","index.md":"bDKzXHR2","introduction.md":"COCf0hDh","source_geometryops.md":"MuE8AgXl","source_methods_angles.md":"BKUrbRhM","source_methods_area.md":"Bxq0v74l","source_methods_barycentric.md":"CvCdLQEW","source_methods_buffer.md":"BPfajikS","source_methods_centroid.md":"B_QUoO-9","source_methods_clipping_clipping_processor.md":"B1cUzsmO","source_methods_clipping_coverage.md":"DzRGrIJd","source_methods_clipping_cut.md":"DGxv6k01","source_methods_clipping_difference.md":"B-9yqlhQ","source_methods_clipping_intersection.md":"BafvkqNr","source_methods_clipping_predicates.md":"BHLK8Ehm","source_methods_clipping_union.md":"_1E5UcPD","source_methods_convex_hull.md":"DEwMw2Dz","source_methods_distance.md":"Bjehg6Q4","source_methods_equals.md":"B88UDWk1","source_methods_geom_relations_contains.md":"DkvLClLe","source_methods_geom_relations_coveredby.md":"IdonWU9W","source_methods_geom_relations_covers.md":"c9KpoxAC","source_methods_geom_relations_crosses.md":"DLQm71oy","source_methods_geom_relations_disjoint.md":"Demo0wGa","source_methods_geom_relations_geom_geom_processors.md":"DmTJXCoK","source_methods_geom_relations_intersects.md":"Bxoc9mJi","source_methods_geom_relations_overlaps.md":"DtiGHuqu","source_methods_geom_relations_touches.md":"v6REtJ5W","source_methods_geom_relations_within.md":"De6yCkf5","source_methods_orientation.md":"DOfnQhap","source_methods_polygonize.md":"BVXHZDDo","source_not_implemented_yet.md":"BLNLD-lK","source_primitives.md":"C2PXYTx0","source_transformations_correction_closed_ring.md":"B6qiy37I","source_transformations_correction_geometry_correction.md":"lcG8M7HP","source_transformations_correction_intersecting_polygons.md":"CMYt57Jo","source_transformations_extent.md":"Con1_m1U","source_transformations_flip.md":"DkYmMWiD","source_transformations_reproject.md":"CvcazlVI","source_transformations_segmentize.md":"DCN2dN8Q","source_transformations_simplify.md":"BfTqOLTu","source_transformations_transform.md":"D6Oo_xvE","source_transformations_tuples.md":"DkAtqTaX","source_types.md":"CBJnFgqA","source_utils.md":"CLHYpDHK","tutorials_creating_geometry.md":"BUdbUCmx","tutorials_geodesic_paths.md":"BTOBaagG","tutorials_spatial_joins.md":"CUqLmrVI"} diff --git a/dev/index.html b/dev/index.html index f477f8d3f..2156b91e9 100644 --- a/dev/index.html +++ b/dev/index.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content

GeometryOps.jl

Blazing fast geometry operations in pure Julia

GeometryOps

What is GeometryOps.jl?

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

How to navigate the docs

GeometryOps' docs are divided into three main sections: tutorials, explanations and source code.
Documentation and examples for many functions can be found in the source code section, since we use literate programming in GeometryOps.

  • Tutorials are meant to teach the fundamental concepts behind GeometryOps, and how to perform certain operations.
  • Explanations usually contain little code, and explain in more detail how GeometryOps works.
  • Source code usually contains explanations and examples at the top of the page, followed by annotated source code from that file.
- + \ No newline at end of file diff --git a/dev/introduction.html b/dev/introduction.html index 3f47cad0d..b1dd9a3f5 100644 --- a/dev/introduction.html +++ b/dev/introduction.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content

Introduction

GeometryOps.jl is a package for geometric calculations on (primarily 2D) geometries.

The driving idea behind this package is to unify all the disparate packages for geometric calculations in Julia, and make them GeoInterface.jl-compatible. We seem to be focusing primarily on 2/2.5D geometries for now.

Most of the usecases are driven by GIS and similar Earth data workflows, so this might be a bit specialized towards that, but methods should always be general to any coordinate space.

We welcome contributions, either as pull requests or discussion on issues!

Main concepts

The apply paradigm

Note

See the Primitive Functions page for more information on this.

The apply function allows you to decompose a given collection of geometries down to a certain level, and then operate on it.

Functionally, it's similar to map in the way you apply it to geometries.

apply and applyreduce take any geometry, vector of geometries, collection of geometries, or table (like Shapefile.Table, DataFrame, or GeoTable)!

What's this GeoInterface.Wrapper thing?

Write a comment about GeoInterface.Wrapper and why it helps in type stability to guarantee a particular return type.

- + \ No newline at end of file diff --git a/dev/source/GeometryOps.html b/dev/source/GeometryOps.html index a0a889656..150df2de1 100644 --- a/dev/source/GeometryOps.html +++ b/dev/source/GeometryOps.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -92,7 +92,7 @@ end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/angles.html b/dev/source/methods/angles.html index d4fd0a9df..816d57ec5 100644 --- a/dev/source/methods/angles.html +++ b/dev/source/methods/angles.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -23,7 +23,7 @@ using Makie, CairoMakie rect = GI.Polygon([[(0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0), (0.0, 0.0)]]) -f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, with angles of 90 degrees.

julia
GO.angles(rect)  # [90, 90, 90, 90]
4-element Vector{Float64}:
+f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, with angles of 90 degrees.

julia
GO.angles(rect)  # [90, 90, 90, 90]
4-element Vector{Float64}:
  90.0
  90.0
  90.0
@@ -142,7 +142,7 @@
     angle = real(acos(val) * 180 / π)
     return angle * (cross_prod < 0 ? -1 : 1)
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/area.html b/dev/source/methods/area.html index b3f15ccb6..a00f61719 100644 --- a/dev/source/methods/area.html +++ b/dev/source/methods/area.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -24,10 +24,10 @@ using CairoMakie rect = GI.Polygon([[(0,0), (0,1), (1,1), (1,0), (0, 0)]]) -f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, etc. But now let's look at how the points look:

julia
lines!(
+f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, etc. But now let's look at how the points look:

julia
lines!(
     collect(GI.getpoint(rect));
     color = 1:GI.npoint(rect), linewidth = 10.0)
-f

The points are ordered in a counterclockwise fashion, which means that the signed area is negative. If we reverse the order of the points, we get a positive area.

julia
GO.signed_area(rect)  # -1.0
-1.0

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that area and signed area are zero for all points and curves, even if the curves are closed like with a linear ring. Also note that signed area really only makes sense for polygons, given with a multipolygon can have several polygons each with a different orientation and thus the absolute value of the signed area might not be the area. This is why signed area is only implemented for polygons.

Targets for applys functions

julia
const _AREA_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()
+f

The points are ordered in a counterclockwise fashion, which means that the signed area is negative. If we reverse the order of the points, we get a positive area.

julia
GO.signed_area(rect)  # -1.0
-1.0

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that area and signed area are zero for all points and curves, even if the curves are closed like with a linear ring. Also note that signed area really only makes sense for polygons, given with a multipolygon can have several polygons each with a different orientation and thus the absolute value of the signed area might not be the area. This is why signed area is only implemented for polygons.

Targets for applys functions

julia
const _AREA_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()
 
 """
     area(geom, [T = Float64])::T
@@ -105,7 +105,7 @@
     area += _area_component(p1, p2)
     return T(area / 2)
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/barycentric.html b/dev/source/methods/barycentric.html index 5da692e5e..799785e5c 100644 --- a/dev/source/methods/barycentric.html +++ b/dev/source/methods/barycentric.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -85,7 +85,7 @@ # and render! hm = heatmap!(a2, xrange, yrange, mean_values; colormap = p1.colormap, colorrange = p1.plots[1].colorrange[], xautolimits = false, yautolimits = false) translate!(hm, 0, 0, -1) # translate the heatmap behind the cropping polygon! -f # finally, display the figure

Barycentric-coordinate API

In some cases, we actually want barycentric interpolation, and have no interest in the coordinates themselves.

However, the coordinates can be useful for debugging, and when performing 3D rendering, multiple barycentric values (depth, uv) are needed for depth buffering.

julia
const _VecTypes = Union{Tuple{Vararg{T, N}}, GeometryBasics.StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where {N, T}
+f # finally, display the figure

Barycentric-coordinate API

In some cases, we actually want barycentric interpolation, and have no interest in the coordinates themselves.

However, the coordinates can be useful for debugging, and when performing 3D rendering, multiple barycentric values (depth, uv) are needed for depth buffering.

julia
const _VecTypes = Union{Tuple{Vararg{T, N}}, GeometryBasics.StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where {N, T}
 
 """
     abstract type AbstractBarycentricCoordinateMethod
@@ -433,7 +433,7 @@
 
 struct Wachspress <: AbstractBarycentricCoordinateMethod
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/buffer.html b/dev/source/methods/buffer.html index 84e0d6379..b8de435c6 100644 --- a/dev/source/methods/buffer.html +++ b/dev/source/methods/buffer.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ println(io, " in your REPL, \nor otherwise loading LibGEOS.jl via using or import.") end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/centroid.html b/dev/source/methods/centroid.html index 2fba16cc4..4ab27d045 100644 --- a/dev/source/methods/centroid.html +++ b/dev/source/methods/centroid.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -24,9 +24,9 @@ using CairoMakie cshape = GI.Polygon([[(0,0), (0,3), (3,3), (3,2), (1,2), (1,1), (3,1), (3,0), (0,0)]]) -f, a, p = poly(collect(GI.getpoint(cshape)); axis = (; aspect = DataAspect()))

Let's see what the centroid looks like (plotted in red):

julia
cent = GO.centroid(cshape)
+f, a, p = poly(collect(GI.getpoint(cshape)); axis = (; aspect = DataAspect()))

Let's see what the centroid looks like (plotted in red):

julia
cent = GO.centroid(cshape)
 scatter!(GI.x(cent), GI.y(cent), color = :red)
-f

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that if you call centroid on a LineString or LinearRing, the centroid_and_length function will be called due to the weighting scheme described above, while centroid_and_area is called for polygons and multipolygons. However, centroid_and_area can still be called on a LineString or LinearRing when they are closed, for example as the interior hole of a polygon.

The helper functions centroid_and_length and centroid_and_area are made available just in case the user also needs the area or length to decrease repeat computation.

julia
"""
+f

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that if you call centroid on a LineString or LinearRing, the centroid_and_length function will be called due to the weighting scheme described above, while centroid_and_area is called for polygons and multipolygons. However, centroid_and_area can still be called on a LineString or LinearRing when they are closed, for example as the interior hole of a polygon.

The helper functions centroid_and_length and centroid_and_area are made available just in case the user also needs the area or length to decrease repeat computation.

julia
"""
     centroid(geom, [T=Float64])::Tuple{T, T}
 
 Returns the centroid of a given line segment, linear ring, polygon, or
@@ -111,7 +111,7 @@
     y = (y1 * area1 + y2 * area2) / area
     return (x, y), area
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/clipping_processor.html b/dev/source/methods/clipping/clipping_processor.html index 230890c47..e9dbd8e1b 100644 --- a/dev/source/methods/clipping/clipping_processor.html +++ b/dev/source/methods/clipping/clipping_processor.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -525,7 +525,7 @@ end return end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/coverage.html b/dev/source/methods/clipping/coverage.html index 7008e6edc..00a92e74f 100644 --- a/dev/source/methods/clipping/coverage.html +++ b/dev/source/methods/clipping/coverage.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,7 +28,7 @@ xmin, xmax, ymin, ymax = 0, 2, 0, 2 f, a, p = poly(collect(GI.getpoint(cell)); axis = (; aspect = DataAspect())) poly!(collect(GI.getpoint(rect))) -f

It is clear that half of the polygon is within the cell, so the coverage should be 1.0, half of the area of the rectangle.

julia
GO.coverage(rect, xmin, xmax, ymin, ymax)
1.0

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that the coverage is zero for all points and curves, even if the curves are closed like with a linear ring.

Targets for applys functions

julia
const _COVERAGE_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()

Wall types for coverage

julia
const UNKNOWN, NORTH, EAST, SOUTH, WEST = 0:4
+f

It is clear that half of the polygon is within the cell, so the coverage should be 1.0, half of the area of the rectangle.

julia
GO.coverage(rect, xmin, xmax, ymin, ymax)
1.0

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that the coverage is zero for all points and curves, even if the curves are closed like with a linear ring.

Targets for applys functions

julia
const _COVERAGE_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()

Wall types for coverage

julia
const UNKNOWN, NORTH, EAST, SOUTH, WEST = 0:4
 
 """
     coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T
@@ -241,7 +241,7 @@
     y_wall = (wall == NORTH || wall == WEST) ? ymax : ymin
     return x1 * y_wall - x_wall * y1
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/cut.html b/dev/source/methods/clipping/cut.html index 656c5fc26..fe0987e40 100644 --- a/dev/source/methods/clipping/cut.html +++ b/dev/source/methods/clipping/cut.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ f, a, p1 = Makie.poly(collect(GI.getpoint(cut_polys[1])); color = (:blue, 0.5)) Makie.poly!(collect(GI.getpoint(cut_polys[2])); color = (:orange, 0.5)) Makie.lines!(GI.getpoint(line); color = :black) -f

Implementation

This function depends on polygon clipping helper function and is inspired by the Greiner-Hormann clipping algorithm used elsewhere in this library. The inspiration came from this Stack Overflow discussion.

julia
"""
+f

Implementation

This function depends on polygon clipping helper function and is inspired by the Greiner-Hormann clipping algorithm used elsewhere in this library. The inspiration came from this Stack Overflow discussion.

julia
"""
     cut(geom, line, [T::Type])
 
 Return given geom cut by given line as a list of geometries of the same type as the input
@@ -105,7 +105,7 @@
     end
     return return_coords
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/difference.html b/dev/source/methods/clipping/difference.html index db42adce5..3a1f95ee7 100644 --- a/dev/source/methods/clipping/difference.html +++ b/dev/source/methods/clipping/difference.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -184,7 +184,7 @@ ) return nothing end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/intersection.html b/dev/source/methods/clipping/intersection.html index e5a1471e5..c819a50cd 100644 --- a/dev/source/methods/clipping/intersection.html +++ b/dev/source/methods/clipping/intersection.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -401,7 +401,7 @@ α, β = _clamped_frac(distance(min_pt, a2, T), a_dist, eps(T)), one(T) - eps(T) end

Return point with smallest distance

julia
    return _tuple_point(min_pt, T), α, β
 end

Return value of x/y clamped between ϵ and 1 - ϵ

julia
_clamped_frac(x::T, y::T, ϵ = zero(T)) where T = clamp(x / y, ϵ, one(T) - ϵ)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/predicates.html b/dev/source/methods/clipping/predicates.html index 4594337cf..59c41d804 100644 --- a/dev/source/methods/clipping/predicates.html +++ b/dev/source/methods/clipping/predicates.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -62,7 +62,7 @@ end import .Predicates

If we want to inject adaptivity, we would do something like:

function cross(a, b, c) # try Predicates._cross_naive(a, b, c) # check the error bound there # then try Predicates._cross_adaptive(a, b, c) # then try Predicates._cross_exact end


This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/union.html b/dev/source/methods/clipping/union.html index 7fcfc1ae0..a6ea800c1 100644 --- a/dev/source/methods/clipping/union.html +++ b/dev/source/methods/clipping/union.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -268,7 +268,7 @@ throw(ArgumentError("Union between $trait_a and $trait_b with target $Target isn't implemented yet.")) return nothing end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/convex_hull.html b/dev/source/methods/convex_hull.html index c2011b924..c41c5d030 100644 --- a/dev/source/methods/convex_hull.html +++ b/dev/source/methods/convex_hull.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -26,7 +26,7 @@ hull_poly = GO.convex_hull(points) lines!(a, hull_poly; label = "Convex hull", color = Makie.wong_colors()[2]) axislegend(a) -f

Convex hull of the USA

julia
import GeometryOps as GO, GeoInterface as GI
+f

Convex hull of the USA

julia
import GeometryOps as GO, GeoInterface as GI
 using CairoMakie # to plot
 using NaturalEarth # for data
 
@@ -34,7 +34,7 @@
 usa = all_adm0.geometry[findfirst(==("USA"), all_adm0.ADM0_A3)]
 f, a, p = lines(usa)
 lines!(a, GO.convex_hull(usa); color = Makie.wong_colors()[2])
-f

Investigating the winding order

The winding order of the monotone chain method is counterclockwise, while the winding order of the GEOS method is clockwise.

GeometryOps' convexity detection says that the GEOS hull is convex, while the monotone chain method hull is not. However, they are both going over the same points (we checked), it's just that the winding order is different.

In reality, both sets are convex, but we need to fix the GeometryOps convexity detector (isconcave)!

We may also decide at a later date to change the returned winding order of the polygon, but most algorithms are robust to that, and you can always fix it...

julia
import GeoInterface as GI, GeometryOps as GO, LibGEOS as LG
+f

Investigating the winding order

The winding order of the monotone chain method is counterclockwise, while the winding order of the GEOS method is clockwise.

GeometryOps' convexity detection says that the GEOS hull is convex, while the monotone chain method hull is not. However, they are both going over the same points (we checked), it's just that the winding order is different.

In reality, both sets are convex, but we need to fix the GeometryOps convexity detector (isconcave)!

We may also decide at a later date to change the returned winding order of the polygon, but most algorithms are robust to that, and you can always fix it...

julia
import GeoInterface as GI, GeometryOps as GO, LibGEOS as LG
 using CairoMakie # to plot
 
 points = rand(Point2{Float64}, 100)
@@ -45,7 +45,7 @@
 a1, p1 = lines(fig[1, 1], go_hull; color = 1:GI.npoint(go_hull), axis = (; title = "MonotoneChainMethod()"))
 a2, p2 = lines(fig[2, 1], lg_hull; color = 1:GI.npoint(lg_hull), axis = (; title = "GEOS()"))
 cb = Colorbar(fig[1:2, 2], p1; label = "Vertex number")
-fig

Implementation

julia
"""
+fig

Implementation

julia
"""
     convex_hull([method], geometries)
 
 Compute the convex hull of the points in `geometries`.
@@ -75,7 +75,7 @@
 struct MonotoneChainMethod end

GrahamScanMethod, etc. can be implemented in GO as well, if someone wants to. If we add an extension on Quickhull.jl, then that would be another algorithm.

julia
convex_hull(geometries) = convex_hull(MonotoneChainMethod(), geometries)

TODO: have this respect the CRS by pulling it out of geometries.

julia
function convex_hull(::MonotoneChainMethod, geometries)

Extract all points as tuples. We have to collect and allocate here, because DelaunayTriangulation only accepts vectors of point-like geoms.

Cleanest would be to use the iterable from GO.flatten directly, but that would require us to implement the convex hull algorithm directly.

TODO: create a specialized method that extracts only the information required, GeometryBasics points can be passed through directly.

julia
    points = collect(flatten(tuples, GI.PointTrait, geometries))

Compute the convex hull using DelTri (shorthand for DelaunayTriangulation.jl).

julia
    hull = DelaunayTriangulation.convex_hull(points)

Convert the result to a GI.Polygon and return it. View would be more efficient here, but re-allocating is cleaner.

julia
    point_vec = DelaunayTriangulation.get_points(hull)[DelaunayTriangulation.get_vertices(hull)]
     return GI.Polygon([GI.LinearRing(point_vec)])
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/distance.html b/dev/source/methods/distance.html index ddbc020a8..664714ff1 100644 --- a/dev/source/methods/distance.html +++ b/dev/source/methods/distance.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,13 +29,13 @@ f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect())) scatter!(GI.x(point_in), GI.y(point_in); color = :red) scatter!(GI.x(point_out), GI.y(point_out); color = :orange) -f

This is clearly a rectangle with one point inside and one point outside. The points are both an equal distance to the polygon. The distance to point_in is negative while the distance to point_out is positive.

julia
(
+f

This is clearly a rectangle with one point inside and one point outside. The points are both an equal distance to the polygon. The distance to point_in is negative while the distance to point_out is positive.

julia
(
 GO.distance(point_in, rect),  # == 0
 GO.signed_distance(point_in, rect),  # < 0
 GO.signed_distance(point_out, rect)  # > 0
 )
(0.0, -0.5, 0.5)

Consider also a heatmap of signed distances around this object:

julia
xrange = yrange = LinRange(-0.5, 1.5, 300)
 f, a, p = heatmap(xrange, yrange, GO.signed_distance.(Point2f.(xrange, yrange'), Ref(rect)); colormap = :RdBu, colorrange = (-0.75, 0.75))
-a.aspect = DataAspect(); Colorbar(f[1, 2], p, label = "Signed distance"); lines!(a, GI.convert(GO.GeometryBasics, rect)); f

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Distance and signed distance are only implemented for points to other geometries right now. This could be extended to include distance from other geometries in the future.

The distance calculated is the Euclidean distance using the Pythagorean theorem. Also note that singed_distance only makes sense for "filled-in" shapes, like polygons, so it isn't implemented for curves.

julia
const _DISTANCE_TARGETS = TraitTarget{Union{GI.AbstractPolygonTrait,GI.LineStringTrait,GI.LinearRingTrait,GI.LineTrait,GI.PointTrait}}()
+a.aspect = DataAspect(); Colorbar(f[1, 2], p, label = "Signed distance"); lines!(a, GI.convert(GO.GeometryBasics, rect)); f

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Distance and signed distance are only implemented for points to other geometries right now. This could be extended to include distance from other geometries in the future.

The distance calculated is the Euclidean distance using the Pythagorean theorem. Also note that singed_distance only makes sense for "filled-in" shapes, like polygons, so it isn't implemented for curves.

julia
const _DISTANCE_TARGETS = TraitTarget{Union{GI.AbstractPolygonTrait,GI.LineStringTrait,GI.LinearRingTrait,GI.LineTrait,GI.PointTrait}}()
 
 """
     distance(point, geom, ::Type{T} = Float64)::T
@@ -199,7 +199,7 @@
     end
     return min_dist
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/equals.html b/dev/source/methods/equals.html index 09c9e0291..fd2864d26 100644 --- a/dev/source/methods/equals.html +++ b/dev/source/methods/equals.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that the two lines do not share a common set of points and edges in the plot, so they are not equal:

julia
GO.equals(l1, l2)  # returns false
false

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that while we need the same set of points and edges, they don't need to be provided in the same order for polygons. For for example, we need the same set points for two multipoints to be equal, but they don't have to be saved in the same order. The winding order also doesn't have to be the same to represent the same geometry. This requires checking every point against every other point in the two geometries we are comparing. Also, some geometries must be "closed" like polygons and linear rings. These will be assumed to be closed, even if they don't have a repeated last point explicitly written in the coordinates. Additionally, geometries and multi-geometries can be equal if the multi-geometry only includes that single geometry.

julia
"""
+f

We can see that the two lines do not share a common set of points and edges in the plot, so they are not equal:

julia
GO.equals(l1, l2)  # returns false
false

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that while we need the same set of points and edges, they don't need to be provided in the same order for polygons. For for example, we need the same set points for two multipoints to be equal, but they don't have to be saved in the same order. The winding order also doesn't have to be the same to represent the same geometry. This requires checking every point against every other point in the two geometries we are comparing. Also, some geometries must be "closed" like polygons and linear rings. These will be assumed to be closed, even if they don't have a repeated last point explicitly written in the coordinates. Additionally, geometries and multi-geometries can be equal if the multi-geometry only includes that single geometry.

julia
"""
     equals(geom1, geom2)::Bool
 
 Compare two Geometries return true if they are the same geometry.
@@ -283,7 +283,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/contains.html b/dev/source/methods/geom_relations/contains.html index 8d42018d5..ee8dfac5f 100644 --- a/dev/source/methods/geom_relations/contains.html +++ b/dev/source/methods/geom_relations/contains.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that all of the points and edges of l2 are within l1, so l1 contains l2. However, l2 does not contain l1.

julia
GO.contains(l1, l2)  # returns true
+f

We can see that all of the points and edges of l2 are within l1, so l1 contains l2. However, l2 does not contain l1.

julia
GO.contains(l1, l2)  # returns true
 GO.contains(l2, l1)  # returns false
false

Implementation

This is the GeoInterface-compatible implementation.

Given that contains is the exact opposite of within, we simply pass the two inputs variables, swapped in order, to within.

julia
"""
     contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool
 
@@ -51,7 +51,7 @@
 ```
 """
 contains(g1, g2) = GeometryOps.within(g2, g1)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/coveredby.html b/dev/source/methods/geom_relations/coveredby.html index 68d5e0a40..864d626c6 100644 --- a/dev/source/methods/geom_relations/coveredby.html +++ b/dev/source/methods/geom_relations/coveredby.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -27,7 +27,7 @@ l1 = GI.Line([p1, (1.0, 1.0)]) f, a, p = lines(GI.getpoint(l1)) scatter!(p1, color = :red) -f

As we can see, p1 is on the endpoint of l1. This means it is not within, but it does meet the definition of coveredby.

julia
GO.coveredby(p1, l1)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the coveredby function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const COVEREDBY_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
+f

As we can see, p1 is on the endpoint of l1. This means it is not within, but it does meet the definition of coveredby.

julia
GO.coveredby(p1, l1)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the coveredby function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const COVEREDBY_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
 const COVEREDBY_CURVE_ALLOWS = (over_allow = true, cross_allow = true, on_allow = true, out_allow = false)
 const COVEREDBY_CURVE_REQUIRES = (in_require = false, on_require = false, out_require = false)
 const COVEREDBY_POLYGON_REQUIRES = (in_require = true, on_require = false, out_require = false,)
@@ -201,7 +201,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/covers.html b/dev/source/methods/geom_relations/covers.html index 7f23c9852..61418e8ac 100644 --- a/dev/source/methods/geom_relations/covers.html +++ b/dev/source/methods/geom_relations/covers.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ f, a, p = lines(GI.getpoint(l1)) scatter!(p1, color = :red) -f

julia
GO.covers(l1, p1)  # returns true
+f

julia
GO.covers(l1, p1)  # returns true
 GO.covers(p1, l1)  # returns false
false

Implementation

This is the GeoInterface-compatible implementation.

Given that covers is the exact opposite of coveredby, we simply pass the two inputs variables, swapped in order, to coveredby.

julia
"""
     covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool
 
@@ -51,7 +51,7 @@
 ```
 """
 covers(g1, g2)::Bool = GeometryOps.coveredby(g2, g1)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/crosses.html b/dev/source/methods/geom_relations/crosses.html index 33c301f22..f30b002ca 100644 --- a/dev/source/methods/geom_relations/crosses.html +++ b/dev/source/methods/geom_relations/crosses.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -138,7 +138,7 @@ end return false end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/disjoint.html b/dev/source/methods/geom_relations/disjoint.html index 72a599b09..25bcce47c 100644 --- a/dev/source/methods/geom_relations/disjoint.html +++ b/dev/source/methods/geom_relations/disjoint.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that none of the edges or vertices of l1 interact with l2 so they are disjoint.

julia
GO.disjoint(l1, l2)  # returns true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the disjoint function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are not allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const DISJOINT_ALLOWS = (in_allow = false, on_allow = false, out_allow = true)
+f

We can see that none of the edges or vertices of l1 interact with l2 so they are disjoint.

julia
GO.disjoint(l1, l2)  # returns true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the disjoint function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are not allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const DISJOINT_ALLOWS = (in_allow = false, on_allow = false, out_allow = true)
 const DISJOINT_CURVE_ALLOWS = (over_allow = false, cross_allow = false, on_allow = false, out_allow = true)
 const DISJOINT_REQUIRES = (in_require = false, on_require = false, out_require = false)
 const DISJOINT_EXACT = (exact = _False(),)
@@ -196,7 +196,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/geom_geom_processors.html b/dev/source/methods/geom_relations/geom_geom_processors.html index 8df66c476..7c094f440 100644 --- a/dev/source/methods/geom_relations/geom_geom_processors.html +++ b/dev/source/methods/geom_relations/geom_geom_processors.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -455,7 +455,7 @@ end return skip, returnval end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/intersects.html b/dev/source/methods/geom_relations/intersects.html index 18ad08d4b..d3ac29b87 100644 --- a/dev/source/methods/geom_relations/intersects.html +++ b/dev/source/methods/geom_relations/intersects.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -27,7 +27,7 @@ line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)]) f, a, p = lines(GI.getpoint(line1)) lines!(GI.getpoint(line2)) -f

We can see that they intersect, so we expect intersects to return true, and we can visualize the intersection point in red.

julia
GO.intersects(line1, line2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

Given that intersects is the exact opposite of disjoint, we simply pass the two inputs variables, swapped in order, to disjoint.

julia
"""
+f

We can see that they intersect, so we expect intersects to return true, and we can visualize the intersection point in red.

julia
GO.intersects(line1, line2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

Given that intersects is the exact opposite of disjoint, we simply pass the two inputs variables, swapped in order, to disjoint.

julia
"""
     intersects(geom1, geom2)::Bool
 
 Return true if the interiors or boundaries of the two geometries interact.
@@ -45,7 +45,7 @@
 ```
 """
 intersects(geom1, geom2) = !disjoint(geom1, geom2)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/overlaps.html b/dev/source/methods/geom_relations/overlaps.html index 2b43c0431..bca5c4c71 100644 --- a/dev/source/methods/geom_relations/overlaps.html +++ b/dev/source/methods/geom_relations/overlaps.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that the two lines overlap in the plot:

julia
GO.overlaps(l1, l2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that that since only elements of the same dimension can overlap, any two geometries with traits that are of different dimensions automatically can return false.

For geometries with the same trait dimension, we must make sure that they share a point, an edge, or area for points, lines, and polygons/multipolygons respectively, without being contained.

julia
"""
+f

We can see that the two lines overlap in the plot:

julia
GO.overlaps(l1, l2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that that since only elements of the same dimension can overlap, any two geometries with traits that are of different dimensions automatically can return false.

For geometries with the same trait dimension, we must make sure that they share a point, an edge, or area for points, lines, and polygons/multipolygons respectively, without being contained.

julia
"""
     overlaps(geom1, geom2)::Bool
 
 Compare two Geometries of the same dimension and return true if their
@@ -230,7 +230,7 @@
     seg_val, _, _ = _intersection_point(Float64, edge_a, edge_b; exact = _False())
     return seg_val != line_out
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/touches.html b/dev/source/methods/geom_relations/touches.html index 9160bc06d..f1ad92137 100644 --- a/dev/source/methods/geom_relations/touches.html +++ b/dev/source/methods/geom_relations/touches.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,7 +28,7 @@ f, a, p = lines(GI.getpoint(l1)) lines!(GI.getpoint(l2)) -f

We can see that these two lines touch only at their endpoints.

julia
GO.touches(l1, l2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the touches function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - at least one point of g1 is required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const TOUCHES_POINT_ALLOWED = (in_allow = false, on_allow = true, out_allow = false)
+f

We can see that these two lines touch only at their endpoints.

julia
GO.touches(l1, l2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the touches function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - at least one point of g1 is required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const TOUCHES_POINT_ALLOWED = (in_allow = false, on_allow = true, out_allow = false)
 const TOUCHES_CURVE_ALLOWED = (over_allow = false, cross_allow = false, on_allow = true, out_allow = true)
 const TOUCHES_POLYGON_ALLOWS = (in_allow = false, on_allow = true, out_allow = true)
 const TOUCHES_REQUIRES = (in_require = false, on_require = true, out_require = false)
@@ -192,7 +192,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/within.html b/dev/source/methods/geom_relations/within.html index e5fcfd5f1..42c4de0e9 100644 --- a/dev/source/methods/geom_relations/within.html +++ b/dev/source/methods/geom_relations/within.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that all of the points and edges of l2 are within l1, so l2 is within l1, but l1 is not within l2

julia
GO.within(l1, l2)  # false
+f

We can see that all of the points and edges of l2 are within l1, so l2 is within l1, but l1 is not within l2

julia
GO.within(l1, l2)  # false
 GO.within(l2, l1)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the within function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - at least one point of g1 is required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const WITHIN_POINT_ALLOWS = (in_allow = true, on_allow = false, out_allow = false)
 const WITHIN_CURVE_ALLOWS = (over_allow = true, cross_allow = true, on_allow = true, out_allow = false)
 const WITHIN_POLYGON_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
@@ -211,7 +211,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/orientation.html b/dev/source/methods/orientation.html index 7aafa4e24..426848086 100644 --- a/dev/source/methods/orientation.html +++ b/dev/source/methods/orientation.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -118,7 +118,7 @@ _isparallel(bx - ax, by - ay, dx - cx, dy - cy) _isparallel(Δx1, Δy1, Δx2, Δy2) = (Δx1 * Δy2 == Δy1 * Δx2)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/polygonize.html b/dev/source/methods/polygonize.html index f7a8322e6..1d08a5bb1 100644 --- a/dev/source/methods/polygonize.html +++ b/dev/source/methods/polygonize.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -307,7 +307,7 @@ end return edges end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/not_implemented_yet.html b/dev/source/not_implemented_yet.html index d3d922fda..40090b656 100644 --- a/dev/source/not_implemented_yet.html +++ b/dev/source/not_implemented_yet.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -22,7 +22,7 @@ function buffer end function convexhull end function concavehull end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/primitives.html b/dev/source/primitives.html index 98f800962..82360d058 100644 --- a/dev/source/primitives.html +++ b/dev/source/primitives.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -323,7 +323,7 @@ Base.@assume_effects :foldable function _mapreducetasks(f::F, op, taskrange, threaded::_False; init) where F mapreduce(f, op, taskrange; init) end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/correction/closed_ring.html b/dev/source/transformations/correction/closed_ring.html index e57014bc7..5eca71912 100644 --- a/dev/source/transformations/correction/closed_ring.html +++ b/dev/source/transformations/correction/closed_ring.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -48,7 +48,7 @@ else

Assemble the ring as a vector

julia
        tups = tuples.(GI.getpoint(ring))

Close the ring

julia
        push!(tups, tups[1])

Return an actual ring

julia
        return GI.LinearRing(tups)
     end
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/correction/geometry_correction.html b/dev/source/transformations/correction/geometry_correction.html index ac60c8712..5ab3dd979 100644 --- a/dev/source/transformations/correction/geometry_correction.html +++ b/dev/source/transformations/correction/geometry_correction.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -49,7 +49,7 @@ end return final_geometry end

Available corrections

# GeometryOps.ClosedRingType.
julia
ClosedRing() <: GeometryCorrection

This correction ensures that a polygon's exterior and interior rings are closed.

It can be called on any geometry correction as usual.

See also GeometryCorrection.

source


# GeometryOps.DiffIntersectingPolygonsType.
julia
DiffIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygons included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be made nonintersecting through the difference operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area. See also GeometryCorrection, UnionIntersectingPolygons.

source


# GeometryOps.GeometryCorrectionType.
julia
abstract type GeometryCorrection

This abstract type represents a geometry correction.

Interface

Any GeometryCorrection must implement two functions: * application_level(::GeometryCorrection)::AbstractGeometryTrait: This function should return the GeoInterface trait that the correction is intended to be applied to, like PointTrait or LineStringTrait or PolygonTrait. * (::GeometryCorrection)(::AbstractGeometryTrait, geometry)::(some_geometry): This function should apply the correction to the given geometry, and return a new geometry.

source


# GeometryOps.UnionIntersectingPolygonsType.
julia
UnionIntersectingPolygons() <: GeometryCorrection

This correction ensures that the polygon's included in a multipolygon aren't intersecting. If any polygon's are intersecting, they will be combined through the union operation to create a unique set of disjoint (other than potentially connections by a single point) polygons covering the same area.

See also GeometryCorrection.

source



This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/correction/intersecting_polygons.html b/dev/source/transformations/correction/intersecting_polygons.html index b5ca4da59..7163fa8f0 100644 --- a/dev/source/transformations/correction/intersecting_polygons.html +++ b/dev/source/transformations/correction/intersecting_polygons.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -115,7 +115,7 @@ end return diff_multipoly end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/extent.html b/dev/source/transformations/extent.html index 08d173284..6bc0456f7 100644 --- a/dev/source/transformations/extent.html +++ b/dev/source/transformations/extent.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -31,7 +31,7 @@ """ embed_extent(x; threaded=false, crs=nothing) = apply(identity, GI.PointTrait(), x; calc_extent=true, threaded, crs)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/flip.html b/dev/source/transformations/flip.html index 7dc05963e..cf98f7afa 100644 --- a/dev/source/transformations/flip.html +++ b/dev/source/transformations/flip.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -40,7 +40,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/reproject.html b/dev/source/transformations/reproject.html index 42b70e300..4c8a5c7dd 100644 --- a/dev/source/transformations/reproject.html +++ b/dev/source/transformations/reproject.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -59,7 +59,7 @@ nothing end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/segmentize.html b/dev/source/transformations/segmentize.html index 521f9fb1c..4b243a41d 100644 --- a/dev/source/transformations/segmentize.html +++ b/dev/source/transformations/segmentize.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -39,7 +39,7 @@ f, a, p = poly(collect(GI.getpoint(linear)); label = "Linear", axis = (; aspect = DataAspect())) p2 = poly!(collect(GI.getpoint(geodesic)); label = "Geodesic") axislegend(a; position = :lt) -f

There are two methods available for segmentizing geometries at the moment:

Missing docstring.

Missing docstring for LinearSegments. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeodesicSegments. Check Documenter's build log for details.

Benchmark

We benchmark our method against LibGEOS's GEOSDensify method, which is a similar method for densifying geometries.

julia
using BenchmarkTools: BenchmarkGroup
+f

There are two methods available for segmentizing geometries at the moment:

Missing docstring.

Missing docstring for LinearSegments. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeodesicSegments. Check Documenter's build log for details.

Benchmark

We benchmark our method against LibGEOS's GEOSDensify method, which is a similar method for densifying geometries.

julia
using BenchmarkTools: BenchmarkGroup
 using Chairmarks: @be
 using Main: plot_trials
 using CairoMakie
@@ -77,7 +77,7 @@
 
 end
 
-plot_trials(segmentize_suite)

julia
abstract type SegmentizeMethod end
+plot_trials(segmentize_suite)

julia
abstract type SegmentizeMethod end
 """
     LinearSegments(; max_distance::Real)
 
@@ -172,7 +172,7 @@
     end

End the line with the original coordinate, to avoid any multiplication errors.

julia
    push!(new_coords, (x2, y2))
     return nothing
 end

Note

The _fill_linear_kernel definition for GeodesicSegments is in the GeometryOpsProjExt extension module, in the segmentize.jl file.


This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/simplify.html b/dev/source/transformations/simplify.html index 58950ddc6..5d1789321 100644 --- a/dev/source/transformations/simplify.html +++ b/dev/source/transformations/simplify.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ f, a, p = poly(original; label = "Original") poly!(simple; label = "Simplified") axislegend(a) -f

Benchmark

We benchmark these methods against LibGEOS's simplify implementation, which uses the Douglas-Peucker algorithm.

julia
using BenchmarkTools, Chairmarks, GeoJSON, CairoMakie
+f

Benchmark

We benchmark these methods against LibGEOS's simplify implementation, which uses the Douglas-Peucker algorithm.

julia
using BenchmarkTools, Chairmarks, GeoJSON, CairoMakie
 import GeometryOps as GO, LibGEOS as LG, GeoInterface as GI
 using CoordinateTransformations
 using NaturalEarth
@@ -42,7 +42,7 @@
 usa_poly = GI.getgeom(usa_multipoly, findmax(GO.area.(GI.getgeom(usa_multipoly)))[2]) # isolate the poly with the most area
 usa_centroid = GO.centroid(usa_poly)
 usa_reflected = GO.transform(Translation(usa_centroid...)  LinearMap(Makie.rotmatrix2d(π))  Translation((-).(usa_centroid)...), usa_poly)
-f, a, p = plot(usa_poly; label = "Original", axis = (; aspect = DataAspect()))#; plot!(usa_reflected; label = "Reflected")

This is the complex polygon we'll be benchmarking.

julia
simplify_suite = BenchmarkGroup(["Simplify"])
+f, a, p = plot(usa_poly; label = "Original", axis = (; aspect = DataAspect()))#; plot!(usa_reflected; label = "Reflected")

This is the complex polygon we'll be benchmarking.

julia
simplify_suite = BenchmarkGroup(["Simplify"])
 singlepoly_suite = BenchmarkGroup(["Polygon", "title:Polygon simplify", "subtitle:Random blob"])
 
 include(joinpath(dirname(dirname(pathof(GO))), "test", "data", "polygon_generation.jl"))
@@ -56,7 +56,7 @@
     singlepoly_suite["LibGEOS"][GI.npoint(geom)] = @be LG.simplify($geom_lg, 0.1) seconds=1
 end
 
-plot_trials(singlepoly_suite; legend_position=(1, 1, TopRight()), legend_valign = -2, legend_halign = 1.2, legend_orientation = :horizontal)

julia
multipoly_suite = BenchmarkGroup(["MultiPolygon", "title:Multipolygon simplify", "subtitle:USA multipolygon"])
+plot_trials(singlepoly_suite; legend_position=(1, 1, TopRight()), legend_valign = -2, legend_halign = 1.2, legend_orientation = :horizontal)

julia
multipoly_suite = BenchmarkGroup(["MultiPolygon", "title:Multipolygon simplify", "subtitle:USA multipolygon"])
 
 for frac in exp10.(LinRange(log10(0.3), log10(1), 6)) # TODO: this example isn't the best.  How can we get this better?
     geom = GO.simplify(usa_multipoly; ratio = frac)
@@ -75,7 +75,7 @@
     # GO-VW : $(GI.npoint( GO.simplify((GO.VisvalingamWhyatt(; tol = _tol)), geom_go)))
     println()
 end
-plot_trials(multipoly_suite)

julia
export simplify, VisvalingamWhyatt, DouglasPeucker, RadialDistance
+plot_trials(multipoly_suite)

julia
export simplify, VisvalingamWhyatt, DouglasPeucker, RadialDistance
 
 const _SIMPLIFY_TARGET = TraitTarget{Union{GI.PolygonTrait, GI.AbstractCurveTrait, GI.MultiPointTrait, GI.PointTrait}}()
 const MIN_POINTS = 3
@@ -508,7 +508,7 @@
     end
     return nothing
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/transform.html b/dev/source/transformations/transform.html index 19a32705e..4cd5fb085 100644 --- a/dev/source/transformations/transform.html +++ b/dev/source/transformations/transform.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -73,7 +73,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/tuples.html b/dev/source/transformations/tuples.html index 713de9a2f..a8ca64218 100644 --- a/dev/source/transformations/tuples.html +++ b/dev/source/transformations/tuples.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -37,7 +37,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/types.html b/dev/source/types.html index 77f02255d..9ce4db7ec 100644 --- a/dev/source/types.html +++ b/dev/source/types.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -85,7 +85,7 @@ error("$(f) requires a `$(kw)` keyword argument to the `GEOS` algorithm, which was not provided.") end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/utils.html b/dev/source/utils.html index d6156af00..673261ce0 100644 --- a/dev/source/utils.html +++ b/dev/source/utils.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -138,7 +138,7 @@ (x1, x2), (y1, y2) = extent.X, extent.Y return x1 ≤ GI.x(p) ≤ x2 && y1 ≤ GI.y(p) ≤ y2 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/tutorials/creating_geometry.html b/dev/tutorials/creating_geometry.html index d132b8597..49e23f875 100644 --- a/dev/tutorials/creating_geometry.html +++ b/dev/tutorials/creating_geometry.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,37 +28,37 @@ import Proj # Plotting using CairoMakie -using GeoMakie

Creating and plotting geometries

Let's start by making a single Point.

julia
point = GI.Point(0, 0)
GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((0, 0), nothing)

Now, let's plot our point.

julia
fig, ax, plt = plot(point)

Let's create a set of points, and have a bit more fun with plotting.

julia
x = [-5, 0, 5, 0];
+using GeoMakie

Creating and plotting geometries

Let's start by making a single Point.

julia
point = GI.Point(0, 0)
GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((0, 0), nothing)

Now, let's plot our point.

julia
fig, ax, plt = plot(point)

Let's create a set of points, and have a bit more fun with plotting.

julia
x = [-5, 0, 5, 0];
 y = [0, -5, 0, 5];
 points = GI.Point.(zip(x,y));
 plot!(ax, points; marker = '✈', markersize = 30)
-fig

Points can be combined into a single MultiPoint geometry.

julia
x = [-5, -5, 5, 5];
+fig

Points can be combined into a single MultiPoint geometry.

julia
x = [-5, -5, 5, 5];
 y = [-5, 5, 5, -5];
 multipoint = GI.MultiPoint(GI.Point.(zip(x, y)));
 plot!(ax, multipoint; marker = '☁', markersize = 30)
-fig

Let's create a LineString connecting two points.

julia
p1 = GI.Point.(-5, 0);
+fig

Let's create a LineString connecting two points.

julia
p1 = GI.Point.(-5, 0);
 p2 = GI.Point.(5, 0);
 line = GI.LineString([p1,p2])
 plot!(ax, line; color = :red)
-fig

Now, let's create a line connecting multiple points (i.e. a LineString). This time we get a bit more fancy with point creation.

julia
r = 2;
+fig

Now, let's create a line connecting multiple points (i.e. a LineString). This time we get a bit more fancy with point creation.

julia
r = 2;
 k = 10;
 ϴ = 0:0.01:2pi;
 x = r .* (k + 1) .* cos.(ϴ) .- r .* cos.((k + 1) .* ϴ);
 y = r .* (k + 1) .* sin.(ϴ) .- r .* sin.((k + 1) .* ϴ);
 lines = GI.LineString(GI.Point.(zip(x,y)));
 plot!(ax, lines; linewidth = 5)
-fig

We can also create a single LinearRing trait, the building block of a polygon. A LinearRing is simply a LineString with the same beginning and endpoint, i.e., an arbitrary closed shape composed of point pairs.

A LinearRing is composed of a series of points.

julia
ring1 = GI.LinearRing(GI.getpoint(lines));
GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)

Now, let's make the LinearRing into a Polygon.

julia
polygon1 = GI.Polygon([ring1]);
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)], nothing, nothing)

Now, we can use GeometryOps and CoordinateTransformations to shift polygon1 up, to avoid plotting over our earlier results. This is done through the GeometryOps.transform function.

julia
xoffset = 0.;
+fig

We can also create a single LinearRing trait, the building block of a polygon. A LinearRing is simply a LineString with the same beginning and endpoint, i.e., an arbitrary closed shape composed of point pairs.

A LinearRing is composed of a series of points.

julia
ring1 = GI.LinearRing(GI.getpoint(lines));
GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)

Now, let's make the LinearRing into a Polygon.

julia
polygon1 = GI.Polygon([ring1]);
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)], nothing, nothing)

Now, we can use GeometryOps and CoordinateTransformations to shift polygon1 up, to avoid plotting over our earlier results. This is done through the GeometryOps.transform function.

julia
xoffset = 0.;
 yoffset = 50.;
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 polygon1 = GO.transform(f, polygon1);
 plot!(polygon1)
-fig

Polygons can contain "holes". The first LinearRing in a polygon is the exterior, and all subsequent LinearRings are treated as holes in the leading LinearRing.

GeoInterface offers the GI.getexterior(poly) and GI.gethole(poly) methods to get the exterior ring and an iterable of holes, respectively.

julia
hole = GI.LinearRing(GI.getpoint(multipoint))
+fig

Polygons can contain "holes". The first LinearRing in a polygon is the exterior, and all subsequent LinearRings are treated as holes in the leading LinearRing.

GeoInterface offers the GI.getexterior(poly) and GI.gethole(poly) methods to get the exterior ring and an iterable of holes, respectively.

julia
hole = GI.LinearRing(GI.getpoint(multipoint))
 polygon2 = GI.Polygon([ring1, hole])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, T, Nothing, Nothing} where T}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, T, Nothing, Nothing} where T[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((-5, -5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((-5, 5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((5, 5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((5, -5), nothing)], nothing, nothing)], nothing, nothing)

Shift polygon2 to the right, to avoid plotting over our earlier results.

julia
xoffset = 50.;
 yoffset = 0.;
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 polygon2 = GO.transform(f, polygon2);
 plot!(polygon2)
-fig

Polygons can also be grouped together as a MultiPolygon.

julia
r = 5;
+fig

Polygons can also be grouped together as a MultiPolygon.

julia
r = 5;
 x = cos.(reverse(ϴ)) .* r .+ xoffset;
 y = sin.(reverse(ϴ)) .* r .+ yoffset;
 ring2 =  GI.LinearRing(GI.Point.(zip(x,y)));
@@ -68,7 +68,7 @@
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 multipolygon = GO.transform(f, multipolygon);
 plot!(multipolygon)
-fig

Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

julia
source_crs1 = GFT.EPSG(4326)
GeoFormatTypes.EPSG{1}((4326,))

Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

julia
destination_crs = "+proj=natearth2"
"+proj=natearth2"

Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

julia
land_path = GeoMakie.assetpath("ne_110m_land.geojson")
"/home/runner/.julia/packages/GeoMakie/HExpB/assets/ne_110m_land.geojson"

Note

Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

Read the land MultiPolygons as a GeoJSON.FeatureCollection.

julia
land_geo = GeoJSON.read(land_path)
FeatureCollection with 127 Features

We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

julia
fig = Figure(size=(1000, 500));
+fig

Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

julia
source_crs1 = GFT.EPSG(4326)
GeoFormatTypes.EPSG{1}((4326,))

Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

julia
destination_crs = "+proj=natearth2"
"+proj=natearth2"

Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

julia
land_path = GeoMakie.assetpath("ne_110m_land.geojson")
"/home/runner/.julia/packages/GeoMakie/2upVC/assets/ne_110m_land.geojson"

Note

Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

Read the land MultiPolygons as a GeoJSON.FeatureCollection.

julia
land_geo = GeoJSON.read(land_path)
FeatureCollection with 127 Features

We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

julia
fig = Figure(size=(1000, 500));
 ga = GeoAxis(
     fig[1, 1];
     source = source_crs1,
@@ -76,8 +76,8 @@
     xticklabelsvisible = false,
     yticklabelsvisible = false,
 );

Plot land for context.

julia
poly!(ga, land_geo, color=:black)
-fig

Now let's plot a Polygon like before, but this time with a CRS that differs from our source data

julia
plot!(multipolygon; color = :green)
-fig

But what if we want to plot geometries with a different source CRS on the same figure?

To show how to do this let's create a geometry with coordinates in UTM (Universal Transverse Mercator) zone 10N EPSG:32610.

julia
source_crs2 = GFT.EPSG(32610)
GeoFormatTypes.EPSG{1}((32610,))

Create a polygon (we're working in meters now, not latitude and longitude)

julia
r = 1000000;
+fig

Now let's plot a Polygon like before, but this time with a CRS that differs from our source data

julia
plot!(multipolygon; color = :green)
+fig

But what if we want to plot geometries with a different source CRS on the same figure?

To show how to do this let's create a geometry with coordinates in UTM (Universal Transverse Mercator) zone 10N EPSG:32610.

julia
source_crs2 = GFT.EPSG(32610)
GeoFormatTypes.EPSG{1}((32610,))

Create a polygon (we're working in meters now, not latitude and longitude)

julia
r = 1000000;
 ϴ = 0:0.01:2pi;
 x = r .* cos.(ϴ).^3 .+ 500000;
 y = r .* sin.(ϴ) .^ 3 .+5000000;
629-element Vector{Float64}:
@@ -87,7 +87,7 @@
 
  5.0e6
  5.0e6

Now create a LinearRing from Points

julia
ring3 = GI.LinearRing(Point.(zip(x, y)))
GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[1.5e6, 5.0e6], [1.4998500087497458e6, 5.000000999950001e6], [1.4994001399837343e6, 5.000007998400139e6], [1.4986507085647392e6, 5.000026987852369e6], [1.4976022389592e6, 5.000063948817746e6], [1.4962554647802354e6, 5.000124843834609e6], [1.4946113281484335e6, 5.000215611503127e6], [1.4926709788709967e6, 5.000342160541625e6], [1.4904357734399722e6, 5.000510363870095e6], [1.4879072738504685e6, 5.0007260527263e6]  …  [1.4870405593989636e6, 4.999194331880103e6], [1.4896621210021754e6, 4.999426363321033e6], [1.491990928929295e6, 4.999609061508909e6], [1.4940253560034204e6, 4.999748243174828e6], [1.4957639801366436e6, 4.999849768598615e6], [1.497205585568957e6, 4.999919535736425e6], [1.4983491639274692e6, 4.999963474314044e6], [1.4991939151049731e6, 4.999987539891298e6], [1.4997392479570867e6, 4.999997707902938e6], [1.499984780817334e6, 4.999999967681458e6]], nothing, nothing)

Now create a Polygon from the LineRing

julia
polygon3 = GI.Polygon([ring3])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[1.5e6, 5.0e6], [1.4998500087497458e6, 5.000000999950001e6], [1.4994001399837343e6, 5.000007998400139e6], [1.4986507085647392e6, 5.000026987852369e6], [1.4976022389592e6, 5.000063948817746e6], [1.4962554647802354e6, 5.000124843834609e6], [1.4946113281484335e6, 5.000215611503127e6], [1.4926709788709967e6, 5.000342160541625e6], [1.4904357734399722e6, 5.000510363870095e6], [1.4879072738504685e6, 5.0007260527263e6]  …  [1.4870405593989636e6, 4.999194331880103e6], [1.4896621210021754e6, 4.999426363321033e6], [1.491990928929295e6, 4.999609061508909e6], [1.4940253560034204e6, 4.999748243174828e6], [1.4957639801366436e6, 4.999849768598615e6], [1.497205585568957e6, 4.999919535736425e6], [1.4983491639274692e6, 4.999963474314044e6], [1.4991939151049731e6, 4.999987539891298e6], [1.4997392479570867e6, 4.999997707902938e6], [1.499984780817334e6, 4.999999967681458e6]], nothing, nothing)], nothing, nothing)

Now plot on the existing GeoAxis.

Note

The keyword argument source is used to specify the source CRS of that particular plot, when plotting on an existing GeoAxis.

julia
plot!(ga,polygon3; color=:red, source = source_crs2)
-fig

Create geospatial geometries with embedded coordinate reference system information

Great, we can make geometries and plot them on a map... now let's export the data to common geospatial data formats. To do this we now need to create geometries with embedded CRS information, making it a geospatial geometry. All that's needed is to include ; crs = crs as a keyword argument when constructing the geometry.

Let's do this for a new Polygon

julia
r = 3;
+fig

Create geospatial geometries with embedded coordinate reference system information

Great, we can make geometries and plot them on a map... now let's export the data to common geospatial data formats. To do this we now need to create geometries with embedded CRS information, making it a geospatial geometry. All that's needed is to include ; crs = crs as a keyword argument when constructing the geometry.

Let's do this for a new Polygon

julia
r = 3;
 k = 7;
 ϴ = 0:0.01:2pi;
 x = r .* (k + 1) .* cos.(ϴ) .- r .* cos.((k + 1) .* ϴ);
@@ -107,7 +107,7 @@
 GeoParquet.write(fn, df, (:geometry,))
"shapes.parquet"

Finally, if there's no Julia-native package that can write data to your desired format (e.g. .gpkg, .gml, etc), you can use GeoDataFrames. This package uses the GDAL library under the hood which supports writing to nearly all geospatial formats.

julia
import GeoDataFrames
 fn = "shapes.gpkg"
 GeoDataFrames.write(fn, df)
"shapes.gpkg"

And there we go, you can now create mapped geometries from scratch, manipulate them, plot them on a map, and save them in multiple geospatial data formats.

- + \ No newline at end of file diff --git a/dev/tutorials/geodesic_paths.html b/dev/tutorials/geodesic_paths.html index 52ebf0525..3b2580b71 100644 --- a/dev/tutorials/geodesic_paths.html +++ b/dev/tutorials/geodesic_paths.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,8 +28,8 @@ fig, ga, _cp = lines(GeoMakie.coastlines(); axis = (; type = GeoAxis)) lines!(ga, GO.segmentize(GO.GeodesicSegments(; max_distance = 100_000), GI.LineString([IAH, AMS])); color = Makie.wong_colors()[2]) -fig

- +fig

+ \ No newline at end of file diff --git a/dev/tutorials/spatial_joins.html b/dev/tutorials/spatial_joins.html index 865434453..c228e2b35 100644 --- a/dev/tutorials/spatial_joins.html +++ b/dev/tutorials/spatial_joins.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,14 +28,14 @@ pl = GI.Polygon([GI.LinearRing([(0, 0), (1, 0), (1, 1), (0, 0)])]) pu = GI.Polygon([GI.LinearRing([(0, 0), (0, 1), (1, 1), (0, 0)])]) poly_df = DataFrame(geometry = [pl, pu], color = [:red, :blue]) -f, a, p = poly(poly_df.geometry; color = tuple.(poly_df.color, 0.3))

Here, the upper polygon is blue, and the lower polygon is red. Keep this in mind!

Now, we generate the points.

julia
points = tuple.(rand(1000), rand(1000))
+f, a, p = poly(poly_df.geometry; color = tuple.(poly_df.color, 0.3))

Here, the upper polygon is blue, and the lower polygon is red. Keep this in mind!

Now, we generate the points.

julia
points = tuple.(rand(1000), rand(1000))
 points_df = DataFrame(geometry = points)
 scatter!(points_df.geometry)
-f

You can see that they are evenly distributed around the box. But how do we know which points are in which polygons?

We have to join the two dataframes based on which polygon (if any) each point lies within.

Now, we can perform the "spatial join" using FlexiJoins. We are performing an outer join here

julia
@time joined_df = FlexiJoins.innerjoin(
+f

You can see that they are evenly distributed around the box. But how do we know which points are in which polygons?

We have to join the two dataframes based on which polygon (if any) each point lies within.

Now, we can perform the "spatial join" using FlexiJoins. We are performing an outer join here

julia
@time joined_df = FlexiJoins.innerjoin(
     (points_df, poly_df),
     by_pred(:geometry, GO.within, :geometry)
 )
julia
scatter!(a, joined_df.geometry; color = joined_df.color)
-f

Here, you can see that the colors were assigned appropriately to the scattered points!

Real-world example

Suppose I have a list of polygons representing administrative regions (or mining sites, or what have you), and I have a list of polygons for each country. I want to find the country each region is in.

julia
import GeoInterface as GI, GeometryOps as GO
+f

Here, you can see that the colors were assigned appropriately to the scattered points!

Real-world example

Suppose I have a list of polygons representing administrative regions (or mining sites, or what have you), and I have a list of polygons for each country. I want to find the country each region is in.

julia
import GeoInterface as GI, GeometryOps as GO
 using FlexiJoins, DataFrames, GADM # GADM gives us country and sublevel geometry
 
 using CairoMakie, GeoInterfaceMakie
@@ -60,7 +60,7 @@
     ::FlexiJoins.ByPred{typeof(my_predicate_function)}, 
     datas
 ) = true

This will enable FlexiJoins to support your custom function, when it's passed to by_pred(:geometry, my_predicate_function, :geometry).

- + \ No newline at end of file